:root{--color-bg: #000000;--color-bg-soft: #030303;--color-panel: #0a0a0a;--color-panel-2: #111111;--color-panel-3: #151515;--color-border: rgba(255, 255, 255, .1);--color-border-strong: rgba(255, 255, 255, .16);--color-text: #f2f2f2;--color-muted: #969696;--color-weak: #5f5f5f;--color-warning: #b98b63;--color-warning-bg: rgba(185, 139, 99, .1);--radius-card: 14px;--radius-control: 10px;--shadow-panel: 0 28px 90px rgba(0, 0, 0, .42);--mouse-x: 50vw;--mouse-y: 38vh;color:var(--color-text);background:var(--color-bg);font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;letter-spacing:0}*{box-sizing:border-box}html{background:var(--color-bg);color-scheme:dark}body{margin:0;min-width:320px;min-height:100vh;background:var(--color-bg)}button,input{font:inherit}button,.button-link{align-items:center;background:#0d0d0d;border:1px solid var(--color-border);border-radius:var(--radius-control);color:var(--color-text);cursor:pointer;display:inline-flex;gap:8px;min-height:38px;padding:8px 13px;text-decoration:none;white-space:nowrap}button:hover,.button-link:hover{background:#f0f0f0;border-color:#f0f0f0;color:#050505}button:focus-visible,.button-link:focus-visible,input:focus-visible,.viewer-table-wrap:focus-visible{outline:2px solid rgba(255,255,255,.78);outline-offset:3px}button:disabled{cursor:not-allowed;opacity:.45}button:disabled:hover{background:#0d0d0d;border-color:var(--color-border);color:var(--color-text)}.primary{background:#eee;border-color:#eee;color:#070707;font-weight:620}.primary:hover{background:#fff;border-color:#fff;color:#000}input{background:#080808;border:1px solid rgba(255,255,255,.14);border-radius:var(--radius-control);color:var(--color-text);min-height:42px;padding:9px 12px;width:100%}input::placeholder{color:var(--color-weak)}label{color:var(--color-muted);display:grid;gap:7px;font-size:14px}::selection{background:#fff;color:#000}.ambient{background:#000;inset:0;overflow:hidden;pointer-events:none;position:fixed;z-index:0}.ambient:before{background:radial-gradient(520px 380px at var(--mouse-x) var(--mouse-y),rgba(255,255,255,.1),rgba(255,255,255,.025) 42%,transparent 72%),radial-gradient(900px 520px at 50% 112%,rgba(255,255,255,.035),transparent 70%);content:"";filter:blur(4px);inset:-12%;position:absolute}.ambient:after{background-image:linear-gradient(rgba(255,255,255,.016) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.012) 1px,transparent 1px);background-size:56px 56px;content:"";inset:0;-webkit-mask-image:radial-gradient(circle at var(--mouse-x) var(--mouse-y),#000 0,transparent 64%);mask-image:radial-gradient(circle at var(--mouse-x) var(--mouse-y),#000 0,transparent 64%);opacity:.18;position:absolute}.ambient-noise{animation:noise-drift 9s steps(8) infinite;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.94' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.65'/%3E%3C/svg%3E");inset:-50%;opacity:.035;position:absolute}.ambient-eclipse{border:1px solid rgba(255,255,255,.12);border-radius:999px;box-shadow:0 80px 56px -76px #ffffff94,inset 0 -34px 60px #ffffff06;height:min(48vw,470px);left:50%;opacity:.62;position:absolute;top:46%;transform:translate(-50%,-50%);width:min(48vw,470px)}.ambient-cursor{background:radial-gradient(circle at 50% 52%,transparent 50%,rgba(255,255,255,.3) 50.6%,rgba(255,255,255,.05) 53%,transparent 56%);border-radius:50%;box-shadow:0 48px 38px -42px #ffffff9e;height:210px;left:0;opacity:.35;position:fixed;top:0;transform:translate3d(calc(var(--mouse-x) - 105px),calc(var(--mouse-y) - 105px),0);width:210px}@keyframes noise-drift{0%{transform:translate(0)}25%{transform:translate(3%,1%)}50%{transform:translate(-2%,3%)}75%{transform:translate(1%,-2%)}to{transform:translate(0)}}.brand{align-items:center;display:flex;gap:12px}.brand strong{color:var(--color-text);display:block;font-size:18px;font-weight:650}.brand span{color:var(--color-weak);display:block;font-size:12px;margin-top:2px}.power-mark{align-items:center;border:1px solid rgba(255,255,255,.42);border-radius:50%;color:var(--color-text);display:inline-flex;height:36px;justify-content:center;position:relative;width:36px}.power-mark:after{border:1px solid rgba(255,255,255,.18);border-radius:50%;content:"";inset:7px;position:absolute}.eyebrow{color:var(--color-weak);font-size:11px;letter-spacing:0;margin:0 0 10px;text-transform:uppercase}.dark-card,.metric,.panel{background:linear-gradient(145deg,#101010eb,#050505f2);border:1px solid var(--color-border);border-radius:var(--radius-card);box-shadow:var(--shadow-panel);min-width:0;padding:18px}.dark-card:hover,.metric:hover,.panel:hover{border-color:var(--color-border-strong)}.boot{align-items:center;background:#000;color:var(--color-muted);display:flex;min-height:100vh;justify-content:center;padding:20px}.login-view{align-items:center;background:#000;display:grid;min-height:100vh;padding:88px 24px 40px;position:relative}.login-nav{display:flex;justify-content:center;left:0;padding:26px;position:absolute;right:0;top:0;z-index:2}.login-card{background:#0a0a0aed;border:1px solid rgba(255,255,255,.16);border-radius:20px;box-shadow:0 30px 90px #0000009e;display:grid;gap:17px;justify-self:center;max-width:456px;padding:36px;position:relative;width:100%;z-index:2}.login-card:before{border:1px solid rgba(255,255,255,.08);border-radius:50%;box-shadow:0 80px 58px -78px #ffffffb3;content:"";height:340px;left:50%;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-58%);width:340px;z-index:-1}.login-card-head{margin-bottom:8px;text-align:center}.login-card h1{font-size:30px;font-weight:620;line-height:1.15;margin:0 0 9px}.login-card-head span{color:var(--color-weak);font-size:12px}.field span{color:var(--color-muted);font-size:12px}.login-options{align-items:center;display:flex;justify-content:space-between;margin:-2px 0 4px}.check-row{align-items:center;color:var(--color-muted);display:flex;gap:8px;grid-template-columns:auto 1fr}.check-row input{height:16px;min-height:16px;padding:0;width:16px}.text-button{background:transparent;border:0;color:var(--color-weak);min-height:0;padding:0}.text-button:disabled{opacity:.55}.form-error,.error{background:var(--color-warning-bg);border:1px solid rgba(185,139,99,.28);border-radius:var(--radius-control);color:#d3a37b;margin:0;padding:10px 12px}.login-submit{border-radius:13px;min-height:52px;justify-content:center}.password-change-card{max-width:500px}.password-rule{color:var(--color-muted);font-size:12px;line-height:1.6;margin:0}.password-change-card .text-button{align-items:center;display:inline-flex;gap:8px;justify-self:start}.password-change-actions{display:grid;gap:10px;grid-template-columns:1fr auto}.password-change-actions button{justify-content:center}.viewer-page{background:#000;min-height:100vh;padding-top:70px;position:relative}.viewer-topbar{align-items:center;background:#000000c2;border-bottom:1px solid rgba(255,255,255,.08);display:flex;height:70px;justify-content:space-between;left:0;padding:0 34px;position:fixed;right:0;top:0;z-index:10}.viewer-account{align-items:center;color:var(--color-muted);display:flex;gap:16px;font-size:13px}.viewer-account button{border-radius:999px}.viewer-workspace{margin:0 auto;max-width:1500px;padding:36px 34px 48px;position:relative;z-index:1}.viewer-heading{align-items:flex-end;display:flex;gap:24px;justify-content:space-between;margin-bottom:24px}.viewer-heading h1{font-size:36px;font-weight:620;line-height:1.12;margin:0}.viewer-heading p{color:var(--color-muted);font-size:13px;line-height:1.7;margin:10px 0 0}.viewer-actions{align-items:end;display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-end}.date-selector{min-width:190px}.date-selector span{color:var(--color-weak);font-size:12px}.download-action{min-height:42px}.viewer-result{display:grid;gap:14px;grid-template-columns:minmax(640px,1.45fr) minmax(330px,.72fr)}.viewer-result-main{padding:20px}.result-title{align-items:flex-start;border-bottom:1px solid rgba(255,255,255,.09);display:flex;gap:20px;justify-content:space-between;margin-bottom:16px;padding-bottom:18px}.result-title h2{font-size:25px;font-weight:580;line-height:1.2;margin:0}.result-meta{color:var(--color-muted);display:flex;flex-wrap:wrap;gap:10px 24px;margin-top:14px;font-size:12px}.status-badge{align-items:center;background:#090909;border:1px solid rgba(255,255,255,.14);border-radius:999px;color:var(--color-muted);display:inline-flex;flex:none;gap:7px;min-height:28px;padding:5px 10px;font-size:12px}.status-badge span{background:currentColor;border-radius:50%;height:6px;width:6px}.status-badge.ok{color:#e6e6e6}.status-badge.warn{color:var(--color-warning)}.strategy-table-block{display:grid;gap:10px}.viewer-table-wrap{border:1px solid rgba(255,255,255,.1);border-radius:13px;max-height:650px;overflow:auto;scrollbar-color:#555555 #101010;scrollbar-width:thin}.viewer-table-wrap::-webkit-scrollbar,.table-wrap::-webkit-scrollbar{height:10px;width:10px}.viewer-table-wrap::-webkit-scrollbar-track,.table-wrap::-webkit-scrollbar-track{background:#101010}.viewer-table-wrap::-webkit-scrollbar-thumb,.table-wrap::-webkit-scrollbar-thumb{background:#555;border-radius:999px}table{border-collapse:collapse;font-size:12px;width:100%}.strategy-table{min-width:820px}th{background:#0d0d0d;border-bottom:1px solid rgba(255,255,255,.12);color:var(--color-weak);font-weight:560;padding:11px;position:sticky;text-align:left;top:0;z-index:1}td{border-bottom:1px solid rgba(255,255,255,.065);color:var(--color-muted);padding:10px 11px;vertical-align:top}td small{color:var(--color-weak);display:block;margin-top:4px}tr:hover td{background:#ffffff06;color:var(--color-text)}.direction-signal{align-items:center;display:inline-flex;gap:6px}.direction-signal.negative{color:#b8b8b8}.direction-signal.neutral{color:var(--color-weak)}.table-alert{background:var(--color-warning-bg);border:1px solid rgba(185,139,99,.26);border-radius:10px;color:#d1a07a;margin:0;padding:10px 12px}.viewer-side{align-content:start;display:grid;gap:14px}.chart-panel h2{font-size:16px;margin:0}.chart-panel p,.chart-head span{color:var(--color-weak);font-size:11px;margin:6px 0 0}.chart-head{align-items:flex-start;display:flex;gap:16px;justify-content:space-between;margin-bottom:12px}.strategy-chart{display:block;height:auto;overflow:visible;width:100%}.strategy-chart .chart-grid{stroke:#ffffff12;stroke-width:1}.strategy-chart .chart-zero{stroke:#ffffff57;stroke-dasharray:5 6}.strategy-chart polyline{animation:chart-rise .56s cubic-bezier(.22,.8,.26,1) both;fill:none;stroke:#eee;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.strategy-chart .chart-point{fill:#0b0b0b;outline:none;stroke:#eee;stroke-width:1.5}.strategy-chart .chart-point:focus,.strategy-chart .chart-point:hover{fill:#eee;stroke:#0b0b0b}.strategy-chart text{fill:var(--color-weak);font-size:10px}.strategy-chart .chart-y-label{text-anchor:start}.strategy-chart .chart-x-label{text-anchor:middle}.chart-error{border:1px solid rgba(185,139,99,.32);color:#d1a07a;padding:10px 12px}@keyframes chart-rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.viewer-stats{display:grid;gap:12px;grid-template-columns:1fr 1fr}.stat-card{background:#0b0b0b;border:1px solid var(--color-border);border-radius:var(--radius-card);min-height:132px;padding:18px}.stat-card span{color:var(--color-weak);font-size:12px}.stat-card strong{color:var(--color-text);display:block;font-size:22px;font-weight:570;margin:18px 0 8px}.stat-card small{color:var(--color-muted)}.viewer-note-card{align-items:flex-start;color:var(--color-muted);display:flex;gap:12px;line-height:1.75}.viewer-note-card p{margin:0}.archive-strip{align-items:center;color:var(--color-weak);display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.archive-strip button{border-radius:999px;min-height:32px;padding:6px 11px}.archive-strip button.active{background:#eee;border-color:#eee;color:#050505}.empty-layout{display:grid;gap:14px}.empty-state{display:grid;min-height:360px;padding:40px;place-items:center;text-align:center}.empty-state.compact{min-height:220px}.empty-eclipse{align-items:center;border:1px solid rgba(255,255,255,.12);border-radius:50%;box-shadow:0 34px 28px -32px #fffc,inset 0 -18px 34px #ffffff0a;color:var(--color-muted);display:flex;height:148px;justify-content:center;margin:0 auto 24px;width:148px}.empty-state h2{font-size:25px;font-weight:560;margin:0}.empty-state p{color:var(--color-muted);line-height:1.8;margin:12px auto 0;max-width:560px}.empty-panels{display:grid;gap:14px;grid-template-columns:1.2fr .8fr}.table-skeleton{display:grid;gap:12px}.table-skeleton span{background:#151515;border-radius:999px;display:block;height:10px}.table-skeleton span:nth-child(2n){width:72%}.table-skeleton span:nth-child(3n){width:88%}.chart-empty{border-bottom:1px solid rgba(255,255,255,.08);border-left:1px solid rgba(255,255,255,.08);height:180px;position:relative}.chart-empty:before{border-bottom:1px solid rgba(255,255,255,.08);border-top:1px solid rgba(255,255,255,.12);border-radius:50%;content:"";height:46%;left:5%;position:absolute;right:5%;top:28%;transform:skewY(-8deg)}.loading-state{align-items:center;color:var(--color-muted);display:inline-flex;gap:10px;min-height:42px}.loading-state span{animation:pulse 1s ease-in-out infinite;background:#eee;border-radius:50%;height:8px;width:8px}@keyframes pulse{50%{opacity:.25;transform:scale(.75)}}.error-state{align-items:flex-start;background:var(--color-warning-bg);border:1px solid rgba(185,139,99,.28);border-radius:var(--radius-card);color:#d5a783;display:flex;gap:12px;padding:14px}.error-state strong{color:#e2c1a7}.error-state p{color:#c89b78;margin:6px 0 0}.sr-only{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.shell{display:grid;grid-template-columns:244px 1fr;min-height:100vh}.admin-shell{background:#000;display:grid;grid-template-columns:252px minmax(0,1fr);min-height:100vh;position:relative}.admin-shell:before{background:radial-gradient(620px 360px at 88% 0%,rgba(255,255,255,.06),transparent 72%),radial-gradient(520px 460px at 52% 108%,rgba(255,255,255,.035),transparent 72%);content:"";inset:0;pointer-events:none;position:fixed}.sidebar{background:#000000e0;border-right:1px solid rgba(255,255,255,.08);color:var(--color-text);display:flex;flex-direction:column;gap:22px;padding:24px 18px}.admin-sidebar{background:#050505f0;border-right:1px solid rgba(255,255,255,.1);color:var(--color-text);display:flex;flex-direction:column;gap:28px;min-height:100vh;padding:26px 18px;position:sticky;top:0;z-index:2}.sidebar nav{display:grid;gap:8px}.admin-sidebar nav{display:grid;gap:8px}.sidebar button{background:transparent;border-color:transparent;color:var(--color-muted);justify-content:flex-start}.admin-sidebar button{background:transparent;border-color:transparent;color:var(--color-muted);justify-content:flex-start;min-height:44px}.sidebar button.active,.sidebar button:hover{background:#101010;border-color:var(--color-border);color:var(--color-text)}.admin-sidebar button.active,.admin-sidebar button:hover{background:#ffffff12;border-color:var(--color-border-strong);color:var(--color-text)}.logout,.admin-logout{margin-top:auto}.workspace{display:grid;gap:20px;grid-template-rows:auto auto 1fr;min-width:0;padding:24px}.admin-workspace{display:grid;gap:22px;min-width:0;padding:28px;position:relative;z-index:1}.topbar{align-items:center;display:flex;justify-content:space-between;gap:20px}.topbar h1{font-size:26px;line-height:1.2;margin:0}.admin-topbar{align-items:flex-start;border-bottom:1px solid rgba(255,255,255,.08);display:flex;gap:24px;justify-content:space-between;padding-bottom:20px}.admin-topbar h1{font-size:28px;line-height:1.1;margin:0 0 8px}.admin-topbar span{color:var(--color-muted)}.admin-account{background:#ffffff0b;border:1px solid var(--color-border);border-radius:12px;display:grid;gap:4px;min-width:150px;padding:10px 12px;text-align:right}.admin-account small{color:var(--color-weak);font-size:11px}.admin-account strong{font-size:14px}.research{background:var(--color-warning-bg);border:1px solid rgba(185,139,99,.24);border-radius:8px;color:#d1a17b;font-size:13px;padding:8px 10px}.grid{display:grid;gap:14px;grid-template-columns:repeat(4,minmax(0,1fr))}.admin-dashboard{display:grid;gap:16px}.dashboard-conclusion{min-height:180px}.admin-grid{display:grid;gap:14px;grid-template-columns:repeat(4,minmax(0,1fr))}.dashboard-secondary{display:grid;gap:16px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.metric{display:grid;gap:8px;min-height:126px}.metric span,.metric small{color:var(--color-muted)}.metric strong{font-size:22px;line-height:1.2;overflow-wrap:anywhere}.wide{grid-column:span 2}.page-header{align-items:flex-start;display:flex;gap:18px;justify-content:space-between;margin-bottom:16px}.page-header h2{font-size:20px;line-height:1.2;margin:0 0 8px}.page-header span{color:var(--color-muted);display:block;max-width:720px}.page-actions{display:inline-flex;flex-wrap:wrap;gap:10px}.actions{align-content:start;display:flex;gap:12px}.panel-head{align-items:flex-start;display:flex;justify-content:space-between;gap:16px;margin-bottom:12px}h2{font-size:18px;margin:0 0 12px}.note{align-items:center;border-radius:10px;display:flex;justify-content:space-between;gap:12px;padding:10px 12px}.note.ok{background:#ffffff14;color:var(--color-text)}.note.bad,.note.warn{background:var(--color-warning-bg);border:1px solid rgba(185,139,99,.26);color:#d1a17b}.timeline{display:grid;gap:12px;list-style:none;margin:0;padding:0}.timeline li{align-items:center;color:var(--color-muted);display:flex;gap:10px}.timeline span{border:1px solid rgba(255,255,255,.24);border-radius:50%;display:inline-flex;height:10px;width:10px}.timeline li.done{color:var(--color-text)}.timeline li.done span{background:#ffffffb8}.timeline li.pending span{background:#b98b6352;border-color:#b98b6380}.upload-form,.stack{display:grid;gap:14px;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:18px}.stack{grid-template-columns:1fr}.admin-form-panel{display:grid}.facts{display:grid;gap:10px 18px;grid-template-columns:160px 1fr;margin:0}.facts dt{color:var(--color-weak)}.facts dd{color:var(--color-text);margin:0;overflow-wrap:anywhere}.split{display:grid;gap:16px;grid-template-columns:minmax(0,1fr) minmax(320px,.6fr)}.detail-panel{background:linear-gradient(145deg,#101010eb,#050505f2);border:1px solid var(--color-border);border-radius:var(--radius-card);box-shadow:var(--shadow-panel);min-width:0;padding:18px}.detail-panel-head{margin-bottom:14px}.detail-panel-head h2{margin-bottom:8px}.detail-panel-head span{color:var(--color-muted)}.inline-error{background:var(--color-warning-bg);border:1px solid rgba(185,139,99,.26);border-radius:10px;color:#d1a17b;margin:0 0 12px;padding:10px 12px}.table-wrap{overflow:auto}.row-actions{display:inline-flex;flex-wrap:wrap;gap:8px}.details{display:grid;gap:12px}pre{background:#050505;border:1px solid rgba(255,255,255,.1);border-radius:10px;color:#d7d7d7;max-height:360px;overflow:auto;padding:12px;white-space:pre-wrap}.summary{display:grid;gap:5px}.summary span{color:var(--color-muted)}.sparkline{background:#050505;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-card);display:block;margin:14px 0;width:100%}.sparkline line{stroke:#ffffff3d;stroke-dasharray:5 6}.sparkline polyline{fill:none;stroke:#eee;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.empty{align-items:center;color:var(--color-muted);display:flex;justify-content:center;min-height:180px}.loading{color:var(--color-muted)}@media(max-width:1180px){.viewer-result,.split,.dashboard-secondary{grid-template-columns:1fr}.viewer-stats,.empty-panels{grid-template-columns:1fr 1fr}.grid,.admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.login-view{padding:84px 16px 28px}.login-card{padding:26px 20px}.login-nav{justify-content:flex-start;padding:22px 16px}.viewer-topbar{padding:0 16px}.viewer-account span{display:none}.viewer-workspace{padding:26px 16px 40px}.viewer-heading{align-items:stretch;display:grid}.viewer-heading h1{font-size:30px}.viewer-actions{justify-content:stretch}.viewer-actions>*{width:100%}.viewer-stats,.empty-panels,.grid,.upload-form,.facts,.shell,.admin-shell{grid-template-columns:1fr}.sidebar,.admin-sidebar{min-height:auto;position:static}.workspace,.admin-workspace{padding:18px}.admin-topbar,.page-header{display:grid}.admin-account{text-align:left}.wide{grid-column:span 1}}@media(hover:none),(pointer:coarse){.ambient-cursor{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;scroll-behavior:auto!important;transition:none!important}.ambient-cursor,.ambient-noise{display:none}}
