*{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#FAFAF8;--bg2:#fff;
  --text:#0A0A0A;--text-s:#5C5854;--text-m:#9A9590;
  --border:rgba(10,10,10,.08);--border-s:rgba(10,10,10,.14);
  --cap:#B89A6A;--cap-d:#9A7F52;
  --cap-f:rgba(184,154,106,.10);--cap-fb:rgba(184,154,106,.18);
  --or:var(--cap);--or-l:var(--cap-d);
  --crit:var(--text);--warn:var(--cap-d);--ok:var(--cap-d);--info:var(--cap-d);
  --faint:rgba(10,10,10,.035);
}
input[type=checkbox],input[type=radio],input[type=range]{accent-color:var(--cap)}
body{font-family:var(--ylux-font-ui),system-ui,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased}
button{cursor:pointer;font-family:inherit;border:none;background:none}
a{color:inherit}
.shell{display:flex;height:100vh;overflow:hidden}

/* ── Sidebar ── */
.sidebar{width:200px;min-width:200px;background:var(--bg2);border-right:.5px solid var(--border);display:flex;flex-direction:column;overflow-y:auto}
.sb-brand{padding:20px 16px 14px;border-bottom:.5px solid var(--border)}
.sb-wordmark{display:block;font-family:var(--ylux-font-editorial);font-size:20px;font-weight:400;letter-spacing:.25em;color:var(--text)}
.sb-sub{display:block;font-size:9px;letter-spacing:.2em;color:var(--text-m);text-transform:uppercase;margin-top:3px}
.sb-sec{padding:12px 8px 4px}
.sb-lbl{font-size:8.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--cap);padding:0 6px;margin-bottom:4px}
.hub-tabs{display:flex;flex-wrap:wrap;gap:0;border-bottom:.5px solid var(--border);margin:0 0 20px}
.hub-tab{padding:8px 14px;font-size:8px;letter-spacing:.16em;text-transform:uppercase;border:none;background:none;cursor:pointer;color:var(--text-m);border-bottom:2px solid transparent;font-family:inherit;transition:all .15s;white-space:nowrap}
.hub-tab:hover{color:var(--text)}
.hub-tab.act{color:var(--text);border-bottom-color:var(--cap)}
.hub-tab{display:inline-flex;align-items:center;gap:5px}
.hub-tab-ic{opacity:.6;flex-shrink:0}
.hub-tab.act .hub-tab-ic{opacity:1}
.conn-brand-bar{display:flex;align-items:center;gap:10px;margin:0 0 18px;flex-wrap:wrap}
.conn-brand-lbl{font-size:8px;letter-spacing:.18em;text-transform:uppercase;color:var(--text-m);flex:0 0 auto}
.conn-brand-sel-wrap{flex:0 0 auto;width:220px;max-width:min(220px,100%)}
.conn-brand-sel-wrap select.fi{width:100%;max-width:220px;font-size:11px;padding:6px 10px;background:var(--bg2)}
.conn-brand-hint{font-size:9px;color:var(--text-m);line-height:1.4;flex:1;min-width:0}
.nd .ylux-ic{display:block}
.settings-hub-link{font-size:10px;color:var(--cap);cursor:pointer;text-decoration:none;letter-spacing:.06em}
.settings-hub-link:hover{text-decoration:underline}
.sb-internal-wrap{border-top:.5px solid var(--border);margin-top:4px;padding-top:2px;background:linear-gradient(180deg,rgba(158,125,79,.04) 0%,transparent 48px)}
.sb-internal-wrap>.sb-internal-hdr{font-size:8px;letter-spacing:.28em;text-transform:uppercase;color:var(--text-m);padding:14px 6px 6px;margin:0 8px}
.sb-internal-wrap .sb-lbl{color:var(--text-m);letter-spacing:.2em;font-size:8px}
.ni{display:flex;align-items:center;gap:7px;padding:6px 8px;font-size:11.5px;color:var(--text-s);transition:all .12s;width:100%;text-align:left;text-decoration:none}
.ni:hover{background:var(--faint);color:var(--text)}
.ni.act{background:var(--cap-f);color:var(--text);box-shadow:inset 1.5px 0 0 var(--cap)}
.nd{width:15px;height:15px;border-radius:0;flex-shrink:0;background:none !important;display:inline-flex;align-items:center;justify-content:center;opacity:.55}
.ni.act .nd,.ni:hover .nd{opacity:1}
.nbadge{margin-left:auto;font-size:8px;padding:1px 5px;background:var(--cap-f);color:var(--cap-d)}

/* ── Main ── */
.main{flex:1;overflow-y:auto;display:flex;flex-direction:column;overflow-anchor:none;scroll-behavior:auto}
/* topbar chrome — see ylux.css .lau-topbar */
.topbar{display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:20;flex-shrink:0}
.tb-l{display:flex;align-items:center}
.tb-r{display:flex;align-items:center}
.tb-tog{display:flex;align-items:center;cursor:pointer;transition:all .12s}
.tb-tog:hover{border-color:var(--cap)}
.tb-tog-dot{transition:all .2s}

