@font-face{font-family:Clash Display;src:url(/fonts/clash-display-600.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Clash Display;src:url(/fonts/clash-display-700.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Satoshi;src:url(/fonts/satoshi-400.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Satoshi;src:url(/fonts/satoshi-500.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Satoshi;src:url(/fonts/satoshi-700.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:"Instrument Serif";src:url(/fonts/instrument-serif-400.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122}@font-face{font-family:"Instrument Serif";src:url(/fonts/instrument-serif-400-ext.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0100-024F,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF}@font-face{font-family:"Instrument Serif";src:url(/fonts/instrument-serif-italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122}@font-face{font-family:"Instrument Serif";src:url(/fonts/instrument-serif-italic-ext.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap;unicode-range:U+0100-024F,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF}:root{--bg-app: #16130f;--bg-sunken: #100e0b;--bg-surface: #201b16;--bg-surface-2: #262019;--bg-surface-3: #2d261e;--bg-overlay: rgba(12, 10, 8, .72);--border: #332b22;--border-strong: #453a2e;--border-focus: #2fa476;--text: #f2ede6;--text-muted: #b3a898;--text-subtle: #a89d8d;--text-inverse: #16130f;--brand: #2fa476;--brand-strong: #1d8a60;--brand-soft: rgba(47, 164, 118, .14);--brand-ring: rgba(47, 164, 118, .35);--accent: #d9c8a7;--success: #34d399;--success-soft: rgba(52, 211, 153, .14);--warning: #fbbf24;--warning-soft: rgba(251, 191, 36, .14);--danger: #f87171;--danger-soft: rgba(248, 113, 113, .14);--info: #60a5fa;--info-soft: rgba(96, 165, 250, .14);--score-low: #f87171;--score-mid: #fbbf24;--score-high: #34d399;--aurora-1: rgba(47, 164, 118, .1);--aurora-2: rgba(217, 200, 167, .06);--aurora-3: rgba(47, 164, 118, .05);--aurora-4: rgba(217, 200, 167, .04);--app-glow: radial-gradient(60% 50% at 12% 0%, var(--aurora-1), transparent 60%), radial-gradient(45% 45% at 100% 8%, var(--aurora-2), transparent 55%), radial-gradient(55% 60% at 85% 100%, var(--aurora-3), transparent 60%);--grad-brand: linear-gradient(135deg, #178a63 0%, #2fa476 60%, #4dbd8c 100%);--grad-brand-soft: linear-gradient(135deg, rgba(47,164,118,.18), rgba(217,200,167,.1));--grad-cyan: linear-gradient(135deg, #4dbd8c, #d9c8a7);--hairline: linear-gradient(180deg, rgba(255,255,255,.1), rgba(255,255,255,.02) 40%, transparent);--glow-brand: 0 0 0 1px rgba(47,164,118,.2), 0 8px 30px rgba(47,164,118,.16);--glow-soft: 0 10px 40px rgba(0,0,0,.45), 0 1px 0 rgba(255,255,255,.04) inset;--glass-bg: rgba(30, 25, 20, .55);--glass-brd: rgba(255, 255, 255, .08);--font-sans: "Satoshi", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-display: "Satoshi", "Clash Display", var(--font-sans);--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--fs-xs: .75rem;--fs-sm: .875rem;--fs-base: 1rem;--fs-md: 1.0625rem;--fs-lg: 1.1875rem;--fs-xl: 1.375rem;--fs-2xl: 1.75rem;--fs-3xl: 2.25rem;--fw-regular: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--lh-tight: 1.2;--lh-normal: 1.6;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-10: 40px;--sp-12: 48px;--sp-16: 64px;--radius-sm: 4px;--radius: 6px;--radius-lg: 10px;--radius-xl: 12px;--radius-pill: 999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .28);--shadow: 0 3px 12px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 30px rgba(0, 0, 0, .4);--shadow-focus: 0 0 0 2px var(--bg-app), 0 0 0 4px #4dbd8c;--sidebar-w: 248px;--sidebar-w-collapsed: 68px;--topbar-h: 60px;--content-max: 1320px;--ease: cubic-bezier(.2, .8, .2, 1);--dur-fast: .12s;--dur: .18s;--dur-slow: .26s;--z-sticky: 20;--z-drawer: 40;--z-modal: 60;--z-toast: 80}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font-sans);font-size:var(--fs-base);line-height:var(--lh-normal);color:var(--text);background:var(--bg-app);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer}h1,h2,h3,h4{margin:0;line-height:var(--lh-tight);font-weight:var(--fw-semibold);letter-spacing:-.01em}:focus-visible{outline:none;box-shadow:var(--shadow-focus);border-radius:var(--radius-sm)}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:var(--app-glow);opacity:.9}.page-title{font-family:"Instrument Serif",Georgia,serif;font-weight:400;letter-spacing:-.01em}.metric-value{font-family:var(--font-display);font-weight:700}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-app);border-radius:999px}::-webkit-scrollbar-thumb{background:#8391a84d;border-radius:999px;border:2px solid var(--bg-app)}::-webkit-scrollbar-thumb:hover{background:var(--brand)}*{scrollbar-width:thin;scrollbar-color:rgba(131,145,168,.3) var(--bg-app)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);padding:0 var(--sp-4);height:38px;border-radius:var(--radius);border:1px solid transparent;font-size:var(--fs-base);font-weight:var(--fw-medium);transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),transform var(--dur-fast) var(--ease);white-space:nowrap}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--grad-brand);color:#fff;box-shadow:0 2px 12px #2fa47640}.btn-primary:hover{filter:brightness(1.08);box-shadow:0 6px 22px #2fa47666}.btn-secondary{background:var(--bg-surface-3);color:var(--text);border-color:var(--border)}.btn-secondary:hover{background:var(--bg-surface-2);border-color:var(--border-strong)}.btn-ghost{background:transparent;color:var(--text-muted)}.btn-ghost:hover{background:var(--bg-surface-2);color:var(--text)}.btn-danger{background:var(--danger-soft);color:var(--danger);border-color:#f8717159}.btn-sm{height:30px;padding:0 var(--sp-3);font-size:var(--fs-sm)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-block{width:100%}.field{display:flex;flex-direction:column;gap:var(--sp-2);margin-bottom:var(--sp-4)}.field label{font-size:var(--fs-sm);color:var(--text-muted);font-weight:var(--fw-medium)}.input,.select{width:100%;height:40px;padding:0 var(--sp-3);background:var(--bg-surface-3);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-size:var(--fs-base);transition:border-color var(--dur) var(--ease)}.input:focus,.select:focus{border-color:var(--border-focus);outline:none;box-shadow:var(--shadow-focus)}.input::placeholder{color:var(--text-subtle)}.card{position:relative;background:linear-gradient(180deg,rgba(255,255,255,.02),transparent 30%),var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-5);box-shadow:0 1px #ffffff08 inset,0 8px 30px #00000047}.card:after{content:"";position:absolute;left:16px;right:16px;top:0;height:1px;background:var(--hairline);opacity:.7}.card-header{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-4)}.card-title{font-size:var(--fs-md);font-weight:var(--fw-semibold);letter-spacing:-.01em}.card-sub{font-size:var(--fs-sm);color:var(--text-muted)}.metric{background:radial-gradient(120% 100% at 0% 0%,rgba(47,164,118,.1),transparent 55%),linear-gradient(180deg,rgba(255,255,255,.03),transparent 40%),var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-5);display:flex;flex-direction:column;gap:6px;position:relative;overflow:hidden;box-shadow:0 8px 30px #00000047}.metric:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--grad-brand);opacity:.85;box-shadow:0 0 16px #2fa47680}.metric:after{content:"";position:absolute;right:-30px;top:-30px;width:120px;height:120px;background:radial-gradient(circle,var(--aurora-2),transparent 70%);opacity:.6;pointer-events:none}.metric-label{font-size:var(--fs-sm);color:var(--text-muted);font-weight:var(--fw-medium);position:relative;z-index:1}.metric-value{font-size:clamp(1.9rem,2.6vw,2.6rem);font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.03em;position:relative;z-index:1;line-height:1.05}.metric-explain{font-size:var(--fs-xs);color:var(--text-subtle);line-height:1.45;position:relative;z-index:1}.metric-period{font-size:var(--fs-xs);color:var(--text-subtle);text-transform:uppercase;letter-spacing:.06em;position:relative;z-index:1}.badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:var(--radius-pill);font-size:var(--fs-xs);font-weight:var(--fw-medium);border:1px solid transparent;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.badge-neutral{background:var(--bg-surface-3);color:var(--text-muted);border-color:var(--border)}.badge-success{background:var(--success-soft);color:var(--success);border-color:#34d39940}.badge-warning{background:var(--warning-soft);color:var(--warning);border-color:#fbbf2440}.badge-danger{background:var(--danger-soft);color:var(--danger);border-color:#f8717140}.badge-info{background:var(--info-soft);color:var(--info);border-color:#60a5fa40}.badge-brand{background:var(--brand-soft);color:#7ad3ab;border-color:#2fa4764d}.badge .dot{width:6px;height:6px;border-radius:50%;background:currentColor;box-shadow:0 0 8px currentColor}.score{display:inline-flex;align-items:baseline;gap:3px;font-variant-numeric:tabular-nums;font-weight:var(--fw-bold)}.score-low{color:var(--score-low)}.score-mid{color:var(--score-mid)}.score-high{color:var(--score-high)}.score small{font-size:.7em;color:var(--text-subtle);font-weight:var(--fw-regular)}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-lg)}table.data{width:100%;border-collapse:collapse;font-size:var(--fs-base)}table.data th{text-align:left;padding:var(--sp-3) var(--sp-4);font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--text-subtle);text-transform:uppercase;letter-spacing:.05em;background:var(--bg-surface-2);border-bottom:1px solid var(--border);white-space:nowrap}table.data td{padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border);vertical-align:middle}table.data tr:last-child td{border-bottom:none}table.data tbody tr:hover{background:var(--bg-surface-2)}.state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--sp-12) var(--sp-6);gap:var(--sp-2);color:var(--text-muted)}.state-icon{width:44px;height:44px;border-radius:var(--radius);background:var(--bg-surface-3);display:grid;place-items:center;color:var(--text-subtle);margin-bottom:var(--sp-2)}.state-title{font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--text)}.state-body{font-size:var(--fs-sm);max-width:42ch}.skeleton{background:linear-gradient(90deg,var(--bg-surface-2) 25%,var(--bg-surface-3) 37%,var(--bg-surface-2) 63%);background-size:400% 100%;animation:shimmer 1.4s ease infinite;border-radius:var(--radius-sm)}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.spinner{width:18px;height:18px;border:2px solid var(--border-strong);border-top-color:var(--brand);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.toast-wrap{position:fixed;bottom:var(--sp-5);right:var(--sp-5);z-index:var(--z-toast);display:flex;flex-direction:column;gap:var(--sp-2)}.toast{background:var(--bg-surface-2);border:1px solid var(--border-strong);border-radius:var(--radius);padding:var(--sp-3) var(--sp-4);box-shadow:var(--shadow-lg);font-size:var(--fs-sm);max-width:340px;animation:toastSpring .4s cubic-bezier(.34,1.56,.64,1) both}.toast-success{border-left:3px solid var(--success)}.toast-error{border-left:3px solid var(--danger)}@keyframes toastSpring{0%{opacity:0;transform:translate(30px) scale(.95)}to{opacity:1;transform:translate(0) scale(1)}}.grid{display:grid;gap:var(--sp-4)}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-auto{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.stack{display:flex;flex-direction:column;gap:var(--sp-4)}.row{display:flex;align-items:center;gap:var(--sp-3)}.between{justify-content:space-between}.muted{color:var(--text-muted)}.subtle{color:var(--text-subtle)}.text-sm{font-size:var(--fs-sm)}.text-xs{font-size:var(--fs-xs)}.tnum{font-variant-numeric:tabular-nums}.mt-2{margin-top:var(--sp-2)}.mt-4{margin-top:var(--sp-4)}.mt-6{margin-top:var(--sp-6)}.pipeline-bars{display:flex;align-items:flex-end;gap:var(--sp-2);overflow-x:auto;padding-top:var(--sp-2)}.pipeline-col{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);min-width:64px;flex:1}.pipeline-count{font-size:var(--fs-md);font-weight:var(--fw-bold)}.pipeline-bar{width:100%;max-width:46px;background:var(--grad-brand);border-radius:var(--radius-sm) var(--radius-sm) 3px 3px;min-height:8px;box-shadow:0 0 20px #2fa47659;transition:filter var(--dur) var(--ease)}.pipeline-col:hover .pipeline-bar{filter:brightness(1.2)}.pipeline-stage{font-size:var(--fs-xs);color:var(--text-muted);text-align:center;white-space:nowrap}.hero-metric{position:relative;border-radius:var(--radius-xl);overflow:hidden;border:1px solid var(--glass-brd);background:radial-gradient(80% 120% at 100% 0%,var(--aurora-2),transparent 55%),radial-gradient(70% 120% at 0% 100%,var(--aurora-3),transparent 55%),linear-gradient(180deg,#241e17,#14110d);box-shadow:var(--glow-soft)}.hero-metric:before{content:"";position:absolute;left:24px;right:24px;top:0;height:1px;background:var(--hairline)}.hero-metric-inner{padding:clamp(24px,4vw,44px);position:relative;z-index:1}.hero-eyebrow{font-size:.78rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted)}.hero-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(24px,4vw,48px);align-items:center}.hero-value{font-family:var(--font-display);font-weight:700;letter-spacing:-.04em;line-height:.95;font-size:clamp(3rem,6.5vw,5.5rem);color:#fff;background:linear-gradient(180deg,#fff,#d9c8a7);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;text-shadow:0 0 60px rgba(47,164,118,.35)}.hero-explain{color:var(--text-muted);font-size:var(--fs-sm);margin-top:10px;max-width:42ch}.hero-pills{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}.hero-pill{font-size:var(--fs-xs);color:var(--text-muted);background:#ffffff0a;border:1px solid var(--glass-brd);border-radius:var(--radius-pill);padding:5px 12px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.hero-pill b{color:var(--text);font-variant-numeric:tabular-nums}.hero-chart-title{font-size:var(--fs-xs);color:var(--text-subtle);text-transform:uppercase;letter-spacing:.08em;margin-bottom:14px}.hero-bars{display:flex;align-items:flex-end;gap:8px;height:160px}.hero-bar-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end}.hero-bar-track{width:100%;max-width:34px;flex:1;display:flex;align-items:flex-end}.hero-bar-fill{width:100%;border-radius:6px 6px 2px 2px;background:linear-gradient(180deg,#4dbd8c,#2fa476 70%,#d9c8a7);box-shadow:0 0 18px #4dbd8c66;min-height:4px;animation:barGrow .8s var(--ease) both}@keyframes barGrow{0%{transform:scaleY(0)}to{transform:scaleY(1)}}.hero-bar-fill{transform-origin:bottom}.hero-bar-count{font-size:var(--fs-xs);font-weight:600;color:var(--text)}.hero-bar-label{font-size:.65rem;color:var(--text-subtle);text-transform:uppercase;letter-spacing:.04em}@media (max-width: 820px){.hero-grid{grid-template-columns:1fr}.hero-bars{height:130px}}@media (prefers-reduced-motion: reduce){.hero-bar-fill{animation:none}}.wip{border:1px dashed var(--border-strong);border-radius:var(--radius-lg);padding:var(--sp-10) var(--sp-6);text-align:center;color:var(--text-muted)}.wip .wip-badge{display:inline-block;margin-bottom:var(--sp-3)}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--sp-4)}@media (max-width: 640px){.form-grid{grid-template-columns:1fr}}@media (max-width: 768px){.grid-2,.grid-3{grid-template-columns:1fr}}.mobile-only{display:none}@media (max-width: 1024px){.mobile-only{display:grid}}@keyframes scrimFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalSpringIn{0%{opacity:0;transform:scale(.95) translateY(20px)}60%{opacity:1;transform:scale(1.02) translateY(-2px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal);background:var(--bg-overlay);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:var(--sp-4);animation:scrimFadeIn .25s var(--ease) both}.l-bulkbar{position:sticky;top:70px;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:12px 18px;border-radius:var(--radius);background:var(--bg-surface-2);border:1px solid var(--border-strong);box-shadow:var(--shadow);animation:scrimFadeIn .2s var(--ease) both}@media (max-width: 640px){.modal-scrim{align-items:flex-end;padding:0}.modal-panel{max-height:85vh;border-radius:20px 20px 0 0;animation:slideUpBottom .35s cubic-bezier(.16,1,.3,1) both}}@keyframes slideUpBottom{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media (pointer: coarse),(max-width: 768px){.btn-sm,.icon-btn{min-height:44px;min-width:44px}}@media (prefers-reduced-motion: reduce){.modal-scrim,.modal-panel{animation:none!important}}.btn-primary{position:relative;overflow:hidden}.btn-primary:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-120%);background:linear-gradient(100deg,transparent,rgba(255,255,255,.18),transparent);transition:transform var(--dur-slow, .26s) var(--ease)}.btn-primary:hover:after{transform:translate(120%)}table.data tbody tr{transition:background var(--dur) var(--ease)}.card,.metric{transition:border-color var(--dur) var(--ease),transform var(--dur) var(--ease)}@keyframes routeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.route-fade{animation:routeIn .42s var(--ease) both}.metric{transition:transform var(--dur) var(--ease),border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.metric:hover{transform:translateY(-2px);border-color:var(--border-strong);box-shadow:var(--shadow)}.metric:before{transition:opacity var(--dur) var(--ease),height var(--dur) var(--ease)}.metric:hover:before{opacity:1}.card{transition:transform var(--dur) var(--ease),border-color var(--dur) var(--ease)}table.data tbody tr{transition:background var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease)}table.data tbody tr:hover{transform:translate(2px)}.badge{transition:transform var(--dur-fast) var(--ease)}.btn{transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),transform var(--dur-fast) var(--ease),box-shadow var(--dur) var(--ease)}.btn-primary:hover{box-shadow:0 4px 14px var(--brand-ring)}.metric-value{transition:color var(--dur) var(--ease);font-feature-settings:"tnum"}@media (prefers-reduced-motion: reduce){.route-fade>*,.route-fade{animation:none}.metric:hover,.card:hover,table.data tbody tr:hover{transform:none}}.metric-value{transition:color var(--dur) var(--ease)}@media (prefers-reduced-motion: reduce){.route-fade{animation:none}.btn-primary:after{display:none}}.nav-item{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:var(--radius);color:var(--text-muted);text-decoration:none;font-size:.92rem;font-weight:500;transition:all .2s var(--ease);position:relative;margin-bottom:3px}.nav-item:hover{color:var(--text);background:#ffffff0a}.nav-item.active{color:#fff;background:linear-gradient(90deg,#2fa47638,#2fa4760f);border:1px solid rgba(47,164,118,.35);box-shadow:0 0 16px #2fa47626}.nav-item.active:before{content:"";position:absolute;left:-2px;top:15%;bottom:15%;width:3px;background:var(--brand);border-radius:4px;box-shadow:0 0 10px var(--brand)}.nav-icon-wrap{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;background:#ffffff08;color:var(--text-muted);transition:all .2s var(--ease)}.nav-item:hover .nav-icon-wrap{color:var(--accent);background:#ffffff14}.nav-item.active .nav-icon-wrap{color:#7ad3ab;background:#2fa47640;box-shadow:0 0 12px #2fa47666}@media (max-width: 768px){.grid-2,.grid-3{grid-template-columns:1fr!important}.card{padding:var(--sp-4)!important}.page-title{font-size:1.5rem!important}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}*{word-break:break-word;overflow-wrap:anywhere}}.shell{display:grid;grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh}.shell.collapsed{grid-template-columns:var(--sidebar-w-collapsed) 1fr}.sidebar{background:radial-gradient(80% 30% at 0% 0%,var(--aurora-1),transparent 60%),var(--bg-sunken);border-right:1px solid var(--border);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow:hidden}.sidebar-brand{display:flex;align-items:center;gap:var(--sp-2);height:var(--topbar-h);padding:0 var(--sp-4);border-bottom:1px solid var(--border);font-family:var(--font-display);font-weight:700;letter-spacing:-.02em;font-size:1.05rem}.sidebar-brand .mark{width:28px;height:28px;border-radius:8px;background:var(--grad-brand);display:grid;place-items:center;font-size:14px;color:#fff;flex-shrink:0;box-shadow:0 4px 14px #2fa47673}.sidebar.collapsed-inner .brand-text{display:none}.sidebar-nav{flex:1;overflow-y:auto;padding:var(--sp-4) var(--sp-3);display:flex;flex-direction:column;gap:3px}.nav-item{position:relative;display:flex;align-items:center;gap:var(--sp-3);padding:9px var(--sp-3);border-radius:var(--radius);color:var(--text-muted);font-size:var(--fs-base);font-weight:var(--fw-medium);transition:background var(--dur) var(--ease),color var(--dur) var(--ease);white-space:nowrap}.nav-item:hover{background:var(--bg-surface);color:var(--text)}.nav-item.active{background:var(--grad-brand-soft);color:#dbe0ff;box-shadow:inset 0 0 0 1px #2fa47638}.nav-item.active:before{content:"";position:absolute;left:-3px;top:50%;transform:translateY(-50%);width:3px;height:20px;border-radius:3px;background:var(--grad-brand);box-shadow:0 0 12px #2fa476cc}.nav-item .icon{width:18px;text-align:center;flex-shrink:0;opacity:.9}.nav-item.active .icon{opacity:1}.sidebar-foot{padding:var(--sp-3);border-top:1px solid var(--border)}.collapse-btn{width:100%}.main{display:flex;flex-direction:column;min-width:0}.topbar{height:var(--topbar-h);display:flex;align-items:center;gap:var(--sp-3);padding:0 var(--sp-5);border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--bg-app) 88%,transparent);position:sticky;top:0;z-index:var(--z-sticky);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.breadcrumb{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);color:var(--text-muted);min-width:0}.breadcrumb .sep{color:var(--text-subtle)}.breadcrumb .current{color:var(--text);font-weight:var(--fw-medium)}.topbar-spacer{flex:1}.topbar-search{display:flex;align-items:center;gap:var(--sp-2);background:var(--bg-surface-3);border:1px solid var(--border);border-radius:var(--radius);padding:0 var(--sp-3);height:34px;color:var(--text-subtle);font-size:var(--fs-sm);min-width:200px}.topbar-search input{background:transparent;border:none;color:var(--text);outline:none;width:100%;font-size:var(--fs-sm)}.icon-btn{width:34px;height:34px;display:grid;place-items:center;border-radius:var(--radius);background:transparent;border:1px solid transparent;color:var(--text-muted);position:relative}.icon-btn:hover{background:var(--bg-surface-2);color:var(--text)}.icon-btn .badge-count{position:absolute;top:2px;right:2px;min-width:15px;height:15px;padding:0 3px;border-radius:8px;background:var(--danger);color:#fff;font-size:9px;font-weight:700;display:grid;place-items:center}.avatar{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,var(--brand),#d9c8a7);color:#fff;display:grid;place-items:center;font-size:var(--fs-sm);font-weight:var(--fw-semibold)}.trial-banner{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:9px var(--sp-5);background:linear-gradient(90deg,#2fa47629,#d9c8a71a);border-bottom:1px solid rgba(47,164,118,.28);font-size:var(--fs-sm);color:#dbe0ff}.trial-banner-dot{width:7px;height:7px;border-radius:50%;background:var(--brand);box-shadow:0 0 10px var(--brand)}.trial-banner-sep{color:var(--text-subtle)}.trial-banner-limit{color:var(--text-muted)}.trial-banner-cta{margin-left:auto;color:#fff;font-weight:600;text-decoration:none;white-space:nowrap}.trial-banner-cta:hover{text-decoration:underline}@media (max-width: 640px){.trial-banner-cta{margin-left:0}}.trial-expired{min-height:calc(100vh - var(--topbar-h));display:grid;place-items:center;padding:var(--sp-6)}.trial-expired-card{max-width:520px;text-align:center;padding:clamp(28px,5vw,48px);background:radial-gradient(90% 80% at 50% 0%,var(--aurora-2),transparent 60%),var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--radius-xl);box-shadow:var(--glow-soft)}.trial-expired-title{font-family:var(--font-display);font-weight:700;font-size:clamp(1.4rem,3vw,2rem);margin-bottom:12px;letter-spacing:-.02em}.trial-expired-body{color:var(--text-muted);font-size:var(--fs-md);line-height:1.55;max-width:42ch;margin:0 auto 8px}.content{padding:var(--sp-6) var(--sp-5);max-width:var(--content-max);width:100%;margin:0 auto}.page-head{margin-bottom:var(--sp-5)}.page-title{font-size:var(--fs-xl);font-weight:var(--fw-bold);letter-spacing:-.02em}.page-sub{color:var(--text-muted);font-size:var(--fs-sm);margin-top:2px}.menu-pop{position:absolute;top:calc(100% + 6px);right:0;background:var(--bg-surface-2);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-lg);min-width:220px;z-index:var(--z-drawer);overflow:hidden}.menu-item{display:flex;align-items:center;gap:var(--sp-2);width:100%;padding:var(--sp-2) var(--sp-3);background:transparent;border:none;color:var(--text);font-size:var(--fs-sm);text-align:left}.menu-item:hover{background:var(--bg-surface-3)}.menu-sep{height:1px;background:var(--border)}.menu-head,.notif-item{padding:var(--sp-3);border-bottom:1px solid var(--border);font-size:var(--fs-sm)}.notif-item.unread{background:var(--brand-soft)}.notif-item .n-title{font-weight:var(--fw-medium)}.notif-item .n-time{color:var(--text-subtle);font-size:var(--fs-xs)}.preview-banner{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);background:var(--warning-soft);border-bottom:1px solid rgba(251,191,36,.35);color:var(--warning);padding:var(--sp-2) var(--sp-5);font-size:var(--fs-sm);font-weight:var(--fw-medium)}.mobile-topbar,.scrim{display:none}@media (max-width: 1024px){.shell,.shell.collapsed{grid-template-columns:1fr}.sidebar{position:fixed;left:0;top:0;z-index:var(--z-modal);width:var(--sidebar-w);transform:translate(-100%);transition:transform var(--dur-slow) var(--ease)}.sidebar.open{transform:none;box-shadow:var(--shadow-lg)}.scrim.open{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg-overlay);z-index:var(--z-drawer)}.topbar-search{display:none}.content{padding:var(--sp-5) var(--sp-4)}}@media (max-width: 480px){.content{padding:var(--sp-4) var(--sp-3)}.breadcrumb .crumb-hide{display:none}}.tour-card{position:fixed;right:24px;bottom:24px;z-index:var(--z-toast);width:min(400px,calc(100vw - 32px));background:var(--bg-surface-2);border:1px solid var(--border-strong);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg),0 0 0 1px #2fa47626;padding:18px 20px;animation:tour-in .35s var(--ease)}@keyframes tour-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.tour-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.tour-progress{font-size:var(--fs-xs);color:var(--text-subtle);letter-spacing:.06em;text-transform:uppercase;font-weight:600}.tour-close{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:.9rem;padding:4px}.tour-close:hover{color:var(--text)}.tour-title{font-family:"Instrument Serif",Georgia,serif;font-size:1.5rem;color:var(--text);margin-bottom:6px}.tour-body{font-size:var(--fs-sm);color:var(--text-muted);line-height:1.55;margin:0 0 8px}.tour-tip{font-size:var(--fs-sm);color:var(--text);background:var(--brand-soft);border:1px solid rgba(47,164,118,.25);border-radius:var(--radius);padding:8px 12px;line-height:1.5;margin:0 0 12px}.tour-actions{display:flex;justify-content:space-between;align-items:center;gap:8px}.tour-nav-btns{display:flex;gap:8px}@media (max-width: 640px){.tour-card{right:12px;left:12px;bottom:12px;width:auto}}@media (prefers-reduced-motion: reduce){.tour-card{animation:none}}.login-screen{--text: #201b16;--text-muted: #6f665c;--text-subtle: #8a8276;--text-inverse: #faf7f2;--brand: #107a55;--brand-strong: #0b5b3f;--brand-soft: rgba(16, 122, 85, .12);--brand-ring: rgba(16, 122, 85, .3);--accent: #107a55;--border: rgba(32, 27, 22, .16);--border-strong: rgba(32, 27, 22, .3);--border-focus: #107a55;--bg-surface: #ffffff;--bg-surface-2: #faf7f2;--bg-surface-3: #f4f0e9;--shadow-focus: 0 0 0 2px #faf7f2, 0 0 0 4px rgba(16, 122, 85, .5);min-height:100vh;display:grid;grid-template-columns:1.05fr 1fr;background:#faf7f2;color:var(--text);font-family:"Satoshi",var(--font-sans)}.login-aside{background:radial-gradient(900px 600px at 85% 110%,rgba(16,122,85,.16),transparent 60%),radial-gradient(700px 500px at 0% 0%,rgba(217,200,167,.08),transparent 55%),#221c16;color:#f2ede6;display:flex;flex-direction:column;padding:clamp(28px,4vw,52px);position:relative;overflow:hidden}.login-brand-group{display:flex;align-items:center;gap:14px}.login-aside-content{margin:auto 0;max-width:480px;padding:32px 0}.login-hero-title{font-family:"Instrument Serif",Georgia,serif;font-weight:400;font-size:clamp(2rem,3vw,2.9rem);line-height:1.08;letter-spacing:-.01em;color:#f8f4ee;margin:0 0 16px;text-wrap:balance}.login-hero-title .accent{color:#7ad3ab;font-style:italic}.login-tagline{color:#b5aa9c;font-size:1.02rem;line-height:1.6;margin-bottom:30px}.login-features{display:flex;flex-direction:column}.login-feature-item{display:flex;align-items:center;gap:12px;font-size:.94rem;color:#e6dfd4;padding:13px 2px;border-bottom:1px solid rgba(255,255,255,.1)}.login-feature-item:last-child{border-bottom:0}.login-feature-icon{width:22px;height:22px;border-radius:50%;background:#7ad3ab24;color:#7ad3ab;display:grid;place-items:center;font-size:.78rem;font-weight:700;flex-shrink:0}.login-aside-footer{font-size:.8rem;color:#8f8578;display:flex;align-items:center;gap:8px}.login-panel{position:relative;display:flex;flex-direction:column;align-items:center;min-height:100vh;padding:96px 24px 48px;box-sizing:border-box;overflow-y:auto;background:#faf7f2}.login-back-link{position:absolute;top:30px;left:36px;color:var(--text-muted);text-decoration:none;font-size:.9rem;font-weight:500;display:inline-flex;align-items:center;gap:6px;transition:color var(--dur-fast) ease;z-index:10}.login-back-link:hover{color:var(--brand)}.login-card{margin:auto 0;width:100%;max-width:440px;background:#fff;border:1px solid var(--border);border-radius:16px;padding:clamp(28px,4vw,40px) clamp(24px,3.5vw,36px);box-shadow:0 24px 60px -30px #201b1659;position:relative;box-sizing:border-box}.login-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.login-lang{display:flex;gap:4px;background:var(--bg-surface-3);padding:3px;border-radius:999px;border:1px solid var(--border)}.login-lang-btn{padding:4px 12px;border-radius:999px;background:transparent;border:none;color:var(--text-muted);font-size:.75rem;font-weight:600;cursor:pointer;transition:all var(--dur-fast) ease}.login-lang-btn:hover{color:var(--text)}.login-lang-btn.on{background:var(--brand);color:#fff}.login-title{font-family:"Instrument Serif",Georgia,serif;font-weight:400;font-size:1.9rem;color:var(--text);margin:0 0 6px;letter-spacing:-.01em}.login-subtitle{color:var(--text-muted);font-size:.92rem;margin-bottom:22px;line-height:1.5}.login-screen .input,.login-screen .select{background:#fff;border:1px solid var(--border-strong);color:var(--text);border-radius:10px}.login-screen .input::placeholder{color:#a49b8e}.login-screen .input:focus,.login-screen .select:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-ring);outline:none}.login-screen .btn.btn-primary{background:var(--brand);border:none;color:#fff;border-radius:999px;font-weight:600;transition:background var(--dur-fast) ease,transform var(--dur-fast) ease}.login-screen .btn.btn-primary:hover{background:var(--brand-strong)}.login-screen .btn.btn-primary:active{transform:translateY(1px)}.login-screen .btn.btn-secondary,.login-screen .btn.btn-ghost{background:transparent;color:var(--text);border:1px solid var(--border-strong);border-radius:999px}.login-screen .badge.badge-brand{background:var(--brand-soft);color:var(--brand-strong);border:1px solid rgba(16,122,85,.25);border-radius:999px}.login-error{background:var(--danger-soft);border:1px solid rgba(248,113,113,.35);color:#fca5a5;padding:12px 14px;border-radius:var(--radius);font-size:.88rem;text-align:center;margin-bottom:16px}.login-screen .login-error{background:#fdf0ee;border:1px solid rgba(178,58,44,.35);color:#a13527}.login-footer{margin-top:22px;text-align:center;font-size:.9rem;color:var(--text-muted)}.login-screen .modal-panel{background:#fff;color:var(--text);border:1px solid var(--border);border-radius:16px}.login-screen .card-title{color:var(--text)}.login-screen .icon-btn{color:var(--text-muted);background:transparent;border:none;cursor:pointer}@media (max-width: 900px){.login-screen{grid-template-columns:1fr}.login-aside{display:none}.login-back-link{top:20px;left:20px}.login-panel{padding:84px 20px 32px}}
