:root{--lightningcss-light:initial;--lightningcss-dark: ;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--font-sans:"Segoe UI Variable Text", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", "Noto Sans JP", Arial, sans-serif;--font-display:"Segoe UI Variable Display", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", "Noto Sans JP", Arial, sans-serif;--font-mono:"Cascadia Code", "Cascadia Mono", "SFMono-Regular", Consolas, "Liberation Mono", monospace;--text-xs:.75rem;--text-sm:.8125rem;--text-base:.875rem;--text-md:.9375rem;--text-lg:1.0625rem;--text-xl:1.375rem;--text-2xl:1.75rem;--text-3xl:2.125rem;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--bg:#f4f5f8;--surface:#fff;--surface-raised:#fff;--surface-muted:#f8f9fb;--surface-sunken:#eff1f5;--ink-1:#0e1525;--ink-2:#4a5366;--ink-3:#636b7d;--ink-inverse:#fff;--line:#e5e8ee;--line-strong:#d3d8e1;--focus-ring:0 0 0 3px #2a78d647;--accent:#2a78d6;--accent-strong:#1c5cab;--accent-soft:#eaf2fc;--accent-ink:#184f95;--breach:#eb6834;--breach-soft:#fdf1eb;--breach-ink:#9a3a13;--aqua:#1baf7a;--good:#0c7f37;--good-soft:#e8f6ed;--warning:#8f5f00;--warning-soft:#fdf6e3;--critical:#bf3030;--critical-soft:#fcecec;--sidebar-bg:#0b1324;--sidebar-bg-2:#111c33;--sidebar-ink:#c9d2e3;--sidebar-ink-muted:#8390a8;--sidebar-active:#3987e52e;--sidebar-line:#ffffff12;--radius-xs:6px;--radius-sm:8px;--radius:12px;--radius-lg:16px;--radius-pill:999px;--shadow-1:0 1px 2px #0e15250d, 0 1px 1px #0e152508;--shadow-2:0 6px 16px -6px #0e15251f, 0 2px 4px -2px #0e15250f;--shadow-3:0 24px 48px -16px #0e152547, 0 8px 16px -8px #0e15251f;--ease-out:cubic-bezier(.2, .7, .2, 1);--ease-in-out:cubic-bezier(.45, 0, .25, 1);--duration-fast:.15s;--duration-base:.22s;--duration-slow:.3s;--sidebar-width:248px;--content-max:1360px;--on-dark:#fff;--brand-start:#3987e5;--brand-end:#1c5cab;--brand-shadow:#3987e5b3;--brand-highlight:#ffffff40;--sidebar-hover:#ffffff0f;--sidebar-badge:#ffffff14;--topbar-bg:#f4f5f8d1;--button-border-hover:#c3c9d4;--primary-start:#296fc4;--primary-shadow:#1c5cab59;--primary-highlight:#ffffff2e;--primary-hover-start:#2463b2;--primary-hover-end:#184f95;--accent-border:#2a78d640;--good-border:#0f8f3e38;--warning-border:#b7790040;--critical-border:#d03b3b38;--breach-border:#eb683440;--info-border:#2a78d638;--info-start:#f3f8fe;--info-end:#fbfdff;--warning-start:#fffaf0;--warning-end:#fffdf8;--critical-callout-border:#d03b3b40;--critical-start:#fef4f4;--critical-end:snow;--skeleton-shine:#ffffffa6;--overlay:#0b132452;--code-bg:#0e1525;--code-text:#d7e0f0;--dropzone-border:#b9c3d3;--accent-wash:#2a78d614;--input-border-hover:#b9c1ce;--toggle-shadow:#0e152540;--figure-bg:#fcfcfb;--on-primary:#fff;--on-status:#fff;--toggle-thumb:#fff;--primary-end:#1c5cab;--control-border:#d3d8e1;--chart-grid:#eef0f4;--chart-axis:#d3d8e1;--chart-text:#4a5366;--chart-text-muted:#636b7d;--chart-hover-bg:#0e1525;--chart-hover-border:#0e1525;--chart-hover-text:#fff}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0b1120;--surface:#111b2e;--surface-raised:#1b2940;--surface-muted:#172238;--surface-sunken:#0e1729;--ink-1:#e6ebf5;--ink-2:#b3bdd1;--ink-3:#98a5bd;--ink-inverse:#0b1120;--line:#22304a;--line-strong:#3c4c68;--focus-ring:0 0 0 3px #78b4fa;--accent:#4b93e8;--accent-strong:#78b4fa;--accent-soft:#4b93e824;--accent-ink:#9ac8ff;--breach:#ffa278;--breach-soft:#ffa2781f;--breach-ink:#ffb894;--aqua:#51d4b0;--good:#5ed391;--good-soft:#5ed3911f;--warning:#f0c15e;--warning-soft:#f0c15e1f;--critical:#ff8a91;--critical-soft:#ff8a911f;--sidebar-bg:#0d1526;--sidebar-bg-2:#111c33;--sidebar-ink:#c9d2e3;--sidebar-ink-muted:#98a5bd;--sidebar-active:#4b93e82e;--sidebar-line:#98a5bd24;--shadow-1:0 1px 2px #0208172e, 0 1px 1px #0208171f;--shadow-2:0 6px 16px -6px #0208174d, 0 2px 4px -2px #02081733;--shadow-3:0 24px 48px -16px #02081780, 0 8px 16px -8px #0208174d;--on-dark:#e6ebf5;--brand-start:#78b4fa;--brand-end:#4b93e8;--brand-shadow:#02081766;--brand-highlight:#e6ebf51f;--sidebar-hover:#98a5bd1a;--sidebar-badge:#98a5bd1f;--topbar-bg:#0b1120d1;--button-border-hover:#8596b3;--primary-start:#78b4fa;--primary-shadow:#0208174d;--primary-highlight:#e6ebf51a;--primary-hover-start:#8fc2ff;--primary-hover-end:#64a5f1;--accent-border:#4b93e861;--good-border:#5ed39152;--warning-border:#f0c15e52;--critical-border:#ff8a9152;--breach-border:#ffa27852;--info-border:#4b93e852;--info-start:#14263f;--info-end:#111b2e;--warning-start:#2c261d;--warning-end:#1c202b;--critical-callout-border:#ff8a9159;--critical-start:#30202d;--critical-end:#1d1d2c;--skeleton-shine:#98a5bd1a;--overlay:#020817a3;--code-bg:#0d1627;--code-text:#c7d4eb;--dropzone-border:#637493;--accent-wash:#4b93e814;--input-border-hover:#8596b3;--toggle-shadow:#0208174d;--figure-bg:#111b2e;--on-primary:#0b1120;--on-status:#0b1120;--toggle-thumb:#0b1120;--primary-end:#4b93e8;--control-border:#637493;--chart-grid:#22304a;--chart-axis:#637493;--chart-text:#b3bdd1;--chart-text-muted:#98a5bd;--chart-hover-bg:#1b2940;--chart-hover-border:#637493;--chart-hover-text:#e6ebf5}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--ink-1);font-family:var(--font-sans);font-size:var(--text-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0;line-height:1.5}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.012em;color:var(--ink-1);margin:0}p{margin:0}a{color:var(--accent-strong);text-decoration:none}a:hover{text-decoration:underline}button{font:inherit}:focus-visible{box-shadow:var(--focus-ring);border-radius:var(--radius-xs);outline:none}.tabular{font-variant-numeric:tabular-nums}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.shell{grid-template-columns:var(--sidebar-width) minmax(0, 1fr);min-height:100vh;display:grid}.sidebar{gap:var(--space-6);height:100vh;padding:var(--space-5) var(--space-3);background:linear-gradient(180deg, var(--sidebar-bg) 0%, var(--sidebar-bg-2) 100%);color:var(--sidebar-ink);flex-direction:column;display:flex;position:sticky;top:0;overflow-y:auto}.brand{align-items:center;gap:var(--space-3);padding:var(--space-1) var(--space-3);color:var(--on-dark);text-decoration:none;display:flex}.brand:hover{text-decoration:none}.brand-mark{background:linear-gradient(135deg, var(--brand-start), var(--brand-end));width:36px;height:36px;box-shadow:0 6px 16px -6px var(--brand-shadow), inset 0 1px 0 var(--brand-highlight);font-family:var(--font-display);color:var(--on-primary);border-radius:10px;place-items:center;font-size:18px;font-weight:600;display:grid}.brand-name{font-family:var(--font-display);letter-spacing:.14em;font-size:1.0625rem;font-weight:700;display:block}.brand-tagline{font-size:var(--text-xs);color:var(--sidebar-ink-muted);letter-spacing:.01em;display:block}.nav-group{flex-direction:column;gap:2px;display:flex}.nav-group-label{padding:0 var(--space-3) var(--space-2);letter-spacing:.09em;text-transform:uppercase;color:var(--sidebar-ink-muted);font-size:.6875rem;font-weight:600}.nav-link{align-items:center;gap:var(--space-3);padding:8px var(--space-3);border-radius:var(--radius-sm);color:var(--sidebar-ink);font-size:var(--text-base);transition:background-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);font-weight:500;text-decoration:none;display:flex;position:relative}.nav-link:hover{background:var(--sidebar-hover);color:var(--on-dark);text-decoration:none}.nav-link.active{background:var(--sidebar-active);color:var(--on-dark)}.nav-link.active:before{content:"";background:var(--brand-start);border-radius:0 3px 3px 0;width:3px;position:absolute;top:8px;bottom:8px;left:-12px}.nav-icon{opacity:.85;flex:none;width:18px;height:18px}.nav-badge{border-radius:var(--radius-pill);background:var(--sidebar-badge);color:var(--sidebar-ink-muted);margin-left:auto;padding:1px 7px;font-size:.6875rem;font-weight:600}.sidebar-head{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.sidebar-toggle{align-items:center;gap:var(--space-2);min-height:36px;padding:0 var(--space-3);border:1px solid var(--sidebar-line);border-radius:var(--radius-sm);background:var(--sidebar-hover);color:var(--sidebar-ink);font:inherit;font-size:var(--text-sm);cursor:pointer;display:none}.sidebar-toggle svg{width:18px;height:18px}.nav-groups{gap:var(--space-6);flex-direction:column;flex:1;display:flex}.skip-link{top:var(--space-2);left:var(--space-4);z-index:100;padding:var(--space-2) var(--space-4);border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink-1);font-weight:600;text-decoration:none;position:absolute;transform:translateY(-200%)}.skip-link:focus{box-shadow:var(--focus-ring);outline:none;transform:translateY(0)}.content:focus{outline:none}.sidebar-footer{padding:var(--space-3);border-top:1px solid var(--sidebar-line);font-size:var(--text-xs);color:var(--sidebar-ink-muted);margin-top:auto;line-height:1.6}.sidebar-footer a{color:var(--sidebar-ink)}.main{flex-direction:column;min-width:0;display:flex}.topbar{z-index:20;align-items:center;gap:var(--space-4);height:56px;padding:0 var(--space-8);background:var(--topbar-bg);-webkit-backdrop-filter:saturate(160%)blur(10px);backdrop-filter:saturate(160%)blur(10px);border-bottom:1px solid var(--line);display:flex;position:sticky;top:0}.breadcrumbs{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--ink-3);display:flex}.breadcrumbs strong{color:var(--ink-1);font-weight:600}.topbar-spacer{flex:1}.content{width:100%;max-width:var(--content-max);padding:var(--space-8) var(--space-8) var(--space-12);margin:0 auto}.page{gap:var(--space-6);animation:page-enter var(--duration-slow) var(--ease-out) both;flex-direction:column;display:flex}.page-header{justify-content:space-between;align-items:flex-end;gap:var(--space-4);flex-wrap:wrap;display:flex}.page-eyebrow{margin-bottom:var(--space-2);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--accent-strong);font-weight:600}.page-title{font-size:var(--text-3xl);font-weight:650;line-height:1.15}.page-description{margin-top:var(--space-2);max-width:760px;font-size:var(--text-md);color:var(--ink-2)}.page-actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.section-title{justify-content:space-between;align-items:baseline;gap:var(--space-3);margin-top:var(--space-2);display:flex}.section-title h2{font-size:var(--text-lg);font-weight:600}.section-title p{font-size:var(--text-sm);color:var(--ink-3)}.grid{gap:var(--space-4);display:grid}.grid-kpi{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-main-side{grid-template-columns:minmax(0,1.65fr) minmax(0,1fr)}.span-2{grid-column:span 2}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);min-width:0;box-shadow:var(--shadow-1);transition:box-shadow var(--duration-base) var(--ease-out), border-color var(--duration-base) var(--ease-out), transform var(--duration-base) var(--ease-out);animation:rise-in var(--duration-slow) var(--ease-out) both;animation-delay:calc(var(--stagger,0) * 40ms);flex-direction:column;display:flex;position:relative}.card-interactive:hover{border-color:var(--line-strong);box-shadow:var(--shadow-2);transform:translateY(-1px)}.card-header{justify-content:space-between;align-items:flex-start;gap:var(--space-3);padding:var(--space-5) var(--space-5) 0;flex-wrap:wrap;display:flex}.card-title{font-size:var(--text-md);color:var(--ink-1);font-weight:600}.card-subtitle{font-size:var(--text-sm);color:var(--ink-3);margin-top:2px}.card-body{padding:var(--space-4) var(--space-5) var(--space-5);min-width:0}.card-footer{padding:var(--space-3) var(--space-5);border-top:1px solid var(--line);font-size:var(--text-xs);color:var(--ink-3)}.kpi{padding:var(--space-5);gap:var(--space-2)}.kpi-top{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.kpi-label{font-size:var(--text-sm);color:var(--ink-2);font-weight:500}.kpi-value{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink-1);font-size:1.875rem;font-weight:650;line-height:1.1}.kpi-context{font-size:var(--text-xs);color:var(--ink-3)}.kpi-unavailable{font-size:var(--text-sm);color:var(--ink-3)}.kpi-accent{border-radius:var(--radius) 0 0 var(--radius);background:var(--accent);opacity:0;width:3px;transition:opacity var(--duration-base) var(--ease-out);position:absolute;inset:0 auto 0 0}.card-interactive:hover .kpi-accent{opacity:1}.btn{justify-content:center;align-items:center;gap:var(--space-2);height:34px;padding:0 var(--space-4);border:1px solid var(--control-border);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink-1);font-size:var(--text-sm);cursor:pointer;white-space:nowrap;transition:background-color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out);font-weight:600;display:inline-flex}.btn:hover{background:var(--surface-muted);border-color:var(--button-border-hover)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{border-color:var(--primary-end);background:linear-gradient(180deg, var(--primary-start), var(--primary-end));color:var(--on-primary);box-shadow:0 1px 2px var(--primary-shadow), inset 0 1px 0 var(--primary-highlight)}.btn-primary:hover{background:linear-gradient(180deg, var(--primary-hover-start), var(--primary-hover-end));border-color:var(--primary-hover-end)}.btn-ghost{color:var(--ink-2);background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--surface-sunken);color:var(--ink-1);border-color:#0000}.btn-sm{height:28px;padding:0 var(--space-3);font-size:var(--text-xs)}.icon-btn{border-radius:var(--radius-xs);width:28px;height:28px;color:var(--ink-3);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out);background:0 0;border:1px solid #0000;place-items:center;display:inline-grid}.icon-btn:hover{background:var(--accent-soft);border-color:var(--accent-border);color:var(--accent-strong)}.icon-btn svg{width:16px;height:16px}.badge{border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);height:24px;color:var(--ink-2);font-size:var(--text-xs);white-space:nowrap;align-items:center;gap:6px;padding:0 10px;font-weight:600;display:inline-flex}.badge-dot{background:currentColor;border-radius:50%;width:6px;height:6px}.badge-accent{border-color:var(--accent-border);background:var(--accent-soft);color:var(--accent-ink)}.badge-good{border-color:var(--good-border);background:var(--good-soft);color:var(--good)}.badge-warning{border-color:var(--warning-border);background:var(--warning-soft);color:var(--warning)}.badge-critical{border-color:var(--critical-border);background:var(--critical-soft);color:var(--critical)}.badge-breach{border-color:var(--breach-border);background:var(--breach-soft);color:var(--breach-ink)}.callout{gap:var(--space-3);padding:var(--space-4);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);font-size:var(--text-sm);color:var(--ink-2);animation:rise-in var(--duration-slow) var(--ease-out) both;display:flex}.callout strong{color:var(--ink-1)}.callout-icon{flex:none;width:20px;height:20px;margin-top:1px}.callout-info{border-color:var(--info-border);background:linear-gradient(180deg, var(--info-start), var(--info-end))}.callout-info .callout-icon{color:var(--accent)}.callout-warning{border-color:var(--warning-border);background:linear-gradient(180deg, var(--warning-start), var(--warning-end))}.callout-warning .callout-icon{color:var(--warning)}.callout-critical{border-color:var(--critical-callout-border);background:linear-gradient(180deg, var(--critical-start), var(--critical-end))}.callout-critical .callout-icon{color:var(--critical)}.callout-body{flex-direction:column;gap:4px;min-width:0;display:flex}.highlight{padding:var(--space-4) var(--space-5);flex-direction:column;gap:6px;display:flex}.highlight-title{font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-weight:600}.highlight-text{font-size:var(--text-md);color:var(--ink-1);line-height:1.45}.segmented{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-sunken);gap:2px;padding:3px;display:inline-flex}.segmented button{white-space:nowrap;height:26px;padding:0 var(--space-3);color:var(--ink-2);font-size:var(--text-xs);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out);background:0 0;border:0;border-radius:6px;font-weight:600}.segmented button:hover{color:var(--ink-1)}.segmented button[aria-pressed=true]{background:var(--surface);color:var(--ink-1);box-shadow:var(--shadow-1)}.segmented-link{height:26px;padding:0 var(--space-3);color:var(--ink-2);font-size:var(--text-xs);white-space:nowrap;transition:background-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out);border-radius:6px;align-items:center;font-weight:600;text-decoration:none;display:inline-flex}.segmented-link:hover{color:var(--ink-1);text-decoration:none}.segmented-link[aria-current=page]{background:var(--surface);color:var(--ink-1);box-shadow:var(--shadow-1)}.filter-bar{align-items:flex-end;gap:var(--space-3);padding:var(--space-4) var(--space-5);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-1);flex-wrap:wrap;display:flex}.filter-bar .field{min-width:150px}.timeline{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.timeline li{gap:var(--space-3);padding-bottom:var(--space-4);grid-template-columns:18px minmax(0,1fr);display:grid;position:relative}.timeline li:before{content:"";background:var(--accent);width:10px;height:10px;box-shadow:0 0 0 3px var(--accent-soft);border-radius:50%;grid-row:1/span 2;margin-top:5px}.timeline li:after{content:"";background:var(--line-strong);width:1px;position:absolute;top:20px;bottom:0;left:4.5px}.timeline li:last-child:after{display:none}.dropdown{position:relative}.dropdown-backdrop{z-index:40;position:fixed;inset:0}.dropdown-menu{z-index:50;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-raised);width:320px;box-shadow:var(--shadow-3);transform-origin:100% 0;animation:dropdown-in var(--duration-base) var(--ease-out) both;flex-direction:column;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);right:0}.dropdown-item{border-radius:var(--radius-sm);color:var(--ink-1);font-size:var(--text-sm);transition:background-color var(--duration-fast) var(--ease-out);flex-direction:column;gap:2px;padding:10px 12px;text-decoration:none;display:flex}.dropdown-item:hover,.dropdown-item:focus-visible{background:var(--surface-sunken);text-decoration:none}.dropdown-footnote{border-top:1px solid var(--line);margin-top:4px;padding:8px 12px 6px}@keyframes dropdown-in{0%{opacity:0;transform:translateY(-4px)scale(.98)}to{opacity:1;transform:none}}.insight h3{font-weight:600}.insight-evidence{padding:var(--space-3) var(--space-4);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-muted)}.insight-action{gap:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);background:var(--good-soft);color:var(--ink-1);display:flex}.insight-action svg{color:var(--good);flex:none;margin-top:3px}.insight-details summary{cursor:pointer;color:var(--ink-3);transition:color var(--duration-fast) var(--ease-out)}.insight-details summary:hover{color:var(--ink-1)}.severity-dot{border-radius:50%;width:8px;height:8px;margin-right:8px;display:inline-block}.table-wrap{border:1px solid var(--line);border-radius:var(--radius-sm);overflow-x:auto}.table{border-collapse:separate;border-spacing:0;width:100%;font-size:var(--text-sm)}.table th{padding:10px var(--space-3);background:var(--surface-muted);border-bottom:1px solid var(--line);color:var(--ink-3);font-size:var(--text-xs);letter-spacing:.02em;text-align:left;white-space:nowrap;font-weight:600;position:sticky;top:0}.table th.num,.table td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.table th button{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;padding:0;display:inline-flex}.table td{padding:10px var(--space-3);border-bottom:1px solid var(--line);color:var(--ink-1);vertical-align:top}.table tbody tr{transition:background-color var(--duration-fast) var(--ease-out)}.table tbody tr:hover{background:var(--surface-muted)}.table tbody tr:last-child td{border-bottom:0}.chart{width:100%;min-height:120px;position:relative}.chart-canvas{opacity:0;width:100%;height:100%;transition:opacity var(--duration-slow) var(--ease-out)}.chart-canvas.ready{opacity:1}.chart-skeleton{position:absolute;inset:0}.legend{gap:var(--space-4);font-size:var(--text-xs);color:var(--ink-2);flex-wrap:wrap;display:flex}.legend-item{align-items:center;gap:6px;display:inline-flex}.legend-swatch{border-radius:3px;width:10px;height:10px}.skeleton{border-radius:var(--radius-sm);background:var(--surface-sunken);position:relative;overflow:hidden}.skeleton:after{content:"";background:linear-gradient(90deg, transparent, var(--skeleton-shine), transparent);animation:shimmer 1.3s var(--ease-in-out) infinite;position:absolute;inset:0;transform:translate(-100%)}.state{justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-12) var(--space-6);text-align:center;color:var(--ink-2);flex-direction:column;display:flex}.state-icon{background:var(--surface-sunken);width:44px;height:44px;color:var(--ink-3);border-radius:12px;place-items:center;display:grid}.state-icon svg{width:22px;height:22px}.state-title{font-size:var(--text-lg);color:var(--ink-1);font-weight:600}.state-text{max-width:460px;font-size:var(--text-sm)}.state-error .state-icon{background:var(--critical-soft);color:var(--critical)}.drawer-overlay{z-index:80;background:var(--overlay);animation:fade-in var(--duration-base) var(--ease-out) both;position:fixed;inset:0}.drawer{z-index:90;background:var(--surface-raised);width:min(620px,100vw);box-shadow:var(--shadow-3);animation:drawer-in var(--duration-slow) var(--ease-out) both;flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0}.drawer-header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);padding:var(--space-6) var(--space-6) var(--space-4);border-bottom:1px solid var(--line);display:flex}.drawer-body{padding:var(--space-5) var(--space-6) var(--space-8);gap:var(--space-6);flex-direction:column;flex:1;display:flex;overflow-y:auto}.drawer-section h3{margin-bottom:var(--space-3);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);font-weight:600}.formula{padding:var(--space-3) var(--space-4);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-muted);font-family:var(--font-mono);color:var(--ink-1);white-space:pre-wrap;word-break:break-word;font-size:.78rem;line-height:1.55}.code{max-height:260px;padding:var(--space-4);border-radius:var(--radius-sm);background:var(--code-bg);color:var(--code-text);font-family:var(--font-mono);white-space:pre-wrap;word-break:break-word;font-size:.75rem;line-height:1.6;position:relative;overflow:auto}.kv{gap:8px var(--space-4);font-size:var(--text-sm);grid-template-columns:max-content 1fr;display:grid}.kv dt{color:var(--ink-3)}.kv dd{color:var(--ink-1);font-variant-numeric:tabular-nums;margin:0}.list{font-size:var(--text-sm);color:var(--ink-2);flex-direction:column;gap:6px;margin:0;padding-left:18px;display:flex}.lineage{flex-direction:column;gap:0;margin:0;padding:0;list-style:none;display:flex}.lineage li{padding:0 0 var(--space-3) var(--space-6);font-size:var(--text-sm);color:var(--ink-2);position:relative}.lineage li:before{content:"";background:var(--accent);width:8px;height:8px;box-shadow:0 0 0 3px var(--accent-soft);border-radius:50%;position:absolute;top:6px;left:6px}.lineage li:after{content:"";background:var(--line-strong);width:1px;position:absolute;top:18px;bottom:2px;left:9.5px}.lineage li:last-child:after{display:none}.count-bar{border-radius:var(--radius-pill);background:var(--surface-sunken);height:10px;display:flex;overflow:hidden}.count-bar span{height:100%;transition:width var(--duration-slow) var(--ease-out)}.dropzone{justify-content:center;align-items:center;gap:var(--space-3);min-height:280px;padding:var(--space-10);border:1.5px dashed var(--dropzone-border);border-radius:var(--radius-lg);background:radial-gradient(1200px 300px at 50% -40%, var(--accent-wash), transparent 70%), var(--surface);text-align:center;cursor:pointer;transition:border-color var(--duration-base) var(--ease-out), background-color var(--duration-base) var(--ease-out), box-shadow var(--duration-base) var(--ease-out), transform var(--duration-base) var(--ease-out);flex-direction:column;display:flex;position:relative}.dropzone:hover,.dropzone.dragging{border-color:var(--accent);box-shadow:0 0 0 6px var(--accent-wash)}.dropzone.dragging{transform:scale(1.005)}.dropzone-icon{background:var(--accent-soft);width:56px;height:56px;color:var(--accent-strong);transition:transform var(--duration-base) var(--ease-out);border-radius:16px;place-items:center;display:grid}.dropzone:hover .dropzone-icon,.dropzone.dragging .dropzone-icon{transform:translateY(-3px)}.dropzone-icon svg{width:26px;height:26px}.stepper{gap:var(--space-3);flex-direction:column;display:flex}.step{align-items:center;gap:var(--space-3);font-size:var(--text-sm);color:var(--ink-3);transition:color var(--duration-base) var(--ease-out);display:flex}.step-dot{border:1.5px solid var(--line-strong);background:var(--surface);width:22px;height:22px;transition:background-color var(--duration-base) var(--ease-out), border-color var(--duration-base) var(--ease-out);border-radius:50%;place-items:center;display:grid;position:relative}.step-dot svg{width:12px;height:12px;color:var(--on-status)}.step.done{color:var(--ink-2)}.step.done .step-dot{border-color:var(--good);background:var(--good)}.step.active{color:var(--ink-1);font-weight:600}.step.active .step-dot{border-color:var(--accent)}.step.active .step-dot:after{content:"";background:var(--accent);width:8px;height:8px;animation:pulse 1.2s var(--ease-in-out) infinite;border-radius:50%}.step.failed .step-dot{border-color:var(--critical);background:var(--critical)}.progress{border-radius:var(--radius-pill);background:var(--surface-sunken);height:6px;overflow:hidden}.progress-bar{border-radius:inherit;background:linear-gradient(90deg, var(--brand-start), var(--brand-end));height:100%;transition:width var(--duration-slow) var(--ease-out)}.progress-bar.indeterminate{animation:indeterminate 1.4s var(--ease-in-out) infinite;width:40%!important}.field{font-size:var(--text-sm);flex-direction:column;gap:6px;display:flex}.field label{color:var(--ink-2);font-weight:600}.input,.select{height:34px;padding:0 var(--space-3);border:1px solid var(--control-border);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink-1);font:inherit;font-size:var(--text-sm);transition:border-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out)}.input:hover,.select:hover{border-color:var(--input-border-hover)}.input:focus,.select:focus{border-color:var(--accent);box-shadow:var(--focus-ring);outline:none}.toggle{border-radius:var(--radius-pill);background:var(--control-border);cursor:pointer;width:34px;height:20px;transition:background-color var(--duration-base) var(--ease-out);border:0;flex:none;display:inline-flex;position:relative}.toggle:after{content:"";background:var(--toggle-thumb);width:16px;height:16px;box-shadow:0 1px 2px var(--toggle-shadow);transition:transform var(--duration-base) var(--ease-out);border-radius:50%;position:absolute;top:2px;left:2px}.toggle[aria-checked=true]{background:var(--accent)}.toggle[aria-checked=true]:after{transform:translate(14px)}.toggle:disabled{opacity:.5;cursor:not-allowed}.muted{color:var(--ink-3)}.text-sm{font-size:var(--text-sm)}.text-xs{font-size:var(--text-xs)}.stack{gap:var(--space-3);flex-direction:column;display:flex}.row{align-items:center;gap:var(--space-3);display:flex}.row-wrap{flex-wrap:wrap}.divider{background:var(--line);border:0;height:1px;margin:0}.figure-img{border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--figure-bg);width:100%;height:auto}@keyframes page-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes rise-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes drawer-in{0%{opacity:.6;transform:translate(32px)}to{opacity:1;transform:none}}@keyframes shimmer{to{transform:translate(100%)}}@keyframes pulse{0%,to{opacity:.6;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}@keyframes indeterminate{0%{transform:translate(-110%)}to{transform:translate(260%)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important}.skeleton:after{display:none}.card-interactive:hover{transform:none}}@media (width<=1100px){.grid-2{grid-template-columns:minmax(0,1fr)}}@media (width<=1180px){.grid-main-side,.grid-3{grid-template-columns:minmax(0,1fr)}.span-2{grid-column:auto}}@media (width<=900px){.shell{grid-template-columns:minmax(0,1fr)}.sidebar{gap:var(--space-4);height:auto;padding:var(--space-3) var(--space-4);position:static}.sidebar-toggle{display:inline-flex}.sidebar:not(.open) .nav-groups,.brand-tagline,.topbar-badge{display:none}.breadcrumbs{white-space:nowrap;min-width:0}.breadcrumbs strong{text-overflow:ellipsis;overflow:hidden}.grid-2{grid-template-columns:minmax(0,1fr)}.content{padding:var(--space-5) var(--space-4) var(--space-10)}.topbar{padding:0 var(--space-4)}.page-title{font-size:var(--text-2xl)}}.table-dense th,.table-dense td{padding:6px 10px}.theme-toggle{flex:none;width:34px;padding:0}.theme-toggle svg{width:18px;height:18px}:root[data-theme=dark] .input::placeholder{color:var(--ink-3);opacity:1}.theme-switching *,.theme-switching :before,.theme-switching :after{transition:none!important}:root[data-intro],:root[data-intro] body{background:#0d1729}.mi-intro{--mi-total:4.4s;--mi-in-out:cubic-bezier(.65, 0, .35, 1);--mi-out:cubic-bezier(.16, 1, .3, 1);z-index:9999;cursor:pointer;color:#fff;font-family:Inter, var(--font-sans,ui-sans-serif), system-ui, sans-serif;-webkit-font-smoothing:antialiased;animation:mi-exit var(--mi-total) linear forwards;background:radial-gradient(120% 90% at 50% 42%,#14233d 0%,#0d1729 55%,#0a1222 100%);position:fixed;inset:0;overflow:hidden;container-type:size}.mi-intro--contained{position:absolute}.mi-intro:before{content:"";pointer-events:none;background-image:linear-gradient(#ffffff08 1px,#0000 1px),linear-gradient(90deg,#ffffff08 1px,#0000 1px);background-position:50%;background-size:48px 48px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(closest-side,#000 0%,#0000 100%);mask-image:radial-gradient(closest-side,#000 0%,#0000 100%)}.mi-intro.is-skipping{pointer-events:none;animation:.38s cubic-bezier(.4,0,.2,1) forwards mi-skip}.mi-scene{--mi-lockup:1;font-size:clamp(11px,3.2cqmin,18px);position:absolute;inset:0}@container (width>=768px){.mi-scene{--mi-lockup:1.18}}.mi-stage{z-index:2;pointer-events:none;width:14em;height:9em;margin:-4.5em 0 0 -7em;position:absolute;top:50%;left:50%}.mi-cell-wrap{animation:mi-enter .7s var(--d,0s) var(--mi-out) both;position:absolute;inset:0}.mi-bar,.mi-ghost{left:var(--x2);top:var(--y2);width:.42em;height:var(--h2);opacity:0;animation:mi-morph var(--mi-total) var(--mi-in-out) forwards;position:absolute}.mi-ghost{animation-name:mi-merge}@keyframes mi-enter{0%{opacity:0;transform:translate(var(--ox,0), var(--oy,0))}to{opacity:1;transform:none}}@keyframes mi-morph{0%,18.14%{left:var(--x0);top:var(--y0);background:var(--c0,#aabad26b);opacity:1;border-radius:.24em;width:2.4em;height:.8em;box-shadow:0 0 #2a78d600}38.66%,41.05%{left:var(--x1);top:var(--y1);width:1.6em;height:var(--h1);background:var(--c1);box-shadow:var(--g,0 0 0 0 #2a78d600);opacity:1;border-radius:.22em}52.31%{left:var(--x2);top:var(--y2);width:.42em;height:var(--h2);opacity:.95;background:#fff;border-radius:.12em;box-shadow:0 0 #2a78d600}58.23%,to{left:var(--x2);top:var(--y2);width:.42em;height:var(--h2);opacity:0;background:#fff;border-radius:.12em;box-shadow:0 0 #2a78d600}}@keyframes mi-merge{0%,18.14%{left:var(--x0);top:var(--y0);opacity:1;background:#aabad26b;border-radius:.24em;width:2.4em;height:.8em}34.36%,to{left:var(--x1);top:var(--y1);opacity:0;background:#2a78d680;border-radius:.22em;width:1.6em;height:.8em}}.mi-svg{width:14em;height:9em;position:absolute;inset:0;overflow:visible}.mi-trend{animation:mi-trend var(--mi-total) var(--mi-in-out) forwards}@keyframes mi-trend{0%,4.58%{clip-path:inset(0 100% 0 0);opacity:.85}20.43%{clip-path:inset(0);opacity:.85}29.59%,to{clip-path:inset(0);opacity:0}}.mi-link{stroke-dasharray:1;stroke-dashoffset:1px;animation:mi-link var(--mi-total) var(--mi-in-out) forwards}@keyframes mi-link{0%,29.59%{stroke-dashoffset:1px;opacity:1}41.05%,43.15%{stroke-dashoffset:0;opacity:1}47.73%,to{stroke-dashoffset:0;opacity:0}}.mi-dot{transform-box:fill-box;transform-origin:50%;opacity:0;animation:mi-dot var(--mi-total) var(--mi-out) forwards}@keyframes mi-dot{0%,34.36%{opacity:0;transform:scale(.4)}41.05%,43.15%{opacity:1;transform:scale(1)}47.73%,to{opacity:0;transform:scale(.6)}}.mi-baseline{transform-origin:50%;opacity:0;width:11.2em;height:1px;animation:mi-baseline var(--mi-total) var(--mi-in-out) forwards;background:#94a3b859;position:absolute;top:8em;left:1.4em}@keyframes mi-baseline{0%,20.43%{opacity:0;transform:scaleX(0)}34.08%,41.05%{opacity:1;transform:scaleX(1)}49.64%,to{opacity:0;transform:scaleX(.25)}}.mi-brand{z-index:1;font-size:calc(1em * var(--mi-lockup));animation:mi-settle var(--mi-total) linear forwards;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.mi-lockup{align-items:center;display:flex}@keyframes mi-settle{0%,68.18%{transform:none}to{transform:scale(1.012)}}.mi-mark{width:3.5em;height:3.5em;animation:mi-mark var(--mi-total) var(--mi-out) forwards;border-radius:.82em;display:block;box-shadow:0 .8em 2.4em -.8em #2a78d68c}.mi-mark svg{width:100%;height:100%;display:block}@keyframes mi-mark{0%,42%{opacity:0;transform:scale(.72)}55.65%,to{opacity:1;transform:none}}.mi-intro .mieru-mark__glyph{transform-box:fill-box;transform-origin:50%;animation:mi-glyph var(--mi-total) var(--mi-out) forwards}@keyframes mi-glyph{0%,48.87%{opacity:0;transform:scale(.9)}57.94%,to{opacity:1;transform:none}}.mi-word{animation:mi-word-open var(--mi-total) var(--mi-in-out) forwards;grid-template-columns:1fr;display:grid}@keyframes mi-word-open{0%,53.45%{grid-template-columns:0fr}69.3%,to{grid-template-columns:1fr}}.mi-word-inner{min-width:0;overflow:hidden}.mi-word-text{letter-spacing:.08em;white-space:nowrap;animation:mi-rise var(--mi-total) var(--mi-out) forwards;--rise-start:59.5%;padding-left:.42em;font-size:2.1em;font-weight:600;line-height:1.2;display:block}@keyframes mi-rise{0%,56.8%{opacity:0;transform:translateY(.35em)}69.3%,to{opacity:1;transform:none}}.mi-tagline{left:1em;right:1em;top:calc(50% + 2.9em * var(--mi-lockup));text-align:center;font-size:max(calc(.98em * (1 + (var(--mi-lockup) - 1) / 2)), 13px);letter-spacing:.01em;color:#f5f6faa3;animation:mi-tagline var(--mi-total) var(--mi-out) forwards;margin:0;font-weight:400;position:absolute}@keyframes mi-tagline{0%,63.67%{opacity:0;transform:translateY(.5em)}75.03%,to{opacity:1;transform:none}}@keyframes mi-exit{0%,85.23%{opacity:1;animation-timing-function:cubic-bezier(.4,0,.2,1)}to{opacity:0}}@keyframes mi-skip{0%{opacity:var(--mi-skip-from,1)}to{opacity:0}}@keyframes mi-reduced{0%,65%{opacity:1}to{opacity:0}}.mi-skip{right:max(20px, env(safe-area-inset-right));bottom:max(20px, env(safe-area-inset-bottom));z-index:3;color:#f5f6fab3;font:500 12px/1 Inter, var(--font-sans,ui-sans-serif), system-ui, sans-serif;letter-spacing:.04em;cursor:pointer;background:#ffffff0a;border:1px solid #ffffff24;border-radius:999px;padding:7px 14px;transition:background .16s,color .16s;animation:.5s .4s both mi-enter;position:absolute}.mi-skip:hover{color:#fff;background:#ffffff17}.mi-skip:focus-visible{outline-offset:2px;box-shadow:none;border-radius:999px;outline:2px solid #2a78d6}@media (prefers-reduced-motion:reduce){.mi-intro{animation:1.4s linear forwards mi-reduced!important}.mi-intro.is-skipping{animation:.38s cubic-bezier(.4,0,.2,1) forwards mi-skip!important}.mi-intro .mi-stage{display:none}.mi-intro *,.mi-intro .mieru-mark__glyph{animation:none!important}}