/* ── Content ── */
.content{padding:32px 32px 60px;flex:1}
.view{display:none}.view.act{display:block}
.ph{font-family:var(--ylux-font-editorial);font-size:22px;font-weight:300;letter-spacing:.1em;text-transform:uppercase;color:var(--text);margin-bottom:16px;text-align:left}
.dash-view{max-width:1200px}
.dash-head{margin-bottom:8px}
.dash-head .ph{margin-bottom:6px}
.dash-head .ph-hr{margin-bottom:12px}
.dash-head-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}
.dash-section{margin-bottom:24px}
.dash-onboarding{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}
.dash-forecast{background:var(--bg2);border:.5px solid var(--border);padding:20px}
.dash-forecast-lbl{font-size:8px;letter-spacing:.2em;text-transform:uppercase;color:var(--text-m);margin-bottom:16px}
.dash-chart-area{min-height:120px;position:relative}
.dash-chart-empty{position:relative;height:120px;display:flex;align-items:center;justify-content:center}
.dash-chart-empty svg{position:absolute;inset:0;width:100%;height:100%}
.dash-chart-empty-lbl{position:relative;z-index:1;font-size:10px;color:var(--text-m);text-align:center;max-width:280px;line-height:1.5;padding:0 16px}
.dash-brief{padding:14px 18px;background:var(--cap-f);border:.5px solid var(--border);border-left:2px solid var(--cap);cursor:pointer}
.dash-brief.is-empty .dash-brief-body{color:var(--text-m);font-style:italic}
.dash-brief-time{font-size:9.5px;color:var(--text-m)}
.dash-brief-body{font-size:11.5px;color:var(--text);margin-top:6px;line-height:1.6}
.ylux-action-list{list-style:none;margin:0;padding:0}
.ylux-action-item{display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-bottom:.5px solid var(--border)}
.ylux-action-check{width:22px;height:22px;border:.5px solid var(--border);background:var(--faint);cursor:pointer;font-size:11px;flex-shrink:0}
.ylux-action-title{font-size:11.5px;color:var(--text)}
.ylux-action-detail{font-size:10px;color:var(--text-m);margin-top:3px;line-height:1.45}
.dash-panel{border:.5px solid var(--border);background:var(--bg2);padding:18px 20px}
.brands-empty{background:var(--bg2);border:.5px solid var(--border);padding:32px 28px;text-align:left}
.brands-empty .ylux-ed-hero{font-family:var(--ylux-font-editorial);font-size:1.35rem;letter-spacing:.06em;margin-bottom:10px}
.brands-empty p{font-size:12px;color:var(--text-m);line-height:1.65;margin-bottom:18px;max-width:480px}
/* Plan & Billing — light seamless (YLÄUXI design system) */
.plan-bill-view{max-width:1100px}
.plan-bill-actions{display:flex;gap:8px;justify-content:flex-end;margin-bottom:20px}
.plan-bill-lede{font-size:11px;color:var(--text-s);margin:-8px 0 20px;max-width:540px;line-height:1.65}
.plan-tier-strip{display:grid;grid-template-columns:minmax(180px,1.15fr) repeat(4,minmax(0,1fr));gap:10px;margin-bottom:24px}
.plan-tier-identity{padding:22px 20px;background:var(--bg2);border:.5px solid var(--border)}
.plan-tier-identity.is-featured{border-color:rgba(184,154,106,.35)}
.plan-tier-kpi{padding:16px 12px;background:var(--bg2);border:.5px solid var(--border);text-align:center;display:flex;flex-direction:column;justify-content:center}
.plan-tier-eyebrow{font-size:8px;letter-spacing:.2em;text-transform:uppercase;color:var(--text-m);margin-bottom:8px}
.plan-tier-name{font-family:var(--ylux-font-editorial);font-size:22px;font-weight:400;letter-spacing:.06em;line-height:1.1;margin-bottom:6px;color:var(--text)}
.plan-tier-price{font-family:var(--ylux-font-editorial);font-size:19px;font-weight:400;color:var(--cap)}
.plan-tier-price span{font-size:11px;color:var(--text-m);font-weight:300}
.plan-tier-note{font-size:10px;color:var(--text-m);margin-top:8px;line-height:1.5;font-style:italic;font-family:var(--ylux-font-editorial)}
.plan-tier-kpi-lbl{font-size:7px;letter-spacing:.16em;text-transform:uppercase;color:var(--text-m);margin-bottom:6px}
.plan-tier-kpi-val{font-family:var(--ylux-font-editorial);font-size:20px;font-weight:400;line-height:1;color:var(--text)}
.plan-tier-kpi-val.gold{color:var(--cap)}
.plan-tier-kpi-sub{font-size:9px;color:var(--text-m);margin-top:4px}
.plan-bill-layout{display:grid;grid-template-columns:1fr 280px;gap:20px;align-items:start}
.plan-credit-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:8px}
.plan-credit-card{padding:18px 16px;border:.5px solid var(--border);background:var(--bg2)}
.plan-credit-card.low{border-color:rgba(184,154,106,.4);background:var(--cap-f)}
.plan-credit-lbl{font-size:8px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-m);margin-bottom:8px}
.plan-credit-amt{font-family:var(--ylux-font-editorial);font-size:24px;font-weight:400;line-height:1;margin-bottom:10px}
.plan-credit-bar{height:2px;background:var(--border);margin-bottom:6px}
.plan-credit-bar-fill{height:2px;background:var(--cap);transition:width .35s ease}
.plan-credit-meta{font-size:10px;color:var(--text-m)}
.plan-credit-note{font-size:10.5px;color:var(--text-s);line-height:1.55;margin:10px 0 0}
.plan-thresh-wrap{border:.5px solid var(--border);background:var(--bg2)}
.plan-thresh-row{display:grid;grid-template-columns:1fr 64px 64px 40px;gap:10px;padding:10px 14px;border-bottom:.5px solid var(--border);font-size:11px;align-items:center}
.plan-thresh-row:last-child{border-bottom:none}
.plan-thresh-row.hd{font-size:7px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-m);background:var(--faint)}
.plan-thresh-name{color:var(--text-s)}
.plan-thresh-pct{font-family:var(--ylux-font-editorial);font-size:12px;text-align:right}
.plan-thresh-dot{width:6px;height:6px;border-radius:50%;justify-self:center}
.plan-thresh-dot.ok{background:var(--cap)}
.plan-thresh-dot.warn{background:var(--cap-d)}
.plan-thresh-dot.crit{background:var(--text-m)}
.plan-ledger-card{border:.5px solid var(--border);background:var(--bg2);padding:2px 0}
.plan-ledger-inner{font-size:11px;color:var(--text-s)}
.plan-aside-card{border:.5px solid var(--border);background:var(--bg2);padding:16px 14px;margin-bottom:12px}
.plan-aside-hd{font-size:8px;letter-spacing:.18em;text-transform:uppercase;color:var(--text-m);margin-bottom:10px}
.plan-aside-copy{font-size:10.5px;color:var(--text-m);line-height:1.55;margin-bottom:10px}
.plan-include-row{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--text-s);padding:5px 0;border-bottom:.5px solid var(--border)}
.plan-include-row:last-child{border-bottom:none}
.plan-include-dot{width:5px;height:5px;border-radius:50%;background:var(--cap);flex-shrink:0}
.plan-payg-stack{display:flex;flex-direction:column;gap:6px}
.plan-payg-btn{width:100%;text-align:left;padding:10px 12px!important;font-size:11px!important}
.plan-credit-types{font-size:10px;color:var(--text-m);line-height:1.7}
.plan-credit-types strong{color:var(--text);font-weight:400}
/* Settings — navigation toggles */
.nav-lux-wrap{border:.5px solid var(--border);background:var(--bg2)}
.nav-lux-group-hd{font-size:7px;letter-spacing:.2em;text-transform:uppercase;color:var(--text-m);padding:10px 14px;background:var(--faint);border-bottom:.5px solid var(--border)}
.nav-lux-grid{display:grid;grid-template-columns:1fr 1fr}
.nav-lux-item{display:flex;align-items:center;justify-content:space-between;padding:9px 14px;border-bottom:.5px solid var(--border);border-right:.5px solid var(--border);font-size:11px;color:var(--text-s);gap:10px}
.nav-lux-item:nth-child(2n){border-right:none}
.nav-lux-sw{position:relative;width:32px;height:17px;flex-shrink:0;cursor:pointer}
.nav-lux-sw input{opacity:0;width:0;height:0;position:absolute}
.nav-lux-sw span{position:absolute;inset:0;background:var(--border);border-radius:9px;transition:background .2s}
.nav-lux-sw span::after{content:'';position:absolute;width:13px;height:13px;left:2px;top:2px;background:var(--bg2);border-radius:50%;box-shadow:0 1px 2px rgba(10,10,10,.08);transition:transform .2s}
.nav-lux-sw input:checked+span{background:var(--cap-fb)}
.nav-lux-sw input:checked+span::after{transform:translateX(15px);background:var(--cap)}
.settings-plan-teaser{border:.5px solid var(--border);background:var(--bg2);padding:18px 16px;margin-bottom:20px}
.settings-plan-teaser-lbl{font-size:8px;letter-spacing:.18em;text-transform:uppercase;color:var(--text-m);margin-bottom:6px}
.settings-plan-teaser-name{font-family:var(--ylux-font-editorial);font-size:20px;font-weight:400;letter-spacing:.06em;margin-bottom:4px;color:var(--text)}
.settings-plan-teaser-meta{font-size:11px;color:var(--text-m);margin-bottom:12px;line-height:1.5}
@media(max-width:960px){
  .plan-tier-strip{grid-template-columns:1fr 1fr}
  .plan-tier-identity{grid-column:1/-1}
  .plan-bill-layout{grid-template-columns:1fr}
  .nav-lux-grid{grid-template-columns:1fr}
  .nav-lux-item{border-right:none}
}
.ph-hr{height:.5px;background:var(--border-s);margin-bottom:28px}
.sec-h{font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--text-m);margin-bottom:12px}
.sec-hr{height:.5px;background:var(--border);margin:20px 0}

