:root{--ink:#14213d;--ink-2:#4b5563;--ink-3:#6b7280;--ink-4:#9ca3af;--canvas:#f5f7fa;--surface:#fff;--surface-2:#f9fafb;--surface-3:#f3f4f6;--border:#e5e7eb;--border-strong:#d1d5db;--primary:#047857;--primary-hover:#065f46;--primary-soft:#ecfdf5;--info:#1d4ed8;--info-soft:#eff6ff;--warn:#b45309;--warn-soft:#fffbeb;--danger:#dc2626;--danger-soft:#fef2f2;--lime:#94d700;--nav-bg:#14213d;--nav-text:#c7d0e0;--nav-muted:#8592ad;--radius-card:16px;--radius-ctl:8px;--shadow-pop:0 4px 12px #14213d14;--sidebar-w:248px;--header-h:64px;--font:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font);color:var(--ink);background:var(--canvas);-webkit-font-smoothing:antialiased;margin:0;font-size:14px;line-height:20px}a{color:var(--info);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit}.num{font-variant-numeric:tabular-nums}.shell{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-w);flex:0 0 var(--sidebar-w);background:var(--nav-bg);color:var(--nav-text);flex-direction:column;height:100vh;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar .brand{border-bottom:1px solid #ffffff14;align-items:center;gap:10px;padding:20px 20px 18px;display:flex}.brand-word{color:#fff;letter-spacing:-.01em;font-size:18px;font-weight:700}.brand-word .ai{color:var(--lime)}.brand-chip{background:var(--primary);color:#fff;border-radius:6px;padding:2px 7px;font-size:11px;font-weight:700}.brand-sub{color:var(--nav-muted);letter-spacing:.05em;text-transform:uppercase;padding:10px 20px 0;font-size:11px}.nav-group{padding:14px 10px 4px}.nav-group-title{letter-spacing:.06em;text-transform:uppercase;color:var(--nav-muted);padding:0 12px 6px;font-size:11px;font-weight:600}.nav-item{color:var(--nav-text);cursor:pointer;border-radius:8px;align-items:center;gap:10px;padding:8px 12px;font-size:14px;display:flex;text-decoration:none!important}.nav-item:hover{color:#fff;background:#ffffff0f}.nav-item.active{background:var(--primary);color:#fff;font-weight:600}.nav-item svg{opacity:.9;flex:0 0 18px}.nav-item .badge-new{background:var(--lime);color:var(--ink);border-radius:999px;margin-left:auto;padding:1px 6px;font-size:10px;font-weight:700}.sidebar-foot{color:var(--nav-muted);letter-spacing:.05em;border-top:1px solid #ffffff14;margin-top:auto;padding:16px 20px;font-size:11px}.sidebar-foot b{color:#fff;letter-spacing:0;margin-top:2px;font-size:13px;display:block}.main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{height:var(--header-h);background:var(--surface);border-bottom:1px solid var(--border);z-index:20;align-items:center;gap:16px;padding:0 32px;display:flex;position:sticky;top:0}.topbar .crumbs{color:var(--ink-3);align-items:center;gap:8px;font-size:14px;display:flex}.topbar .crumbs b{color:var(--ink);font-weight:500}.topbar .spacer{flex:1}.searchbox{width:360px;max-width:40vw;position:relative}.searchbox input{border:1px solid var(--border-strong);width:100%;height:38px;font:inherit;color:var(--ink);background:#fff;border-radius:8px;padding:0 12px 0 36px}.searchbox input:focus{border-color:var(--info);box-shadow:0 0 0 1px var(--info);outline:none}.searchbox svg{color:var(--ink-4);position:absolute;top:10px;left:11px}.search-results{border:1px solid var(--border-strong);box-shadow:var(--shadow-pop);z-index:30;background:#fff;border-radius:8px;max-height:380px;position:absolute;top:42px;left:0;right:0;overflow:auto}.search-results div{cursor:pointer;border-bottom:1px solid var(--surface-3);padding:9px 12px}.search-results div:hover,.search-results div.hl{background:var(--surface-2)}.search-results small{color:var(--ink-3);font-size:12px;display:block}.user-chip{align-items:center;gap:10px;display:flex}.avatar{background:var(--primary);color:#fff;border-radius:999px;place-items:center;width:36px;height:36px;font-weight:600;display:grid}.user-chip .who{line-height:1.2}.user-chip .who small{color:var(--ink-3);letter-spacing:.04em;text-transform:uppercase;font-size:11px;display:block}.content{width:100%;max-width:1600px;padding:24px 32px 48px}.page-head{align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.page-head h1{letter-spacing:-.015em;margin:0;font-size:26px;font-weight:700;line-height:34px}.page-head p{color:var(--ink-2);margin:4px 0 0;font-size:15px;line-height:22px}.page-head .actions{gap:8px;margin-left:auto;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);min-width:0;padding:20px 24px}.card+.card{margin-top:0}.card-head{align-items:center;gap:12px;margin-bottom:14px;display:flex}.card-title{letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3);margin:0;font-size:12px;font-weight:600}.card-title.lg{letter-spacing:-.01em;text-transform:none;color:var(--ink);font-size:16px}.card-head .meta{color:var(--ink-3);margin-left:auto;font-size:12px}.grid{gap:24px;display:grid}.grid.k5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid.k4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.k3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.k2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.k21{grid-template-columns:2fr 1fr}.grid.k12{grid-template-columns:1fr 2fr}.stack{flex-direction:column;gap:24px;display:flex}@media (width<=1279px){.grid.k5,.grid.k4{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.k3,.grid.k21,.grid.k12{grid-template-columns:1fr}.sidebar{--sidebar-w:72px}.sidebar .brand-word,.sidebar .brand-chip,.sidebar .brand-sub,.nav-group-title,.nav-item span,.sidebar-foot{display:none}.nav-item{justify-content:center}.searchbox{width:240px}}@media (width<=767px){.grid.k2,.grid.k5,.grid.k4{grid-template-columns:1fr}.shell{flex-direction:column}.sidebar{--sidebar-w:100%;z-index:25;flex-direction:row;flex:none;align-items:center;width:100%;height:auto;padding:6px 8px;position:sticky;top:0;overflow:auto hidden}.sidebar .brand{border:0;flex:none;padding:6px 10px 6px 4px}.sidebar .brand-word,.sidebar .brand-chip{display:inline-block}.sidebar .brand-sub,.nav-group-title,.sidebar-foot{display:none}.nav-group{flex:none;gap:2px;padding:0;display:flex}.nav-item{white-space:nowrap;padding:8px 10px}.nav-item span{display:inline}.topbar{position:static}.topbar .crumbs,.user-chip .who{display:none}.searchbox{flex:1;width:auto;max-width:none}.content{padding:16px}.topbar{padding:0 16px}}.kpi{position:relative}.kpi .label{letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3);align-items:center;gap:8px;font-size:12px;font-weight:600;display:flex}.kpi .label svg{color:var(--ink-4);margin-left:auto}.kpi .value{letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-top:10px;font-size:28px;font-weight:700;line-height:34px}.kpi .value.good{color:var(--primary)}.kpi .value.warn{color:var(--warn)}.kpi .value.bad{color:var(--danger)}.kpi .sub{color:var(--ink-2);margin-top:6px;font-size:13px}.kpi .delta{margin-left:8px;font-size:12px;font-weight:600}.kpi .delta.up{color:var(--primary)}.kpi .delta.down{color:var(--danger)}.kpi.compact{padding:16px 18px}.kpi.compact .value{margin-top:6px;font-size:22px;line-height:28px}.chip{letter-spacing:.03em;white-space:nowrap;border-radius:999px;align-items:center;gap:6px;height:24px;padding:0 10px;font-size:12px;font-weight:600;display:inline-flex}.chip.good{background:var(--primary-soft);color:var(--primary)}.chip.info{background:var(--info-soft);color:var(--info)}.chip.warn{background:var(--warn-soft);color:var(--warn)}.chip.bad{background:var(--danger-soft);color:var(--danger)}.chip.muted{background:var(--surface-3);color:var(--ink-3)}.chip .dot{background:currentColor;border-radius:999px;width:6px;height:6px}.btn{cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:8px;align-items:center;gap:8px;height:40px;padding:0 18px;font-size:14px;font-weight:600;display:inline-flex}.btn.sm{height:32px;padding:0 12px;font-size:13px}.btn.primary{background:var(--primary);color:#fff}.btn.primary:hover{background:var(--primary-hover)}.btn.secondary{color:var(--ink);border-color:var(--border-strong);background:#fff}.btn.secondary:hover{background:var(--surface-2)}.btn.ghost{color:var(--ink);background:0 0}.btn.ghost:hover{background:var(--surface-3)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:focus-visible,.nav-item:focus-visible,.tab:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.tabs{background:#eef2fa;border-radius:12px;flex-wrap:wrap;gap:4px;max-width:100%;margin-bottom:20px;padding:6px;display:inline-flex}.tab{color:var(--ink-2);cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:8px;padding:8px 16px;font-size:14px;display:inline-flex}.tab:hover{color:var(--ink)}.tab.active{color:var(--primary);background:#fff;font-weight:600;box-shadow:0 1px 2px #14213d0f}.tab.active:before{content:"";background:var(--primary);border-radius:999px;width:6px;height:6px}.field{flex-direction:column;gap:6px;min-width:180px;display:flex}.field>label{color:var(--ink-3);letter-spacing:.04em;text-transform:uppercase;font-size:12px;font-weight:600}.input,.select{border:1px solid var(--border-strong);height:38px;font:inherit;color:var(--ink);background:#fff;border-radius:8px;width:100%;padding:0 12px}.select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236B7280' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:32px}.input:focus,.select:focus{border-color:var(--info);box-shadow:0 0 0 1px var(--info);outline:none}.toolbar{flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:16px;display:flex}.table-wrap{border:1px solid var(--border);border-radius:12px;max-height:560px;overflow:auto}table.dt{border-collapse:separate;border-spacing:0;width:100%;font-size:13px;line-height:18px}table.dt th{background:var(--surface-2);color:var(--ink-3);letter-spacing:.04em;text-transform:uppercase;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;z-index:1;padding:11px 14px;font-size:12px;font-weight:600;position:sticky;top:0}table.dt th.r,table.dt td.r{text-align:right}table.dt td{border-bottom:1px solid var(--surface-3);color:var(--ink);vertical-align:top;padding:12px 14px}table.dt td.r{font-variant-numeric:tabular-nums;white-space:nowrap}table.dt tbody tr:hover{background:var(--surface-2)}table.dt tbody tr.sel{background:var(--info-soft)}table.dt tbody tr.clickable{cursor:pointer}.table-foot{color:var(--ink-3);align-items:center;gap:12px;padding:10px 2px 0;font-size:12px;display:flex}.table-foot .spacer{flex:1}.cell-clip{text-overflow:ellipsis;-webkit-line-clamp:3;-webkit-box-orient:vertical;max-width:420px;display:-webkit-box;overflow:hidden}.alert{border:1px solid #0000;border-radius:12px;align-items:flex-start;gap:10px;padding:12px 16px;font-size:14px;display:flex}.alert.info{background:var(--info-soft);color:#1e3a8a;border-color:#dbe6fe}.alert.success{background:var(--primary-soft);color:#065f46;border-color:#cdefe0}.alert.warning{background:var(--warn-soft);color:#92400e;border-color:#fdecc8}.alert.error{background:var(--danger-soft);color:#991b1b;border-color:#fbd5d5}.alert svg{flex:0 0 18px;margin-top:1px}.alert p{margin:0}.insight{background:var(--primary-soft);border-radius:12px;padding:12px 16px}.insight h4{letter-spacing:.04em;text-transform:uppercase;color:var(--primary);margin:0 0 4px;font-size:13px}.lg-blocks{flex-direction:column;gap:16px;display:flex}.lg-cols{align-items:start;gap:16px;display:grid}.lg-md{color:var(--ink);overflow-wrap:anywhere;font-size:14px;line-height:22px}.lg-md h1,.lg-md h2,.lg-md h3,.lg-md h4{letter-spacing:-.01em;margin:8px 0 6px;line-height:1.3}.lg-md h1{font-size:22px}.lg-md h2{font-size:18px}.lg-md h3{font-size:16px}.lg-md h4{font-size:14px}.lg-md p{margin:0 0 8px}.lg-md p:last-child{margin-bottom:0}.lg-md ul,.lg-md ol{margin:4px 0 8px;padding-left:20px}.lg-md table{border-collapse:collapse;margin:6px 0;font-size:13px}.lg-md th,.lg-md td{border:1px solid var(--border);text-align:left;padding:6px 10px}.lg-md th{background:var(--surface-2)}.lg-md hr{border:0;border-top:1px solid var(--border);margin:12px 0}.lg-md code{background:var(--surface-3);border-radius:4px;padding:1px 5px;font-size:12.5px}.lg-caption{color:var(--ink-3);font-size:13px;line-height:19px}.lg-heading{letter-spacing:-.01em;margin:8px 0 0}h2.lg-heading{font-size:20px}h3.lg-heading{font-size:16px}.lg-expander{border:1px solid var(--border);background:#fff;border-radius:12px}.lg-expander>summary{cursor:pointer;align-items:center;gap:8px;padding:12px 16px;font-size:14px;font-weight:600;list-style:none;display:flex}.lg-expander>summary::-webkit-details-marker{display:none}.lg-expander>summary:before{content:"›";color:var(--ink-3);font-size:18px;transition:transform .15s}.lg-expander[open]>summary:before{transform:rotate(90deg)}.lg-expander>.body{padding:4px 16px 16px}.lg-code{color:#e2e8f0;background:#0f172a;border-radius:10px;padding:12px 14px;font-size:12.5px;overflow:auto}.lg-chart{width:100%;min-height:120px;overflow-x:auto}.lg-error{background:var(--danger-soft);color:#991b1b;border:1px solid #fbd5d5;border-radius:12px;padding:14px 16px}.loading{color:var(--ink-3);align-items:center;gap:10px;padding:24px 0;display:flex}.spinner{border:2px solid var(--border);border-top-color:var(--primary);border-radius:999px;width:18px;height:18px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{background:linear-gradient(90deg,#eef1f5 25%,#f6f8fa 37%,#eef1f5 63%) 0 0/400% 100%;border-radius:8px;animation:1.4s infinite sk}@keyframes sk{0%{background-position:100%}to{background-position:0}}.empty{text-align:center;color:var(--ink-3);padding:32px 12px}.login{grid-template-columns:1.1fr 1fr;min-height:100vh;display:grid}.login-art{background:var(--nav-bg);color:#fff;flex-direction:column;justify-content:space-between;padding:56px;display:flex}.login-art h2{letter-spacing:-.02em;margin:0 0 12px;font-size:34px;line-height:1.2}.login-art p{color:var(--nav-text);max-width:460px;font-size:15px;line-height:1.6}.login-stats{grid-template-columns:repeat(3,1fr);gap:16px;max-width:520px;display:grid}.login-stats div{border:1px solid #ffffff1f;border-radius:12px;padding:14px}.login-stats b{font-size:22px;display:block}.login-stats small{color:var(--nav-muted);font-size:12px}.login-form{place-items:center;padding:32px;display:grid}.login-form form{flex-direction:column;gap:16px;width:100%;max-width:380px;display:flex}.login-form h1{letter-spacing:-.015em;margin:0;font-size:26px}@media (width<=900px){.login{grid-template-columns:1fr}.login-art{display:none}}@media print{.sidebar,.topbar,.no-print,.tabs{display:none!important}.content{padding:0}.card{break-inside:avoid}body{background:#fff}}.lg-md pre{background:var(--surface-3);border-radius:8px;max-width:100%;padding:10px 12px;overflow:auto}.lg-md pre code{white-space:pre;background:0 0;padding:0}.section-head{margin-bottom:18px}.section-tabs{margin-bottom:10px}.section-tabs .tab{text-decoration:none!important}.section-about{color:var(--ink-2);align-items:flex-start;gap:8px;max-width:900px;margin:0;font-size:14px;line-height:20px;display:flex}.section-about svg{color:var(--info);flex:0 0 15px;margin-top:3px}.vpair{grid-template-columns:minmax(150px,1fr) minmax(150px,1fr) minmax(130px,.8fr) auto;align-items:start;gap:14px;display:grid}.vpair:has(.vname){grid-template-columns:minmax(220px,1.5fr) minmax(150px,1fr) minmax(150px,1fr) minmax(120px,.8fr) auto}.vname b{font-size:14px;font-weight:600;line-height:19px;display:block}.vname small{color:var(--ink-3);margin-top:2px;font-size:12.5px;display:block}.vside label{letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3);margin-bottom:3px;font-size:11px;font-weight:600;display:block}.vside label em{text-transform:none;letter-spacing:0;font-style:normal;font-weight:500}.vside .v{font-variant-numeric:tabular-nums;color:var(--ink);text-align:left;overflow-wrap:anywhere;background:0 0;border:0;align-items:baseline;gap:6px;max-width:100%;padding:0;font-family:inherit;font-size:15px;font-weight:600;display:inline-flex}.vside .v:disabled{cursor:default;color:var(--ink)}.vside.muted .v,.vside .muted{color:var(--ink-3);font-weight:500}.vside.dif .v{color:var(--ink-2);font-weight:500}.vside .v.link{cursor:pointer;color:var(--info)}.vside .v.link:hover{text-decoration:underline}.vside .pg{color:var(--info);background:var(--info-soft);border-radius:6px;padding:1px 6px;font-size:11px;font-weight:600}.vstat{justify-content:flex-end;align-items:center;gap:8px;padding-top:14px;display:flex}.tipped{position:relative}.tipped[data-tip]:hover:after,.tipped[data-tip]:focus-visible:after{content:attr(data-tip);z-index:40;background:var(--ink);color:#fff;width:max-content;max-width:360px;box-shadow:var(--shadow-pop);white-space:normal;pointer-events:none;border-radius:8px;padding:8px 10px;font-size:12px;font-weight:400;line-height:17px;position:absolute;top:calc(100% + 6px);left:0}.flagmark{cursor:help;border-radius:999px;place-items:center;width:24px;height:24px;display:inline-grid}.flagmark.warning{color:var(--danger);background:var(--danger-soft)}.flagmark.watch{color:var(--warn);background:var(--warn-soft)}.vlist{flex-direction:column;display:flex}.vlist>.vrow{border-bottom:1px solid var(--surface-3);padding:14px 4px}.vlist>.vrow:last-child{border-bottom:0}.vrow.clickable{cursor:pointer;border-radius:10px}.vrow.clickable:hover{background:var(--surface-2)}@media (width<=1100px){:is(.vpair,.vpair:has(.vname)){grid-template-columns:1fr 1fr}.vname{grid-column:1/-1}.vstat{justify-content:flex-start;padding-top:0}}.pdf-overlay{z-index:60;background:#14213d59;justify-content:flex-end;display:flex;position:fixed;inset:0}.pdf-drawer{background:#fff;flex-direction:column;width:min(920px,100vw);height:100vh;display:flex;box-shadow:-8px 0 24px #14213d26}.pdf-drawer header{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:12px 16px;display:flex}.pdf-drawer header .t{flex:1;min-width:0}.pdf-drawer header .t b{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.pdf-drawer header .t small{color:var(--ink-3)}.pdf-quote{background:var(--warn-soft);color:#78350f;border-bottom:1px solid #fdecc8;padding:10px 16px;font-size:13px;line-height:19px}.pdf-quote span{margin-right:4px;font-weight:600}.pdf-drawer iframe{border:0;flex:1;width:100%}.modal{background:#fff;border-radius:16px;width:min(1100px,96vw);max-height:90vh;margin:auto;padding:20px 24px;overflow:auto}.modal header{align-items:baseline;gap:10px;margin-bottom:6px;display:flex}.modal header small{color:var(--ink-3)}.modal h4{letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3);margin:8px 0;font-size:12px}.textbox{border:1px solid var(--border);border-radius:10px;max-height:60vh;padding:12px 14px;font-size:13.5px;line-height:21px;overflow:auto}.diffw{background:#fef3c7;border-radius:3px}.muted-note{color:var(--ink-3);margin:0 0 10px;font-size:13px}.fy-select{align-items:center;gap:8px;display:flex}.fy-select label{color:var(--ink-3);letter-spacing:.04em;text-transform:uppercase;font-size:12px;font-weight:600}.fy-select select{min-width:132px;height:38px;font-weight:600}.fy-note{color:var(--ink-3);font-size:12px}@media (width<=767px){.fy-select label{display:none}.fy-select select{min-width:110px}}.vside .v.clamp{-webkit-line-clamp:4;-webkit-box-orient:vertical;font-size:13.5px;font-weight:500;line-height:19px;display:-webkit-box;overflow:hidden}.topbar .crumbs{white-space:nowrap;min-width:0;overflow:hidden}.user-chip .who{white-space:nowrap}@media (width<=1400px){.topbar .crumbs{display:none}}.page-head{flex-wrap:wrap}.page-head .actions{flex-wrap:wrap;max-width:100%}.page-head .actions .select{max-width:100%}@media (width<=767px){.page-head .actions{width:100%;margin-left:0}.page-head .actions .select{width:100%!important}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:2.4s}.skeleton{animation:none}*{scroll-behavior:auto!important}}::selection{color:var(--ink);background:#a7f3d0}:focus-visible,.vrow.clickable:focus-visible,.tile:focus-visible,.pick-item:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
