/* Shared Trophée design tokens. Loaded last by every dashboard surface. */
html[data-theme] .brand-panel h2{color:#fff}
html[data-theme] .brand-panel p{color:#ccd2e0}
html[data-theme] table{background:var(--panel);border-color:var(--border)}
html[data-theme] tbody td{background:var(--panel)!important;border-color:var(--border)!important}
html[data-theme] tbody tr:hover td{background:var(--soft)!important}
html[data-theme] :is(.sync-badge,.endpoint-csv-sync-status){background:var(--bg);color:var(--muted);border-color:var(--border)}
html[data-theme] :is(.sync-badge.is-online,.endpoint-csv-sync-status.is-synced,.publisher-performance.top,.publisher-performance.stable,.insight-item.alert-good){background:color-mix(in srgb,var(--green) 12%,var(--panel));color:var(--green);border-color:var(--border)}
html[data-theme] :is(.sync-badge.is-pending,.endpoint-csv-sync-status.is-syncing,.publisher-performance.optimize){background:color-mix(in srgb,var(--warning) 12%,var(--panel));color:var(--warning);border-color:var(--border)}
html[data-theme] :is(.sync-badge.is-error,.endpoint-csv-sync-status.is-error,.publisher-performance.decrease,.insight-item.alert-high){background:color-mix(in srgb,var(--red) 12%,var(--panel));color:var(--red);border-color:var(--border)}
html[data-theme=dark]{--accent:#ab96ff;--violet:#ab96ff}
html[data-theme] body{--accent:inherit;--violet:inherit}
html[data-theme] :is(#tab-gam>.gam-chart-wrap,#tab-gam>.gam-top-wrap){background:var(--panel);border-color:var(--border)}
html[data-theme] #epom-mapping-sync-badge{background:color-mix(in srgb,var(--green) 12%,var(--panel))!important;color:var(--green)!important;border-color:var(--border)!important}
html[data-theme] :is(.month-revenue-panel .card .card-value,.month-revenue-panel .card .card-subtext,.kpi-details .card-subtext){color:var(--text)}
html[data-theme] .month-revenue-panel .card .card-subtext{color:var(--muted)}
html[data-theme] :is(.controls,.gam-controls,.gam-saved-panel,.gam-floor-settings,.floor-history-row,.floor-history-item,.floor-overview-card,.gam-floor-editor,.gam-floor-form-section,.gam-floor-preview-section,.floor-preview-metric,.gam-floor-library-controls,.floor-library-table-wrap,.floor-history-expanded,.floor-history-card,.floor-history-item-range,.floor-history-item-note,.gam-filter-row,.gam-profit-panel,.gam-profit-value,.insights-panel,.insight-block,.insight-item,.endpoint-list-wrap,.endpoint-storage,.endpoint-margin-settings,.endpoint-chip,.publisher-panel,.endpoint-panel,.monthly-form-wrap,.chart-summary-item,.chart-tooltip,.gam-supply-tooltip,.gam-supply-point-details,.epom-split-preview,.whitelist-upload,.whitelist-options,.whitelist-library,.whitelist-library-item,.whitelist-total,.csv-preview-dialog){background:var(--panel);color:var(--text);border-color:var(--border);box-shadow:none}
html[data-theme] :is(.chart-wrap canvas,.gam-chart-wrap canvas,.monthly-chart-container canvas,#gam-supply-chart svg,#ortb-supply-chart svg){background:var(--panel);border-color:var(--border)}
html[data-theme] :is(#gam-profitability-table,#gam-floor-table,#gam-table,.gam-top-table,.gam-top-performing) tbody tr:nth-child(even) td{background:var(--panel)}
html[data-theme] :is(#gam-floor-library,.gam-top-performing,.gam-top-table) th{background:var(--bg);color:var(--muted)}
html[data-theme] :is(#gam-floor-library tbody tr:hover td,.floor-library-row.is-editing,.floor-history-item:hover,.floor-history-card.is-current,.gam-archive-chip,.endpoint-pub-badge,.gam-floor-change-context,.chart-multi-chip,.publisher-rank){background:var(--soft);color:var(--text);border-color:var(--border)}
html[data-theme] :is(.gam-floor-price-field input,.gam-floor-price-field input.readonly-field,#gam-floor-cpm,.gam-floor-toolbar-search input,.gam-floor-toolbar-sort select,.endpoint-storage textarea,#epom-path-display){background:var(--panel)!important;color:var(--text);border-color:var(--border)!important}
html[data-theme] :is(.floor-action-btn.is-quiet,.floor-row-actions button,.floor-history-card-actions button,.subtle-btn,.monthly-row-actions button,.chart-mode-buttons .secondary-btn,.gam-trend-tabs button){background:var(--panel);color:var(--text)!important;border-color:var(--border)}
html[data-theme] .gam-trend-tabs button[aria-selected=true]{background:var(--soft);color:var(--accent)!important}
:root[data-theme]{--bg:#f5f6fa;--panel:#fff;--surface:#fff;--text:#20243a;--ink:#20243a;--muted:#5d677d;--border:#e5e8f1;--line:#e5e8f1;--accent:#6745d7;--accent-2:#55b7c5;--violet:#6745d7;--navy:#20243a;--soft:#f0ecff;--green:#107351;--red:#be4b63;--danger:#be4b63;--warning:#80520c;--chart-grid:#e5e8f1;--shadow:0 3px 16px #22234c04;color-scheme:light}
:root[data-theme=dark]{--bg:#111321;--panel:#1a1d30;--surface:#1a1d30;--text:#eef0ff;--ink:#eef0ff;--muted:#a0a6bf;--border:#2b3046;--line:#2b3046;--accent:#ab96ff;--violet:#ab96ff;--navy:#eef0ff;--soft:#30294f;--green:#67d9b2;--red:#fa91a7;--danger:#fa91a7;--warning:#e9c27b;--chart-grid:#2b3046;--shadow:none;color-scheme:dark}
html[data-theme] body{background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}
html[data-theme] :is(h1,h2,h3,h4,.section-title){font-family:Inter,ui-sans-serif,system-ui,sans-serif;color:var(--text);letter-spacing:-.025em}
html[data-theme] :is(.header,.admin-header,.topbar){background:var(--panel);color:var(--text);box-shadow:none;border:1px solid var(--border);border-radius:12px}
html[data-theme] :is(.header,.admin-header) :is(h1,h2){color:var(--text)}
html[data-theme] :is(.header,.admin-header) :is(p,.hint,.back-link){color:var(--muted)}
html[data-theme] :is(.panel,.card,.mini-card,.overview-card,.create-panel,.api-form-group,.campaign-form,.assignment-item,.permission-item,.workspace,.filters,.admin-nav,.login-shell,.auth-panel){background:var(--panel);border-color:var(--border);box-shadow:var(--shadow);border-radius:12px;color:var(--text)}
html[data-theme] :is(.card-value,.mini-card-value,.month-revenue-panel h3,.metric-value,.overview-card strong){color:var(--text)}
html[data-theme] :is(.hint,.card-subtext,.card small,.mini-card small,.month-kpi-eyebrow,.section-kicker,.user-meta,.sidebar-label,.back-link){color:var(--muted)}
html[data-theme] :is(input,select,textarea){background:var(--panel);color:var(--text);border-color:var(--border);border-radius:8px;accent-color:var(--accent)}
html[data-theme] :is(input,textarea)::placeholder{color:var(--muted);opacity:.8}
html[data-theme] :is(input,select,textarea):focus{background:var(--panel);border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}
html[data-theme] button{background:#7155e8;color:#fff;border:1px solid transparent;border-radius:8px;box-shadow:none}
html[data-theme] button:hover{background:#8064ee;transform:none;box-shadow:none}
html[data-theme] :is(.secondary-btn,.header .secondary-btn,.admin-header .secondary-btn,.preview-btn,.sidebar-toggle,.universal-theme-toggle){background:var(--panel);color:var(--text)!important;border:1px solid var(--border);box-shadow:none;border-radius:8px}
html[data-theme] :is(.secondary-btn,.header .secondary-btn,.admin-header .secondary-btn):visited{color:var(--text)!important}
html[data-theme] :is(.secondary-btn,.universal-theme-toggle):hover{background:var(--soft);border-color:var(--accent)}
html[data-theme] .universal-theme-toggle{width:38px;height:38px;min-width:38px;padding:0;display:inline-grid;place-items:center;font-size:18px;flex-shrink:0}
html[data-theme] :is(.text-btn,.text-button){background:transparent;color:var(--accent);border:0}
html[data-theme] :is(button,a,input,select,textarea):focus-visible{outline:2px solid var(--accent);outline-offset:3px}
html[data-theme] :is(table,th,td,.table-wrap){border-color:var(--border);color:var(--text)}
html[data-theme] th{background:var(--bg);color:var(--muted)}
html[data-theme] tbody tr:nth-child(even){background:color-mix(in srgb,var(--panel) 80%,var(--bg))}
html[data-theme] tbody tr:hover td{background:var(--soft)}
html[data-theme] :is(.tabbar-panel,.sidebar){background:var(--panel);border-color:var(--border);box-shadow:none;border-radius:12px}
html[data-theme] :is(.tab-btn,.admin-nav-btn){background:transparent;color:var(--muted);border-color:transparent;box-shadow:none;font-size:12px;font-weight:550}
html[data-theme] :is(.tab-btn.is-active,.admin-nav-btn.is-active){background:var(--soft);color:var(--accent);border-color:transparent}
html[data-theme] .sdk-placement-list-scroll{height:360px;max-height:360px;overflow-y:auto;overflow-x:hidden;padding:0 8px 10px 0;margin-bottom:24px;position:relative;isolation:isolate;contain:paint;scrollbar-color:var(--accent) var(--bg);scrollbar-width:thin;scrollbar-gutter:stable}
html[data-theme] #sdk-placement-editor{height:auto;overflow:visible;padding-right:0;position:relative;z-index:1}
html[data-theme] #sdk-placement-editor>.panel{margin-bottom:0}
html[data-theme] #sdk-placement-editor .filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px;align-items:end}
html[data-theme] #sdk-placement-editor .filters label{display:grid;gap:6px;min-width:0;color:var(--muted);font-size:11px;font-weight:650;text-transform:none}
html[data-theme] #sdk-placement-editor .filters input:not([type="checkbox"]),html[data-theme] #sdk-placement-editor .filters select{width:100%;min-height:36px}
html[data-theme] #sdk-placement-editor .filters input[type="checkbox"]{width:18px!important;height:18px!important;min-width:18px!important;min-height:18px!important;margin:0;justify-self:start;accent-color:var(--accent)}
html[data-theme] .sdk-placement-form-actions{grid-column:1/-1;display:flex;gap:10px;align-items:center;padding-top:4px}
html[data-theme] .sdk-placement-edit-btn{min-height:28px;padding:5px 10px;background:transparent;color:var(--accent);border:1px solid var(--accent);border-radius:7px;font-size:11px;font-weight:700}
html[data-theme] .sdk-placement-edit-btn:hover{background:var(--soft);color:var(--accent)}
html[data-theme] .sdk-placement-cancel-btn{background:var(--panel)!important;color:var(--text)!important;border-color:var(--border)!important}
@media(max-width:700px){html[data-theme] #sdk-placement-editor .filters{grid-template-columns:1fr}}
#sdk-placement-list-scroll{height:360px;max-height:360px;overflow-y:auto;overflow-x:hidden;padding:0 8px 10px 0;margin-bottom:24px;position:relative;isolation:isolate;contain:paint;scrollbar-gutter:stable}
#sdk-placement-editor{height:auto;overflow:visible;padding-right:0;position:relative;z-index:1}
#sdk-daily-records-scroll,.sdk-daily-records-scroll{height:420px;max-height:420px;overflow-y:auto;overflow-x:hidden;padding:0 8px 10px 0;margin-bottom:24px;position:relative;isolation:isolate;contain:paint;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:var(--accent) var(--bg)}
.sdk-daily-records-scroll .report-actions{display:none!important}
.sdk-daily-records-scroll>.panel-head,.sdk-placement-list-scroll>.panel-head{position:sticky;top:0;z-index:4;margin:0 -2px 14px;padding:14px 2px 10px;background:var(--panel);border-radius:0;box-shadow:0 1px 0 var(--border)}
.sdk-daily-records-scroll .table-wrap,.sdk-placement-list-scroll .table-wrap{overflow:visible}
.sdk-daily-records-scroll thead th,.sdk-placement-list-scroll thead th{position:sticky;top:48px;z-index:2;background:var(--bg);box-shadow:0 1px 0 var(--border)}
.sdk-daily-records-scroll thead,.sdk-placement-list-scroll thead{position:sticky;top:48px;z-index:3;background:var(--bg)}
.sdk-daily-records-scroll thead,.sdk-placement-list-scroll thead{position:static;top:auto;z-index:auto}
.sdk-daily-records-scroll table,.sdk-placement-list-scroll table{border-collapse:separate;border-spacing:0}
.sdk-daily-records-scroll thead th,.sdk-placement-list-scroll thead th{top:48px;z-index:5}
#sdk-placement-editor .filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px;align-items:end}
#sdk-placement-editor .filters input[type="checkbox"]{width:18px;height:18px;min-width:18px;min-height:18px;margin:0;justify-self:start}
#sdk-placement-editor .report-record-count,.sdk-daily-records-scroll .report-record-count{margin-top:12px;color:var(--muted);font-size:11px}
.sdk-placement-empty{margin-top:24px;padding:28px!important;text-align:center}
.sdk-placement-empty h2{margin:0 0 6px;font-size:14px}
.sdk-placement-empty p{margin:0;color:var(--muted);font-size:11px}
@media(max-width:700px){#sdk-placement-editor .filters{grid-template-columns:1fr}}
html[data-theme] .tab-btn::before{background:var(--soft);color:var(--accent)}
html[data-theme] .tab-btn:hover:not(.is-active){background:var(--soft);color:var(--text);border-color:transparent}
.workspace-brand{display:block;padding:10px 12px 28px;font-size:31px;font-weight:850;letter-spacing:-1.5px;text-decoration:none;color:var(--accent)}.workspace-brand small{display:block;font-size:8px;font-weight:650;letter-spacing:2.4px;color:var(--muted)}
.sidebar-collapsed .workspace-brand{font-size:0;padding:12px 0;text-align:center}.sidebar-collapsed .workspace-brand::before{content:'t';font-size:28px}.sidebar-collapsed .workspace-brand small{display:none}
html[data-theme] :is(.access-editor,.product-user-editor,.supervisor-head,.roblox-api-form,.roblox-api-hero,.api-form-footer,.manual-report-form,.manual-preview,.csv-import-strip,.roblox-source-panel,.switch-field,.danger-check,.source-selector label>span){background:var(--panel);border-color:var(--border);color:var(--text);box-shadow:none}
html[data-theme] :is(.manual-report-form label,.roblox-api-form label>span:first-child,.api-form-group legend){color:var(--text)}
html[data-theme] :is(.role-pill,.metric-chip,.campaign-row-main>span,.source-selector input:checked+span){background:var(--soft);color:var(--accent);border-color:var(--border)}
html[data-theme] .status-pill.active{background:color-mix(in srgb,var(--green) 12%,var(--panel));color:var(--green)}
html[data-theme] .status-pill.inactive{background:var(--bg);color:var(--muted)}
html[data-theme] :is(.error,.danger-text){color:var(--red)!important}
html[data-theme] :is(.admin-warning,.debug-banner,.conflict-list){background:color-mix(in srgb,var(--warning) 10%,var(--panel));color:var(--warning);border-color:var(--warning)}
html[data-theme] :is(pre,code){background:var(--bg);color:var(--text);border-color:var(--border)}
html[data-theme] svg text{fill:var(--muted)}
html[data-theme] svg line[stroke="#e3eaf4"]{stroke:var(--chart-grid)}
html[data-theme] #tab-roblox :is(.roblox-performance-card,.roblox-funnel article){background:var(--panel);border-color:var(--border);box-shadow:none}
html[data-theme] #tab-roblox :is(.roblox-performance-head h2,.roblox-performance-card .card-value,.roblox-secondary strong){color:var(--text)}
html[data-theme] #tab-roblox :is(.roblox-performance-card h3,.roblox-kpi-detail,.roblox-performance-note,.roblox-secondary h3,.roblox-secondary small,.roblox-performance-head p,.roblox-change){color:var(--muted)}
html[data-theme] .roblox-secondary article{border-color:var(--border)}
html[data-theme] .roblox-change strong{color:var(--green)}html[data-theme] .roblox-change.is-down strong{color:var(--red)}html[data-theme] .roblox-change.is-neutral strong{color:var(--muted)}
html[data-theme] .roblox-periods button{background:transparent;color:var(--muted)}html[data-theme] .roblox-periods button[aria-pressed=true]{background:var(--soft);color:var(--accent)}
html[data-theme] .login-shell{overflow:hidden}html[data-theme] .auth-panel label{color:var(--text)}html[data-theme] .auth-panel>.universal-theme-toggle{margin:0 0 18px auto}html[data-theme] .auth-panel .card{box-shadow:none}html[data-theme] .security-note{border-color:var(--border);color:var(--muted)}
html[data-theme] .topbar{border-radius:0;border-top:0;border-left:0;border-right:0}html[data-theme] .sidebar{border-radius:0}html[data-theme] .shell .text-button{background:transparent;color:var(--accent)}
@media(min-width:1000px){body:has(.dashboard-workspace)>.container{padding:0;gap:0}.container>.header{border-radius:0;border-top:0;border-left:0;border-right:0;padding:22px 30px;margin:0}.dashboard-workspace{gap:0;grid-template-columns:242px minmax(0,1fr)}html[data-theme] .tabbar-panel{border-radius:0;border-top:0;border-left:0;border-bottom:0;top:0;min-height:calc(100vh - 90px);padding:25px 18px}.workspace-content{padding:28px 32px;gap:22px}.header h1{font-size:23px}.header p{font-size:12px}}
@media(max-width:700px){.workspace-brand{font-size:25px;padding:5px 8px 15px}.header-user-actions{gap:8px;flex-wrap:wrap}.header-user-actions a{font-size:11px}.workspace-content{min-width:0}}