/* ── Metric cards ── */
.mg{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:24px}
.mc{background:var(--bg2);border:1px solid var(--border);padding:14px 16px;transition:border-color .12s}
.mc:hover{border-color:var(--cap)}
.ml{font-size:8.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--text-m);margin-bottom:7px}
.mv{font-family:var(--ylux-font-editorial);font-size:22px;font-weight:300;color:var(--text);line-height:1}
.pulse-stat{font-size:24px;font-weight:300;color:var(--cap);line-height:1}
.md{font-size:9.5px;margin-top:4px}
.up{color:var(--cap-d)}.dn{color:var(--text)}.fl{color:var(--text-m)}

/* ── Tabs ── */
.tabs{display:flex;border-bottom:.5px solid var(--border);margin-bottom:20px;gap:0;overflow-x:auto;flex-wrap:nowrap}
.tab{font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;padding:10px 18px;color:var(--text-m);border-bottom:1.5px solid transparent;margin-bottom:-.5px;transition:color .12s,border-color .12s;white-space:nowrap;flex-shrink:0;background:none}
.tab:hover{color:var(--text)}.tab.act{color:var(--text);border-bottom-color:var(--cap-d);font-weight:500}
.tp{display:none}.tp.act{display:block}
#bd-body>div{display:block!important}
#bdc-t>.tp:not(.act),#bde-t>.tp:not(.act),#bdc-ct>.tp:not(.act),#ops-ren>.tp:not(.act),#bda-ct>.tp:not(.act){display:none!important}
#bda-admin-ct>.tp:not(.act){display:none!important}
/* Brand detail KPI strip */
#bd-kpis{display:flex;overflow-x:auto;border-bottom:.5px solid var(--border)}
#bd-kpis>div{padding:12px 22px;border-right:.5px solid var(--border);flex-shrink:0;min-width:90px}
#bd-tabs{margin:0!important;border-bottom:.5px solid var(--border)!important;padding:0 0!important}
#bd-body>div.tp.act{padding-top:0}
/* Sub-tabs (pill style, inside brand detail sections) */
.sub-tabs{display:flex;gap:6px;flex-wrap:wrap}
.stab{font-size:9px;letter-spacing:.12em;text-transform:uppercase;padding:5px 14px;color:var(--text-m);border:.5px solid var(--border);background:none;transition:all .12s;cursor:pointer}
.stab:hover{border-color:var(--cap);color:var(--text)}
.stab.act{background:var(--cap-f);color:var(--text);border-color:var(--cap)}

/* ── Brand grid ── */
.br-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.brc{background:var(--bg2);border:1px solid var(--border);padding:16px;position:relative;overflow:hidden;cursor:pointer;transition:all .14s}
.brc:hover{border-color:var(--cap)}
.brc::after{content:'';position:absolute;bottom:0;left:0;right:0;height:1.5px;background:var(--cap)}
.br-en{font-size:8px;letter-spacing:.2em;text-transform:uppercase;color:var(--text-m);margin-bottom:4px}
.br-nm{font-family:var(--ylux-font-editorial);font-size:19px;font-weight:400;letter-spacing:.04em;margin-bottom:3px}
.br-tp{font-size:10px;color:var(--text-s);margin-bottom:10px}

/* ── Tables ── */
.tbl{width:100%;border-collapse:collapse}
.tbl th{font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--text-m);padding:8px 12px;text-align:left;border-bottom:1px solid var(--border)}
.tbl td{font-size:11.5px;padding:10px 12px;border-bottom:.5px solid var(--border);color:var(--text-s)}
.tbl tr:hover td{background:var(--cap-f)}
.tbl td:first-child{color:var(--text)}

