:root{--bg:#f4f6f8;--card:#ffffff;--line:#e5e9ee;--line-soft:#eef1f4;--txt:#16232e;--ink2:#51616f;--muted:#8a98a6;--navy:#00598f;--navy2:#0d6da8;--brand-600:#004a77;--brand-50:#e8f1f7;--brand-100:#d3e4f0;--green:#95b531;--green-d:#6f9421;--green-50:#f0f5e0;--red:#c0392b;--redbg:#fdecea;--orange:#b06f0e;--orangebg:#fdf3e0;--greenbg:#e7f5ec;--graybg:#eef1f4;--ok:#1a7f4b;--sent:#00598f;--sentbg:#e8f1f7;--c1:#00598f;--c2:#6f9421;--c3:#7c5cbf;--c4:#c77f2e;--c5:#b5487a;--r:14px;--shadow:0 1px 2px rgba(16,24,40,.06),0 4px 14px rgba(16,24,40,.05)}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font:14px/1.5 Inter,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--txt)}a{color:inherit;text-decoration:none}.app{min-height:100vh}.app,.side{display:flex}.side{width:236px;flex-shrink:0;background:var(--card);border-right:1px solid var(--line);padding:18px 12px;flex-direction:column;gap:4px;position:-webkit-sticky;position:sticky;top:0;height:100vh;overflow:auto}.logo{display:flex;align-items:center;gap:10px;padding:4px 10px 14px}.logo .mark{width:34px;height:34px;border-radius:10px;background:var(--navy);color:#fff;display:grid;place-items:center;font-weight:800;font-size:13px;letter-spacing:.5px;flex:none}.logo b{font-size:14.5px;letter-spacing:.4px;color:var(--navy);display:block;line-height:1.1}.logo span{font-size:10.5px;color:var(--muted);letter-spacing:.6px}.nav{flex:1 1}.nav-sec{font-size:10.5px;font-weight:700;letter-spacing:1px;color:var(--muted);text-transform:uppercase;padding:14px 10px 6px}.nav a{gap:10px;padding:8.5px 10px;border-radius:10px;color:var(--ink2);font-weight:500;font-size:13.5px}.nav a,.nav a .ic{display:flex;align-items:center}.nav a .ic{width:17px;height:17px;justify-content:center;flex:none}.nav a .ic svg{width:17px;height:17px;display:block;stroke-width:1.8}.nav a:hover{background:var(--line-soft);color:var(--txt)}.nav a.active{background:var(--brand-50);color:var(--navy);font-weight:600}.nav a .n{margin-left:auto;background:var(--green);color:#fff;font-size:10.5px;font-weight:700;border-radius:99px;padding:1px 7px}.side .me{margin-top:auto;display:flex;align-items:center;gap:10px;padding:12px 10px 2px;border-top:1px solid var(--line-soft);font-size:12.5px}.side .me b{display:block;font-size:12.5px}.side .me small{color:var(--muted);display:block;font-size:11px}.av{width:32px;height:32px;background:var(--brand-100);color:var(--brand-600);display:grid;place-items:center}.av,.avatar{border-radius:99px;font-size:12px;font-weight:700;flex:none}.avatar{width:32px;height:32px;background:var(--brand-100);color:var(--brand-600);display:flex;align-items:center;justify-content:center}.main{flex:1 1;min-width:0;flex-direction:column}.main,.top{display:flex}.top{background:var(--card);border-bottom:1px solid var(--line);padding:13px 26px;align-items:center;gap:14px;position:-webkit-sticky;position:sticky;top:0;z-index:5}.top h1{font-size:16px;margin:0;color:var(--txt);font-weight:650;line-height:1.2}.top .sub{font-size:12px;color:var(--muted);margin-top:2px}.top .actions{flex:none}.gsearch,.top .actions{display:flex;gap:8px;align-items:center}.gsearch{flex:1 1;max-width:460px;margin:0 auto;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:0 12px;color:var(--muted)}.gsearch svg{width:15px;height:15px;flex:none;stroke-width:2}.gsearch input{flex:1 1;border:none;background:none;outline:none;font:inherit;font-size:13px;color:var(--txt);padding:8px 0;min-width:0}.gsearch input::placeholder{color:var(--muted)}.m-actions,.mtop{display:none}.content{padding:22px 26px;max-width:1400px;width:100%}.btn{border:none;border-radius:10px;padding:9px 15px;font-weight:600;cursor:pointer;font-size:13px;display:inline-flex;align-items:center;gap:7px;font-family:inherit}.btn.p{background:var(--navy);color:#fff}.btn.g{background:var(--green-d);color:#fff}.btn.o{background:var(--card);border:1px solid var(--line);color:var(--ink2)}.btn.sm{padding:6px 11px;font-size:12px}.btn:hover{filter:brightness(1.05)}.btn .bic{display:inline-flex;vertical-align:-2px}.btn .bic svg{width:14px;height:14px;display:block;stroke-width:1.8}.chip{display:inline-flex;align-items:center;gap:5px;border-radius:99px;padding:2.5px 9px;font-size:11.5px;font-weight:650;white-space:nowrap}.chip:before{content:"";width:6px;height:6px;border-radius:99px;background:currentColor;flex:none}.c-imp,.c-ok{background:var(--greenbg);color:var(--ok)}.c-imp{border:1px dashed var(--ok)}.c-no{background:var(--redbg);color:var(--red)}.c-new{background:var(--orangebg);color:var(--orange)}.c-ai{background:var(--sentbg);color:var(--sent)}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}.tabs{display:flex;gap:4px;border-bottom:2px solid var(--line);margin-bottom:18px;flex-wrap:wrap}.tabs .tb{padding:10px 16px;cursor:pointer;font-weight:600;color:var(--muted);border-bottom:3px solid transparent;margin-bottom:-2px}.tabs .tb.active{color:var(--navy);border-color:var(--navy)}.tabs .tb .badge{background:var(--navy);color:#fff;border-radius:20px;padding:0 7px;font-size:11px;margin-left:6px}.hide,.section{display:none}.section.active{display:block}.help{background:var(--brand-50);border-left:4px solid var(--navy2);padding:10px 14px;border-radius:10px;font-size:12.5px;color:#33506f;margin-bottom:18px}.help b{color:var(--navy)}.dgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));grid-gap:16px;gap:16px}.dev{padding:16px;border-radius:var(--r)}.dev .h{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.dev .cli{font-weight:700;font-size:15px;color:var(--navy)}.clilink{cursor:pointer}.clilink:hover{text-decoration:underline}.sitelink{cursor:pointer}.sitelink:hover{text-decoration:underline;color:var(--navy2)}.dev .site{font-size:12.5px;color:var(--muted);margin-top:2px}.dev .meta{margin:12px 0;font-size:12.5px;display:flex;flex-direction:column;gap:6px}.dev .meta .k{color:var(--muted);display:inline-block;min-width:96px}.dev .src{font-size:11.5px;color:var(--muted);border-top:1px dashed var(--line);padding-top:9px;margin-top:6px}.dev .foot{margin-top:12px}.dashadd,.dev .foot{display:flex;gap:8px}.dashadd{flex-direction:column;align-items:center;justify-content:center;border:2px dashed #c7d2dd;background:#fbfcfe;box-shadow:none;cursor:pointer;min-height:150px;color:var(--navy2);transition:border-color .12s,background .12s}.dashadd:hover{border-color:var(--navy);background:var(--brand-50)}.dashadd .plus{width:40px;height:40px;border-radius:50%;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center}.dashadd .plus svg{width:22px;height:22px;stroke-width:2.4}.dashadd .dt{font-weight:800;font-size:14px;color:var(--navy)}.dashadd .dd{max-width:230px}.dashadd .dd,.ndsep{font-size:12px;color:var(--muted);text-align:center}.ndsep{display:flex;align-items:center;gap:12px;margin:14px 0}.ndsep:after,.ndsep:before{content:"";flex:1 1;height:1px;background:var(--line)}.alert{background:var(--orangebg);color:#8a5a12;border-radius:8px;padding:7px 10px;font-size:12px;margin-top:10px}.formwrap{display:flex;flex-wrap:wrap;gap:18px;align-items:flex-start}.formwrap>*{flex:1 1 340px;min-width:0}.fcard{padding:18px}.fcard h3{margin:0 0 4px;font-size:14px;color:var(--navy);display:flex;align-items:center;gap:8px}.fcard .desc{font-size:11.5px;color:var(--muted);margin-bottom:14px}.fcard h3 .hic{display:inline-flex;vertical-align:-2px;margin-right:2px}.fcard h3 .hic svg{width:15px;height:15px;display:block;stroke-width:1.7;opacity:.75}.field{margin-bottom:13px}.field label{display:block;font-size:12px;font-weight:600;margin-bottom:5px}.req:after{content:" *";color:var(--red)}.field input,.field select,.field textarea{width:100%;padding:9px 10px;border:1px solid #cfd8e0;border-radius:10px;font-size:13px;font-family:inherit;background:#fff}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px rgba(0,89,143,.08)}.field input[readonly],.field select:disabled{background:#f6f8fb;border-color:var(--line);color:#33465c;cursor:default;-webkit-text-fill-color:#33465c;opacity:1}.ctpane.locked .fcard{background:#fcfdfe}.row2{display:flex;gap:10px;flex-wrap:wrap}.row2>*{flex:1 1 190px;min-width:0}.row3{display:flex;gap:10px;flex-wrap:wrap}.row3>*{flex:1 1 130px;min-width:0}.seg{display:flex;border:1px solid #cfd8e0;border-radius:10px;overflow:hidden}.seg label{flex:1 1;text-align:center;padding:8px;cursor:pointer;font-size:12.5px;font-weight:600;color:var(--muted)}.seg input{display:none}.seg input:checked+label{background:var(--navy);color:#fff}.optbox{border:1px solid #cfd8e0;border-radius:10px;padding:6px}.optbox>label{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:8px;font-weight:500;cursor:pointer}.optbox>label:hover{background:var(--graybg)}.mini{font-size:11px;color:var(--muted)}.dot-r{color:var(--red)}.dot-b,.dot-r{font-weight:700}.dot-b{color:var(--navy2)}table{width:100%;border-collapse:collapse}th{background:none;text-align:left;padding:10px 14px;font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);font-weight:650;border-bottom:1px solid var(--line)}td{padding:11px 14px;border-top:1px solid var(--line-soft);font-size:13px;vertical-align:middle}tbody tr:hover td{background:#fafbfc}.tag{display:inline-block;border-radius:7px;padding:2px 8px;font-size:11px;font-weight:600;background:var(--line-soft);color:var(--ink2)}.t-copro{background:var(--brand-50);color:var(--navy)}.t-com{background:var(--green-50);color:var(--green-d)}.t-app{background:#f3e8fd;color:var(--c3)}.sscount{background:var(--navy);color:#fff;border-radius:20px;padding:0 8px;font-size:11px}.who{display:flex;align-items:center;gap:10px}.who .av{width:30px;height:30px;font-size:11px}.who small{display:block;color:var(--muted);font-size:11.5px}.modal-bg{position:fixed;inset:0;background:rgba(18,30,50,.5);display:none;align-items:flex-start;justify-content:center;padding:40px 16px;z-index:20;overflow:auto}.modal-bg.open{display:flex}.modal{background:#fff;border-radius:var(--r);max-width:820px;width:100%;box-shadow:0 20px 60px rgba(0,0,0,.3)}.modal .mh{padding:16px 20px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.modal .mh h2{margin:0;font-size:16px;color:var(--navy)}.modal .mb{padding:20px}.modal .mf{padding:14px 20px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:8px;background:#fafbfc;border-radius:0 0 var(--r) var(--r)}.x{cursor:pointer;color:var(--muted);font-size:22px;border:none;background:none}.kpi{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:14px;gap:14px;margin-bottom:18px}.kpi .k{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;box-shadow:var(--shadow)}.kpi .k .l{font-size:12px;color:var(--ink2);font-weight:600}.kpi .k .v{font-size:24px;font-weight:700;color:var(--txt);margin-top:3px;letter-spacing:-.3px}.kpi .k .v.g{color:var(--ok)}.kpi .k .v.o{color:var(--orange)}.kpi .k .v.r{color:var(--red)}.kpi .k .s{font-size:12px;color:var(--muted);margin-top:2px}.banner{background:linear-gradient(135deg,var(--navy) 0,#01476f 100%);color:#fff;border-radius:var(--r);padding:14px 18px;margin-bottom:20px;display:flex;justify-content:space-between;align-items:center;gap:14px}.banner .t{font-weight:700}.banner .d{font-size:12.5px;opacity:.9;margin-top:3px}.clihead{margin-bottom:18px;flex-wrap:wrap}.clihead,.clihead .ico{display:flex;align-items:center}.clihead .ico{flex:0 0 52px;width:52px;height:52px;margin-right:16px;border-radius:14px;background:var(--navy);color:#fff;justify-content:center;font-size:24px}.clihead .ico svg{width:25px;height:25px;display:block;stroke-width:1.4}.clihead h2{margin:0;font-size:20px;color:var(--txt);font-weight:700}.clihead .m{font-size:12.5px;color:var(--muted);margin-top:3px}.pills{display:flex;gap:8px;margin-left:auto;flex-wrap:wrap}.pill{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:6px 12px;text-align:center;box-shadow:var(--shadow)}.pill .n{font-weight:800;color:var(--navy);font-size:16px}.pill .l{font-size:10.5px;color:var(--muted)}.pill .n.r{color:var(--red)}.pill .n.g{color:var(--ok)}.pill .sub{font-size:10px;color:var(--muted);margin-top:1px}.pill.act{cursor:pointer;transition:border-color .12s,box-shadow .12s}.pill.act:hover{border-color:var(--navy);box-shadow:0 0 0 2px rgba(0,89,143,.12)}.pill .prog{height:4px;border-radius:3px;background:var(--line-soft);margin-top:6px;overflow:hidden}.pill .prog i{display:block;height:100%;background:var(--navy2);border-radius:3px}.contact-card,.site-card{padding:14px 16px;margin-bottom:10px;display:flex;align-items:center;gap:14px}.contact-card .av{width:38px;height:38px;border-radius:50%;background:var(--brand-100);color:var(--brand-600);display:flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0}.contact-card .info{flex:1 1}.contact-card .nm,.role{font-weight:700}.role{font-size:11px;padding:2px 8px;border-radius:20px;background:var(--brand-50);color:var(--navy)}.site-card .info{flex:1 1}.readrow{display:flex;gap:12px;padding:7px 0;border-bottom:1px solid var(--line-soft);font-size:13px}.readrow:last-child{border-bottom:none}.readrow .k{color:var(--muted);min-width:190px;flex:0 0 190px}.readrow .v{flex:1 1;min-width:0;word-break:break-word}.qline{padding:13px 15px;margin-bottom:11px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 1px 2px rgba(16,24,40,.05);transition:box-shadow .15s,border-color .15s}.qline:hover{box-shadow:var(--shadow);border-color:#d3ddea}.qline-top{display:flex;align-items:center;gap:12px}.qline .ref{width:86px;flex-shrink:0;font-weight:800;letter-spacing:.5px;text-transform:uppercase;text-align:center;color:var(--navy);background:var(--brand-50);border:1px solid var(--brand-100);border-radius:8px;padding:9px 6px;font-size:13px;font-family:inherit}.qline .ref::placeholder{color:#9fb2ca;font-weight:600}.qline .presta{flex:1 1;min-width:0;font-weight:700;font-size:14.5px;color:var(--txt);border:1px solid transparent;background:transparent;padding:7px 6px;border-radius:7px;font-family:inherit}.qline .presta:hover{background:#f7f9fc}.qline .presta:focus{outline:none;background:#fff;border-color:#cfd8e0}.qline .det{width:100%;margin-top:4px;font-size:12.5px;color:var(--muted);border:1px solid transparent;background:transparent;padding:4px 6px;border-radius:7px;font-family:inherit}.qline .det:hover{background:#f7f9fc}.qline .det:focus{outline:none;background:#fff;border-color:#cfd8e0;color:var(--txt)}.qline-bot{gap:16px;margin-top:9px;padding-top:9px;border-top:1px dashed var(--line)}.qline-bot,.qline-bot .fld{display:flex;align-items:center}.qline-bot .fld{gap:6px;font-size:11.5px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.3px}.qline-bot .fld input{width:62px;padding:7px 8px;border:1px solid #cfd8e0;border-radius:8px;font-size:13px;text-align:right;font-family:inherit;text-transform:none;letter-spacing:0}.qline-bot .fld input.pu-in{width:82px}.qline-tot{margin-left:auto;font-size:11.5px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.3px;display:flex;align-items:center;gap:9px}.qline-tot b{font-size:16px;color:var(--navy);letter-spacing:0}.qline .del{border:none;background:none;color:#c3ccd8;font-size:20px;cursor:pointer;flex-shrink:0;line-height:1;padding:0 2px}.qline .del:hover{color:var(--red)}.search{width:100%;box-sizing:border-box;padding:11px 14px;margin-bottom:14px;border:1.5px solid #cfd8e0;border-radius:10px;font-size:13.5px;background:#fff;color:var(--txt);outline:none;transition:border-color .12s,box-shadow .12s}.search:focus{border-color:var(--navy);box-shadow:0 0 0 3px rgba(0,89,143,.08)}.optcards{display:flex;flex-direction:column;gap:10px}.optcard{display:flex;align-items:flex-start;gap:12px;border:1.5px solid #dbe2ec;border-radius:11px;padding:13px 15px;cursor:pointer;transition:border-color .12s,background .12s,box-shadow .12s;background:#fff}.optcard:hover{border-color:#b9c8dc;background:#f9fbfd}.optcard.sel{border-color:var(--navy);background:var(--brand-50);box-shadow:0 0 0 3px rgba(0,89,143,.06)}.optcard .rad{width:20px;height:20px;border-radius:50%;border:2px solid #c3cedd;flex-shrink:0;margin-top:1px;position:relative;transition:border-color .12s}.optcard.sel .rad{border-color:var(--navy)}.optcard.sel .rad:after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--navy)}.optcard .oc-t{font-weight:700;font-size:14px;color:var(--txt)}.optcard .oc-d{font-size:12.5px;color:var(--muted);margin-top:2px}.infocard{padding:18px}.info-chips{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 14px}.info-chip{border:1px solid var(--brand-100);background:var(--brand-50);color:var(--navy);border-radius:20px;padding:6px 13px;font-size:12.5px;font-weight:600;cursor:pointer;transition:background .12s,color .12s}.info-chip:hover{background:var(--navy);color:#fff;border-color:var(--navy)}.info-ta{width:100%;border:1px solid #e0e6ee;border-radius:12px;padding:14px 16px;font-size:13.5px;font-family:inherit;line-height:1.55;color:var(--txt);background:#fbfcfe;resize:vertical;min-height:120px}.info-ta:focus{outline:none;border-color:var(--navy2);background:#fff;box-shadow:0 0 0 3px rgba(13,109,168,.08)}#sv-lots th{padding:7px 6px;font-size:10.5px}#sv-lots td{padding:5px 6px;border-top:1px solid var(--line)}#sv-lots input{width:100%;padding:5px 6px;border:1px solid #cfd8e0;border-radius:6px;font-size:12.5px;font-family:inherit;background:#fff}.plan{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed}.plan th{background:#f7f9fb;font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);padding:9px 8px;text-align:center;border-bottom:1px solid var(--line);border-right:1px solid var(--line)}.plan th.tec{width:150px;text-align:left;padding-left:14px}.plan th .dnum{display:block;font-size:16px;color:var(--navy);font-weight:800;letter-spacing:0}.plan th.today{background:var(--brand-50)}.plan th.today .dnum{color:var(--green-d)}.plan td{vertical-align:top;padding:6px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);height:96px}.plan td.tec{background:#fbfcfe;padding:10px 12px}.plan tr:last-child td{border-bottom:none}.plan .tecname{font-weight:700;color:var(--navy);font-size:13px}.plan .tecmeta{font-size:11px;color:var(--muted);margin-top:2px}.plan .load{height:4px;border-radius:3px;background:var(--line-soft);margin-top:7px;overflow:hidden}.plan .load i{display:block;height:100%;background:var(--green)}.plan .load i.full{background:var(--c4)}.plan .load i.over{background:var(--red)}.ev{display:block;border-radius:7px;padding:5px 7px;margin-bottom:5px;font-size:11px;line-height:1.35;cursor:pointer;border-left:3px solid}.ev:hover{filter:brightness(.97)}.ev .h{font-weight:700;display:block}.ev .m{color:#5b6b80;display:block}.ev.itv{background:var(--green-50);border-color:var(--green-d);color:#41591a}.ev.itv .m{color:#5c7530}.ev.reu{background:var(--sentbg);border-color:var(--navy2);color:#1d4d75}.ev.reu .m{color:#3a6b93}.ev.abs{background:var(--graybg);border-color:#9fb0c4;color:#5b6b80}.ev.urg{background:var(--redbg);border-color:var(--red);color:#8f2419}.ev.urg .m{color:#a1503f}.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--ink2);margin-top:12px}.legend span{display:inline-flex;align-items:center;gap:6px}.legend i{width:11px;height:11px;border-radius:3px;display:inline-block;border-left:3px solid}.unassigned{background:#fffaf0;border:1px dashed var(--c4);border-radius:10px;padding:12px 14px;margin-top:16px}.unassigned .t{font-weight:700;color:var(--orange);font-size:13px;margin-bottom:8px}.utile{display:inline-block;background:#fff;border:1px solid #ecdcbc;border-radius:8px;padding:7px 10px;margin:0 8px 8px 0;font-size:12px;cursor:pointer}.utile:hover{border-color:var(--c4)}.utile b{color:var(--navy)}.toolbar .nav-w{display:flex;align-items:center;gap:6px}.toolbar .wk{font-weight:700;color:var(--navy);font-size:14px;min-width:230px}.rap{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start}.rap>*{flex:1 1 340px;min-width:0}.rapfull{flex:1 1 100%}.blk{padding:16px 18px}.blk h3{margin:0 0 12px;font-size:13.5px;color:var(--navy);display:flex;align-items:center;gap:7px}.blk table{margin-top:2px}.kv{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px dashed var(--line);font-size:13px}.kv:last-child{border-bottom:none}.kv b{color:var(--navy);font-weight:600}.sign{border:1px dashed #c8d3e0;border-radius:10px;padding:14px;text-align:center;color:var(--muted);font-size:12px}.sign .nm{font-family:Segoe Script,Brush Script MT,cursive;font-size:22px;color:var(--navy);margin-bottom:4px}.gauge{height:8px;border-radius:5px;background:var(--line-soft);overflow:hidden;margin-top:6px}.gauge i{display:block;height:100%;background:var(--green)}.gauge i.warn{background:var(--c4)}.gauge i.bad{background:var(--red)}.photos{display:flex;gap:10px;flex-wrap:wrap}.photo{width:104px;height:78px;border-radius:8px;background:linear-gradient(135deg,#dde6f0,#c9d6e6);align-items:center;justify-content:center;font-size:22px;color:#8ba0b8}.cnt,.photo{display:flex}.cnt{gap:10px;flex-wrap:wrap;margin-bottom:18px}.cbox{background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);min-width:118px;overflow:hidden;cursor:pointer;transition:border-color .12s,transform .12s}.cbox:hover{border-color:var(--navy);transform:translateY(-1px)}.cbox .ct{padding:9px 10px 7px;font-size:9.5px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--muted);text-align:center;line-height:1.3;min-height:38px;display:flex;align-items:center;justify-content:center}.cbox.active{border-color:var(--navy);box-shadow:0 0 0 2px rgba(0,89,143,.13),var(--shadow)}.cbox.active .ct{color:var(--navy)}.cbox .cb{border-top:1px solid var(--line);background:#fafbfd;justify-content:center;gap:6px;padding:7px 8px}.cbox .cb,.cbox .cb .ic{display:flex;align-items:center}.cbox .cb .ic{color:var(--navy);opacity:.5;transition:opacity .12s}.cbox .cb .ic svg{width:16px;height:16px;display:block}.cbox.active .ic,.cbox:hover .ic{opacity:.85}.cbox .cb .cadd{display:flex;align-items:center;justify-content:center;width:23px;height:23px;padding:0;margin-left:1px;border:1px solid #cfd8e0;border-radius:6px;background:#fff;color:var(--navy);cursor:pointer;transition:background .12s,border-color .12s,color .12s}.cbox .cb .cadd svg{width:13px;height:13px;display:block;stroke-width:2.2}.cbox .cb .cadd:hover{background:var(--navy);border-color:var(--navy);color:#fff}.cnum{border-radius:5px;padding:2px 9px;font-size:12.5px;font-weight:800;color:#fff;min-width:26px;text-align:center}.cnum.g{background:var(--green-d)}.cnum.o{background:var(--c4)}.cnum.b{background:var(--navy2)}.cnum.z{background:#c3ccd8}.act-chip{display:inline-block;border-radius:5px;padding:2px 9px;font-size:11.5px;font-weight:800;color:#fff;white-space:nowrap}.act-chip.a0{background:var(--green-d)}.act-chip.a1{background:#b8a02a}.act-chip.a2{background:var(--c4)}.act-chip.a3{background:var(--red)}.accbox{border-left:3px solid var(--navy2);background:#f7fafd;border-radius:0 8px 8px 0;padding:12px 14px;margin-bottom:14px}.accbox .accttl{font-size:11px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:var(--navy);margin-bottom:8px;display:flex;align-items:center}.accbox .accttl svg{width:15px;height:15px;stroke-width:1.7;margin-right:7px}.kpirow{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}.kpirow>*{flex:1 1 150px;min-width:0;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 14px;box-shadow:var(--shadow)}.kpirow .v{font-size:22px;font-weight:700;color:var(--navy)}.kpirow .v.r{color:var(--red)}.kpirow .v.o{color:var(--orange)}.kpirow .v.g{color:var(--ok)}.kpirow .l{font-size:11.5px;color:var(--muted);margin-top:2px}.kvgrid{display:flex;flex-wrap:wrap;gap:0 22px}.kvi{border-left:3px solid #dde5ef;padding:2px 0 2px 10px;margin-bottom:14px;flex:1 1 150px;min-width:0}.kvi .k{font-size:11.5px;font-weight:700;color:#4a5b70;margin-bottom:3px}.kvi .v{font-size:13px;color:var(--txt);word-break:break-word}.kvi .v.empty{color:#b3bcc9}.kvi.wide{flex:2 1 320px}.kvi.full{flex:1 1 100%}.secbar{background:var(--navy);color:#fff;border-radius:10px 10px 0 0;padding:9px 14px;font-size:13px;font-weight:700;display:flex;align-items:center;gap:9px}.secbar .hic{display:inline-flex;vertical-align:-2px;margin-right:2px}.secbar .hic svg{width:15px;height:15px;display:block;stroke-width:1.7}.secbody{border:1px solid var(--line);border-top:none;border-radius:0 0 10px 10px;background:#fafbfc;padding:16px;margin-bottom:16px}.editbar{display:flex;justify-content:flex-end;gap:8px;padding:14px 0 4px;border-top:1px solid var(--line);margin-top:6px}.tag-st{display:inline-block;border:1px solid var(--green-d);color:var(--green-d);border-radius:20px;padding:1px 11px;font-size:11.5px;font-weight:700;background:#fff}.emptypane{padding:22px;text-align:center;color:var(--muted);font-size:12.5px;background:#fff;border:1px dashed var(--line);border-radius:10px}.alertbox{background:#fff;border:1px solid #f0c9c2;border-left:4px solid var(--red);border-radius:12px;box-shadow:var(--shadow);margin-bottom:18px;overflow:hidden}.alertbox.warnonly{border-color:#f2ddbe;border-left-color:var(--orange)}.alertbox .ah{display:flex;align-items:center;gap:9px;padding:11px 15px 9px;font-size:12px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:var(--red)}.alertbox.warnonly .ah{color:var(--orange)}.alertbox .ah svg{width:17px;height:17px;flex:0 0 17px}.alertbox .al{display:flex;align-items:center;gap:11px;padding:10px 15px;border-top:1px solid #f2e6e3;cursor:pointer;transition:background .12s}.alertbox .al:hover{background:#fbf6f5}.alertbox .al .ad{flex:0 0 7px;width:7px;height:7px;border-radius:50%;background:var(--red);margin-top:1px}.alertbox .al.warn .ad{background:var(--orange)}.alertbox .al .at{flex:1 1;font-size:12.5px;color:var(--txt);line-height:1.45}.alertbox .al .at b{color:var(--navy)}.alertbox .al .aa{font-size:11.5px;font-weight:700;color:var(--navy2);white-space:nowrap}.alertbox .al:hover .aa{text-decoration:underline}.feed{position:relative;padding-left:26px}.feed:before{content:"";position:absolute;left:6px;top:22px;bottom:12px;width:2px;background:var(--line-soft)}.fsep{font-size:10.5px;font-weight:800;color:var(--navy);text-transform:uppercase;letter-spacing:.7px;margin:18px 0 12px -26px}.fsep:first-child{margin-top:0}.fev{position:relative;margin-bottom:15px}.fev .fdot{position:absolute;left:-26px;top:2px;width:14px;height:14px;border-radius:50%;background:#fff;border:2.5px solid var(--navy2);box-sizing:border-box}.fev.g .fdot{border-color:var(--green-d)}.fev.o .fdot{border-color:var(--c4)}.fev.r .fdot{border-color:var(--red)}.fev.z .fdot{border-color:#c3ccd8}.fev .fd{font-size:10.5px;font-weight:800;color:var(--muted);letter-spacing:.4px;text-transform:uppercase}.fev .ft{font-size:13.5px;margin-top:2px;color:var(--txt)}.fev .ft b{color:var(--navy)}.fev .fs{font-size:12px;color:var(--muted);margin-top:2px}.fev .flk{cursor:pointer;color:var(--navy2);font-weight:700}.fev .flk:hover{text-decoration:underline}.pcont{gap:11px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:8px 14px 8px 9px;box-shadow:var(--shadow)}.pcont,.pcont .av{display:flex;align-items:center}.pcont .av{width:36px;height:36px;border-radius:50%;background:var(--navy);color:#fff;justify-content:center;font-weight:800;font-size:12.5px;flex:0 0 36px}.pcont .pn{font-weight:700;font-size:13px;color:var(--navy)}.pcont .pr{font-size:11px;color:var(--muted)}.pcont .pc{font-size:11.5px;margin-top:3px;display:flex;gap:10px;flex-wrap:wrap}.advt,.pcont .pc a{color:var(--navy2)}.advt{display:inline-flex;align-items:center;gap:7px;cursor:pointer;font-size:12px;font-weight:700;padding:10px 0 2px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.advt svg{width:12px;height:12px;transition:transform .15s}.advt.open svg{transform:rotate(90deg)}.advt:hover{text-decoration:underline}.advbox{border-top:1px dashed var(--line);margin-top:8px;padding-top:13px}.advbox.hide{display:none}.mainchip{display:inline-block;border:1px solid var(--navy2);color:var(--navy2);border-radius:20px;padding:0 8px;font-size:10px;font-weight:800;letter-spacing:.3px;text-transform:uppercase;margin-left:7px;vertical-align:1px}.setmain{font-size:11.5px;color:var(--navy2);cursor:pointer;font-weight:600}.setmain:hover{text-decoration:underline}.pl-searchrow{display:flex;gap:10px;margin-bottom:14px}.pl-searchrow .search{flex:1 1;margin:0}.pl-wrap{display:flex;gap:16px;align-items:stretch}.pl-sites{width:320px;flex:0 0 320px;gap:10px}.pl-site,.pl-sites{display:flex;flex-direction:column}.pl-site{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px;cursor:pointer;gap:6px;transition:border-color .12s,box-shadow .12s}.pl-site:hover{border-color:var(--navy2)}.pl-site.on{border-color:var(--navy);box-shadow:0 0 0 3px rgba(0,89,143,.08);background:var(--brand-50)}.pl-site .n{font-weight:700;color:var(--navy);font-size:13.5px;gap:8px}.pl-site .n,.pl-site .n .pin{display:flex;align-items:center}.pl-site .n .pin{width:24px;height:24px;border-radius:7px;background:var(--navy);color:#fff;justify-content:center;flex:0 0 24px}.pl-site .n .pin svg{width:13px;height:13px;stroke:#fff;fill:none;stroke-width:2}.pl-site .a{font-size:12px;color:var(--muted);padding-left:32px}.pl-site .go{align-self:flex-start;margin-left:32px;font-size:11.5px;font-weight:700;color:var(--navy);background:var(--brand-50);border:1px solid var(--brand-100);border-radius:8px;padding:5px 11px;cursor:pointer}.pl-map{flex:1 1;min-height:560px;border-radius:var(--r);overflow:hidden;position:relative;border:1px solid var(--line)}.pl-map #planmap{position:absolute;inset:0}.pl-mapph{position:absolute;inset:0;background:linear-gradient(#e2e9f1 1px,transparent 0) 0 0/40px 40px,linear-gradient(90deg,#e2e9f1 1px,transparent 0) 0 0/40px 40px,#eef3f8;flex-direction:column;gap:14px}.pl-mapph,.pl-mapph .pin{display:flex;align-items:center;justify-content:center}.pl-mapph .pin{width:50px;height:50px;border-radius:50% 50% 50% 4px;background:var(--red);transform:rotate(45deg);box-shadow:0 8px 18px rgba(0,0,0,.15)}.pl-mapph .pin:after{content:"";width:16px;height:16px;background:#fff;border-radius:50%;transform:rotate(-45deg)}.pl-mapph .txt{font-size:12.5px;color:var(--muted);font-weight:600;background:#fff;padding:7px 14px;border-radius:20px;box-shadow:0 2px 8px rgba(0,0,0,.06)}.pl-mapctl{position:absolute;right:12px;top:12px;display:flex;flex-direction:column;gap:1px;border-radius:8px;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,.12);z-index:2}.pl-mapctl div{width:34px;height:34px;background:#fff;display:flex;align-items:center;justify-content:center;font-size:18px;color:var(--txt);font-weight:600}.fin-row{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:16px}.fin-row>.card{flex:1 1 380px;min-width:0;margin:0}.fin-card h3{margin:0 0 4px;font-size:14px;color:var(--navy);display:flex;align-items:center;gap:8px}.fin-card .sub{font-size:11.5px;color:var(--muted);margin-bottom:14px}.fin-card .hic{display:inline-flex}.fin-card .hic svg{width:16px;height:16px;stroke-width:1.7;opacity:.8}.chart-col{display:flex;align-items:flex-end;gap:9px;height:210px;padding:6px 2px 0}.chart-col .cw{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:6px;height:100%}.chart-col .cval{font-size:10px;font-weight:800;color:var(--navy);white-space:nowrap}.chart-col .bar{width:66%;min-width:14px;display:flex;flex-direction:column-reverse;border-radius:6px 6px 0 0;overflow:hidden;box-shadow:0 1px 0 rgba(0,0,0,.04)}.chart-col .seg{width:100%}.chart-col .clabel{font-size:11px;color:var(--muted);font-weight:600}.hbars{display:flex;flex-direction:column;gap:12px}.hbar{display:flex;align-items:center;gap:10px;font-size:12.5px}.hbar .hl{flex:0 0 132px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--txt)}.hbar .track{flex:1 1;background:var(--line-soft);border-radius:6px;height:12px;overflow:hidden;min-width:50px}.hbar .fill{height:100%;border-radius:6px;min-width:2px}.hbar .hv{flex:0 0 80px;text-align:right;font-weight:700;color:var(--navy);font-size:12px}.legend .li{display:flex;align-items:center;gap:6px}.legend .sw{width:11px;height:11px;border-radius:3px;flex:0 0 11px}.donutwrap{display:flex;align-items:center;gap:22px;flex-wrap:wrap}.finkpi .v .u{font-size:14px;font-weight:700;color:var(--muted);margin-left:3px}.finkpi .k .d{font-size:11px;margin-top:4px;font-weight:700}.finkpi .k .d.up{color:var(--ok)}.finkpi .k .d.down{color:var(--red)}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,#003a5e,#00598f 55%,#0d6da8);padding:24px}.login-card{background:#fff;border-radius:16px;box-shadow:0 24px 70px rgba(0,10,20,.35);width:100%;max-width:400px;padding:30px}.login-card .brand{border:none;padding:0 0 18px}.login-card .brand .n{color:var(--navy);font-size:21px;font-weight:800;letter-spacing:.5px}.login-card .brand .t{font-size:9px;letter-spacing:2px;color:var(--green-d);font-weight:700;margin-top:3px}.login-err{background:var(--redbg);color:var(--red);border-radius:8px;padding:9px 12px;font-size:12.5px;margin-bottom:14px;font-weight:600}.login-hint{font-size:11.5px;color:var(--muted);margin-top:16px;text-align:center;line-height:1.6}.tablecard{overflow:hidden}.tablecard table{width:100%}th a{color:inherit}.rowlink{cursor:pointer}.rowlink:hover td{background:var(--brand-50)}.empty{padding:38px 20px;text-align:center;color:var(--muted);font-size:13px}.empty .big{font-size:15px;font-weight:700;color:var(--txt);margin-bottom:6px}.right{text-align:right}.nowrap{white-space:nowrap}.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:16px;flex-wrap:wrap}.toolbar input[type=search],.toolbar input[type=text],.toolbar select{padding:9px 12px;border:1px solid #cfd8e0;border-radius:10px;font-size:13px;font-family:inherit;background:#fff;min-width:220px}.toolbar input:focus,.toolbar select:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px rgba(0,89,143,.08)}.toolbar .spacer{flex:1 1}.filterchips{display:flex;gap:8px;flex-wrap:wrap}.filterchips a{padding:6px 13px;border-radius:99px;font-size:12.5px;font-weight:600;background:#fff;border:1px solid var(--line);color:var(--ink2)}.filterchips a:hover{border-color:#cfd8e0}.filterchips a.on{background:var(--navy);border-color:var(--navy);color:#fff}.counters{display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));grid-gap:10px;gap:10px;margin-bottom:20px}.counters a{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px;box-shadow:var(--shadow);display:block}.counters a.on{border-color:var(--navy);box-shadow:0 0 0 2px rgba(0,89,143,.15),var(--shadow)}.counters a:hover{border-color:var(--navy2)}.counters .l{font-size:11px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.4px}.counters .n{margin-top:6px;font-size:18px;font-weight:700;display:flex;gap:8px;align-items:baseline}.counters .n .o{color:var(--orange)}.counters .n .g{color:var(--ok)}.counters .n .b{color:var(--navy)}.crumbs{font-size:12px;color:var(--muted);margin-bottom:12px;display:flex;gap:7px;align-items:center;flex-wrap:wrap}.crumbs a{color:var(--navy2);font-weight:600}.crumbs a:hover{text-decoration:underline}.pager{display:flex;gap:8px;align-items:center;justify-content:center;margin-top:18px;font-size:13px}.pager a,.pager span{padding:7px 13px;border-radius:10px;border:1px solid var(--line);background:#fff;font-weight:600}.pager a:hover{border-color:#cfd8e0}.pager span.cur{background:var(--navy);color:#fff;border-color:var(--navy)}.pager span.off{opacity:.45}.bars{display:flex;align-items:flex-end;gap:8px;height:170px;padding:10px 4px 0}.bars .b{flex:1 1;min-width:0;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:6px;height:100%}.bars .b .bar{width:100%;background:linear-gradient(180deg,var(--navy2),var(--navy));border-radius:6px 6px 0 0;min-height:3px}.bars .b .lb{font-size:10.5px;color:var(--muted);white-space:nowrap}.bars .b .vl{font-size:10.5px;font-weight:700;color:var(--navy)}.flash{border-radius:10px;padding:10px 14px;font-size:13px;font-weight:600;margin-bottom:16px}.flash.ok{background:var(--greenbg);color:var(--ok)}.flash.err{background:var(--redbg);color:var(--red)}.bnav,.fab,.mlist{display:none}.msheet{position:fixed;inset:0;background:rgba(16,30,45,.45);z-index:30;display:flex;align-items:flex-end}.msheet .panel{background:var(--card);border-radius:18px 18px 0 0;width:100%;max-height:78vh;overflow:auto;padding:16px 16px calc(20px + env(safe-area-inset-bottom))}.msheet .grab{width:44px;height:5px;border-radius:99px;background:var(--line);margin:0 auto 14px}.msheet .nav-sec{padding:12px 4px 6px}.msheet a{display:flex;align-items:center;gap:12px;padding:11px 8px;border-radius:10px;color:var(--ink2);font-weight:500;font-size:14px}.msheet a .ic{width:18px;height:18px;display:flex;flex:none}.msheet a .ic svg{width:18px;height:18px;stroke-width:1.8}.msheet a.active{background:var(--brand-50);color:var(--navy);font-weight:600}.msheet .out{margin-top:10px;border-top:1px solid var(--line-soft);padding-top:12px}.msheet .out button{display:flex;align-items:center;gap:12px;width:100%;border:none;background:none;padding:11px 8px;border-radius:10px;color:var(--red);font:600 14px Inter,sans-serif;cursor:pointer}.msheet .out button .ic{width:18px;height:18px;display:flex;flex:none}.msheet .out button .ic svg{width:18px;height:18px;stroke-width:1.8}@media (max-width:900px){.formwrap>*,.kvi,.kvi.wide,.rap>*{flex:1 1 100%}}@media (max-width:720px){.side,.top{display:none}body{padding-bottom:76px}.app{flex-direction:column}.mtop{display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--card);border-bottom:1px solid var(--line);position:-webkit-sticky;position:sticky;top:0;z-index:8}.mtop .mark{width:30px;height:30px;border-radius:9px;background:var(--navy);color:#fff;display:grid;place-items:center;font-weight:800;font-size:11px;flex:none}.mtop b{font-size:15.5px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mtop .grow{flex:1 1}.mtop .ic{width:34px;height:34px;border-radius:10px;border:1px solid var(--line);display:grid;place-items:center;color:var(--ink2);background:var(--card);flex:none}.mtop .ic svg{width:16px;height:16px;stroke-width:1.8}.content{padding:14px}.m-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:12px 14px 0}.kpi{grid-template-columns:1fr 1fr;gap:10px}.kpi .k .v{font-size:19px}.bars{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:4px}.bars::-webkit-scrollbar{display:none}.bars .b{flex:0 0 40px}.fcard,.tablecard{overflow-x:auto;-webkit-overflow-scrolling:touch}.tablecard table{min-width:660px}.tcards table{display:none}.tcards{overflow:visible}.mlist{display:grid;grid-template-columns:minmax(0,1fr);grid-gap:10px;gap:10px;padding:12px}.mlist>*{min-width:0}.mcard{background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:13px 14px;display:grid;grid-template-columns:minmax(0,1fr);grid-gap:8px;gap:8px}.mcard>*{min-width:0}.mcard .l1{display:flex;align-items:center;gap:10px}.mcard .l1 .grow{flex:1 1;min-width:0}.mcard .l1 b{font-size:13.5px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mcard .l1 small{color:var(--muted);font-size:11.5px}.mcard .l2{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px;color:var(--ink2)}.mcard .amt{margin-left:auto;font-weight:700;font-size:14px}.filterchips{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px}.filterchips a{white-space:nowrap}.readrow{flex-direction:column;gap:2px}.readrow .k{flex:none;min-width:0}.pl-wrap{flex-direction:column}.pl-sites{width:100%;flex:1 1 auto}.bnav{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;background:var(--card);border-top:1px solid var(--line);padding:6px 4px calc(8px + env(safe-area-inset-bottom));z-index:9}.bnav a,.bnav button{display:grid;justify-items:center;grid-gap:3px;gap:3px;font-size:10.5px;color:var(--muted);font-weight:600;padding:4px 0;border:none;background:none;font-family:inherit;cursor:pointer}.bnav a svg,.bnav button svg{width:21px;height:21px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.bnav a.active,.bnav button.active{color:var(--navy)}.bnav .plus{position:relative;top:-16px;width:52px;height:52px;margin:0 auto;border-radius:99px;background:var(--green-d);color:#fff;display:grid;place-items:center;box-shadow:0 6px 16px rgba(111,148,33,.4)}.bnav .plus svg{width:24px;height:24px;stroke:#fff}}@media (min-width:721px){.mlist{display:none}}