:root{--bg:#0c0f17;--bg2:#121622;--panel:#161b2b;--panel2:#1c2233;--line:#262d42;--text:#e7ecf5;--muted:#8d97b0;--accent:#ff3b30;--accent2:#ff7a4d;--good:#2ecc71;--bad:#ff5a6a;--m1:#5b8cff;--m2:#2ecc71;--m3:#ff9f1c;--m4:#c77dff;--m5:#00d4d4;--rec:#ffd166;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{background:radial-gradient(1200px 600px at 80% -10%, #1a2236 0%, var(--bg) 55%);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:14px}.app{max-width:1500px;margin:0 auto;padding:24px 28px 60px}.topbar{justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px;display:flex}.brand{align-items:center;gap:14px;display:flex}.logo{letter-spacing:1px;background:linear-gradient(135deg, var(--accent), var(--accent2));color:#fff;border-radius:14px;place-items:center;width:52px;height:52px;font-weight:800;display:grid;box-shadow:0 8px 24px #ff3b3059}.topbar h1{margin:0;font-size:20px;font-weight:700}.sub{color:var(--muted);margin:2px 0 0;font-size:13px}.controls{background:linear-gradient(180deg, var(--panel), var(--bg2));border:1px solid var(--line);border-radius:18px;flex-direction:column;gap:14px;margin-bottom:18px;padding:18px;display:flex}.ctrl-row{flex-wrap:wrap;align-items:flex-end;gap:18px;display:flex}.field{flex-direction:column;gap:6px;display:flex}.field.grow{flex:1;min-width:240px}.field>label{text-transform:uppercase;letter-spacing:.6px;color:var(--muted);font-size:11px;font-weight:600}.hint{color:var(--muted);max-width:460px;margin:0 0 2px;font-size:12px;line-height:1.4}.mode-desc{color:var(--muted);border-left:2px solid var(--accent);flex-basis:100%;margin:4px 0 0;padding:4px 0 4px 10px;font-size:12.5px;line-height:1.5}.input{background:var(--bg);border:1px solid var(--line);color:var(--text);border-radius:10px;outline:none;padding:10px 12px;font-size:14px;transition:border-color .15s}.input:focus{border-color:var(--accent)}.seg{background:var(--bg);border:1px solid var(--line);border-radius:12px;gap:4px;padding:4px;display:inline-flex}.seg.sm button{padding:7px 12px;font-size:13px}.seg button{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:9px;padding:9px 16px;font-size:14px;font-weight:600;transition:all .15s}.seg button:hover{color:var(--text)}.seg button.on{background:linear-gradient(135deg, var(--accent), var(--accent2));color:#fff;box-shadow:0 4px 14px #ff3b304d}.btn{border:1px solid var(--line);background:var(--panel2);color:var(--text);cursor:pointer;border-radius:10px;padding:9px 14px;font-weight:600;transition:all .15s}.btn:hover{border-color:var(--accent)}.btn.ghost{background:0 0}.btn.add{padding:6px 10px;font-size:12px}.vector{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.vchip{background:var(--bg);border:1px solid var(--line);border-radius:10px;align-items:center;gap:2px;padding:4px 6px 4px 8px;display:inline-flex}.vchip input{width:74px;color:var(--text);background:0 0;border:none;outline:none;font-size:14px;font-weight:700}.vchip span{color:var(--muted)}.vchip.solo{padding:4px 10px}.vchip.solo input{width:96px}.vchip .x{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:16px;line-height:1}.vchip .x:hover{color:var(--bad)}.rec-grid{flex-direction:column;gap:8px;display:flex}.recbox{background:var(--bg);border:1px solid var(--rec);border-radius:10px;align-items:center;gap:6px;padding:6px 10px;display:inline-flex}.recbox .rb-cap{color:var(--rec);font-size:12px;font-weight:700}.recbox .rb-unit{color:var(--muted);font-size:12px}.recbox input{width:56px;color:var(--text);border:none;border-bottom:1px dashed var(--line);background:0 0;outline:none;font-size:14px;font-weight:700}.static-pill{background:var(--bg);border:1px solid var(--line);color:var(--muted);border-radius:10px;padding:10px 14px;font-weight:600}.kpi-accent{border-color:var(--rec)}.kpi-accent .kpi-value{color:var(--rec)}.rec-pct{color:var(--rec);font-weight:800}.recbox.alt{border-color:var(--accent2)}.recbox.alt .rb-cap{color:var(--accent2)}.price.warn{-webkit-text-decoration:underline dotted var(--bad);text-decoration:underline dotted var(--bad);text-underline-offset:3px}td.cpm.good{color:var(--good);font-weight:700}.chips-block{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.chips-label{color:var(--muted);margin-right:4px;font-size:12px;font-weight:600}.chip{border:1px solid var(--line);background:var(--bg);color:var(--muted);cursor:pointer;border-radius:999px;padding:6px 12px;font-size:12.5px;font-weight:600;transition:all .15s}.chip:hover{color:var(--text);border-color:var(--accent2)}.chip.active{background:var(--accent);border-color:var(--accent);color:#fff}.kpis{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px;display:grid}.kpi{background:linear-gradient(180deg, var(--panel), var(--bg2));border:1px solid var(--line);border-radius:14px;flex-direction:column;gap:6px;padding:14px 16px;display:flex}.kpi-label{color:var(--muted);font-size:12px;font-weight:600}.kpi-value{font-size:22px;font-weight:800}.kpi-value small{color:var(--muted);font-size:12px;font-weight:600}.table-wrap{background:var(--panel);border:1px solid var(--line);border-radius:16px;max-height:72vh;overflow:auto}table{border-collapse:separate;border-spacing:0;white-space:nowrap;width:100%}thead th{z-index:2;background:var(--panel2);color:var(--muted);text-transform:uppercase;letter-spacing:.4px;border-bottom:1px solid var(--line);text-align:right;padding:10px 12px;font-size:11.5px;font-weight:700;position:sticky;top:0}thead tr.subhead th{background:var(--bg2);text-align:right;font-size:10.5px;top:38px}th.grp{text-align:center;color:var(--gc,var(--text));border-left:2px solid var(--gc,var(--line));font-size:12px}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}th.sortable:hover{color:var(--text)}th.sortable.active{color:var(--accent2)}.arrow{margin-left:3px;font-size:9px}tbody td{border-bottom:1px solid var(--line);text-align:right;font-variant-numeric:tabular-nums;padding:9px 12px}tbody tr:hover td{background:#5b8cff0f}td.muted{color:var(--muted)}td.name{text-align:left;white-space:normal;max-width:320px}td.name a{color:var(--text);font-weight:600;text-decoration:none;display:inline-block}td.name a:hover{color:var(--accent2);text-decoration:underline}.tags{flex-wrap:wrap;gap:6px;margin-top:3px;display:flex}.tags em{color:var(--muted);background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:1px 7px;font-size:10.5px;font-style:normal}.tags .lang{color:var(--accent2)}td.price{color:var(--gc,var(--text));border-left:2px solid color-mix(in srgb, var(--gc,var(--line)) 35%, transparent);font-weight:800}td.cpm{color:var(--muted)}td.cpm.neg{color:var(--bad);font-weight:700}td.cpm.over{color:#fff;background:#ff5a6a38;border-radius:6px;font-weight:800;box-shadow:inset 0 0 0 1px #ff5a6a8c}.ai-panel{background:linear-gradient(180deg, var(--panel), var(--bg2));border:1px solid var(--line);border-radius:16px;margin-bottom:18px;overflow:hidden}.ai-panel>summary{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;padding:14px 18px;font-size:14px;font-weight:700;list-style:none;display:flex}.ai-panel>summary::-webkit-details-marker{display:none}.ai-panel>summary:hover{color:var(--accent2)}.ai-badge{color:#fff;letter-spacing:.5px;background:linear-gradient(135deg,#7c5cff,#c77dff);border-radius:7px;padding:3px 8px;font-size:11px;font-weight:800}.ai-list{grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:10px;padding:0 18px 18px;display:grid}.ai-card{background:var(--bg);border:1px solid var(--line);border-left:3px solid var(--m3);border-radius:12px;padding:12px 14px}.ai-card.impossible{border-left-color:var(--bad)}.ai-head{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:6px;display:flex}.ai-head a{color:var(--text);font-weight:700;text-decoration:none}.ai-head a:hover{color:var(--accent2)}.ai-cpm{color:var(--bad);font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:800}.ai-cpm small{color:var(--muted);font-weight:600}.ai-text{color:var(--text);margin:0;font-size:13px;line-height:1.55}.ai-text b{color:var(--text)}.ai-text .ai-target{color:var(--good)}.empty{text-align:center;color:var(--muted);padding:40px}.note{color:var(--muted);border-top:1px solid var(--line);padding:10px 14px;font-size:12px}th.grp-cat{color:var(--text)}.foot{color:var(--muted);margin-top:14px;font-size:12px;line-height:1.6}.boot{height:100vh;color:var(--muted);place-items:center;font-size:15px;display:grid}.login-wrap{place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{background:linear-gradient(180deg, var(--panel), var(--bg2));border:1px solid var(--line);border-radius:20px;flex-direction:column;gap:16px;width:min(400px,100%);padding:28px;display:flex}.login-brand{align-items:center;gap:14px;margin-bottom:4px;display:flex}.login-brand h1{margin:0;font-size:22px}.login-btn{background:linear-gradient(135deg, var(--accent), var(--accent2));color:#fff;border:none;padding:12px;font-size:15px}.login-btn:hover{opacity:.92}.login-btn:disabled{opacity:.6;cursor:not-allowed}.login-error{color:var(--bad);margin:0;font-size:13px}.topbar-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.user-pill{color:var(--muted);background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:6px 12px;font-size:12px;font-weight:600}.modal-backdrop{z-index:100;background:#000000a6;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:var(--panel);border:1px solid var(--line);border-radius:18px;width:min(640px,100%);max-height:90vh;padding:22px;overflow:auto}.modal-head{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.modal-head h2{margin:0;font-size:18px}.modal-x{color:var(--muted);cursor:pointer;background:0 0;border:none;font-size:24px;line-height:1}.modal-x:hover{color:var(--text)}.modal-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.modal-grid .span2{grid-column:span 2}.modal-actions{justify-content:flex-end;gap:10px;margin-top:18px;display:flex}.row-actions{gap:8px;margin-top:4px;display:flex}.link-btn{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:11px;font-weight:600}.link-btn:hover{color:var(--accent2)}.link-btn.danger:hover{color:var(--bad)}@media (width<=720px){.kpis{grid-template-columns:repeat(2,1fr)}.app{padding:16px}.modal-grid{grid-template-columns:1fr}.modal-grid .span2{grid-column:span 1}}