/* ── Buttons ── */
.btn{font-family:sans-serif;font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;padding:7px 16px;cursor:pointer;transition:all .12s;display:inline-flex;align-items:center;gap:6px}
.btn-blk{background:var(--text);color:#fff;border:1px solid var(--text)}
.btn-blk:hover{background:#2a2a2a}
.btn-out{background:none;color:var(--text);border:1px solid var(--border-s)}
.btn-out:hover{border-color:var(--cap);color:var(--text)}
.btn-crit{background:none;color:var(--text);border:1px solid var(--border-s)}
.btn-crit:hover{background:var(--faint)}
.al-lf.act{border-color:var(--cap) !important;color:var(--cap-d) !important}
.btn-sm{font-size:8.5px;padding:5px 10px}

/* ── Forms ── */
.fgrp{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}
.flbl{font-size:8.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--text-m)}
.fi{background:var(--bg2);border:.5px solid var(--border-s);padding:8px 10px;color:var(--text);font-size:12px;font-family:var(--ylux-font-ui);outline:none;transition:border-color .15s;width:100%;border-radius:1px}
.fi:focus{border-color:var(--cap);box-shadow:none}
select.fi{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%239A8C80'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:28px;cursor:pointer}
select.fi:focus{border-color:var(--cap)}
.fi-ta{resize:vertical;min-height:100px}
.frow{display:flex;gap:12px}.frow .fgrp{flex:1}

/* ── Cards ── */
.card{background:var(--bg2);border:1px solid var(--border);padding:18px 20px;margin-bottom:12px}
.card-t{font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--text-m);margin-bottom:12px}

/* ── Agent cards ── */
.ag-group-lbl{font-size:8.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--cap-d);margin:20px 0 10px;padding-bottom:6px;border-bottom:.5px solid var(--border)}
.ag-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:4px}
.agc{background:var(--bg2);border:1px solid var(--border);padding:14px 16px;position:relative;overflow:hidden;transition:all .14s}
.agc:hover{border-color:var(--cap)}
.agc::before{content:'';position:absolute;top:0;left:0;width:1.5px;height:100%;background:var(--cap)}
.ag-nm{font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:500;margin-bottom:4px;color:var(--text)}
.ag-sc{font-size:9.5px;color:var(--text-m);margin-bottom:10px}
.ag-ft{display:flex;justify-content:flex-end;align-items:center;padding-top:8px;border-top:.5px solid var(--border)}

/* ── Calendar ── */
.cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}
.cal-m{font-family:var(--ylux-font-editorial);font-size:20px;font-weight:400;letter-spacing:.12em;text-transform:uppercase}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);border:1px solid var(--border)}
.cal-dh{font-size:8.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--text-m);padding:8px 0;text-align:center;border-bottom:1px solid var(--border);background:var(--bg2)}
.cal-day{min-height:80px;border-right:.5px solid var(--border);border-bottom:.5px solid var(--border);padding:6px 8px;background:var(--bg2);vertical-align:top}
.cal-day:nth-child(7n){border-right:none}
.cal-dn{font-size:10px;color:var(--text-m);margin-bottom:4px}
.cal-dn.today{font-weight:600;color:var(--cap-d)}
.cal-ev{font-size:8.5px;padding:2px 5px;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--bg2)}
.cal-past{opacity:.45}
.cal-legend{display:flex;gap:16px;margin-top:12px;font-size:9.5px;color:var(--text-s);align-items:center}
.cal-leg-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}

