:root{--bg:#0b0f19;--card:#111827b3;--border:#ffffff14;--border-strong:#1f2937;--text:#f3f4f6;--text-muted:#9ca3af;--text-dim:#6b7280;--purple:#8b5cf6;--purple-dim:#8b5cf626;--blue:#3b82f6;--blue-dim:#3b82f626;--emerald:#10b981;--emerald-dim:#10b98126;--amber:#f59e0b;--amber-dim:#f59e0b26;--danger:#f87171}*{box-sizing:border-box}html,body{background:var(--bg);min-height:100%;color:var(--text);margin:0;font-family:system-ui,-apple-system,PingFang SC,Microsoft YaHei,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}.glass-panel{background:var(--card);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border)}.app-shell{flex-direction:column;min-height:100vh;display:flex}.top-header{z-index:50;border-bottom:1px solid var(--border-strong);justify-content:space-between;align-items:center;gap:16px;padding:14px 24px;display:flex;position:sticky;top:0}.header-brand{align-items:center;gap:12px;min-width:0;display:flex}.logo-mark{color:#fff;background:linear-gradient(135deg,#9333ea,#3b82f6);border-radius:12px;flex-shrink:0;place-items:center;width:36px;height:36px;font-size:13px;font-weight:800;display:grid;box-shadow:0 8px 24px #8b5cf640}.header-brand strong{letter-spacing:.02em;font-size:15px;display:block}.header-brand span{color:var(--text-muted);margin-top:2px;font-size:11px;display:block}.header-search{flex:1;max-width:420px;display:none;position:relative}.header-search svg{color:var(--text-muted);position:absolute;top:50%;left:12px;transform:translateY(-50%)}.header-search input{color:#e5e7eb;background:#111827cc;border:1px solid #37415199;border-radius:12px;outline:none;width:100%;padding:8px 48px 8px 36px;font-size:13px;transition:border-color .2s}.header-search input:focus{border-color:var(--purple)}.header-search kbd{color:var(--text-muted);background:#1f2937;border:1px solid #374151;border-radius:4px;padding:2px 6px;font-size:10px;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.header-actions{align-items:center;gap:12px;display:flex}.status-pill{color:var(--text-muted);background:#1f293799;border:1px solid #37415180;border-radius:999px;align-items:center;gap:8px;padding:6px 12px;font-size:11px;display:flex}.status-pill.online{color:var(--emerald);background:#064e3b66;border-color:#065f4680}.status-pill i{background:#6b7280;border-radius:50%;width:8px;height:8px}.status-pill.online i{background:var(--emerald);animation:2s infinite pulse;box-shadow:0 0 0 4px #10b98126}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.icon-btn{color:#d1d5db;background:#1f2937;border:0;border-radius:8px;place-items:center;padding:8px;transition:background .2s;display:grid}.icon-btn:hover{background:#374151}.avatar-btn{color:#c4b5fd;background:#8b5cf633;border:1px solid #8b5cf666;border-radius:999px;width:32px;height:32px;font-size:10px;font-weight:700}.top-nav{border-bottom:1px solid var(--border-strong);gap:4px;padding:8px 16px;display:flex;overflow-x:auto}.top-nav a{color:var(--text-muted);white-space:nowrap;border-radius:10px;padding:8px 14px;font-size:13px;text-decoration:none;transition:color .2s,background .2s}.top-nav a:hover{color:#fff;background:#37415166}.top-nav a.active{color:#fff;background:var(--purple);font-weight:600}.main-content{flex:1;width:100%;max-width:1280px;margin:0 auto;padding:24px}.page-header{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:24px;display:flex}.page-header p{color:var(--purple);letter-spacing:.12em;text-transform:uppercase;margin:0 0 6px;font-size:11px;font-weight:700}.page-header h1{letter-spacing:.01em;margin:0;font-size:24px;font-weight:700}.date-chip{color:var(--text-muted);border:1px solid var(--border-strong);background:#1f293799;border-radius:999px;padding:6px 12px;font-size:12px}.kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px;display:grid}.kpi-card{border-radius:16px;padding:16px;transition:box-shadow .3s,border-color .3s}.kpi-card:hover{border-color:#8b5cf666;box-shadow:0 0 20px #8b5cf633}.kpi-card-head{justify-content:space-between;align-items:flex-start;display:flex}.kpi-card-head span{color:var(--text-muted);font-size:12px;font-weight:500}.kpi-icon{border-radius:8px;place-items:center;padding:6px;display:grid}.kpi-icon.purple{background:var(--purple-dim);color:var(--purple)}.kpi-icon.blue{background:var(--blue-dim);color:var(--blue)}.kpi-icon.emerald{background:var(--emerald-dim);color:var(--emerald)}.kpi-icon.amber{background:var(--amber-dim);color:var(--amber)}.kpi-card strong{color:#fff;margin:8px 0 4px;font-size:28px;font-weight:700;display:block}.kpi-card small{color:var(--text-muted);font-size:12px}.kpi-trend{color:var(--emerald);align-items:center;gap:4px;margin-top:4px;font-size:12px;display:flex}.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-bottom:24px;display:grid}.dashboard-grid.two-one{grid-template-columns:2fr 1fr}.panel{border-radius:16px;margin-bottom:24px;padding:20px}.panel-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.panel-head h2{margin:0;font-size:16px;font-weight:600}.panel-head small,.panel-head>span{color:var(--text-muted);margin-top:4px;font-size:12px;display:block}.panel-head>span:last-child{margin-top:0;font-size:11px}.chart-tabs{border:1px solid var(--border-strong);background:#11182799;border-radius:12px;gap:4px;padding:4px;font-size:12px;display:flex}.chart-tabs button{color:var(--text-muted);background:0 0;border:0;border-radius:8px;padding:6px 12px}.chart-tabs button.active{background:var(--purple);color:#fff;font-weight:600}.feed-wall{flex-direction:column;gap:12px;max-height:280px;padding-right:4px;display:flex;overflow-y:auto}.feed-card{border:1px solid var(--border-strong);background:#11182799;border-radius:12px;padding:12px;transition:border-color .2s}.feed-card:hover{border-color:#8b5cf666}.feed-card-meta{color:var(--text-muted);justify-content:space-between;margin-bottom:4px;font-size:11px;display:flex}.feed-card-meta .tag{color:var(--purple);font-weight:600}.feed-card h3{color:#e5e7eb;margin:0;font-size:14px;font-weight:500}.feed-card p{color:var(--text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:4px 0 0;font-size:12px;line-height:1.5;display:-webkit-box;overflow:hidden}.feed-head{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.feed-head h2{align-items:center;gap:8px;margin:0;font-size:16px;font-weight:600;display:flex}.feed-head a{color:var(--purple);font-size:12px;text-decoration:none}.table-panel{padding:0;overflow:hidden}.table-panel .panel-head{margin:0;padding:20px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:12px}th{color:var(--text-muted);text-align:left;border-top:1px solid var(--border-strong);border-bottom:1px solid var(--border-strong);white-space:nowrap;background:#111827cc;padding:12px 16px;font-weight:600}td{color:#d1d5db;border-bottom:1px solid #1f2937cc;padding:12px 16px}td strong{color:#f3f4f6;font-size:13px;display:block}td small{color:var(--text-dim);margin-top:4px;display:block}.rank{color:#9ca3af;background:#1f2937;border-radius:6px;place-items:center;width:26px;height:26px;font-weight:700;display:grid}.rank.top{color:#c4b5fd;background:#8b5cf633}.source-tag{color:#93c5fd;background:#3b82f626;border-radius:6px;padding:4px 8px;font-size:10px;display:inline-block}.score-cell{color:var(--purple);font-size:14px}.primary-button{color:#fff;background:linear-gradient(135deg,#9333ea,#7c3aed);border:0;border-radius:10px;padding:10px 18px;font-weight:600;transition:opacity .2s;box-shadow:0 4px 14px #8b5cf64d}.primary-button:hover{opacity:.92}.primary-button:disabled{opacity:.5;cursor:not-allowed}.error-banner{color:#fca5a5;background:#7f1d1d4d;border:1px solid #f871714d;border-radius:10px;margin-bottom:16px;padding:12px 14px;font-size:13px}.issue-list{display:grid}.issue-list>div{border-bottom:1px solid var(--border-strong);justify-content:space-between;align-items:center;padding:12px 0;font-size:12px;display:flex}.issue-list b{color:var(--purple)}.issue-list small,.empty{color:var(--text-muted)}.modal-backdrop{z-index:100;background:#0009;place-items:center;display:grid;position:fixed;inset:0}.modal{border:1px solid var(--border-strong);background:#111827;border-radius:16px;width:min(520px,100vw - 40px);padding:24px}.modal label,.login-card label{color:var(--text-muted);gap:6px;margin:14px 0;font-size:12px;display:grid}.modal input,.modal select,.modal textarea,.login-card input{color:#f3f4f6;background:#0b0f19;border:1px solid #374151;border-radius:10px;outline:none;width:100%;padding:10px 12px}.modal input:focus,.login-card input:focus{border-color:var(--purple)}.login-page{background:var(--bg);grid-template-columns:1.1fr .9fr;min-height:100vh;display:grid}.login-visual{background:linear-gradient(135deg,#111827,#1e1b4b);flex-direction:column;justify-content:space-between;padding:56px 7vw;display:flex;position:relative;overflow:hidden}.login-visual:after{content:"";border:1px solid #8b5cf61a;border-radius:50%;width:480px;height:480px;position:absolute;bottom:-180px;right:-180px}.login-visual h1{font-size:40px;font-weight:600;line-height:1.4;position:relative}.login-visual h1 em{color:var(--purple);font-style:normal}.login-visual>div>p{color:var(--text-muted);letter-spacing:.1em;font-size:12px}.login-card{width:min(380px,80%);margin:auto}.login-card>small{color:var(--purple);letter-spacing:.12em;font-size:11px;font-weight:700}.login-card h2{margin:12px 0 8px;font-size:26px}.login-card>p{color:var(--text-muted);margin-bottom:24px;font-size:13px}.login-card .primary-button{width:100%;margin-top:8px;padding:12px}.privacy-dot{color:var(--text-muted);align-items:center;gap:8px;font-size:11px;display:flex;position:relative}.privacy-dot i{background:var(--emerald);border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 4px #10b9811f}.form-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (min-width:768px){.header-search{display:block}}@media (max-width:980px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid.two-one{grid-template-columns:1fr}.status-pill span{display:none}}@media (max-width:680px){.main-content{padding:16px}.kpi-grid{grid-template-columns:1fr 1fr}.dashboard-grid,.login-page{grid-template-columns:1fr}.login-visual{display:none}.login-card{width:min(380px,100% - 32px);padding:40px 0}.form-row{grid-template-columns:1fr}}
