:root{color:#e8eaed;--bg:#0f1419;--card:#1a2332;--border:#2d3a4d;--primary:#4a9eff;--accent:#3ecf8e;--warn:#f0a030;--muted:#8b9cb3;--grid:#2a3544;background-color:#0f1419;font-family:Segoe UI,system-ui,-apple-system,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}body{background:var(--bg);min-height:100vh;margin:0}#root{min-height:100vh}.app{max-width:1100px;margin:0 auto;padding:1.25rem 1rem 3rem}.header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.header h1{margin:0;font-size:1.5rem;font-weight:600}.subtitle{color:var(--muted);margin:.25rem 0 0;font-size:.9rem}.header-actions{flex-wrap:wrap;gap:.5rem;display:flex}.btn{border:1px solid var(--primary);background:var(--primary);color:#0a0e14;cursor:pointer;border-radius:6px;align-items:center;padding:.45rem .85rem;font-size:.875rem;font-weight:600;text-decoration:none;display:inline-flex}.btn.secondary{color:var(--primary);background:0 0}.btn:hover{filter:brightness(1.08)}.banner{background:var(--card);border:1px solid var(--border);color:var(--muted);border-radius:8px;margin-bottom:1rem;padding:.5rem .75rem;font-size:.85rem}.alert{border:1px solid var(--accent);color:#c8e6c9;background:#1a2a1a;border-radius:8px;margin-bottom:1rem;padding:.75rem 1rem;font-size:.9rem}.alert.error{color:#ffcdd2;background:#2a1a1a;border-color:#c62828}.alert code{background:#00000040;border-radius:4px;padding:.1rem .35rem}.toolbar{flex-wrap:wrap;align-items:flex-end;gap:1rem;margin-bottom:1.25rem;display:flex}.field{color:var(--muted);flex-direction:column;gap:.35rem;font-size:.8rem;display:flex}.field select{border:1px solid var(--border);background:var(--card);min-width:160px;color:inherit;border-radius:6px;padding:.45rem .6rem;font-size:.95rem}.tabs{flex-wrap:wrap;gap:.25rem;display:flex}.tab{border:1px solid var(--border);color:var(--muted);cursor:pointer;background:0 0;border-radius:6px;padding:.45rem .85rem;font-size:.875rem}.tab:hover{color:#fff;border-color:var(--muted)}.tab.active{background:var(--card);color:#fff;border-color:var(--primary)}.main{background:var(--card);border:1px solid var(--border);border-radius:12px;min-height:200px;padding:1.25rem 1rem}.footer{color:var(--muted);word-break:break-all;margin-top:1.5rem;font-size:.75rem}.login-main{max-width:420px;margin:2rem auto}.login-card{padding:.25rem 0}.login-title{margin:0 0 .5rem;font-size:1.15rem}.login-hint{color:var(--muted);margin:0 0 1rem;font-size:.85rem;line-height:1.45}.login-form{flex-direction:column;gap:.75rem;display:flex}.login-input{border:1px solid var(--border);background:var(--bg);width:100%;color:inherit;border-radius:6px;padding:.5rem .65rem;font-size:.95rem}.login-err{color:#ffcdd2;margin:0;font-size:.85rem}.panel-stack{flex-direction:column;gap:1rem;display:flex}.date-range{color:var(--muted);margin:0;font-size:.95rem}.muted{color:var(--muted)}.kpi-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.75rem;display:grid}.kpi{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:.65rem .75rem}.kpi-value{color:#fff;font-size:1.25rem;font-weight:700}.kpi-label{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-top:.2rem;font-size:.72rem}.chart-title{margin:.5rem 0 0;font-size:1rem;font-weight:600}.chart-wrap{width:100%}.chart-wrap-tall{min-height:280px}.table-scroll{border:1px solid var(--border);border-radius:8px;overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:.85rem}.data-table th,.data-table td{text-align:left;border-bottom:1px solid var(--border);padding:.45rem .6rem}.data-table th{background:var(--bg);color:var(--muted);text-transform:uppercase;font-size:.75rem;font-weight:600}.data-table tr:last-child td{border-bottom:none}.findings ul{color:#cfd8e3;margin:0;padding-left:1.2rem;font-size:.9rem}.findings li{margin-bottom:.5rem}.pattern-list{padding:0;list-style:none}.pattern-list li{border-bottom:1px solid var(--border);margin-bottom:1rem;padding-bottom:1rem}.pattern-list li:last-child{border-bottom:none}.pattern-desc{color:var(--muted);margin-top:.35rem;font-size:.9rem}.insight-section{margin-top:.5rem}.card-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:.75rem;display:grid}.insight-card{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:.85rem 1rem;font-size:.9rem}.insight-card p{color:#cfd8e3;margin:.5rem 0 0;line-height:1.45}.insight-card-head{flex-wrap:wrap;align-items:flex-start;gap:.5rem;display:flex}.insight-card-head h4{flex:1;min-width:0;margin:0;font-size:.95rem}.pri{text-transform:uppercase;color:#ccc;background:#333;border-radius:4px;padding:.2rem .45rem;font-size:.65rem;font-weight:700}.pri.crit{color:#ffcdd2;background:#5c1010}.pri.high{color:#ffcc80;background:#4a3020}.pri.med{color:#90caf9;background:#2a3544}.pri.low{color:#a5d6a7;background:#1b2e1b}.top-action .action-num{color:var(--accent);min-width:1.5rem;font-size:.9rem;font-weight:800}.view-toggle{border:1px solid var(--border);border-radius:6px;align-self:flex-end;gap:0;display:flex;overflow:hidden}.toggle-btn{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:.45rem .85rem;font-size:.875rem;font-weight:600;transition:background .15s,color .15s}.toggle-btn:not(:last-child){border-right:1px solid var(--border)}.toggle-btn:hover{color:#fff;background:#4a9eff14}.toggle-btn.active{background:var(--primary);color:#0a0e14}.date-input{border:1px solid var(--border);background:var(--card);min-width:160px;color:inherit;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;border-radius:6px;padding:.45rem .6rem;font-size:.95rem}.date-input::-webkit-calendar-picker-indicator{filter:invert(.7);cursor:pointer}
