:root{--bg:oklch(17% .01 255);--surface:oklch(22% .01 255);--fg:oklch(95% .01 255);--muted:oklch(76% .01 255);--border:oklch(36% .01 255);--accent:oklch(70% .14 150);--font-body:-apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", system-ui, sans-serif;font-family:var(--font-body);color:var(--fg);background:var(--bg)}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0}.app-shell{grid-template-columns:300px minmax(0,1fr);height:100%;display:grid}.shared-sidebar{border-right:1px solid var(--border);background:color-mix(in oklch, var(--surface) 94%, var(--accent));flex-direction:column;gap:12px;height:100svh;padding:18px;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar-main{align-content:start;gap:12px;display:grid}.brand{letter-spacing:.02em;margin-bottom:10px;font-weight:700}.nav{gap:7px;display:grid}.nav button{text-align:left;color:var(--fg);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:9px;padding:9px 10px;font-size:.92rem}.nav button.active{border-color:var(--border);background:var(--surface);font-weight:600}.campaign-switch{gap:6px;margin-bottom:8px;display:grid}.campaign-switch label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:.76rem}.campaign-select,.source-config input,.btn-subtle{border:1px solid var(--border);font:inherit;background:var(--surface);color:var(--fg);border-radius:8px;padding:7px 9px}.campaign-select{min-height:36px;padding:7px 30px 7px 10px}.campaign-actions{gap:6px;display:flex}.campaign-actions .btn-subtle{width:100%}.panel-title{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:6px;font-size:.74rem}.source-config{border:1px solid var(--border);background:var(--surface);border-radius:10px;gap:8px;padding:9px;display:grid}.source-row{align-items:center;gap:6px;display:flex}.micro{color:var(--muted);font-size:.78rem}.aside-tools{gap:8px;margin-top:10px;display:grid}.theme-toggle{border:0;border-bottom:1px dashed var(--border);color:var(--muted);letter-spacing:.04em;text-transform:uppercase;cursor:pointer;opacity:.8;background:0 0;justify-self:start;padding:2px 0;font-size:.74rem}.theme-toggle:hover{opacity:1}.identity{color:var(--muted);border:1px solid var(--border);background:var(--surface);border-radius:9px;padding:8px 9px;font-size:.82rem;display:grid}.identity strong{color:var(--fg)}.sidebar-footer{border-top:1px solid var(--border);gap:10px;margin-top:auto;padding-top:12px;display:grid}.sidebar-footer .btn-subtle{width:100%}.app-main{height:100%;min-height:0}.dashboard-fusion{align-content:start;gap:14px;height:100%;padding:20px;display:grid;overflow:auto}.dashboard-kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.dashboard-kpis article,.dashboard-panel{border:1px solid var(--border);background:var(--surface);border-radius:12px}.dashboard-kpis article{gap:5px;padding:12px;display:grid}.dashboard-kpis span,.dashboard-panel-head p,.dashboard-hint{color:var(--muted);margin:0;font-size:.78rem}.dashboard-kpis strong{font-family:ui-monospace,Menlo,monospace;font-size:1.45rem}.dashboard-panel{overflow:hidden}.dashboard-panel-head{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:12px;display:flex}.dashboard-panel-head h1{margin:0 0 3px;font-size:1.02rem}.dashboard-controls{flex-wrap:wrap;gap:8px;display:flex}.dashboard-controls input,.dashboard-controls select,.dashboard-controls button,.dashboard-table-wrap input,.dashboard-table-wrap button{border:1px solid var(--border);font:inherit;background:var(--surface);color:var(--fg);border-radius:8px;padding:7px 9px}.dashboard-controls button{background:color-mix(in oklch, var(--accent) 18%, var(--surface));color:color-mix(in oklch, var(--accent) 62%, black);cursor:pointer;font-weight:650}.dashboard-controls .btn-subtle,.dashboard-table-wrap .btn-subtle{background:var(--surface);color:var(--fg)}.dashboard-controls button:disabled,.dashboard-table-wrap button:disabled{opacity:.5;cursor:not-allowed}.dashboard-hint,.dashboard-message{width:100%}.dashboard-message{margin:0;font-size:.82rem}.dashboard-table-scroll-top{border-bottom:1px solid var(--border);height:16px;overflow:auto hidden}.dashboard-table-scroll-top>div{height:1px}.dashboard-table-wrap{scrollbar-width:auto;scrollbar-color:color-mix(in oklch, var(--accent) 55%, var(--border)) color-mix(in oklch, var(--surface) 88%, var(--border));max-height:min(62vh,680px);overflow:auto}.dashboard-table-scroll-top{scrollbar-width:auto;scrollbar-color:color-mix(in oklch, var(--accent) 55%, var(--border)) color-mix(in oklch, var(--surface) 88%, var(--border))}.dashboard-table-scroll-top::-webkit-scrollbar{width:12px;height:12px}.dashboard-table-wrap::-webkit-scrollbar{width:12px;height:12px}.dashboard-table-scroll-top::-webkit-scrollbar-track{background:color-mix(in oklch, var(--surface) 88%, var(--border))}.dashboard-table-wrap::-webkit-scrollbar-track{background:color-mix(in oklch, var(--surface) 88%, var(--border))}.dashboard-table-scroll-top::-webkit-scrollbar-thumb{background:color-mix(in oklch, var(--accent) 55%, var(--border));border:2px solid color-mix(in oklch, var(--surface) 88%, var(--border));border-radius:999px}.dashboard-table-wrap::-webkit-scrollbar-thumb{background:color-mix(in oklch, var(--accent) 55%, var(--border));border:2px solid color-mix(in oklch, var(--surface) 88%, var(--border));border-radius:999px}.dashboard-table-wrap table{border-collapse:collapse;width:max-content;min-width:100%;font-size:.9rem}.dashboard-table-wrap th,.dashboard-table-wrap td{border-bottom:1px solid var(--border);text-align:left;vertical-align:middle;white-space:nowrap;padding:8px}.dashboard-table-wrap th{z-index:1;background:color-mix(in oklch, var(--surface) 96%, var(--accent));color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:.75rem;position:sticky;top:0}.dashboard-table-wrap td input:not([type=checkbox]){background:0 0;border-color:#0000;outline:none;width:100%;min-width:72px;max-width:150px;padding:4px 6px}.dashboard-table-wrap td input:not([type=checkbox]):focus{outline:2px solid color-mix(in oklch, var(--accent) 45%, transparent);outline-offset:-2px;background:color-mix(in oklch, var(--accent) 8%, transparent);border-color:#0000}.dashboard-column-head{gap:6px;min-width:92px;display:grid}.dashboard-column-head span:last-child{gap:4px;display:flex}.dashboard-column-head button{padding:3px 6px;font-size:.75rem}.dashboard-badge{border:1px solid var(--border);white-space:nowrap;background:0 0;border-radius:999px;padding:3px 7px}.dashboard-badge.ok{color:#52c78d}.dashboard-badge.warn{color:#e0b86d}.dashboard-badge.danger{color:#ef8a82}.ui-embed{background:#16171d;border:0;width:100%;height:100%;display:block}.login-shell{grid-template-columns:minmax(0,1fr);place-items:center;padding:24px}.login-main{width:min(420px,100%);height:auto}.login-form{border:1px solid var(--border);background:var(--surface);border-radius:12px;gap:12px;padding:20px;display:grid}.login-title{margin:0}.login-field{gap:6px;display:grid}.login-field input{border:1px solid var(--border);width:100%;font:inherit;background:color-mix(in oklch, var(--surface) 92%, black);color:var(--fg);border-radius:8px;padding:10px}.login-error{color:#b42318;margin:0}.settings-campaign-page{align-content:start;gap:16px;height:100%;padding:24px;display:grid;overflow:auto}.settings-campaign-title{margin:0}.settings-campaign-form{border:1px solid var(--border);background:var(--surface);border-radius:12px;gap:10px;width:min(560px,100%);padding:16px;display:grid}.settings-campaign-field{font-size:.86rem;font-weight:600}.settings-campaign-form input,.settings-campaign-form select{border:1px solid var(--border);width:100%;font:inherit;background:color-mix(in oklch, var(--surface) 92%, black);color:var(--fg);border-radius:8px;padding:10px}.settings-campaign-error{color:#b42318;margin:0}.settings-campaign-success{color:#067647;margin:0}@media (width<=1024px){.app-shell{grid-template-columns:1fr}.shared-sidebar{border-right:0;border-bottom:1px solid var(--border);height:auto;position:static;overflow:visible}.dashboard-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=700px){.dashboard-fusion{padding:14px}.dashboard-kpis{grid-template-columns:1fr}.dashboard-controls,.dashboard-controls input,.dashboard-controls select,.dashboard-controls button{width:100%}}
