:root{--bg: #060c1a;--panel: rgba(13, 27, 53, .72);--panel-solid: #0d1b35;--panel-border: rgba(64, 158, 255, .16);--line: rgba(120, 170, 255, .1);--text: #dbe7ff;--text-dim: #8aa0c6;--text-faint: #5a6d92;--accent: #2dd4ff;--blue: #3d7eff;--green: #35d0a0;--amber: #ffb020;--red: #ff5d5d;--purple: #9d7bff;--radius: 10px;--font-num: "Bahnschrift", "DIN Alternate", "Segoe UI", sans-serif}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%}body{font-family:PingFang SC,Microsoft YaHei,-apple-system,sans-serif;font-size:15px;color:var(--text);background:radial-gradient(1200px 600px at 15% -10%,rgba(45,108,255,.14),transparent 60%),radial-gradient(1000px 500px at 85% 0%,rgba(45,212,255,.08),transparent 55%),var(--bg);background-attachment:fixed}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#78aaff2e;border-radius:4px}::-webkit-scrollbar-track{background:transparent}.app-shell{display:flex;flex-direction:column;height:100%}.topbar{height:52px;flex:none;display:flex;align-items:center;gap:28px;padding:0 20px;background:#081022e6;border-bottom:1px solid var(--panel-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.brand{display:flex;align-items:center;gap:8px}.brand-mark{width:18px;height:18px;border-radius:5px;background:linear-gradient(135deg,var(--accent),var(--blue));box-shadow:0 0 12px #2dd4ff80}.brand-name{font-size:16px;font-weight:700;letter-spacing:.5px}.brand-sub{font-size:13px;color:var(--text-faint);margin-left:2px}.topnav{display:flex;gap:4px;flex:1}.nav-item{padding:7px 14px;border-radius:8px;color:var(--text-dim);text-decoration:none;font-size:14px;transition:all .15s}.nav-item:hover{color:var(--text);background:#78aaff14}.nav-item.active{color:var(--accent);background:#2dd4ff1a;box-shadow:inset 0 0 0 1px #2dd4ff40}.topbar-right{display:flex;align-items:center;gap:10px}.avatar{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,#3d7eff,#9d7bff);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;cursor:pointer;-webkit-user-select:none;user-select:none;transition:transform .12s}.avatar:hover{transform:scale(1.08)}.app-main{flex:1;min-height:0;overflow:auto;position:relative}.panel{background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius)}.panel-title{font-size:14px;font-weight:600;color:var(--text);padding:10px 14px;display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--line)}.panel-title:before{content:"";width:3px;height:12px;border-radius:2px;background:linear-gradient(180deg,var(--accent),var(--blue))}.tag{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:5px;font-size:13px;white-space:nowrap}.tag-blue{color:var(--accent);background:#2dd4ff1a}.tag-green{color:var(--green);background:#35d0a01a}.tag-amber{color:var(--amber);background:#ffb0201f}.tag-red{color:var(--red);background:#ff5d5d1f}.tag-purple{color:var(--purple);background:#9d7bff1f}.tag-gray{color:var(--text-dim);background:#78aaff14}.btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:8px;border:1px solid var(--panel-border);background:#78aaff0f;color:var(--text);font-size:14px;cursor:pointer;transition:all .15s}.btn:hover{border-color:#2dd4ff66;background:#2dd4ff14}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg,#2d8cff,#2dd4ff);border:none;color:#04101f;font-weight:600}.btn-primary:hover{filter:brightness(1.1);background:linear-gradient(135deg,#2d8cff,#2dd4ff)}.btn-danger{color:var(--red);border-color:#ff5d5d4d}.btn-sm{padding:4px 10px;font-size:13px;border-radius:6px}.table{width:100%;border-collapse:collapse;font-size:14px}.table th{text-align:left;padding:9px 12px;color:var(--text-dim);font-weight:500;border-bottom:1px solid var(--panel-border);background:#78aaff0a;white-space:nowrap}.table td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:middle}.table tr:hover td{background:#78aaff0a}.input,.select,textarea.input{background:#060c1a99;border:1px solid var(--panel-border);border-radius:8px;color:var(--text);padding:7px 10px;font-size:14px;outline:none;font-family:inherit}.input:focus,.select:focus{border-color:#2dd4ff80}.select option{background:var(--panel-solid)}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}.dot-green{background:var(--green);box-shadow:0 0 6px var(--green)}.dot-red{background:var(--red);box-shadow:0 0 6px var(--red)}.dot-amber{background:var(--amber);box-shadow:0 0 6px var(--amber)}.dot-gray{background:var(--text-faint)}.muted{color:var(--text-dim)}.faint{color:var(--text-faint)}.num{font-family:var(--font-num)}.up{color:var(--green)}.down{color:var(--red)}.admin-layout{display:flex;height:100%;min-height:0}.admin-side{width:190px;flex:none;padding:16px 10px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:2px}.admin-side-title{font-size:13px;color:var(--text-faint);padding:6px 12px}.admin-side .nav-item{display:block}.admin-content{flex:1;min-width:0;padding:20px 24px;overflow:auto}.page-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.page-title{font-size:19px;font-weight:700}.page-desc{font-size:13px;color:var(--text-dim);margin-top:4px}.form-row{display:flex;align-items:center;gap:10px;margin-bottom:12px}.form-label{width:90px;flex:none;color:var(--text-dim);font-size:14px;text-align:right}.switch{position:relative;width:34px;height:19px;flex:none;cursor:pointer}.switch input{display:none}.switch .track{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:10px;background:#78aaff26;transition:.2s}.switch input:checked+.track{background:#2dd4ff8c}.switch .thumb{position:absolute;top:2px;left:2px;width:15px;height:15px;border-radius:50%;background:#dfe9ff;transition:.2s}.switch input:checked~.thumb{left:17px}.cockpit-stage-wrap{height:100%;overflow:auto;display:flex}.cockpit-stage-wrap.fullscreen{overflow:hidden}.cockpit-stage-outer{margin:auto;flex:none;position:relative}.cockpit-stage{width:1920px;height:1060px;transform-origin:top left}.cockpit-fs-icon{background:none;border:1px solid var(--panel-border);border-radius:8px;color:var(--text-dim);cursor:pointer;font-size:15px;line-height:1;padding:5px 7px;display:inline-flex;align-items:center;justify-content:center;transition:all .15s;flex:none}.cockpit-fs-icon:hover{color:var(--accent);border-color:#2dd4ff66}.cockpit-head{height:68px;position:absolute;top:0;left:0;right:0;z-index:5;display:flex;align-items:center;justify-content:center;background:linear-gradient(90deg,transparent,rgba(45,140,255,.16),transparent)}.cockpit-head h1{font-size:20px;font-weight:700;letter-spacing:4px;background:linear-gradient(180deg,#eaf4ff,#9cc8ff);-webkit-background-clip:text;background-clip:text;color:transparent}.head-center{display:flex;flex-direction:column;align-items:center;gap:5px}.tpl-tabs{display:flex;gap:8px}.tpl-tab{padding:3px 14px;border-radius:12px;font-size:13px;font-weight:600;cursor:pointer;color:var(--text-dim);background:#78aaff1a;border:1px solid rgba(120,170,255,.18);transition:all .15s;font-family:inherit;letter-spacing:1px}.tpl-tab:hover{color:var(--text);border-color:#2dd4ff4d}.tpl-tab.active{color:#04121f;background:linear-gradient(90deg,#2dd4ff,#3d7eff);border-color:transparent;box-shadow:0 0 14px #2dd4ff73}.cockpit-head .head-side{position:absolute;top:50%;transform:translateY(-50%);font-size:14px;color:var(--text-dim);display:flex;gap:16px}.cockpit-head .head-left{left:24px;align-items:center}.cockpit-head .head-right{right:24px;flex-direction:column;align-items:flex-end;gap:6px}.head-meta{display:flex;align-items:center;gap:12px;font-size:12px}.cockpit-head:after{content:"";position:absolute;left:10%;right:10%;bottom:0;height:1px;background:linear-gradient(90deg,transparent,rgba(45,212,255,.55),transparent)}.grid-stage{position:relative}.widget-box{position:absolute;display:flex;flex-direction:column;overflow:hidden}.widget-body{flex:1;min-height:0;position:relative}.kpi-row{display:grid;gap:12px;height:100%}.kpi-card{position:relative;padding:14px 18px;overflow:hidden;display:flex;flex-direction:column;justify-content:center;gap:6px}.kpi-card:before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:3px;border-radius:2px;background:var(--kc, var(--accent));box-shadow:0 0 10px var(--kc, var(--accent))}.kpi-name{font-size:14px;color:var(--text-dim)}.kpi-value{font-size:32px;font-weight:700;font-family:var(--font-num);line-height:1.1}.kpi-unit{font-size:14px;color:var(--text-dim);margin-left:4px;font-weight:400}.kpi-foot{font-size:13px;color:var(--text-dim)}.rank-list{padding:10px 14px;height:100%;display:flex;flex-direction:column;gap:8px;overflow:hidden}.rank-item{display:flex;align-items:center;gap:10px;font-size:13px}.rank-no{width:20px;height:20px;border-radius:5px;flex:none;display:flex;align-items:center;justify-content:center;font-family:var(--font-num);font-size:13px;background:#78aaff1a;color:var(--text-dim)}.rank-no.top{background:linear-gradient(135deg,#ffb020,#ff7a45);color:#331a00;font-weight:700}.rank-name{width:72px;flex:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rank-bar{flex:1;height:7px;border-radius:4px;background:#78aaff14;overflow:hidden}.rank-bar i{display:block;height:100%;border-radius:4px;background:linear-gradient(90deg,#2d8cff,#2dd4ff)}.rank-val{width:74px;text-align:right;font-family:var(--font-num);color:var(--accent)}.ticker{height:100%;overflow:hidden;position:relative;padding:6px 0}.ticker-track{animation:ticker-up 18s linear infinite}.ticker:hover .ticker-track{animation-play-state:paused}@keyframes ticker-up{0%{transform:translateY(0)}to{transform:translateY(-50%)}}.ticker-item{display:flex;gap:8px;align-items:flex-start;padding:9px 14px;font-size:13px}.ticker-time{color:var(--text-faint);font-family:var(--font-num);flex:none}.ticker-text{color:var(--text-dim);line-height:1.5}.ask-page{display:flex;gap:16px;padding:24px;height:100%}.ask-main{flex:1;min-width:0;display:flex;flex-direction:column}.ask-hero{text-align:center;padding:18px 0 10px}.ask-hero h2{font-size:22px;background:linear-gradient(90deg,#2dd4ff,#9d7bff);-webkit-background-clip:text;background-clip:text;color:transparent}.ask-hero p{color:var(--text-dim);font-size:14px;margin-top:6px}.ask-chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:12px 0}.ask-chip{padding:6px 12px;border-radius:20px;font-size:13px;cursor:pointer;border:1px solid var(--panel-border);color:var(--text-dim);background:#78aaff0d}.ask-chip:hover{color:var(--accent);border-color:#2dd4ff66}.ask-list{flex:1;overflow:auto;display:flex;flex-direction:column;gap:14px;padding:10px 4px}.msg{max-width:min(82%,960px);padding:12px 14px;border-radius:12px;font-size:14px;line-height:1.7}.msg-user{align-self:flex-end;background:linear-gradient(135deg,#2d6cdf,#2dd4ff);color:#fff;border-bottom-right-radius:4px}.msg-ai{align-self:flex-start;background:var(--panel);border:1px solid var(--panel-border);border-bottom-left-radius:4px}.msg-ai .msg-metric{margin-bottom:6px}.msg-ai .msg-num{font-size:22px;font-weight:700;font-family:var(--font-num);color:var(--accent)}.msg-caliber{margin-top:8px;padding-top:8px;border-top:1px dashed var(--line);font-size:13px;color:var(--text-faint)}.ask-composer{border:1px solid var(--panel-border);border-radius:16px;background:#0d1b3599;padding:12px 14px;box-shadow:0 8px 30px #00000040}.ask-composer:focus-within{border-color:#2dd4ff80;box-shadow:0 0 0 3px #2dd4ff1f}.ask-textarea{width:100%;min-height:84px;resize:none;border:none;outline:none;background:transparent;color:var(--text);font-family:inherit;font-size:14px;line-height:1.7;padding:2px}.ask-composer-foot{display:flex;align-items:center;justify-content:space-between;margin-top:10px}.ask-send-btn{padding:8px 24px;border-radius:10px;font-size:14px}.ask-sessions{width:260px;flex:none;display:flex;flex-direction:column;min-height:0;background:#0d1b358c;border:1px solid var(--panel-border);border-radius:12px;padding:14px}.ask-sessions-head{display:flex;align-items:center;justify-content:space-between;padding:0 2px 12px}.ask-sessions-head b{font-size:15px}.ask-sessions-list{flex:1;overflow:auto;display:flex;flex-direction:column;gap:4px}.ask-session-item{display:flex;align-items:center;gap:6px;padding:6px 8px 6px 12px;border-radius:8px;border:1px solid transparent;background:transparent;transition:all .12s}.ask-session-item:hover{background:#78aaff0f}.ask-session-item.active{background:#2dd4ff1a;border-color:#2dd4ff40}.ask-session-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;text-align:left;cursor:pointer;border:none;background:transparent;color:var(--text);font-family:inherit;padding:4px 0}.ask-session-item .s-title{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ask-session-item .s-time{font-size:11px;color:var(--text-faint)}.ask-session-ops{display:none;flex:none;gap:2px}.ask-session-item:hover .ask-session-ops{display:inline-flex}.ask-session-op{border:none;background:transparent;color:var(--text-faint);cursor:pointer;font-size:12px;padding:4px 6px;border-radius:5px;line-height:1}.ask-session-op:hover{color:var(--text);background:#78aaff24}.ask-session-rename{width:100%;background:#060c1a99;border:1px solid rgba(45,212,255,.5);border-radius:6px;color:var(--text);padding:5px 8px;font-size:13px;outline:none;font-family:inherit}.ask-func{position:relative}.ask-func-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:16px;cursor:pointer;border:1px solid var(--panel-border);background:#78aaff0f;color:var(--text-dim);font-family:inherit;font-size:12px;transition:all .12s}.ask-func-btn:hover{color:var(--accent);border-color:#2dd4ff66}.ask-func-btn .afb-icon{font-size:13px}.ask-func-btn .afb-arrow{font-size:10px;color:var(--text-faint)}.ask-func-menu{position:absolute;bottom:calc(100% + 8px);left:0;z-index:20;width:300px;max-height:380px;overflow:auto;background:var(--panel-solid, #0d1b35);border:1px solid var(--panel-border);border-radius:12px;box-shadow:0 12px 40px #0000008c;padding:6px}.afm-title{padding:8px 10px 6px;font-size:11px;color:var(--text-faint)}.afm-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;border:none;border-radius:8px;background:transparent;color:var(--text);font-family:inherit;font-size:13px;cursor:pointer;text-align:left;transition:background .12s}.afm-item:hover{background:#2dd4ff14}.afm-dot{width:8px;height:8px;border-radius:50%;flex:none;box-shadow:0 0 6px currentColor}.afm-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.afm-unit{color:var(--text-faint);font-size:12px;flex:none}.typing{display:inline-flex;gap:4px;padding:4px 0}.typing i{width:6px;height:6px;border-radius:50%;background:var(--accent);animation:blink 1s infinite}.typing i:nth-child(2){animation-delay:.2s}.typing i:nth-child(3){animation-delay:.4s}@keyframes blink{0%,80%,to{opacity:.2}40%{opacity:1}}.page-pad{padding:20px 24px}.stat-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px}.stat-card{padding:16px 18px}.stat-card .label{font-size:13px;color:var(--text-dim)}.stat-card .value{font-size:28px;font-weight:700;font-family:var(--font-num);margin-top:6px}.ai-attribution{margin-top:8px;padding:10px 12px;border-radius:8px;font-size:13px;line-height:1.8;background:#9d7bff12;border:1px solid rgba(157,123,255,.2);color:var(--text-dim)}.ai-attribution b{color:var(--purple);font-weight:600}.ds-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:16px}.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 20px;padding:14px}.info-item .k{font-size:13px;color:var(--text-faint)}.info-item .v{font-size:14px;margin-top:3px;word-break:break-all}.check-step{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--line);font-size:14px}.check-step:last-child{border-bottom:none}.code-block{background:#040a18;border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-family:SF Mono,Menlo,monospace;font-size:13px;color:#9fd0ff;overflow-x:auto;white-space:pre;line-height:1.7}.ticker-item.clickable{cursor:pointer;border-radius:6px}.ticker-item.clickable:hover{background:#3d7eff1a}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:999;background:#030814a8;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center}.modal-card{width:min(560px,90vw);background:var(--panel-solid);border:1px solid var(--panel-border);border-radius:14px;padding:20px;box-shadow:0 20px 60px #00000080}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.modal-close{background:none;border:none;color:var(--text-dim);font-size:16px;cursor:pointer;padding:4px 8px;border-radius:6px}.modal-close:hover{background:#78aaff1f;color:var(--text)}.modal-subject{font-size:14px;color:var(--text);margin-bottom:8px;line-height:1.6}.login-page{height:100%;display:flex;overflow:auto;padding:24px}.login-card{margin:auto;width:360px;max-width:92vw;padding:32px 30px;background:var(--panel-solid);border:1px solid var(--panel-border);border-radius:16px;box-shadow:0 20px 60px #00000080}.login-brand{display:flex;align-items:center;gap:12px}.login-title{font-size:22px;font-weight:700}.login-sub{font-size:12px;color:var(--text-dim)}@media(max-width:1280px){.stat-cards{grid-template-columns:repeat(2,1fr)}.ds-grid{grid-template-columns:1fr}}@media(max-width:1024px){.topbar{gap:12px;padding:0 12px;flex-wrap:wrap;height:auto;min-height:52px}.topnav{order:3;width:100%;overflow-x:auto;padding-bottom:6px}.brand-sub{display:none}.admin-side{width:160px}.ask-page{flex-direction:column}.ask-sessions{width:100%;max-height:220px}}@media(max-width:768px){.stat-cards,.info-grid{grid-template-columns:1fr}.admin-layout{flex-direction:column}.admin-side{width:100%;flex-direction:row;flex-wrap:wrap;border-right:none;border-bottom:1px solid var(--line)}.admin-content,.page-pad{padding:14px}.modal-card{padding:16px}.table{font-size:13px}}
