@font-face{font-family:__JetBrains_Mono_e896d9;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/edc640959b0c7826-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:__JetBrains_Mono_e896d9;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/ac0e76ddaeeb7981-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:__JetBrains_Mono_e896d9;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/64d784ea54a4acde-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:__JetBrains_Mono_e896d9;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/ff71da380fbe67dd-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__JetBrains_Mono_e896d9;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/6d831b18ae5b01dc-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__JetBrains_Mono_e896d9;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/558ca1a6aa3cb55e-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__JetBrains_Mono_e896d9;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/edc640959b0c7826-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:__JetBrains_Mono_e896d9;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ac0e76ddaeeb7981-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:__JetBrains_Mono_e896d9;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/64d784ea54a4acde-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:__JetBrains_Mono_e896d9;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ff71da380fbe67dd-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__JetBrains_Mono_e896d9;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/6d831b18ae5b01dc-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__JetBrains_Mono_e896d9;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/558ca1a6aa3cb55e-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__JetBrains_Mono_e896d9;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/edc640959b0c7826-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:__JetBrains_Mono_e896d9;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/ac0e76ddaeeb7981-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:__JetBrains_Mono_e896d9;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/64d784ea54a4acde-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:__JetBrains_Mono_e896d9;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/ff71da380fbe67dd-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__JetBrains_Mono_e896d9;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/6d831b18ae5b01dc-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__JetBrains_Mono_e896d9;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/558ca1a6aa3cb55e-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__JetBrains_Mono_Fallback_e896d9;src:local("Arial");ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.00%;size-adjust:134.59%}.__className_e896d9{font-family:__JetBrains_Mono_e896d9,__JetBrains_Mono_Fallback_e896d9;font-style:normal}.__variable_e896d9{--font-mono-tc:"__JetBrains_Mono_e896d9","__JetBrains_Mono_Fallback_e896d9"}@font-face{font-family:__Space_Grotesk_49a339;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/e1aab0933260df4d-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__Space_Grotesk_49a339;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/b7387a63dd068245-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Space_Grotesk_49a339;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/36966cca54120369-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Space_Grotesk_49a339;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/e1aab0933260df4d-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__Space_Grotesk_49a339;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/b7387a63dd068245-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Space_Grotesk_49a339;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/36966cca54120369-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Space_Grotesk_49a339;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/e1aab0933260df4d-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__Space_Grotesk_49a339;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/b7387a63dd068245-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Space_Grotesk_49a339;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/36966cca54120369-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Space_Grotesk_49a339;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/e1aab0933260df4d-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__Space_Grotesk_49a339;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/b7387a63dd068245-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Space_Grotesk_49a339;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/36966cca54120369-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Space_Grotesk_Fallback_49a339;src:local("Arial");ascent-override:89.71%;descent-override:26.62%;line-gap-override:0.00%;size-adjust:109.69%}.__className_49a339{font-family:__Space_Grotesk_49a339,__Space_Grotesk_Fallback_49a339;font-style:normal}.__variable_49a339{--font-display-tc:"__Space_Grotesk_49a339","__Space_Grotesk_Fallback_49a339"}:root{--font-sans:"Noto Sans TC","Space Grotesk",-apple-system,sans-serif;--font-display:"Space Grotesk","Noto Sans TC",sans-serif;--font-mono:"JetBrains Mono","SF Mono",Consolas,monospace;--r-xs:4px;--r-sm:6px;--r-md:8px;--r-lg:12px;--r-xl:16px;--ease:cubic-bezier(0.2,0,0,1)}[data-theme=dark]{--bg-0:#0a0b0f;--bg-1:#0f1117;--bg-2:#151823;--bg-3:#1c2030;--bg-4:#242938;--border-1:#1e2230;--border-2:#2a2f42;--border-3:#363c52;--text-0:#f7f8fb;--text-1:#c8ccd8;--text-2:#868ea0;--text-3:#5a6070;--accent:#7c5cff;--accent-soft:rgba(124,92,255,.16);--accent-dim:rgba(124,92,255,.08);--success:#22d3a5;--success-soft:rgba(34,211,165,.14);--success-dim:rgba(34,211,165,.07);--danger:#ff5c7c;--danger-soft:rgba(255,92,124,.14);--danger-dim:rgba(255,92,124,.07);--warning:#ffb545;--warning-soft:rgba(255,181,69,.14);--info:#3aa9ff;--info-soft:rgba(58,169,255,.14);--yes:#22d3a5;--no:#ff5c7c;--chart-grid:hsla(0,0%,100%,.04);--chart-axis:hsla(0,0%,100%,.12);--shadow-sm:0 1px 2px rgba(0,0,0,.4);--shadow-md:0 4px 12px rgba(0,0,0,.5);--shadow-lg:0 12px 32px rgba(0,0,0,.6);color-scheme:dark}[data-theme=light]{--bg-0:#f6f7fa;--bg-1:#fff;--bg-2:#fafbfd;--bg-3:#f0f2f7;--bg-4:#e5e8ef;--border-1:#e8ebf1;--border-2:#dde1e9;--border-3:#c8cdd8;--text-0:#0e1017;--text-1:#3a4050;--text-2:#6b7384;--text-3:#9ca3b3;--accent:#5d3dff;--accent-soft:rgba(93,61,255,.1);--accent-dim:rgba(93,61,255,.05);--success:#09a373;--success-soft:rgba(9,163,115,.1);--success-dim:rgba(9,163,115,.05);--danger:#e03a5c;--danger-soft:rgba(224,58,92,.1);--danger-dim:rgba(224,58,92,.05);--warning:#d97706;--warning-soft:rgba(217,119,6,.1);--info:#0a7edc;--info-soft:rgba(10,126,220,.1);--yes:#09a373;--no:#e03a5c;--chart-grid:rgba(0,0,0,.05);--chart-axis:rgba(0,0,0,.15);--shadow-sm:0 1px 2px rgba(16,24,40,.06);--shadow-md:0 4px 12px rgba(16,24,40,.08);--shadow-lg:0 12px 32px rgba(16,24,40,.12);color-scheme:light}*,:after,:before{box-sizing:border-box}body,html{margin:0;padding:0;width:100%;min-height:100vh;background:var(--bg-0);color:var(--text-0);font-family:var(--font-sans);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;font-feature-settings:"cv11","ss01"}button,input,select,textarea{font-family:inherit;color:inherit}a{color:inherit;text-decoration:none}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-2);border-radius:5px;border:2px solid var(--bg-0)}::-webkit-scrollbar-thumb:hover{background:var(--border-3)}.app{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100vh;width:100%;min-width:1380px}body,html{overflow-x:auto}.sidebar{padding:20px 14px;gap:4px;overflow-y:auto}.brand{display:flex;align-items:center;gap:10px;padding:6px 10px 22px;border-bottom:1px solid var(--border-1);margin-bottom:14px}.brand-logo{width:32px;height:32px;border-radius:8px;background:linear-gradient(135deg,var(--accent) 0,#3aa9ff 100%);display:grid;place-items:center;color:#fff;letter-spacing:-.02em;box-shadow:0 4px 14px var(--accent-soft)}.brand-logo,.brand-name{font-family:var(--font-display);font-weight:700;font-size:16px}.brand-name{letter-spacing:-.01em;color:var(--text-0)}.brand-sub{color:var(--text-2);letter-spacing:.05em;margin-top:2px}.brand-sub,.nav-section{font-family:var(--font-mono);font-size:10px;text-transform:uppercase}.nav-section{color:var(--text-3);letter-spacing:.12em;padding:14px 12px 6px}.nav-item{display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:var(--r-md);color:var(--text-1);cursor:pointer;font-size:13.5px;font-weight:500;transition:all .12s var(--ease);position:relative}.nav-item:hover{background:var(--bg-2);color:var(--text-0)}.nav-item.active{background:var(--accent-soft);color:var(--accent)}.nav-item.active:before{content:"";position:absolute;left:-14px;top:50%;transform:translateY(-50%);width:3px;height:18px;background:var(--accent);border-radius:0 2px 2px 0}.nav-icon{width:18px;height:18px;flex-shrink:0;stroke-width:1.75}.nav-badge{margin-left:auto;font-family:var(--font-mono);font-size:10px;color:var(--text-2);background:var(--bg-3);padding:2px 6px;border-radius:4px}.sidebar-footer{margin-top:auto;padding-top:16px;border-top:1px solid var(--border-1);display:flex;flex-direction:column;gap:6px}.theme-toggle{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-radius:var(--r-md);background:var(--bg-2);cursor:pointer;border:1px solid var(--border-1);transition:all .12s var(--ease);color:var(--text-1);font-size:12.5px}.theme-toggle:hover{border-color:var(--border-2);color:var(--text-0)}.theme-switch{width:32px;height:18px;background:var(--bg-4);border-radius:9px;position:relative;transition:background .16s var(--ease)}.theme-switch:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;background:var(--text-0);border-radius:50%;transition:transform .2s var(--ease)}[data-theme=light] .theme-switch:after{transform:translateX(14px)}.main{min-width:0;display:flex;flex-direction:column}.topbar{height:56px;border-bottom:1px solid var(--border-1);background:var(--bg-1);padding:0 24px;display:flex;align-items:center;gap:16px;position:-webkit-sticky;position:sticky;top:0;z-index:10}.topbar-title{font-family:var(--font-display);font-size:15px;font-weight:600;color:var(--text-0);letter-spacing:-.01em}.topbar-sub{font-family:var(--font-mono);font-size:11px;color:var(--text-2);padding-left:12px;border-left:1px solid var(--border-2)}.topbar-spacer{flex:1 1}.topbar-actions{gap:8px}.topbar-actions,.topbar-meta{display:flex;align-items:center}.topbar-meta{gap:6px;padding:6px 10px;border-radius:var(--r-sm);font-family:var(--font-mono);font-size:11px;color:var(--text-2);background:var(--bg-2);border:1px solid var(--border-1)}.status-dot{width:6px;height:6px;border-radius:50%;background:var(--success);box-shadow:0 0 6px var(--success-soft)}.page{padding:24px 28px 48px;max-width:1560px;width:100%;min-width:0}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid var(--border-1)}.page-title{font-family:var(--font-display);font-size:24px;font-weight:700;letter-spacing:-.02em;color:var(--text-0);margin:0}.page-sub{font-size:13px;color:var(--text-2);margin-top:4px}.page-header-actions{display:flex;gap:8px}.btn{justify-content:center;gap:6px;padding:8px 14px;color:var(--text-1);font-size:13px;transition:all .12s var(--ease);white-space:nowrap}.btn:hover{color:var(--text-0);border-color:var(--border-3)}.btn-primary{box-shadow:0 2px 8px var(--accent-soft)}.btn-primary:hover{color:#fff;border-color:var(--accent)}.btn-ghost{background:transparent;border-color:transparent}.btn-ghost:hover{background:var(--bg-2)}.btn-icon{padding:8px;width:34px;height:34px}.btn-sm{padding:5px 10px;font-size:12px}.btn-lg{padding:10px 18px;font-size:14px}.panel{overflow:hidden}.panel-header{justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--border-1)}.panel-header,.panel-title{display:flex;align-items:center}.panel-title{font-size:13.5px;gap:8px;letter-spacing:-.005em}.panel-title-sub{font-family:var(--font-mono);font-size:10.5px;color:var(--text-2);letter-spacing:.05em;text-transform:uppercase;padding-left:10px;border-left:1px solid var(--border-2)}.panel-body{padding:18px}.panel-body.flush{padding:0}.metric{background:var(--bg-1);border:1px solid var(--border-1);border-radius:var(--r-lg);padding:16px 18px;display:flex;flex-direction:column;gap:6px;position:relative;overflow:hidden}.metric-label{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.08em;display:flex;align-items:center;gap:6px}.metric-value{font-family:var(--font-display);font-size:26px;letter-spacing:-.02em;line-height:1.1;font-variant-numeric:tabular-nums;font-feature-settings:"tnum","tnum"}.metric-value.mono{font-size:22px}.metric-delta,.metric-value.mono{font-family:var(--font-mono);font-weight:500}.metric-delta{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;padding:2px 6px;border-radius:4px;width:-moz-fit-content;width:fit-content}.metric-delta.up{color:var(--success);background:var(--success-dim)}.metric-delta.down{color:var(--danger);background:var(--danger-dim)}.metric-delta.neutral{color:var(--text-2);background:var(--bg-2)}.metric-sparkline{position:absolute;bottom:0;right:0;left:0;height:32px;opacity:.6;pointer-events:none}.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-feature-settings:"tnum","tnum"}.muted{color:var(--text-2)}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 7px;border-radius:4px;font-size:10.5px;font-weight:500;letter-spacing:.02em;background:var(--bg-3);color:var(--text-1);text-transform:uppercase;white-space:nowrap}.badge-yes{background:var(--success-dim);color:var(--yes);border:1px solid var(--success-soft)}.badge-no{background:var(--danger-dim);color:var(--no);border:1px solid var(--danger-soft)}.badge-buy{background:var(--success-dim)}.badge-sell{background:var(--danger-dim)}.badge-skip{background:var(--warning-soft);color:var(--warning)}.badge-filled{background:var(--accent-soft);color:var(--accent)}.badge-partial{background:var(--info-soft);color:var(--info)}.table{width:100%;border-collapse:collapse;font-size:12.5px}.table thead th{text-align:left;padding:10px 14px;font-family:var(--font-mono);font-size:10.5px;font-weight:500;color:var(--text-2);text-transform:uppercase;letter-spacing:.06em;background:var(--bg-2);border-bottom:1px solid var(--border-1);position:-webkit-sticky;position:sticky;top:0;z-index:2;white-space:nowrap}.table thead th.right{text-align:right}.table thead th.center{text-align:center}.table tbody td{padding:11px 14px;border-bottom:1px solid var(--border-1);color:var(--text-1);vertical-align:middle}.table tbody td.right{text-align:right;font-family:var(--font-mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.table tbody td.center{text-align:center}.table tbody td.mono{font-family:var(--font-mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.table tbody tr{transition:background .1s var(--ease)}.table tbody tr.expanded,.table tbody tr.expanded+tr.expand-row,.table tbody tr:hover{background:var(--bg-2)}.table.compact tbody td{padding:7px 12px}.address{font-family:var(--font-mono);font-size:12px;color:var(--text-1);letter-spacing:0}.input,.select{width:100%;padding:8px 12px;background:var(--bg-2);border:1px solid var(--border-2);border-radius:var(--r-sm);color:var(--text-0);font-size:13px;transition:border-color .12s var(--ease);outline:none}.input:focus,.select:focus{border-color:var(--accent);background:var(--bg-1)}.input.mono{font-family:var(--font-mono)}.input-group{display:flex;flex-direction:column;gap:6px}.input-label{font-family:var(--font-mono);font-size:10.5px;color:var(--text-2);text-transform:uppercase;letter-spacing:.06em;display:flex;align-items:center;gap:6px}.input-hint{font-size:11px;color:var(--text-3);line-height:1.4}.input-addon{position:relative}.input-addon-prefix{left:10px}.input-addon-prefix,.input-addon-suffix{position:absolute;top:50%;transform:translateY(-50%);font-family:var(--font-mono);font-size:12px;color:var(--text-3);pointer-events:none}.input-addon-suffix{right:10px}.input-addon .input{padding-left:28px}.input-addon.suffix .input{padding-right:36px;padding-left:12px}.segmented{display:inline-flex;background:var(--bg-2);border:1px solid var(--border-2);border-radius:var(--r-md);padding:2px;gap:2px}.segmented-item{padding:6px 12px;border-radius:5px;font-size:12px;font-weight:500;color:var(--text-2);cursor:pointer;transition:all .12s var(--ease);border:none;background:transparent;white-space:nowrap}.segmented-item:hover{color:var(--text-0)}.segmented-item.active{background:var(--bg-4);color:var(--text-0);box-shadow:var(--shadow-sm)}.toggle{display:inline-flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.toggle-track{width:30px;height:18px;background:var(--bg-4);border-radius:9px;position:relative;transition:background .16s var(--ease)}.toggle-thumb{position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;transition:transform .18s var(--ease);box-shadow:0 1px 2px rgba(0,0,0,.2)}.toggle.on .toggle-track{background:var(--accent)}.toggle.on .toggle-thumb{transform:translateX(12px)}.range-wrap{display:flex;flex-direction:column;gap:4px}.range{-webkit-appearance:none;width:100%;height:4px;background:var(--bg-3);border-radius:2px;outline:none}.range::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;background:var(--accent);border-radius:50%;cursor:pointer;border:2px solid var(--bg-1);box-shadow:0 0 0 1px var(--accent)}.range::-moz-range-thumb{width:14px;height:14px;background:var(--accent);border-radius:50%;cursor:pointer;border:2px solid var(--bg-1)}.chip{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border:1px solid var(--border-2);font-size:12px;transition:all .12s var(--ease);-webkit-user-select:none;-moz-user-select:none;user-select:none}.chip:hover{border-color:var(--border-3)}.chip.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.grid{display:grid;grid-gap:14px;gap:14px}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}@media (max-width:1200px){.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}.stack{flex-direction:column;gap:14px}.row,.stack{display:flex}.row{align-items:center;gap:10px}.spacer{flex:1 1}.chart-svg{width:100%;display:block;overflow:visible}.chart-legend{display:flex;align-items:center;gap:16px;flex-wrap:wrap;font-size:12px;color:var(--text-2)}.legend-dot{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:11.5px}.legend-dot:before{content:"";width:10px;height:2px;background:var(--color,var(--text-2));border-radius:1px}.param-section{border:1px solid var(--border-1);border-radius:var(--r-lg);background:var(--bg-1);overflow:hidden;margin-bottom:12px}.param-section-header{display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--bg-2);border-bottom:1px solid var(--border-1)}.param-section-icon{width:22px;height:22px;border-radius:6px;display:grid;place-items:center;font-size:12px;color:#fff}.param-section-title{font-size:13px;font-weight:600;color:var(--text-0)}.param-section-sub{font-family:var(--font-mono);font-size:10.5px;color:var(--text-2);letter-spacing:.05em;margin-left:auto;text-transform:uppercase}.param-grid{padding:16px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px 20px;gap:14px 20px}.param-row{display:flex;flex-direction:column;gap:5px}.param-row-head{justify-content:space-between;gap:8px}.param-label,.param-row-head{display:flex;align-items:center}.param-label{font-size:12.5px;color:var(--text-1);font-weight:500;gap:6px}.param-hint{font-size:11px;color:var(--text-3);line-height:1.45}.info-icon{font-weight:700}.pipeline{display:flex;align-items:stretch;gap:0;padding:14px;background:var(--bg-0);border-radius:var(--r-md);border:1px solid var(--border-1);overflow-x:auto}.pipeline-step{flex:1 1;min-width:140px;padding:10px 12px;border-right:1px solid var(--border-1);display:flex;flex-direction:column;gap:4px;position:relative}.pipeline-step:last-child{border-right:none}.pipeline-step.fail:before,.pipeline-step.info:before,.pipeline-step.pass:before{content:"";position:absolute;top:0;left:0;right:0;height:2px}.pipeline-step.pass:before{background:var(--success)}.pipeline-step.fail:before{background:var(--danger)}.pipeline-step.info:before{background:var(--info)}.pipeline-step.skip:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--text-3)}.pipeline-step-num{font-family:var(--font-mono);font-size:10px;color:var(--text-3);text-transform:uppercase;letter-spacing:.08em}.pipeline-step-title{font-size:12px;font-weight:600;color:var(--text-0)}.pipeline-step-value{font-family:var(--font-mono);font-size:11.5px;color:var(--text-1)}.pipeline-step-note{font-size:10.5px;color:var(--text-3);line-height:1.3}.fee-row{display:flex;align-items:center;justify-content:space-between;padding:7px 12px;border-bottom:1px dashed var(--border-1);font-family:var(--font-mono);font-size:11.5px}.fee-row:last-child{border-bottom:none;font-weight:600;color:var(--text-0);padding-top:9px;border-top:1px solid var(--border-2)}.heat-grid{grid-template-columns:40px repeat(12,1fr);grid-gap:3px;gap:3px;font-family:var(--font-mono)}.heat-cell,.heat-grid{display:grid;font-size:10px}.heat-cell{aspect-ratio:1;border-radius:3px;place-items:center;color:#fff;cursor:default;transition:transform .12s var(--ease);font-weight:500}.heat-cell:hover{transform:scale(1.15);z-index:2;box-shadow:var(--shadow-md)}.heat-label{color:var(--text-2);display:grid;place-items:center;font-size:10px}.pbar{height:4px;background:var(--bg-3);overflow:hidden;position:relative}.pbar,.pbar-fill{border-radius:2px}.pbar-fill{height:100%;background:var(--accent);transition:width .4s var(--ease)}.pbar-split{display:flex;height:6px;background:var(--bg-3);border-radius:3px;overflow:hidden}.stat-row{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px dashed var(--border-1);font-size:12.5px}.stat-row:last-child{border-bottom:none}.stat-label{color:var(--text-2)}.stat-value{font-family:var(--font-mono);color:var(--text-0);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}@keyframes fadein{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.page>*{animation:fadein .3s var(--ease) both}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.3}}.status-dot.live{animation:pulse-dot 2s ease-in-out infinite}.expand-detail{animation:fadein .2s var(--ease)}.skeleton{background:linear-gradient(90deg,var(--bg-2) 0,var(--bg-3) 50%,var(--bg-2) 100%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--r-sm)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.kbd{display:inline-block;padding:1px 5px;font-family:var(--font-mono);font-size:10px;color:var(--text-2);background:var(--bg-2);border:solid var(--border-2);border-width:1px 1px 2px;border-radius:3px}.flow-step-mini{display:flex;align-items:center;gap:10px;padding:8px 4px;position:relative}.flow-step-mini:not(:last-child):after{content:"";position:absolute;left:13px;top:30px;bottom:-4px;width:1.5px;background:var(--border-1)}.flow-step-mini.done:not(:last-child):after{background:var(--success)}.flow-step-dot{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-family:var(--font-mono);font-size:11px;font-weight:600;flex-shrink:0;z-index:1;transition:all .16s var(--ease)}.flow-step-dot.pending{background:var(--bg-2);border:1.5px solid var(--border-2);color:var(--text-3)}.flow-step-dot.current{background:var(--accent);color:#fff;box-shadow:0 0 0 4px var(--accent-soft)}.flow-step-dot.done{background:var(--success);color:#fff}.detail-header{font-family:var(--font-mono);font-size:10.5px;color:var(--text-3);text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px;padding-bottom:4px;border-bottom:1px solid var(--border-1);font-weight:500}.nav-item.locked{pointer-events:none}.spin{width:12px;height:12px;border:1.5px solid;border-top:1.5px solid transparent;border-radius:50%;display:inline-block;animation:spin .7s linear infinite;margin-right:4px}@keyframes spin{to{transform:rotate(1turn)}}.info-icon{display:inline-grid;place-items:center;width:13px;height:13px;border-radius:50%;background:var(--bg-3);color:var(--text-3);font-size:9px;font-family:var(--font-mono);font-weight:600;margin-left:5px;cursor:help;font-style:normal}.app-shell{display:flex;min-height:100vh;background:var(--bg-0)}.app-main{flex:1 1;overflow-y:auto;padding:32px 40px;font-family:var(--font-sans);color:var(--text-0)}.sidebar{width:240px;background:var(--bg-1);border-right:1px solid var(--border-1);display:flex;flex-direction:column;padding:24px 16px;position:-webkit-sticky;position:sticky;top:0;height:100vh}.sidebar-brand{display:flex;align-items:center;gap:12px;font-family:var(--font-display);font-size:18px;font-weight:700;color:var(--text-0);margin-bottom:32px;padding:0 8px}.sidebar-brand-mark{background:var(--accent);color:#fff;padding:6px 10px;border-radius:var(--r-sm);font-size:13px}.sidebar-nav{display:flex;flex-direction:column;gap:4px;flex:1 1}.sidebar-link{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--r-md);color:var(--text-1);text-decoration:none;font-size:14px;font-weight:500;transition:background .15s var(--ease),color .15s var(--ease)}.sidebar-link:hover{background:var(--bg-3);color:var(--text-0)}.sidebar-link.is-active{background:var(--accent-soft);color:var(--accent)}.sidebar-link-emoji{font-size:16px}.sidebar-theme-toggle{background:var(--bg-2);border:1px solid var(--border-2);color:var(--text-1);padding:8px 12px;border-radius:var(--r-md);font-size:13px;cursor:pointer;transition:background .15s var(--ease)}.sidebar-theme-toggle:hover{background:var(--bg-3);color:var(--text-0)}.page{max-width:1280px;margin:0 auto;display:flex;flex-direction:column;gap:24px}.page-header h1{font-family:var(--font-display);font-size:28px;font-weight:700;color:var(--text-0);margin:0 0 8px}.page-subtitle{color:var(--text-2);font-size:14px;margin:0}.panel{background:var(--bg-1);border:1px solid var(--border-1);border-radius:var(--r-lg);padding:20px 24px;display:flex;flex-direction:column;gap:16px}.panel-title{font-family:var(--font-display);font-size:16px;font-weight:600;color:var(--text-0);margin:0}.panel-help{font-size:13px;color:var(--text-2);margin:0}.panel-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px}.panel-footer{display:flex;justify-content:flex-end;gap:12px;padding-top:8px;border-top:1px solid var(--border-1)}.metric-grid{display:grid;grid-gap:12px;gap:12px}.metric-grid-3{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.metric-grid-4{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.metric-card{background:var(--bg-2);border:1px solid var(--border-1);border-radius:var(--r-md);padding:16px;display:flex;flex-direction:column;gap:4px}.metric-card.metric-tone-success{border-left:3px solid var(--success)}.metric-card.metric-tone-danger{border-left:3px solid var(--danger)}.metric-card.metric-tone-warning{border-left:3px solid var(--warning)}.metric-label{font-size:12px;color:var(--text-2);text-transform:uppercase;letter-spacing:.04em}.metric-value{font-family:var(--font-mono);font-size:24px;font-weight:600;color:var(--text-0)}.metric-subtext{font-size:12px;color:var(--text-2)}.chip-row{display:flex;flex-wrap:wrap;gap:8px}.chip{padding:6px 12px;border-radius:999px;background:var(--bg-2);border:1px solid var(--border-1);color:var(--text-1);font-size:13px;cursor:pointer;transition:all .15s var(--ease)}.chip:hover{background:var(--bg-3);color:var(--text-0)}.chip.is-active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.chip.is-static{cursor:default}.btn{padding:10px 16px;border-radius:var(--r-md);border:1px solid var(--border-2);background:var(--bg-2);color:var(--text-0);font-size:14px;font-weight:500;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:8px;transition:background .15s var(--ease)}.btn:hover{background:var(--bg-3)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent);filter:brightness(1.1)}.btn-secondary{background:var(--bg-1);border-color:var(--border-2)}.btn-tiny{padding:4px 10px;font-size:12px}.data-table{width:100%;border-collapse:collapse;font-size:14px}.data-table td,.data-table th{padding:10px 12px;text-align:left;border-bottom:1px solid var(--border-1)}.data-table th{font-weight:600;color:var(--text-2);font-size:12px;text-transform:uppercase;letter-spacing:.04em}.data-table td.num,.data-table th.num{text-align:right}.data-table .pos{color:var(--success)}.data-table .neg{color:var(--danger)}.data-table .mono{font-family:var(--font-mono)}.row-expanded>td{background:var(--bg-2);padding:16px 20px}.row-best{background:var(--success-dim)}.audit-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;grid-gap:24px;gap:24px;align-items:start}.audit-grid h4{font-size:13px;font-weight:600;color:var(--text-2);margin:0 0 8px;text-transform:uppercase;letter-spacing:.04em}.distribution-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}.distribution-list li{display:flex;justify-content:space-between;font-size:13px}.exclusion-flags{margin-top:8px;font-size:12px;color:var(--warning)}.filter-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));grid-gap:8px;gap:8px}.filter-toggle{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--bg-2);border:1px solid var(--border-1);border-radius:var(--r-sm);font-size:14px;cursor:pointer}.filter-toggle:hover{background:var(--bg-3)}.filter-numerics{display:flex;flex-wrap:wrap;gap:24px;padding-top:8px}.filter-numerics label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--text-2)}.filter-numerics input[type=range]{width:200px}.filter-numerics input[type=number]{background:var(--bg-2);border:1px solid var(--border-2);color:var(--text-0);border-radius:var(--r-sm);padding:6px 10px;width:120px;font-family:var(--font-mono)}.select{background:var(--bg-2);border:1px solid var(--border-2);color:var(--text-0);padding:8px 12px;border-radius:var(--r-md);font-size:14px;min-width:200px}.badge{display:inline-block;padding:2px 8px;border-radius:var(--r-xs);font-size:11px;font-weight:600;font-family:var(--font-mono);margin-right:8px}.badge-buy{background:var(--success-soft);color:var(--success)}.badge-sell{background:var(--danger-soft);color:var(--danger)}.badge-success{background:var(--success-soft);color:var(--success)}.json-block{background:var(--bg-0);border:1px solid var(--border-1);border-radius:var(--r-sm);padding:16px;font-family:var(--font-mono);font-size:12px;color:var(--text-1);overflow-x:auto;margin:0}.setting-row{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:12px 0;border-bottom:1px solid var(--border-1)}.setting-row:last-child{border-bottom:none}.setting-label{font-size:14px;font-weight:500;color:var(--text-0)}.setting-help{font-size:12px;color:var(--text-2);margin-top:2px}.recommendation-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:12px;gap:12px}.recommendation-card{background:var(--success-dim);border:1px solid var(--success);border-radius:var(--r-md);padding:16px}.recommendation-label{font-size:12px;color:var(--success);text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px}.recommendation-value{font-family:var(--font-display);font-size:20px;font-weight:700;color:var(--text-0)}.recommendation-detail{font-size:13px;color:var(--text-1);margin-top:4px}.mono,.recommendation-detail{font-family:var(--font-mono)}.num{text-align:right}.pos{color:var(--success)}.neg{color:var(--danger)}