/* ── Email ── */
.em-banner{background:var(--cap-f);border:1px solid rgba(196,181,168,.3);padding:10px 14px;font-size:10.5px;color:var(--cap-d);margin-bottom:18px}
.em-brand-tabs-row{display:flex;align-items:stretch;gap:8px;border-bottom:1px solid var(--border);margin-bottom:16px}
.em-brand-tabs{display:flex;gap:0;overflow-x:auto;flex:1;min-width:0;
  /* Fade the right edge so a horizontally-scrollable tab row doesn't look like
     it's just cut off — a real UX gap on mobile where there's no visible
     scrollbar to hint at it. */
  -webkit-mask-image:linear-gradient(to right,#000 calc(100% - 20px),transparent 100%);
  mask-image:linear-gradient(to right,#000 calc(100% - 20px),transparent 100%)}
.em-bt{font-size:9px;letter-spacing:.12em;text-transform:uppercase;padding:7px 14px;color:var(--text-m);border-bottom:1.5px solid transparent;margin-bottom:-.5px;white-space:nowrap;flex-shrink:0}
.em-bt:hover{color:var(--text)}.em-bt.act{color:var(--text);border-bottom-color:var(--cap);background:var(--bg2)}
.em-bt-sync{flex-shrink:0;border-bottom:1.5px solid transparent;margin-bottom:-.5px;padding-right:2px}
.em-row{display:flex;align-items:center;gap:12px;padding:11px 14px;border-bottom:.5px solid var(--border);cursor:pointer;transition:all .1s}
.em-row:hover{background:var(--cap-f)}
.em-from{font-size:12px;min-width:160px;color:var(--text)}
.em-subj{flex:1;font-size:11.5px;color:var(--text-s);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.em-t{font-size:9.5px;color:var(--text-m);min-width:70px;text-align:right}
.em-unread .em-from,.em-unread .em-subj{font-weight:500;color:var(--text)}

/* ── Connector cards ── */
.conn-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.conn-card{background:var(--bg2);border:1px solid var(--border);padding:16px;display:flex;flex-direction:column;gap:6px}
.conn-hd{display:flex;align-items:center;justify-content:space-between}
.conn-nm{font-size:12px;color:var(--text)}
.conn-badge{font-size:8.5px;padding:2px 7px;letter-spacing:.08em;text-transform:uppercase}
.cb-ok{background:var(--cap-f);color:var(--cap-d);border:1px solid rgba(196,181,168,.3)}
.cb-off{background:var(--faint);color:var(--text-m);border:1px solid var(--border)}
.cb-disc{background:var(--faint);color:var(--text-m);border:1px solid var(--border-s)}
.conn-lbl{font-size:8.5px;letter-spacing:.15em;text-transform:uppercase;color:var(--text-m)}
.conn-note{font-size:10.5px;color:var(--text-s);line-height:1.5}
.conn-last{font-size:9.5px;color:var(--text-m)}

/* ── Badges/status — cappuccino only ── */
.badge{font-size:8.5px;padding:2px 7px;letter-spacing:.08em;text-transform:uppercase}
.b-ok{background:var(--cap-f);color:var(--cap-d);border:1px solid rgba(196,181,168,.25)}
.b-warn{background:var(--faint);color:var(--cap-d);border:1px solid rgba(196,181,168,.2)}
.b-crit{background:var(--faint);color:var(--text);border:1px solid var(--border-s)}
.b-idle{background:var(--faint);color:var(--text-m);border:1px solid var(--border)}
.b-opt{background:none;color:var(--text-m);border:1px solid var(--border)}

/* command palette — see ylux.css .ylux-cmd */
/* breadcrumb — see ylux-shell.css */
/* FAB — see ylux.css .ylux-fab */
/* ─── KANBAN ──────────────────────────────────────────── */
.kanban-board{display:flex;gap:16px;overflow-x:auto;padding:4px 0 16px;min-height:300px}
.kanban-col{min-width:220px;flex-shrink:0;background:var(--bg);border:.5px solid var(--border);padding:0;display:flex;flex-direction:column;max-height:600px}
.kanban-col-hdr{padding:12px 14px 10px;border-bottom:.5px solid var(--border);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}
.kanban-col-lbl{font-size:8px;letter-spacing:.2em;text-transform:uppercase;color:var(--text-s)}
.kanban-col-cnt{font-size:9px;color:var(--cap);background:var(--cap-f);width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center}
.kanban-cards{flex:1;overflow-y:auto;padding:8px}
.kanban-card{background:var(--bg2);border:.5px solid var(--border);padding:10px 12px;margin-bottom:6px;cursor:grab;transition:box-shadow .1s,border-color .1s;user-select:none}
.kanban-card:hover{border-color:var(--cap);box-shadow:0 2px 10px rgba(10,9,8,.07)}
.kanban-card.dragging{opacity:.4}
.kanban-drop-zone.drag-over{background:var(--cap-f);border:.5px dashed var(--cap)}
.kanban-add-btn{margin:6px 8px;padding:6px;font-size:10px;letter-spacing:.06em;text-transform:uppercase;border:.5px dashed var(--border-s);background:none;cursor:pointer;color:var(--text-m);width:calc(100% - 16px);font-family:inherit;text-align:center;transition:border-color .1s,color .1s}
.kanban-add-btn:hover{border-color:var(--cap);color:var(--text)}
/* ─── ACTIVITY FEED ───────────────────────────────────── */
.activity-line{display:flex;gap:14px;padding:12px 0;border-bottom:.5px solid var(--border);align-items:flex-start}
.activity-dot{width:8px;height:8px;border-radius:50%;background:var(--cap);flex-shrink:0;margin-top:4px}
.activity-body{flex:1}
.activity-text{font-size:12px;color:var(--text);letter-spacing:.02em;line-height:1.45}
.activity-meta{font-size:9.5px;color:var(--text-m);letter-spacing:.06em;margin-top:2px}
.activity-brand-tag{display:inline-block;font-size:8px;letter-spacing:.14em;text-transform:uppercase;padding:1px 6px;border:.5px solid var(--border-s);color:var(--cap-d);margin-right:6px}
/* ─── CONFETTI ────────────────────────────────────────── */
.confetti-wrap{position:fixed;inset:0;pointer-events:none;z-index:9999;overflow:hidden}
.cf{position:absolute;width:6px;height:6px;opacity:0;animation:cfFall linear forwards}
@keyframes cfFall{0%{opacity:1;transform:translateY(-10px) rotate(0deg)}100%{opacity:0;transform:translateY(110vh) rotate(720deg)}}
/* ─── SHORTCUTS MODAL ─────────────────────────────────── */
#shortcuts-modal{display:none;position:fixed;inset:0;background:rgba(250,249,247,.85);backdrop-filter:blur(24px);z-index:9100;align-items:center;justify-content:center}
#shortcuts-modal.open{display:flex}
#shortcuts-box{background:var(--bg2);border:.5px solid var(--border-s);padding:32px 36px;width:100%;max-width:560px;max-height:80vh;overflow-y:auto;box-shadow:0 24px 80px rgba(10,9,8,.15)}
.sc-group{margin-bottom:20px}
.sc-group-lbl{font-size:8px;letter-spacing:.22em;text-transform:uppercase;color:var(--cap);margin-bottom:10px;padding-bottom:6px;border-bottom:.5px solid var(--border)}
.sc-row{display:flex;justify-content:space-between;align-items:center;padding:5px 0;font-size:11px;color:var(--text-s);letter-spacing:.03em}
.sc-keys{display:flex;gap:4px}
.sc-key{font-size:9px;border:.5px solid var(--border-s);padding:2px 7px;color:var(--text-m);font-family:inherit;background:var(--bg)}
/* ─── SIDEBAR COLLAPSE ────────────────────────────────── */
.sb-sec-hdr{display:flex;align-items:center;justify-content:space-between;cursor:pointer;user-select:none}
.sb-sec-hdr:hover .sb-collapse-icon{opacity:1}
.sb-collapse-icon{font-size:9px;color:var(--cap-d);opacity:0;transition:opacity .15s,transform .2s;flex-shrink:0}
.sb-sec.collapsed .sb-collapse-icon{transform:rotate(-90deg);opacity:0.6}
.sb-sec.collapsed .sb-sec-body{display:none}
/* ─── PINNED VIEWS ────────────────────────────────────── */
.pin-btn{background:none;border:none;cursor:pointer;font-size:10px;color:var(--border-s);padding:0 2px;transition:color .1s;line-height:1}
.pin-btn.pinned{color:var(--cap)}
#pinned-section{padding:6px 0}
.pinned-lbl{font-size:8px;letter-spacing:.2em;text-transform:uppercase;color:var(--text-m);padding:4px 16px 2px;font-family:inherit}
/* ─── MAGIC LINK ──────────────────────────────────────── */
.magic-link-row{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--cap-f);border:.5px solid var(--border);margin-top:8px}
.srch-item{padding:10px 20px;font-size:11.5px;color:var(--text-s);cursor:pointer;border-bottom:.5px solid var(--border);display:flex;align-items:center;gap:10px}
.srch-item:hover{background:var(--faint);color:var(--text)}

/* ── Run log ── */
.run-row{display:flex;gap:12px;padding:9px 0;border-bottom:.5px solid var(--border);font-size:11px;color:var(--text-s);align-items:center}

/* ── Scrollbar ── */
::-webkit-scrollbar{width:2px;height:2px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--cap);border-radius:2px}
::-webkit-scrollbar-thumb:hover{background:var(--cap-d)}

/* ── Toast ── */
/* toast — ylux-ui.js #ylux-toast */

/* ── Mobile responsive ── */
/* ── Mobile drawer overlay ───────────────────────────── */
#mob-overlay{display:none;position:fixed;inset:0;background:rgba(250,250,248,.72);backdrop-filter:blur(4px);z-index:199}
#mob-overlay.open{display:block}
#mob-hamburger{display:none;background:none;border:.5px solid var(--border);cursor:pointer;padding:4px 10px;color:var(--text-s);font-size:9px;letter-spacing:.18em;text-transform:uppercase;flex-shrink:0;font-family:inherit}

@media(max-width:768px){
  /* Layout — HTML uses .shell not .app */
  .shell{flex-direction:column;height:100dvh;height:100vh;overflow:hidden}
  .main{flex:1;min-height:0;overflow:hidden}

  /* Sidebar becomes a slide-in drawer */
  .sidebar{
    position:fixed;left:-280px;top:0;bottom:0;width:280px;z-index:200;
    flex-direction:column;overflow-y:auto;overflow-x:hidden;
    border-right:.5px solid var(--border);
    transition:left .22s ease;
    height:100%;
  }
  .sidebar.mob-open{left:0}
  .sb-sec{padding:10px 8px 4px;display:block}
  .sb-lbl{display:block}
  .ni{padding:10px 14px;font-size:11px;min-height:44px;display:flex;align-items:center}

  /* Topbar — MENU | LAU OS (center) | ALERTS */
  #mob-hamburger{display:flex;align-items:center;position:relative;z-index:25;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
  .ni,.mob-nav-btn,button[type="button"]{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
  #mob-logo{display:block!important}
  .topbar{padding:0 14px;height:52px;position:relative;justify-content:space-between}
  /* Hide everything except hamburger, logo, alerts — this was already the
     stated intent, but `.tb-r .tb-tog` only matches an element with CLASS
     "tb-tog"; the dark-mode toggle button only has ID "tb-tog" (its class is
     "tb-icon-btn"), so that selector never matched anything and the button
     rendered anyway. Concierge and Quick-add (also plain .tb-icon-btn, no
     unique class) were never targeted at all. Hiding the whole .tb-icon-btn
     group in .tb-r catches all three correctly — mobile keeps the sidebar
     (Concierge is in there) and the bottom nav for primary actions instead. */
  .tb-l .tb-clock,.tb-l .tb-pg,.tb-l .tb-live,.tb-l .tb-search-pill,.tb-l{display:none!important}
  /* Topbar on mobile is Menu (left) / Logo (center) / Alerts (right) only —
     nothing else. Tier pill and the profile/avatar dropdown move into the
     pop-out sidebar footer (#mob-sb-footer) instead, mirrored there by the same
     JS that populates the desktop versions (see initTbProfile() and the
     tier-pill blocks in lau-os-app.js). */
  .tb-r .tb-icon-btn,.tb-r .tb-exit,.tb-r [id="new-btn"],.tb-r .ylux-new-wrap:first-child,.tb-brand,#tb-tier-pill,.tb-profile,#ylauxi-badge{display:none!important}
  /* Keep only the alerts button in tb-r */
  .tb-r{gap:0}
  .tb-r .tb-divider{display:none!important}
  /* Sidebar footer visible on mobile */
  #mob-sb-footer{display:block!important}
  #mob-sb-footer .tb-tog{width:34px;height:20px;border:.5px solid var(--border);border-radius:10px;padding:2px;background:var(--bg);display:flex;align-items:center;cursor:pointer;flex-shrink:0}
  #mob-sb-footer .tb-tog-dot{width:14px;height:14px;border-radius:50%;background:var(--cap);transition:transform .2s}
  #mob-sb-footer .tb-exit{font-family:var(--ylux-font-display);font-size:.5rem;letter-spacing:.16em;text-transform:uppercase;padding:6px 0;border:none;background:transparent;color:var(--text-m);cursor:pointer;width:100%;text-align:left}
  #mob-sb-footer .mob-sb-account-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
  #mob-sb-footer .mob-sb-account-lbl{font-family:var(--ylux-font-display);font-size:.5rem;letter-spacing:.16em;text-transform:uppercase;color:var(--text-m)}

  /* Content */
  .content{padding:14px 12px 80px;flex:1;overflow-y:auto;height:100%}

  /* Grids */
  .mg{grid-template-columns:repeat(2,1fr)!important}
  .br-grid{grid-template-columns:1fr!important}
  .frow{flex-direction:column}
  [style*="grid-template-columns:2fr 1fr"]{display:flex!important;flex-direction:column!important}
  [style*="grid-template-columns:1fr 1fr"]{display:flex!important;flex-direction:column!important}
  [style*="grid-template-columns:repeat(2"]{display:flex!important;flex-direction:column!important}
  [style*="grid-template-columns:repeat(3"]{display:flex!important;flex-direction:column!important}

  /* Tables */
  .tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
  table.tbl{font-size:11px;min-width:500px}
  table.tbl th,table.tbl td{padding:8px 10px}

  /* Cards */
  .card{padding:14px}

  /* Tabs */
  .tabs,.sub-tabs{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch}
  .tab,.stab{white-space:nowrap;font-size:10px;min-height:36px;display:inline-flex;align-items:center}

  /* Horizontally-scrolling tab/stat bars on mobile have no visible scrollbar, so
     overflow content looks like it's just cut off with no hint there's more to
     swipe to. Fade the right edge as a visual affordance instead. */
  .tabs,.sub-tabs,#bd-kpis,#bd-area-tabs,#bds-tab-nav,.soc-tab-bar,.em-brand-tabs{
    -webkit-mask-image:linear-gradient(to right,#000 calc(100% - 20px),transparent 100%);
    mask-image:linear-gradient(to right,#000 calc(100% - 20px),transparent 100%);
  }

  /* Buttons — bigger touch targets */
  .btn{min-height:36px;padding:8px 14px;font-size:10px}
  .btn-sm{min-height:32px;padding:6px 12px;font-size:9px}

  /* Inputs — 16px prevents iOS auto-zoom */
  input,select,textarea{font-size:16px!important}
  .fi{font-size:16px!important}

  /* Brand detail header */
  #v-brand-detail [style*="position:sticky"]{flex-wrap:wrap;gap:8px;padding:10px 14px}
  #bd-body{padding:14px 12px 60px!important}

  /* Calendar */
  .cal-grid{grid-template-columns:repeat(7,1fr)}
  .cal-day{min-height:36px;font-size:9px}

  /* Modals */
  #run-modal>div{width:96vw!important;max-height:90vh!important;padding:16px!important}

  /* Section headings */
  .ph{font-size:13px}
}

@media(max-width:480px){
  .topbar .tb-l > *:not(#mob-hamburger){display:none!important}
  #bd-kpis > div{min-width:80px!important;padding:10px 12px!important}
  /* Was 1fr (single column) — on real phones this beat the 768px breakpoint's
     2-column rule (later in file, max-width:480px also matches phones), turning
     every dashboard metric into a giant full-width card and forcing endless
     scrolling to see basic portfolio health. 2 columns matches the density
     already used on the brand-detail KPI strip. */
  .mg{grid-template-columns:repeat(2,1fr)!important}
}


/* ── Skeleton loading ────────────────────────────────────────── */
@keyframes skel-shimmer{0%{background-position:-400px 0}100%{background-position:400px 0}}
.skel{
  background:linear-gradient(90deg,var(--faint) 25%,var(--border) 50%,var(--faint) 75%);
  background-size:800px 100%;
  animation:skel-shimmer 1.4s infinite linear;
  border-radius:2px;
}
.skel-line{height:11px;margin-bottom:8px;width:100%}
.skel-line.w60{width:60%}
.skel-line.w40{width:40%}
.skel-line.w80{width:80%}
.skel-val{height:28px;width:50%;margin-bottom:4px}
.skel-row{display:flex;gap:12px;margin-bottom:10px;align-items:center}
.skel-cell{height:11px;flex:1}
.skel-block{height:80px;margin-bottom:12px}

/* ── Collapsible sidebar ─────────────────────────────────────── */
.sb-sec-hdr{
  display:flex;align-items:center;justify-content:space-between;
  cursor:pointer;padding:10px 14px 4px;
  font-size:8.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--cap);
  user-select:none;
}
.sb-sec-hdr:hover{color:var(--text)}
.sb-sec-hdr .sb-chev{font-size:8px;transition:transform .18s;margin-left:4px;opacity:.5}
.sb-sec.collapsed .sb-chev{transform:rotate(-90deg)}
.sb-sec.collapsed .ni{display:none}


/* ── CSV export button ───────────────────────────────────────── */
.btn-csv{
  font-size:8px;letter-spacing:.1em;text-transform:uppercase;
  padding:3px 8px;border:.5px solid var(--border);color:var(--text-m);
  background:none;cursor:pointer;transition:all .12s;
}
.btn-csv:hover{border-color:var(--text);color:var(--text)}

/* ── Bulk select ─────────────────────────────────────────────── */
.bulk-bar{
  display:none;position:sticky;top:52px;z-index:15;
  background:var(--bg2);border-bottom:.5px solid var(--cap-d);
  padding:8px 16px;align-items:center;gap:12px;
  font-size:10px;letter-spacing:.06em;
}
.bulk-bar.active{display:flex}
.tbl .row-chk{width:16px;height:16px;cursor:pointer;accent-color:var(--cap)}

/* ── Auto-refresh indicator ──────────────────────────────────── */
#refresh-dot{
  width:5px;height:5px;border-radius:50%;background:var(--border-s);
  display:inline-block;margin-left:6px;transition:background .3s;
  vertical-align:middle;
}
#refresh-dot.live{background:var(--cap-d)}

.cms-loading{padding:20px;font-size:11px;color:var(--text-m)}
.cms-list{display:flex;flex-direction:column;gap:1px}
.cms-row{padding:10px 0;border-bottom:.5px solid var(--border);display:flex;align-items:center;gap:10px}
.cms-row-main{flex:1;display:flex;align-items:center;gap:10px;min-width:0}
.cms-row-title{font-size:12px;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cms-row-date{font-size:9px;color:var(--text-m);white-space:nowrap}
.cms-row-actions{display:flex;gap:5px;flex-shrink:0}
.cms-form{background:var(--faint);border:.5px solid var(--border);border-radius:3px;padding:18px;margin-bottom:14px}
.cms-form-title{font-family:var(--ylux-font-editorial);font-size:15px;font-weight:400;margin-bottom:14px;padding-bottom:10px;border-bottom:.5px solid var(--border)}
.cms-field{display:flex;flex-direction:column;gap:4px}
.cms-label{font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-m)}
.cms-input{border:.5px solid var(--border);background:var(--bg2,#fff);color:var(--text);padding:6px 8px;font-size:11px;width:100%;border-radius:2px;outline:none;font-family:inherit}
.cms-input:focus{border-color:var(--cap-d,var(--text-m))}
.cms-form-fields{display:flex;flex-direction:column;gap:10px}
.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px}
.media-tile{background:var(--faint);border:.5px solid var(--border);border-radius:3px;padding:6px}
.cms-types{gap:4px!important}
/* Auto-wrap tables for mobile scroll */
.view:not(#v-sales):not(#v-ylauxi)>div>table.tbl,.view:not(#v-sales):not(#v-ylauxi) table.tbl{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}

@media(max-width:768px){
  /* Metric card values — larger and more readable */
  .mv{font-size:22px!important}
  .ml{font-size:10px!important}
  .mc{padding:14px 16px!important}

  /* Table — horizontal scroll + min width so columns breathe */
  .tbl{min-width:480px;font-size:11px!important}
  .tbl th,.tbl td{padding:9px 10px!important;white-space:nowrap}

  /* Hide less-critical table columns on mobile */
  .tbl th:nth-child(4),.tbl td:nth-child(4),
  .tbl th:nth-child(5),.tbl td:nth-child(5){display:none}

  /* Make all inline-grid layouts collapse */
  div[style*="display:grid"]{display:flex!important;flex-direction:column!important;gap:10px!important}
  div[style*="display: grid"]{display:flex!important;flex-direction:column!important;gap:10px!important}

  /* But keep .mg as 2-col */
  .mg{display:grid!important;grid-template-columns:repeat(2,1fr)!important;flex-direction:unset!important}

  /* Brand detail sub-tabs scroll */
  .tabs,.sub-tabs,#bda-ct,#bdc-ct,#bde-ct{overflow-x:auto!important;flex-wrap:nowrap!important}
  .tp{flex-shrink:0}

  /* Section heading font */
  .sec-h{font-size:10px!important}

  /* Make ph (page heading) more compact */
  .ph{padding-bottom:6px!important}
  .ph-hr{margin-bottom:14px!important}

  /* Card grid inside brand detail */
  #bd-overview [style*="grid-template-columns"]{display:flex!important;flex-direction:column!important}

  /* Form rows */
  .fgrp{margin-bottom:10px}
  .frow,.fgrp+.fgrp{flex-direction:column!important}

  /* KPI strip horizontal scroll */
  #bd-kpis{overflow-x:auto!important;flex-wrap:nowrap!important}
  #bd-kpis>div{flex-shrink:0;min-width:90px!important;padding:10px 14px!important}

  /* Sticky brand detail header compact */
  #v-brand-detail > div:first-child{flex-wrap:wrap!important;padding:10px 14px!important;gap:8px!important}
  #v-brand-detail > div:first-child > div:last-child{flex-wrap:wrap!important;gap:6px!important}

  /* Charts / analytics overflow */
  canvas{max-width:100%!important;height:auto!important}

  /* Sidebar width when open */
  .sidebar.mob-open{box-shadow:4px 0 24px rgba(0,0,0,.18)}

  /* Hide brand selector from topbar on mobile — accessed via sidebar */
  .topbar > div[style*="brand"]{display:none!important}
  /* Hide the middle brand selector div in topbar */
  .topbar > div:not(.tb-l):not(.tb-r):not(#mob-logo){display:none!important}
  /* The + ADD SKU / add buttons full width */
  .view > div > .btn-blk{width:100%!important;text-align:center!important}

  /* Agent cards */
  .av-card{flex-direction:column!important;align-items:flex-start!important}
}

.serp-preview{padding:12px;background:var(--bg2);border:.5px solid var(--border);border-radius:3px;max-width:520px;margin-top:6px}
.serp-url{font-size:12px;color:var(--text-m);margin-bottom:2px}
.serp-title{font-size:18px;color:var(--text);line-height:1.3;margin-bottom:4px}
.serp-desc{font-size:13px;color:var(--text-s);line-height:1.5}

.ver-preview{animation:fadeIn .2s ease}
@keyframes fadeIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}

/* ── Global confirm modal ── */
#lau-confirm-overlay{position:fixed;inset:0;z-index:9000;background:rgba(250,250,248,.78);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .18s}
#lau-confirm-overlay.show{opacity:1;pointer-events:all}
#lau-confirm-box{background:var(--bg2);border:.5px solid var(--border-s);padding:32px 36px;max-width:380px;width:90%;text-align:center}
#lau-confirm-msg{font-size:15px;color:var(--text);margin-bottom:6px;font-family:var(--ylux-font-editorial);font-weight:300}
#lau-confirm-sub{font-size:10px;color:var(--text-m);margin-bottom:22px;letter-spacing:.04em}
/* ── Skeleton shimmer ── */
.skel{background:var(--faint);position:relative;overflow:hidden}
.skel::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.05) 50%,transparent 100%);animation:skelShim 1.5s infinite}
@keyframes skelShim{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}
.skel-row{display:flex;gap:10px;padding:11px 0;border-bottom:.5px solid var(--border)}
.skel-text{height:10px;border-radius:1px}

.view.act{display:block;min-height:0}
.main{overflow-x:hidden}
.content{overflow-x:hidden;max-width:100%;box-sizing:border-box}
.view{max-width:100%;box-sizing:border-box;overflow-x:hidden}
#v-alerts .ph,#v-alerts .ph-hr{max-width:100%}
.al-swipe-wrap{position:relative;overflow:hidden;border-bottom:.5px solid var(--border)}
.al-swipe-actions{position:absolute;top:0;right:0;bottom:0;display:flex;align-items:stretch;z-index:1}
.al-swipe-act{display:flex;align-items:center;justify-content:center;padding:0 18px;border:none;cursor:pointer;font-family:var(--ylux-font-display);font-size:.5rem;letter-spacing:.16em;text-transform:uppercase;color:#fff;min-width:72px}
.al-swipe-act--archive{background:var(--cap)}
.al-swipe-act--delete{background:var(--text)}
.al-swipe-act--restore{background:var(--cap-d)}
.al-swipe-content{position:relative;z-index:2;background:var(--bg);padding:16px 0;transition:transform .22s var(--ylux-ease);touch-action:pan-y}
.al-swipe-wrap.is-open .al-swipe-content{transform:translateX(-144px)}
.al-swipe-hint{font-size:8px;color:var(--text-m);letter-spacing:.08em;margin-top:6px;opacity:.7}
@media(min-width:769px){
  .al-swipe-hint{display:none}
  .al-swipe-wrap:hover .al-swipe-content{transform:translateX(-144px)}
}

/* Embed panel fix (admin/sales portals) */
[hidden]{display:none!important}
#ylauxi-admin-root .yla-panel:not(.is-on),#v-ylauxi .yla-panel:not(.is-on){display:none!important;height:0!important;overflow:hidden!important;margin:0!important;padding:0!important;border:none!important}
#ylauxi-admin-root .yla-panel.is-on,#v-ylauxi .yla-panel.is-on{display:block!important;height:auto!important;overflow:visible!important}
#sales-portal-root .sp-panel:not(.is-on),#v-sales .sp-panel:not(.is-on){display:none!important;height:0!important;overflow:hidden!important;margin:0!important;padding:0!important;border:none!important}
#sales-portal-root .sp-panel.is-on,#v-sales .sp-panel.is-on{display:block!important;height:auto!important;overflow:visible!important}

/* Mobile OS polish */
@media(max-width:768px){
  .sidebar{width:min(280px,92vw)}
  .shell{height:100dvh;height:100vh}
  .content{padding-bottom:calc(80px + env(safe-area-inset-bottom,0px))}
  .ph{font-size:11px;letter-spacing:.18em}
  .mc{padding:12px 14px}
  .view .card{overflow-x:auto}
  .tabs,.sub-tabs{scrollbar-width:none}
  .tabs::-webkit-scrollbar,.sub-tabs::-webkit-scrollbar{display:none}
  /* Brand-detail KPI strip: on desktop these flex:1 across a wide row (see
     renderBdKpis in lau-os-app.js); on a narrow viewport that same rule crams 8
     cells into one unbroken scrolling row with no visual hint there's more to
     the right — cells just get cut off at the screen edge. Wrap into a 2-col
     grid instead so every stat is visible without a hidden horizontal swipe. */
  #bd-kpis{display:grid!important;grid-template-columns:1fr 1fr;overflow-x:visible}
  #bd-kpis>div{border-right:.5px solid var(--border)!important;border-bottom:.5px solid var(--border)}
  #bd-kpis>div:nth-child(2n){border-right:none!important}
  /* Area-tabs bar: same class of bug — justify-content:center (desktop) plus
     overflow-x:auto means the active tab (usually "Home", first in the list)
     can render scrolled out of view to the left with zero indication, while
     unrelated tabs mid-list are what's actually on screen on load. */
  #bd-area-tabs{justify-content:flex-start!important}
}
@media(max-width:480px){
  /* This is the LAST .mg rule in the file, so on real phones (which match every
     max-width breakpoint down to this one) it was the actual final winner over
     the earlier repeat(2,1fr) rules — collapsing the dashboard back to a single
     giant full-width card per metric no matter what the other rules said. */
  .mg{grid-template-columns:repeat(2,1fr)!important}
  .sidebar{width:100%;max-width:320px;left:-100%}
  .sidebar.mob-open{left:0}
}


/* LAU OS layout fix */
.shell{display:flex;height:100vh;overflow:hidden}
.main{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column}
.content{flex:1;min-height:0;padding:32px 32px 60px;max-width:100%;overflow-x:hidden;box-sizing:border-box}
.view{display:none}
.view.act{display:block !important}
