:root{--bg: #f6f7f9;--surface: #ffffff;--surface-2: #f9fafb;--surface-3: #f2f4f7;--border: #e7e9ee;--border-2: #dfe2e8;--ink: #181b20;--ink-2: #4a5561;--ink-3: #8892a0;--ink-4: #aab2bd;--acc: #0039a6;--acc-d: #002d85;--acc-weak: #e8eefb;--ok: #127a3e;--ok-w: #e6f5ec;--warn: #a65a00;--warn-w: #fbf0df;--err: #c62a2a;--err-w: #fbebeb;--bronze: #a96a34;--bronze-w: #f5ebe0;--silver: #5f6873;--silver-w: #eef0f2;--gold: #9a7913;--gold-w: #f7f0d8;--r-s: 6px;--r-m: 8px;--r-l: 12px;--r-xl: 16px;--sh-s: 0 1px 2px rgba(16, 24, 40, .05);--sh-m: 0 4px 12px rgba(16, 24, 40, .08);--sh-pop: 0 12px 32px rgba(16, 24, 40, .14);--content-max: 1120px;--rail-w: 320px;--sidebar-w: 250px;--topbar-h: 56px;--page-pad: 28px}*,*:before,*:after{box-sizing:border-box}html,body,#app{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px;letter-spacing:-.006em;-webkit-font-smoothing:antialiased}h1{font-size:22px;font-weight:750;margin:0}a{color:var(--acc);text-decoration:none}a:hover{color:var(--acc-d)}:root{--ring:rgba(0,57,166,.35);--acc-ink:#002d85;--r:8px;--sh:0 2px 6px rgba(16,24,40,.06),0 1px 2px rgba(16,24,40,.04);--fs:14px;--h:56px;--side:250px;--sh-s:0 1px 2px rgba(16,24,40,.06);--sh-m:0 6px 20px rgba(16,24,40,.09);--sh-pop:0 12px 34px rgba(16,24,40,.14)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:Inter,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--ink);font-size:var(--fs);line-height:1.5;-webkit-font-smoothing:antialiased;letter-spacing:-.006em}a{color:inherit;text-decoration:none}kbd{font-family:inherit;font-size:11px;background:var(--surface-3);border:1px solid var(--border-2);border-radius:5px;padding:1px 5px;color:var(--ink-3)}.ic{display:inline-flex}.ic svg{width:18px;height:18px;display:block}.ic-16 svg{width:16px;height:16px}.app{display:flex;min-height:100vh}.sidebar{width:var(--side);flex:0 0 var(--side);background:#17294a;border-right:1px solid #0f1e3a;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.frame{flex:1;min-width:0;display:flex;flex-direction:column}.ws{display:flex;align-items:center;gap:10px;padding:12px;margin:8px;border-radius:var(--r);cursor:pointer}.ws:hover{background:#ffffff0f}.ws-logo{width:32px;height:32px;border-radius:8px;background:linear-gradient(135deg,#0039a6,#2f62c4);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;flex:0 0 32px}.ws-logo-img{width:34px;height:auto;flex:0 0 34px}.ws-meta{flex:1;min-width:0}.ws-name{color:#fff;font-weight:650;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ws-sub{font-size:11.5px;color:#93a3c2}.ws-chev{color:var(--ink-3)}.ws-chev svg{width:16px;height:16px}nav{flex:1;overflow:auto;padding:6px 8px}.nav-sect{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:#7e91b6;font-weight:700;padding:14px 10px 6px}.nav-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--r);color:#c9d4ea;font-weight:520;font-size:13.5px;cursor:pointer;margin:1px 0;position:relative}.nav-item:hover{background:#ffffff12;color:#fff}.nav-item .ic{color:#93a3c2}.nav-item.active{background:#ffffff29;color:#fff;font-weight:640}.nav-item.active .ic{color:#fff}.nav-badge{margin-left:auto;background:#ffffff1f;color:#c9d4ea;border-radius:20px;font-size:11px;font-weight:700;padding:1px 7px}.nav-item.active .nav-badge{background:#fff;color:var(--acc-ink)}.side-foot{border-top:1px solid var(--border);padding:8px}.user{display:flex;align-items:center;gap:10px;padding:7px 8px;border-radius:var(--r);cursor:pointer}.user:hover{background:#ffffff0f}.ava{width:30px;height:30px;border-radius:50%;background:#e3ebf9;color:#002d85;font-weight:700;font-size:12px;display:flex;align-items:center;justify-content:center;flex:0 0 30px}.ava.sm{width:26px;height:26px;font-size:11px;flex:0 0 26px}.u-name{color:#fff;font-size:13px;font-weight:600;line-height:1.2}.u-sub{font-size:11px;color:#93a3c2}.user>button{margin-left:auto;color:var(--ink-3);background:none;border:0;cursor:pointer}.user>button svg{width:16px;height:16px}.topbar{height:var(--h);flex:0 0 var(--h);background:#ffffffd9;-webkit-backdrop-filter:saturate(1.2) blur(8px);backdrop-filter:saturate(1.2) blur(8px);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:14px;padding:0 20px;position:sticky;top:0;z-index:10}.crumbs{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--ink-3);min-width:0}.crumbs a:hover{color:var(--ink)}.crumbs .cur{color:var(--ink);font-weight:600}.crumbs .sep{color:var(--ink-4)}.topsearch{margin-left:8px;flex:0 1 300px;display:flex;align-items:center;gap:8px;height:34px;padding:0 10px;background:var(--surface-3);border:1px solid transparent;border-radius:var(--r);color:var(--ink-3);cursor:text}.topsearch:hover{background:var(--surface-2);border-color:var(--border)}.topsearch .ic{color:var(--ink-3)}.topsearch span{font-size:13px;flex:1}.top-actions{margin-left:auto;display:flex;align-items:center;gap:6px}.icon-btn{width:34px;height:34px;border-radius:var(--r);border:0;background:none;color:var(--ink-2);display:flex;align-items:center;justify-content:center;cursor:pointer;position:relative}.icon-btn:hover{background:var(--surface-3);color:var(--ink)}.icon-btn .dot{position:absolute;top:8px;right:8px;width:7px;height:7px;background:var(--err);border-radius:50%;border:2px solid var(--surface)}.topuser{display:flex;align-items:center;gap:8px;padding:4px 8px 4px 4px;border-radius:20px}.topuser span{font-size:13px;font-weight:600}.topuser .ic{color:var(--ink-3)}.content{flex:1}.page{max-width:1120px;margin:0 auto;padding:26px 28px 80px}.page.narrow{max-width:960px}.page-head{display:flex;align-items:flex-start;gap:16px;margin-bottom:22px}.eyebrow{font-size:12px;color:var(--acc);font-weight:650;margin-bottom:4px;display:flex;align-items:center;gap:6px}h1{font-size:22px;font-weight:700;margin:0;letter-spacing:-.02em}.page-sub{color:var(--ink-2);margin:5px 0 0;font-size:13.5px;max-width:60ch}.page-actions{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap;align-items:center}.btn{display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 14px;border-radius:var(--r);font-weight:600;font-size:13.5px;cursor:pointer;border:1px solid transparent;background:var(--acc);color:#fff;white-space:nowrap;transition:.12s}.btn:hover{background:var(--acc-d)}.btn .ic{color:currentColor}.btn .ic svg{width:16px;height:16px}.btn.sec{background:var(--surface);color:var(--ink);border-color:var(--border-2);box-shadow:var(--sh-s)}.btn.sec:hover{background:var(--surface-2);border-color:var(--border-2)}.btn.ghost{background:transparent;color:var(--ink-2)}.btn.ghost:hover{background:var(--surface-3);color:var(--ink)}.sidebar .btn.ghost{color:#c9d4ea;border-color:#ffffff47}.sidebar .btn.ghost:hover{background:#ffffff14;color:#fff}.btn.danger{background:var(--surface);color:var(--err);border-color:#f0cccc}.btn.danger:hover{background:var(--err-w)}.btn.sm{height:30px;padding:0 10px;font-size:12.5px}.btn.icon{width:36px;padding:0;justify-content:center}.btn[disabled]{opacity:.5;cursor:not-allowed}.hint-wrap{display:inline-flex;cursor:not-allowed}.hint-wrap>.btn[disabled]{pointer-events:none}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-l);box-shadow:var(--sh-s)}.card-h{display:flex;align-items:center;gap:10px;padding:16px 18px;border-bottom:1px solid var(--border)}.card-h h3{margin:0;font-size:14.5px;font-weight:650}.card-h .sub{font-size:12px;color:var(--ink-3)}.card-b{padding:18px}.card-h .right{margin-left:auto;display:flex;gap:8px;align-items:center}.grid2{display:grid;grid-template-columns:1fr 320px;gap:18px;align-items:start}.grid-forms{display:grid;grid-template-columns:1fr 1fr;gap:14px 18px}.dl{display:grid;grid-template-columns:180px 1fr;gap:0}.dl dt{color:var(--ink-3);font-size:13px;padding:10px 0;border-bottom:1px solid var(--surface-3)}.dl dd{margin:0;padding:10px 0;border-bottom:1px solid var(--surface-3);font-weight:520}.dl>div{display:contents}.rail .dl{grid-template-columns:auto 1fr;column-gap:12px}.rail .dl dd{overflow-wrap:anywhere;text-align:right}.rail .dl dt:first-of-type,.rail .dl dd:first-of-type{padding-top:0}.field{margin-bottom:2px}.lbl{display:block;font-size:12.5px;font-weight:600;color:var(--ink-2);margin:0 0 6px}.lbl .req{color:var(--err)}.inp,select.inp,textarea.inp{width:100%;height:38px;padding:0 12px;border:1px solid var(--border-2);border-radius:var(--r);background:var(--surface);font-size:13.5px;font-family:inherit;color:var(--ink);outline:none;transition:.12s}textarea.inp{height:auto;padding:9px 12px;resize:vertical}.inp:focus{border-color:var(--acc);box-shadow:0 0 0 3px var(--ring)}.inp::placeholder{color:var(--ink-4)}.hint{font-size:11.5px;color:var(--ink-3);margin-top:5px}.inp-group{display:flex;align-items:center;gap:8px}.pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:640;padding:3px 9px;border-radius:20px;white-space:nowrap;line-height:1.4}.pill .d{width:6px;height:6px;border-radius:50%;background:currentColor}.p-gray{background:var(--surface-3);color:var(--ink-2)}.p-blue{background:var(--acc-weak);color:var(--acc-ink)}.p-ok{background:var(--ok-w);color:var(--ok)}.p-warn{background:var(--warn-w);color:var(--warn)}.p-err{background:var(--err-w);color:var(--err)}.p-bronze{background:var(--bronze-w);color:var(--bronze)}.p-silver{background:var(--silver-w);color:var(--silver)}.p-gold{background:var(--gold-w);color:var(--gold)}.tbl-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-l);overflow:hidden;box-shadow:var(--sh-s)}.tbl-toolbar{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--border);flex-wrap:wrap}.tbl-search{display:flex;align-items:center;gap:8px;height:34px;padding:0 10px;background:var(--surface-2);border:1px solid var(--border-2);border-radius:var(--r);color:var(--ink-3);flex:0 1 260px}.tbl-search input{border:0;background:none;outline:none;font-size:13px;flex:1;color:var(--ink)}.seg{display:inline-flex;background:var(--surface-3);border-radius:var(--r);padding:3px}.seg button{border:0;background:none;padding:5px 11px;border-radius:6px;font-size:12.5px;font-weight:600;color:var(--ink-3);cursor:pointer}.seg button.on{background:var(--surface);color:var(--ink);box-shadow:var(--sh-s)}.spacer{flex:1}table.tbl{width:100%;border-collapse:collapse}.tbl th{font-size:11.5px;text-transform:uppercase;letter-spacing:.03em;color:var(--ink-3);font-weight:650;text-align:left;padding:10px 14px;border-bottom:1px solid var(--border);background:var(--surface-2);white-space:nowrap}.tbl td{padding:13px 14px;border-bottom:1px solid var(--surface-3);font-size:13.5px;vertical-align:middle}.tbl tbody tr{cursor:pointer}.tbl tbody tr:hover{background:var(--surface-2)}.tbl tbody tr:last-child td{border-bottom:0}.tbl .t-main{font-weight:620}.tbl .t-id{font-size:12px;color:var(--ink-3);font-variant-numeric:tabular-nums}.tbl .num{font-variant-numeric:tabular-nums}.tbl .col-check{width:38px}.tbl .col-act{width:44px;text-align:right}.chk{width:16px;height:16px;border:1.6px solid var(--border-2);border-radius:5px;display:inline-block;vertical-align:middle;cursor:pointer}.rowbtn{color:var(--ink-3);background:none;border:0;cursor:pointer;padding:4px;border-radius:6px}.rowbtn:hover{background:var(--surface-3);color:var(--ink)}.tbl-foot{display:flex;align-items:center;gap:10px;padding:11px 14px;border-top:1px solid var(--border);color:var(--ink-3);font-size:12.5px}.pager{margin-left:auto;display:flex;gap:4px}.pager button{min-width:30px;height:30px;border:1px solid var(--border-2);background:var(--surface);border-radius:6px;font-size:12.5px;cursor:pointer;color:var(--ink-2)}.pager button.on{background:var(--acc-weak);border-color:transparent;color:var(--acc-ink);font-weight:700}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--border);margin-bottom:20px}.tabs a{padding:10px 14px;font-size:13.5px;font-weight:600;color:var(--ink-3);border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer}.tabs a:hover{color:var(--ink)}.tabs a.on{color:var(--acc-ink);border-color:var(--acc)}.tabs .count{font-size:11px;background:var(--surface-3);color:var(--ink-3);border-radius:20px;padding:0 6px;margin-left:6px}.banner{display:flex;gap:12px;padding:13px 16px;border-radius:var(--r-l);font-size:13px;align-items:flex-start;margin-bottom:16px}.banner .bic{flex:0 0 auto;margin-top:1px}.banner .bic svg{width:18px;height:18px}.banner.ok{background:var(--ok-w);color:#0d5f31}.banner.warn{background:var(--warn-w);color:#7a4300}.banner.info{background:var(--acc-weak);color:#3a34a8}.banner b{font-weight:700}.frow{display:flex;align-items:center;gap:12px;padding:11px 12px;border:1px solid var(--border);border-radius:var(--r);margin-bottom:8px}.frow .fico{width:34px;height:34px;border-radius:8px;background:var(--surface-3);color:var(--ink-2);display:flex;align-items:center;justify-content:center}.frow .fname{font-weight:600;font-size:13px}.frow .fmeta{font-size:11.5px;color:var(--ink-3)}.frow .fact{margin-left:auto;display:flex;gap:4px}.dropzone{border:1.6px dashed var(--border-2);border-radius:var(--r-l);padding:22px;text-align:center;color:var(--ink-3);font-size:13px;cursor:pointer;background:var(--surface-2)}.dropzone:hover{border-color:var(--acc);color:var(--acc)}.dropzone .ic{color:var(--ink-4);display:block;margin:0 auto 6px}.dropzone:hover .ic{color:var(--acc)}.clist{border:1px solid var(--border);border-radius:var(--r-l);overflow:hidden}.crow{display:flex;align-items:center;gap:14px;padding:14px 16px;border-bottom:1px solid var(--surface-3)}.crow:last-child{border-bottom:0}.crow .ct{flex:1;min-width:0}.crow .ct .tt{font-weight:600;font-size:13.5px}.crow .ct .dd{font-size:12px;color:var(--ink-3);margin-top:2px;white-space:pre-line}.crow .no{color:var(--ink-4);font-size:11.5px;font-weight:700;font-variant-numeric:tabular-nums;flex:0 0 34px}.segbin{display:inline-flex;border:1px solid var(--border-2);border-radius:8px;overflow:hidden;flex:0 0 auto}.segbin button{border:0;background:var(--surface);padding:7px 15px;font-size:12.5px;font-weight:700;color:var(--ink-3);cursor:pointer}.segbin button+button{border-left:1px solid var(--border-2)}.segbin button.da.on{background:var(--ok);color:#fff}.segbin button.net.on{background:var(--err);color:#fff}.gcap{display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--surface-2);border-bottom:1px solid var(--border);cursor:pointer;font-weight:700;font-size:12.5px}.gcap .gc{margin-left:auto;font-size:11.5px;color:var(--ink-3);font-weight:600}.gcap .gchev{color:var(--ink-3);transition:.15s}.gcap.closed .gchev{transform:rotate(-90deg)}.stepper{display:flex;align-items:center;gap:0;margin-bottom:22px}.step{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:600;color:var(--ink-3)}.step .n{width:26px;height:26px;border-radius:50%;border:1.6px solid var(--border-2);display:flex;align-items:center;justify-content:center;font-size:12.5px;background:var(--surface)}.step.on{color:var(--ink)}.step.on .n{border-color:var(--acc);background:var(--acc);color:#fff}.step.done{color:var(--ink)}.step.done .n{border-color:var(--ok);background:var(--ok);color:#fff}.stepper .sl{width:60px;height:1.6px;background:var(--border-2);margin:0 14px}.stepper .step.done+.sl{background:var(--ok)}.rail{position:sticky;top:76px;display:flex;flex-direction:column;gap:14px}.stat-lg{font-size:30px;font-weight:750;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.progress{height:8px;background:var(--surface-3);border-radius:20px;overflow:hidden;margin-top:10px}.progress i{display:block;height:100%;background:var(--acc);border-radius:20px}.mini{display:flex;justify-content:space-between;font-size:12.5px;padding:7px 0;border-bottom:1px solid var(--surface-3)}.mini:last-child{border-bottom:0}.mini .k{color:var(--ink-3)}.mini .v{font-weight:600}.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:20px}.kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-l);padding:16px 18px;box-shadow:var(--sh-s)}.kpi .k{font-size:12.5px;color:var(--ink-3);font-weight:600}.kpi .v{font-size:24px;font-weight:730;margin-top:6px;letter-spacing:-.02em}.kpi .delta{font-size:12px;font-weight:600;margin-top:4px}.tl{position:relative;margin-left:6px;padding-left:22px}.tl:before{content:"";position:absolute;left:5px;top:4px;bottom:4px;width:1.6px;background:var(--border)}.tl .ev{position:relative;padding-bottom:20px}.tl .ev:last-child{padding-bottom:0}.tl .ev:before{content:"";position:absolute;left:-22px;top:3px;width:11px;height:11px;border-radius:50%;background:var(--surface);border:2.4px solid var(--acc)}.tl .ev.dim:before{border-color:var(--border-2)}.tl .ev .st{font-weight:640;font-size:13.5px}.tl .ev .dt{font-size:11.5px;color:var(--ink-3);margin-top:1px}.tl .ev .cm{font-size:12.5px;color:var(--ink-2);margin-top:6px;background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:8px 10px}.result{display:flex;gap:16px;align-items:center;padding:20px;border-radius:var(--r-xl);border:1px solid var(--gold-w);background:linear-gradient(180deg,#fdfaf0,#fff);margin-bottom:16px}.medal{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:26px;flex:0 0 56px;background:radial-gradient(circle at 35% 30%,#f7e39a,#c8a12a);box-shadow:inset 0 0 0 3px #fff6}.sr-note{font-size:12px;color:var(--ink-4);margin-top:26px;text-align:center}@media(max-width:1080px){.grid2{grid-template-columns:1fr}.rail{position:static}.kpis{grid-template-columns:1fr}}@media(max-width:860px){.sidebar{display:none}.grid-forms{grid-template-columns:1fr}}.vfla-content .tbl-toolbar{gap:16px;padding:18px 20px}.vfla-content .search-field{position:relative;display:block;flex:1 1 220px;min-width:180px;max-width:332px}.vfla-content .search-field .tbl-search{width:100%;flex:none;padding-left:42px}.vfla-content .search-field .field-icon{position:absolute;top:50%;left:14px;width:18px;height:18px;transform:translateY(-50%);pointer-events:none}.vfla-content .tbl-toolbar .inp{height:44px;border-radius:var(--r-m);background:var(--surface)}.vfla-content .seg{display:flex;flex:1;padding:2px;border-radius:var(--r-m);background:var(--surface-3)}.vfla-content .seg button{flex:1;min-height:38px;padding:0 15px;border:1px solid transparent;border-radius:var(--r-s);color:var(--ink-3);font-size:13px;font-weight:500;white-space:nowrap}.vfla-content .seg button.on{border-color:var(--border-2);color:var(--acc);background:var(--surface);box-shadow:var(--sh-m)}.vfla-content .tbl-toolbar .spacer{display:none}
