:root{--font-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--color-bg: #f4f6f9;--color-panel: #ffffff;--color-panel-soft: #f8fafc;--color-ink: #162033;--color-text: #344154;--color-muted: #697586;--color-faint: #98a2b3;--color-line: #d9e2ec;--color-line-soft: #edf1f5;--color-sidebar: #17283c;--color-sidebar-soft: #203650;--color-info: #2563eb;--color-success: #15803d;--color-warning: #b45309;--color-danger: #be123c;--color-neutral: #64748b;--surface-info: #eff6ff;--surface-success: #ecfdf3;--surface-warning: #fffbeb;--surface-danger: #fff1f2;--surface-neutral: #f1f5f9;--radius-card: 8px;--radius-control: 7px;--shadow-soft: 0 10px 28px rgb(15 23 42 / 8%);--shadow-panel: 0 18px 44px rgb(15 23 42 / 14%);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px}*{box-sizing:border-box}html{min-width:320px;background:var(--color-bg)}body{min-width:320px;min-height:100vh;margin:0;color:var(--color-text);background:var(--color-bg);font-family:var(--font-sans);font-synthesis:none;text-rendering:optimizeLegibility}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}.app-shell{display:grid;grid-template-columns:272px minmax(0,1fr);min-height:100vh}.login-shell{display:grid;min-height:100vh;place-items:center;padding:var(--space-5);background:var(--color-bg)}.login-panel{display:grid;gap:var(--space-5);width:min(420px,100%);padding:var(--space-6);border:1px solid var(--color-line);border-radius:var(--radius-card);background:var(--color-panel);box-shadow:var(--shadow-soft)}.login-brand{display:flex;align-items:center;gap:var(--space-3)}.login-brand p,.login-brand strong{margin:0;letter-spacing:0}.login-brand p{color:var(--color-muted);font-size:13px;font-weight:800}.login-brand strong{display:block;margin-top:3px;color:var(--color-ink);font-size:24px;line-height:1.15}.login-form{display:grid;gap:var(--space-4)}.login-state,.login-error{padding:var(--space-3);border-radius:var(--radius-control);font-size:14px;font-weight:800}.login-state{color:var(--color-info);background:var(--surface-info)}.login-error{color:var(--color-danger);background:var(--surface-danger)}.app-sidebar{position:sticky;top:0;display:flex;flex-direction:column;min-height:100vh;max-height:100vh;padding:var(--space-5);overflow-y:auto;color:#eef5fb;background:var(--color-sidebar)}.brand-block{display:flex;align-items:center;gap:var(--space-3);min-height:50px}.brand-mark{display:grid;flex:0 0 42px;width:42px;height:42px;place-items:center;border:1px solid rgb(255 255 255 / 12%);border-radius:var(--radius-card);color:#0f1f2f;background:#d8efe4;font-size:14px;font-weight:800}.brand-copy p,.brand-copy strong,.header-copy p,.header-copy h1{margin:0;letter-spacing:0}.brand-copy p{color:#b9c6d4;font-size:12px;font-weight:700}.brand-copy strong{display:block;margin-top:2px;color:#fff;font-size:18px;line-height:1.2}.sidebar-nav{display:grid;gap:var(--space-1);margin-top:var(--space-8)}.nav-item,.mobile-nav-item{display:flex;align-items:center;gap:var(--space-3);width:100%;min-height:42px;border:0;border-radius:var(--radius-control);color:#d8e3ee;background:transparent;font-size:14px;font-weight:700;text-align:left;transition:background .16s ease,color .16s ease,transform .16s ease}.nav-item{padding:10px 12px}.nav-item:hover,.nav-item:focus-visible{color:#fff;background:#ffffff14}.nav-item.active{color:#fff;background:#2563eb;box-shadow:0 8px 18px #2563eb3d}.nav-item .icon,.mobile-nav-item .icon{flex:0 0 auto}.sidebar-status{display:grid;gap:5px;margin-top:auto;padding:var(--space-4);border:1px solid rgb(255 255 255 / 10%);border-radius:var(--radius-card);background:var(--color-sidebar-soft)}.sidebar-status p,.sidebar-status strong,.sidebar-status span{margin:0}.status-title{color:#b9c6d4;font-size:12px;font-weight:700}.sidebar-status strong{color:#fff;font-size:20px}.sidebar-status span{color:#c5d1dd;font-size:13px;line-height:1.45}.workspace{min-width:0;padding:var(--space-6)}.mobile-nav{display:none}.workspace-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-5);margin-bottom:var(--space-4);padding:var(--space-5);border:1px solid var(--color-line);border-radius:var(--radius-card);background:var(--color-panel);box-shadow:var(--shadow-soft)}.header-copy{max-width:860px}.eyebrow{margin:0;color:var(--color-muted);font-size:12px;font-weight:800;letter-spacing:0;text-transform:uppercase}.header-copy h1{margin-top:4px;color:var(--color-ink);font-size:clamp(24px,3vw,34px);line-height:1.12}.header-copy>p:not(.eyebrow){margin-top:8px;color:var(--color-muted);font-size:14px;line-height:1.55}.workspace-state{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin-top:var(--space-3)}.workspace-state>span{color:var(--color-muted);font-size:13px;font-weight:700}.header-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-2)}.source-pill{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:7px 10px;border:1px solid currentColor;border-radius:var(--radius-control);font-size:13px;font-weight:800;white-space:nowrap}.user-pill{display:inline-flex;align-items:center;min-height:36px;padding:7px 10px;border:1px solid var(--color-line);border-radius:var(--radius-control);color:var(--color-ink);background:var(--color-panel-soft);font-size:13px;font-weight:850;white-space:nowrap}.source-pill .icon{width:16px;height:16px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:36px;padding:8px 12px;border:1px solid transparent;border-radius:var(--radius-control);font-size:14px;font-weight:800;line-height:1;transition:background .15s ease,border-color .15s ease,color .15s ease}.btn-primary{color:#fff;background:var(--color-info)}.btn-secondary{color:var(--color-ink);border-color:var(--color-line);background:var(--color-panel)}.btn-ghost{color:var(--color-muted);border-color:var(--color-line-soft);background:var(--color-panel-soft)}.btn-danger{color:var(--color-danger);border-color:#fecdd3;background:var(--surface-danger)}.btn:hover,.btn:focus-visible{border-color:#9eb8d9}.btn:disabled{cursor:not-allowed;opacity:.56}.btn-icon{width:16px;height:16px}.filter-panel{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:end;gap:var(--space-4);margin-bottom:var(--space-4);padding:var(--space-4);border:1px solid var(--color-line);border-radius:var(--radius-card);background:var(--color-panel)}.filter-title{display:inline-flex;align-items:center;gap:8px;min-height:36px;color:var(--color-ink);font-size:14px;font-weight:800}.filter-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--space-3)}.field{display:grid;gap:5px;min-width:0}.field span{color:var(--color-muted);font-size:12px;font-weight:800}.field-search{min-width:min(280px,100%)}.select-shell,.input-with-icon{position:relative;display:flex;align-items:center;min-height:38px;border:1px solid var(--color-line);border-radius:var(--radius-control);background:var(--color-panel)}.select-shell select,.input-with-icon input{width:100%;min-width:0;height:38px;border:0;outline:none;color:var(--color-ink);background:transparent;font-size:14px;font-weight:700}.select-shell select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0 34px 0 10px}.input-with-icon input{padding:0 10px 0 34px}.select-shell .icon,.input-with-icon .icon{position:absolute;width:16px;height:16px;color:var(--color-faint);pointer-events:none}.select-shell .icon{right:10px}.input-with-icon .icon{left:10px}.select-shell:focus-within,.input-with-icon:focus-within{border-color:#93b7ee;box-shadow:0 0 0 3px #2563eb1f}.field>input{width:100%;min-width:0;height:38px;padding:0 10px;border:1px solid var(--color-line);border-radius:var(--radius-control);outline:none;color:var(--color-ink);background:var(--color-panel);font-size:14px;font-weight:750}.field>input:focus{border-color:#93b7ee;box-shadow:0 0 0 3px #2563eb1f}.field>input:disabled{color:var(--color-muted);background:var(--color-panel-soft)}.filter-result{display:grid;min-width:92px;min-height:38px;align-content:center;padding:6px 10px;border:1px solid var(--color-line-soft);border-radius:var(--radius-control);background:var(--color-panel-soft)}.filter-result span{color:var(--color-ink);font-size:18px;font-weight:850;line-height:1}.filter-result p{margin:3px 0 0;color:var(--color-muted);font-size:12px;font-weight:700}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-3);margin-bottom:var(--space-4)}.summary-card{display:grid;gap:8px;min-height:164px;padding:var(--space-4);border:1px solid var(--color-line);border-radius:var(--radius-card);color:inherit;background:var(--color-panel);text-align:left;box-shadow:0 4px 16px #0f172a0a;transition:border-color .16s ease,transform .16s ease,box-shadow .16s ease}.summary-card:hover,.summary-card:focus-visible{border-color:#9eb8d9;box-shadow:var(--shadow-soft);transform:translateY(-1px)}.summary-card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.summary-card p,.summary-card strong,.summary-caption{margin:0}.summary-card p{color:var(--color-muted);font-size:13px;font-weight:800}.summary-card strong{color:var(--color-ink);font-size:28px;line-height:1}.summary-caption{display:block;min-height:36px;color:var(--color-muted);font-size:13px;line-height:1.4}.summary-bottom{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);min-height:34px}.summary-list{display:grid;gap:5px;padding-top:4px;border-top:1px solid var(--color-line-soft)}.summary-list span{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);color:var(--color-muted);font-size:12px}.summary-list b{color:var(--color-ink);font-weight:850;white-space:nowrap}.tone-dot{width:10px;height:10px;border-radius:999px;background:currentColor}.table-card{overflow:hidden;border:1px solid var(--color-line);border-radius:var(--radius-card);background:var(--color-panel);box-shadow:var(--shadow-soft)}.table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);min-height:68px;padding:var(--space-4);border-bottom:1px solid var(--color-line-soft)}.table-toolbar h2,.empty-state h2{margin:0;color:var(--color-ink);font-size:17px}.table-toolbar p,.empty-state p{margin:4px 0 0;color:var(--color-muted);font-size:13px}.table-scroll{overflow-x:auto}table{width:100%;min-width:1120px;border-collapse:collapse;text-align:left}th{padding:11px 14px;color:var(--color-muted);background:var(--color-panel-soft);font-size:11px;font-weight:850;letter-spacing:0;text-transform:uppercase;white-space:nowrap}th.wide-column{min-width:260px}td{max-width:300px;padding:12px 14px;border-top:1px solid var(--color-line-soft);color:var(--color-text);font-size:13px;vertical-align:middle}tbody tr{transition:background .13s ease}tbody tr:hover,tbody tr:focus{background:#f7fbff;outline:none}.main-cell,.text-cell,.metric-cell,.freshness-cell{display:grid;gap:4px;min-width:0}.main-cell strong,.text-cell strong,.metric-cell strong,.freshness-cell strong{overflow:hidden;color:var(--color-ink);font-weight:850;text-overflow:ellipsis;white-space:nowrap}.main-cell span,.text-cell span,.metric-cell span,.freshness-cell span,.muted-cell{color:var(--color-muted);line-height:1.35}.cell-tags,.mini-breakdown,.tag-stack{display:flex;flex-wrap:wrap;gap:5px}.cell-tags small,.mini-breakdown small,.tag{display:inline-flex;align-items:center;min-height:20px;padding:3px 6px;border-radius:999px;color:var(--color-muted);background:var(--surface-neutral);font-size:11px;font-weight:800;line-height:1}.tag{color:currentColor;border:1px solid currentColor;background:transparent}.status-badge,.trend-indicator{display:inline-flex;align-items:center;gap:6px;max-width:100%;min-height:28px;padding:5px 8px;border:1px solid currentColor;border-radius:999px;font-size:12px;font-weight:850;line-height:1.1}.status-badge small,.trend-indicator small{overflow:hidden;max-width:140px;color:currentColor;font-weight:700;opacity:.72;text-overflow:ellipsis;white-space:nowrap}.badge-dot{flex:0 0 7px;width:7px;height:7px;border-radius:999px;background:currentColor}.trend-indicator .icon{flex:0 0 14px;width:14px;height:14px}.icon-button{display:inline-grid;width:32px;height:32px;place-items:center;border:1px solid var(--color-line);border-radius:var(--radius-control);color:var(--color-muted);background:var(--color-panel)}.icon-button:hover,.icon-button:focus-visible{color:var(--color-info);border-color:#9eb8d9;background:var(--surface-info)}.icon-button .icon{width:16px;height:16px}.row-action{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:min(168px,100%);min-height:32px;padding:6px 8px;border:1px solid currentColor;border-radius:var(--radius-control);background:transparent;font-size:12px;font-weight:850;line-height:1}.row-action:hover,.row-action:focus-visible{background:var(--surface-info)}.row-action:disabled{opacity:.55}.row-action .icon{flex:0 0 14px;width:14px;height:14px}.row-action span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sparkline{width:86px;height:32px;overflow:visible}.sparkline polyline{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:3}.empty-state{display:grid;min-height:260px;place-items:center;padding:var(--space-8);text-align:center}.empty-state .icon{width:34px;height:34px;color:var(--color-faint)}.drawer-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;justify-content:flex-end;background:#0f172a57}.detail-drawer{display:flex;flex-direction:column;width:min(520px,100vw);height:100%;overflow-y:auto;background:var(--color-panel);box-shadow:var(--shadow-panel)}.drawer-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);padding:var(--space-5);border-bottom:1px solid var(--color-line-soft)}.drawer-header h2{margin:4px 0;color:var(--color-ink);font-size:22px;line-height:1.2}.drawer-header span{color:var(--color-muted);font-size:14px;line-height:1.45}.drawer-state{display:flex;align-items:center;gap:var(--space-2);margin:var(--space-4) var(--space-5) 0;padding:var(--space-3);border:1px solid currentColor;border-radius:var(--radius-card);background:var(--color-panel-soft)}.drawer-state>span{color:var(--color-muted);font-size:13px;font-weight:700;line-height:1.35}.drawer-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2);padding:var(--space-4) var(--space-5)}.drawer-metric{display:grid;gap:4px;min-height:86px;padding:var(--space-3);border:1px solid currentColor;border-radius:var(--radius-card);background:transparent}.drawer-metric span,.drawer-metric small{font-size:12px;font-weight:800;opacity:.78}.drawer-metric strong{color:var(--color-ink);font-size:22px;line-height:1}.drawer-chart{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin:0 var(--space-5) var(--space-4);padding:var(--space-4);border:1px solid var(--color-line);border-radius:var(--radius-card);background:var(--color-panel-soft)}.drawer-chart p,.drawer-chart span{margin:0}.drawer-chart p{color:var(--color-ink);font-weight:850}.drawer-chart span{display:block;margin-top:4px;color:var(--color-muted);font-size:13px}.setting-editor{display:grid;gap:var(--space-3);margin:0 var(--space-5) var(--space-4);padding:var(--space-4) 0;border-top:1px solid var(--color-line-soft);border-bottom:1px solid var(--color-line-soft)}.sync-action-panel{display:grid;gap:var(--space-3);margin:0 var(--space-5) var(--space-4);padding:var(--space-4);border:1px solid var(--color-line);border-radius:var(--radius-card);background:var(--color-panel)}.sync-action-panel p,.sync-action-panel span{margin:0}.sync-action-panel p{color:var(--color-ink);font-weight:850}.sync-action-panel span{display:block;margin-top:4px;color:var(--color-muted);font-size:13px;line-height:1.35}.sync-action-controls{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2)}.setting-editor-actions{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.drawer-sections{display:grid;gap:var(--space-3);padding:0 var(--space-5) var(--space-5)}.drawer-sections section{padding:var(--space-4);border:1px solid var(--color-line);border-radius:var(--radius-card)}.drawer-sections h3{margin:0 0 10px;color:var(--color-ink);font-size:15px}.drawer-sections ul{display:grid;gap:8px;margin:0;padding-left:18px;color:var(--color-text);font-size:14px;line-height:1.45}.drawer-footer{position:sticky;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-top:auto;padding:var(--space-4) var(--space-5);border-top:1px solid var(--color-line-soft);background:#fffffff0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.drawer-footer span{color:var(--color-muted);font-size:13px;font-weight:700}.icon{width:18px;height:18px}.tone-info{color:var(--color-info)}.tone-success{color:var(--color-success)}.tone-warning{color:var(--color-warning)}.tone-danger{color:var(--color-danger)}.tone-neutral{color:var(--color-neutral)}.status-badge.tone-info,.trend-indicator.tone-info,.drawer-metric.tone-info{background:var(--surface-info)}.status-badge.tone-success,.trend-indicator.tone-success,.drawer-metric.tone-success{background:var(--surface-success)}.status-badge.tone-warning,.trend-indicator.tone-warning,.drawer-metric.tone-warning{background:var(--surface-warning)}.status-badge.tone-danger,.trend-indicator.tone-danger,.drawer-metric.tone-danger{background:var(--surface-danger)}.status-badge.tone-neutral,.trend-indicator.tone-neutral,.drawer-metric.tone-neutral{background:var(--surface-neutral)}@media(max-width:1180px){.app-shell{grid-template-columns:1fr}.app-sidebar{display:none}.workspace{padding:var(--space-4)}.mobile-nav{display:flex;gap:var(--space-2);margin-bottom:var(--space-4);padding-bottom:var(--space-1);overflow-x:auto}.mobile-nav-item{flex:0 0 auto;width:auto;padding:9px 11px;color:var(--color-text);border:1px solid var(--color-line);background:var(--color-panel)}.mobile-nav-item.active{color:#fff;border-color:var(--color-info);background:var(--color-info)}.filter-panel{grid-template-columns:1fr}.filter-result{width:100%}}@media(max-width:760px){.workspace{padding:var(--space-3)}.workspace-header,.table-toolbar,.drawer-footer{align-items:flex-start;flex-direction:column}.header-actions{justify-content:flex-start;width:100%}.header-actions .btn,.source-pill{width:100%}.summary-grid,.filter-grid,.drawer-metrics{grid-template-columns:1fr}.drawer-chart{align-items:flex-start;flex-direction:column}}
