:root{--bg: #f6f6fa;--surface: #ffffff;--surface-2: #f0f0f6;--text: #13131f;--text-2: #3d3d52;--muted: #6b6b80;--border: #e4e4ee;--primary: #5b5bf7;--primary-soft: color-mix(in srgb, #5b5bf7 12%, transparent);--primary-ink: #ffffff;--chart: #5b5bf7;--chart-soft: color-mix(in srgb, #5b5bf7 16%, transparent);--grid: #ececf3;--good: #15803d;--warn: #b45309;--bad: #b91c1c;--info: #1d4ed8;--radius: 14px;--shadow: 0 1px 2px rgba(16, 16, 40, .04), 0 4px 16px rgba(16, 16, 40, .05);color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg: #0b0b12;--surface: #14141f;--surface-2: #1c1c2a;--text: #ececf4;--text-2: #c4c4d4;--muted: #9a9ab0;--border: #26263a;--chart: #8b8bff;--chart-soft: color-mix(in srgb, #8b8bff 18%, transparent);--grid: #23233a;--good: #4ade80;--warn: #fbbf24;--bad: #f87171;--info: #93c5fd;--primary-soft: color-mix(in srgb, #8b8bff 16%, transparent);--shadow: 0 1px 2px rgba(0, 0, 0, .3);color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font:14.5px/1.5 Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}h1{font-size:24px;margin:0;letter-spacing:-.02em}h2{font-size:16px;margin:0 0 12px;letter-spacing:-.01em}h3{font-size:14px;margin:0 0 8px}p{margin:0 0 8px}input,select,textarea{padding:9px 12px;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;min-width:0}input:focus,select:focus,textarea:focus{outline:2px solid var(--primary-soft);border-color:var(--primary)}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:8px;border-bottom:1px solid var(--border);vertical-align:top}th{color:var(--muted);font-weight:600;font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}code{font:12px ui-monospace,Menlo,monospace;background:var(--surface-2);padding:1px 6px;border-radius:6px;word-break:break-all}.btn{display:inline-flex;align-items:center;gap:6px;border:0;cursor:pointer;background:var(--primary);color:var(--primary-ink);padding:9px 16px;border-radius:10px;font:600 13.5px/1 inherit;font-family:inherit;white-space:nowrap}.btn:hover{filter:brightness(1.08);text-decoration:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border)}.btn.small{padding:6px 10px;font-size:12.5px}.btn.danger{color:var(--bad)}.muted{color:var(--muted)}.small{font-size:12.5px}.tiny{font-size:11.5px}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.row.between{justify-content:space-between}.stack{display:grid;gap:16px}.grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.cols-2{display:grid;gap:16px;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);align-items:start}@media(max-width:960px){.cols-2{grid-template-columns:minmax(0,1fr)}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow);min-width:0}.card.flush{padding:0;overflow:hidden}.card.flush>h2{padding:14px 16px 0}.scroll-x{overflow-x:auto}.error{color:var(--bad);background:color-mix(in srgb,var(--bad) 10%,transparent);padding:10px 12px;border-radius:10px}.empty{padding:28px;text-align:center;color:var(--muted)}.shell{display:grid;grid-template-columns:228px minmax(0,1fr);min-height:100vh}.side{position:sticky;top:0;height:100vh;padding:18px 12px;border-right:1px solid var(--border);background:var(--surface);display:flex;flex-direction:column;gap:4px}.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:16px;padding:4px 10px 16px;color:var(--text)}.brand img{width:28px;height:28px}.brand small{display:block;font-weight:500;font-size:11.5px;color:var(--muted)}.nav a{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:9px;color:var(--text-2);font-weight:500}.nav a:hover{background:var(--surface-2);text-decoration:none}.nav a.active{background:var(--primary-soft);color:var(--primary)}.nav .sep{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:14px 10px 4px}.side .foot{margin-top:auto;padding:10px;font-size:12px;color:var(--muted);display:grid;gap:6px}main{padding:24px 28px 60px;min-width:0;max-width:1400px}.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:18px}.page-head p{color:var(--muted);margin:4px 0 0}.topbar{display:none}@media(max-width:860px){.shell{grid-template-columns:minmax(0,1fr)}.side{display:none}.side.open{display:flex;position:fixed;inset:0;z-index:30;width:260px;box-shadow:var(--shadow)}.topbar{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-bottom:1px solid var(--border);background:var(--surface);position:sticky;top:0;z-index:20}main{padding:16px 16px 60px}}.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-bottom:16px}.kpi{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:12px 14px}.kpi .v{font-size:24px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.kpi .l{font-size:12px;color:var(--muted)}.badge{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:999px;font-size:11.5px;font-weight:600;background:var(--surface-2);color:var(--text-2);white-space:nowrap}.badge .dot{width:7px;height:7px;border-radius:50%;display:inline-block}.badge.hot{background:color-mix(in srgb,var(--bad) 13%,transparent);color:var(--bad)}.badge.rising{background:color-mix(in srgb,var(--good) 13%,transparent);color:var(--good)}.badge.new{background:color-mix(in srgb,var(--info) 13%,transparent);color:var(--info)}.badge.declining{background:color-mix(in srgb,var(--warn) 13%,transparent);color:var(--warn)}.badge.ok{background:color-mix(in srgb,var(--good) 13%,transparent);color:var(--good)}.badge.error{background:color-mix(in srgb,var(--bad) 13%,transparent);color:var(--bad)}.badge.partial,.badge.waiting_key{background:color-mix(in srgb,var(--warn) 13%,transparent);color:var(--warn)}.opp{display:grid;gap:10px;text-decoration:none!important;color:var(--text);transition:border-color .15s}.opp:hover{border-color:var(--primary)}.opp .title{font-weight:650;font-size:15px;line-height:1.3}.opp .sum{color:var(--text-2);font-size:13px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.score{display:grid;place-items:center;width:46px;height:46px;border-radius:12px;background:var(--primary-soft);color:var(--primary);font-weight:800;font-size:17px;flex:none;font-variant-numeric:tabular-nums}.score.sm{width:36px;height:36px;font-size:14px;border-radius:10px}.ideas{display:grid;gap:8px}.idea{border:1px solid var(--border);border-radius:12px;padding:12px;background:var(--surface)}.idea .fmt{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--primary);font-weight:700}.list{display:grid}.list>a,.list>div{display:flex;gap:10px;align-items:center;padding:10px 16px;border-top:1px solid var(--border);color:var(--text);text-decoration:none}.list>a:hover{background:var(--surface-2)}.list .grow{flex:1;min-width:0}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px;align-items:center}.filters input[type=search]{flex:1;min-width:200px}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:14px;overflow-x:auto}.tabs button{background:none;border:0;padding:9px 12px;cursor:pointer;color:var(--muted);font:600 13px inherit;font-family:inherit;border-bottom:2px solid transparent;white-space:nowrap}.tabs button.on{color:var(--text);border-bottom-color:var(--primary)}.hbars{display:grid;gap:7px}.hbar{display:grid;grid-template-columns:minmax(90px,160px) minmax(0,1fr) 54px;gap:10px;align-items:center;font-size:12.5px}.hbar .track{height:10px;background:var(--surface-2);border-radius:4px;overflow:hidden}.hbar .fill{height:100%;background:var(--chart);border-radius:0 4px 4px 0}.hbar .val{text-align:right;color:var(--text-2);font-variant-numeric:tabular-nums}.chart{position:relative}.chart svg{display:block;width:100%;overflow:visible}.tip{position:absolute;pointer-events:none;background:var(--text);color:var(--bg);font-size:12px;padding:6px 9px;border-radius:8px;white-space:nowrap;transform:translate(-50%,-110%);z-index:5}.login{min-height:100vh;display:grid;place-items:center;padding:20px}.login .card{width:min(420px,100%);padding:28px;display:grid;gap:14px}.spinner{width:18px;height:18px;border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.switch{position:relative;width:36px;height:20px;flex:none}.switch input{opacity:0;width:0;height:0}.switch span{position:absolute;inset:0;background:var(--border);border-radius:20px;cursor:pointer;transition:.2s}.switch span:before{content:"";position:absolute;width:14px;height:14px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s}.switch input:checked+span{background:var(--primary)}.switch input:checked+span:before{transform:translate(16px)}
