/* =======================================================================
   Panel chrome — dark sidebar, grouped nav, dashboard cards and charts.
   Loaded after app.css by every /account/, /manage/ and /partner/ page.
   ===================================================================== */

/* --- top bar --- */
body.panel-page{display:block;background:var(--bg-2);margin:0}
body.panel-page .app-top{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;
  gap:12px;background:var(--ink);color:#fff;padding:0 18px;height:54px;position:sticky;top:0;z-index:40;width:100%;
  box-shadow:0 1px 0 rgba(255,255,255,.06)}
body.panel-page .app-brand .tag{background:var(--yellow);color:var(--ink)}
.app-burger{display:none;background:none;border:0;color:#fff;padding:6px;border-radius:8px;cursor:pointer}
.app-burger:hover{background:rgba(255,255,255,.1)}

.app-search{display:flex;align-items:center;gap:9px;background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.13);border-radius:10px;padding:0 12px;height:34px;max-width:440px;width:100%}
.app-search:focus-within{background:rgba(255,255,255,.13);border-color:rgba(255,255,255,.28)}
.app-search svg{color:#9AA5C4;flex:none}
.app-search input{flex:1;min-width:0;background:none;border:0;color:#fff;font:inherit;font-size:13px;outline:none}
.app-search input::placeholder{color:#8590AE}
.app-search kbd{font:inherit;font-size:11px;font-weight:700;color:#8590AE;background:rgba(255,255,255,.09);
  border-radius:5px;padding:2px 7px;flex:none}

.app-right{display:flex;align-items:center;gap:8px;justify-self:end}
.app-menu{position:relative}
.app-menu>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:9px;
  padding:6px 9px;border-radius:10px;color:#fff}
.app-menu>summary::-webkit-details-marker{display:none}
.app-menu>summary:hover,.app-menu[open]>summary{background:rgba(255,255,255,.11)}
.app-menu.bell>summary{position:relative;padding:8px}
.app-menu.bell em{position:absolute;top:2px;right:2px;background:#EF4444;color:#fff;font-style:normal;
  font-size:10px;font-weight:800;line-height:1;padding:3px 5px;border-radius:999px;border:2px solid var(--ink)}
.app-menu .av{width:29px;height:29px;border-radius:50%;background:var(--yellow);color:var(--ink);
  display:grid;place-items:center;font-family:var(--font-head);font-weight:800;font-size:12px;flex:none}
.who-t{display:grid;line-height:1.25;text-align:left}
.who-t b{font-size:13px;font-family:var(--font-head);color:#fff}
.who-t small{font-size:11px;color:#9AA5C4}
.menu-pop{position:absolute;top:calc(100% + 8px);right:0;min-width:264px;background:#fff;
  border:1px solid var(--line);border-radius:12px;box-shadow:0 16px 44px rgba(11,18,41,.18);padding:8px;z-index:60}
.menu-pop h6{font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;
  color:var(--faint);padding:8px 10px 6px;margin:0}
.menu-pop a{display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:9px 10px;border-radius:8px;font-size:13px;font-weight:600;color:var(--text)}
.menu-pop a:hover{background:var(--bg-2);color:var(--ink)}
.menu-pop a.danger{color:#B42318}
.menu-pop a b{font-size:12px;color:var(--faint);background:var(--bg-2);border-radius:999px;padding:2px 9px}
.menu-pop a b.on{background:var(--yellow);color:var(--ink)}
.menu-none{font-size:12px;color:var(--muted);padding:4px 10px 10px;margin:0}

/* --- dark grouped sidebar -------------------------------------------------
   Sized so the whole navigation fits a 1366x768 laptop without scrolling.
   When it does scroll (a short window, or a longer menu later) the bar is a
   thin subtle overlay rather than the chunky native one. */
body.panel-page .app-body{display:grid;grid-template-columns:224px minmax(0,1fr);
  min-height:calc(100vh - 54px);background:var(--bg-2);max-width:none;width:100%;margin:0;padding:0}
/* The sidebar scrolls WITH the page rather than inside its own box. A 28-item
   menu cannot fit a 768px laptop at any sane density, and two scrollbars on one
   screen looked worse than one. The top bar stays pinned, so search and the
   account menu are always reachable. */
body.panel-page .app-side{background:linear-gradient(180deg,#0B1229 0%,#141E42 60%,#0F1732 100%);
  border-right:1px solid rgba(255,255,255,.06);padding:10px 10px 24px;
  display:flex;flex-direction:column;overflow:visible;
  /* height:auto and position:static override dash.css, which pins .app-side to
     100vh for the retired mockup and would clip a menu taller than the window. */
  height:auto;min-height:100%;position:static;top:auto}

/* One page scrollbar, made unobtrusive rather than chunky. */
body.panel-page{scrollbar-width:thin;scrollbar-color:#C3CADB transparent}
body.panel-page::-webkit-scrollbar{width:10px}
body.panel-page::-webkit-scrollbar-track{background:var(--bg-2)}
body.panel-page::-webkit-scrollbar-thumb{background:#C8CFDF;border-radius:6px;
  border:3px solid var(--bg-2)}
body.panel-page::-webkit-scrollbar-thumb:hover{background:#A9B3C9}

body.panel-page .app-nav{display:grid;gap:1px;align-content:start;flex:0 0 auto}
/* the dark panel keeps its colour all the way down a long page */
body.panel-page .app-body{background:linear-gradient(90deg,#0B1229 0 224px,var(--bg-2) 224px)}
body.panel-page .app-nav h5{font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
  color:#5D6786;margin:12px 0 3px 10px}
body.panel-page .app-nav h5:first-child{margin-top:0}
body.panel-page .app-nav a{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:8px;
  font-size:13px;font-weight:600;color:#AEB7D2;line-height:1.2;position:relative}
body.panel-page .app-nav a i{display:flex;color:#6E7899;flex:none}
body.panel-page .app-nav a i svg{width:15px;height:15px}
body.panel-page .app-nav a span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.panel-page .app-nav a:hover{background:rgba(255,255,255,.06);color:#fff}
body.panel-page .app-nav a:hover i{color:#AEB7D2}
body.panel-page .app-nav a.on{background:var(--yellow);color:var(--ink);font-weight:700;
  box-shadow:0 2px 10px rgba(255,198,26,.28)}
body.panel-page .app-nav a.on i{color:var(--ink)}
.nav-badge,.nav-tag{font-style:normal;font-size:10px;font-weight:800;line-height:1;padding:3px 6px;
  border-radius:999px;background:rgba(255,255,255,.15);color:#fff;flex:none;min-width:17px;text-align:center}
.app-nav a.on .nav-badge,.app-nav a.on .nav-tag{background:rgba(11,18,41,.18);color:var(--ink)}
.nav-tag{background:#12B76A;color:#fff}

body.panel-page .app-main{padding:20px 22px 52px;min-width:0}

/* --- dashboard header --- */
.dash-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px}
.dash-head h1{font-family:var(--font-head);font-size:24px;letter-spacing:-.025em;color:var(--ink);margin:0}
.dash-head p{font-size:13px;color:var(--muted);margin:4px 0 0}
.dash-head-act{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.dash-head-act .btn svg{width:15px;height:15px;margin-right:5px;vertical-align:-3px}
.pillbox{display:inline-flex;align-items:center;gap:7px;background:#fff;border:1px solid var(--line);
  border-radius:10px;padding:9px 14px;font-size:13px;font-weight:700;color:var(--ink)}

/* --- KPI cards --- */
.kpi-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:16px}
@media (max-width:1320px){.kpi-row{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:820px){.kpi-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.kpi-row{grid-template-columns:1fr}}
.kpi{background:#fff;border:1px solid var(--line);border-radius:13px;padding:14px 15px;min-width:0;
  display:flex;flex-direction:column;justify-content:space-between;gap:10px;
  box-shadow:0 1px 2px rgba(11,18,41,.04);transition:box-shadow .18s,transform .18s}
.kpi:hover{box-shadow:0 6px 20px rgba(11,18,41,.07);transform:translateY(-1px)}
.kpi-top{display:flex;align-items:flex-start;gap:12px}
.kpi-ico{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;flex:none;
  background:var(--bg-2);color:var(--c);box-shadow:inset 0 0 0 1px rgba(11,18,41,.04)}
.kpi-ico svg{width:18px;height:18px}
.kpi-top small{display:block;font-size:11px;font-weight:600;color:var(--muted);margin-bottom:3px;line-height:1.35}
.kpi-top b{display:block;font-family:var(--font-head);font-size:20px;letter-spacing:-.025em;color:var(--ink);
  font-variant-numeric:tabular-nums;line-height:1.15}
.kpi-foot{display:flex;align-items:flex-end;justify-content:space-between;gap:8px;min-width:0}
.spark{flex:none;opacity:.95;width:88px;height:32px}

.delta{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:800;white-space:nowrap}
.delta.up{color:#0B7B4C}
.delta.down{color:#B42318}
.delta.none{color:var(--faint);font-weight:600}
.delta small{font-weight:600;color:var(--faint);font-size:10px}

/* --- cards --- */
.card-h{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:12px;
  padding-bottom:11px;border-bottom:1px solid var(--line)}
.card-h h3{font-family:var(--font-head);font-size:14px;color:var(--ink);margin:0}
.card-more{font-size:12px;font-weight:800;color:var(--blue)}
.card-more:hover{text-decoration:underline}
.card>.table-wrap{border:0;border-radius:0;background:none}
.card .tbl th{padding-top:0}
.card .tbl td{padding:9px 10px;font-size:13px}
.card .tbl th:first-child,.card .tbl td:first-child{padding-left:0}
.card .tbl th:last-child,.card .tbl td:last-child{padding-right:0}
small.sub{display:block;font-size:11px;color:var(--faint);font-weight:600;margin-top:2px}

.dash-2{display:grid;grid-template-columns:minmax(0,1.85fr) minmax(290px,1fr);gap:12px;margin-bottom:16px}
.dash-2b{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;margin-bottom:16px}
.dash-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:12px;margin-bottom:16px}

/* --- charts --- */
.chart-legend{display:flex;align-items:center;gap:16px;font-size:12px;font-weight:700;color:var(--muted);margin-bottom:10px}
.chart-legend span{display:inline-flex;align-items:center;gap:6px}
.chart-legend i{width:9px;height:9px;border-radius:3px;display:inline-block}
.chart-legend em{margin-left:auto;font-style:normal;font-weight:600;color:var(--faint)}
.chart-body{display:grid;grid-template-columns:minmax(0,1fr) 210px;gap:18px;align-items:start}
.chart-plot{min-width:0}
.areachart{width:100%;height:auto;display:block}
.areachart .ax{font-size:10px;fill:#8A93A6;font-weight:600}
.chart-stats{display:grid;gap:12px;border-left:1px solid var(--line);padding-left:18px}
.chart-stats small{display:block;font-size:11px;color:var(--muted);font-weight:600;margin-bottom:2px}
.chart-stats b{display:block;font-family:var(--font-head);font-size:18px;color:var(--ink);
  letter-spacing:-.01em;font-variant-numeric:tabular-nums;margin-bottom:2px}
.chart-empty{display:grid;place-items:center;border:1px dashed var(--line-2);border-radius:10px;
  color:var(--faint);font-size:13px;font-weight:600;background:var(--bg-2)}

.donut-wrap{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.donut{flex:none}
.donut .dn-v{font-family:var(--font-head);font-size:18px;font-weight:800;fill:var(--ink)}
.donut .dn-l{font-size:10px;fill:#8A93A6;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.donut-legend{list-style:none;margin:0;padding:0;display:grid;gap:9px;flex:1;min-width:150px}
.donut-legend li{display:grid;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:8px;font-size:12px}
.donut-legend i{width:10px;height:10px;border-radius:3px}
.donut-legend span{color:var(--muted);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.donut-legend b{font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums}
.donut-legend em{grid-column:2/4;font-style:normal;font-size:11px;color:var(--faint);margin-top:-6px}

.payout-top{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}
.payout-top small{display:block;font-size:11px;color:var(--muted);font-weight:600;margin-bottom:3px}
.payout-top b{font-family:var(--font-head);font-size:18px;color:var(--ink);font-variant-numeric:tabular-nums}
.payout-top b.warnv{color:#B54708}

.prog{height:8px;border-radius:999px;background:var(--bg-2);overflow:hidden}
.prog span{display:block;height:100%;border-radius:999px}

/* --- quick actions --- */
.qa-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:10px;margin-bottom:18px}
.qa{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);
  border-radius:12px;padding:12px 14px;box-shadow:0 1px 2px rgba(11,18,41,.04);
  transition:border-color .16s,transform .16s,box-shadow .16s}
.qa:hover{border-color:var(--yellow);transform:translateY(-2px);box-shadow:0 8px 22px rgba(11,18,41,.09)}
.qa-ico{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;flex:none;
  background:var(--bg-2);color:var(--c)}
.qa-ico.sm{width:34px;height:34px;border-radius:9px}
.qa-ico svg{width:19px;height:19px}
.qa-t{display:grid;min-width:0}
.qa-t b{font-family:var(--font-head);font-size:13px;color:var(--ink)}
.qa-t small{font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* --- activity feed --- */
.feed{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.feed li{display:grid;grid-template-columns:14px minmax(0,1fr);gap:11px;padding:9px 0;
  font-size:13px;color:var(--muted);line-height:1.55;border-bottom:1px solid var(--line)}
.feed li:last-child{border-bottom:0}
.feed-dot{width:8px;height:8px;border-radius:50%;background:var(--yellow);margin-top:6px;
  box-shadow:0 0 0 3px rgba(255,198,26,.22)}
.feed b{color:var(--ink);font-weight:700}
.feed code{font-size:11px;background:var(--bg-2);border-radius:5px;padding:1px 6px;color:var(--muted)}
.feed small{display:block;font-size:11px;color:var(--faint);margin-top:2px}
.feed-none{grid-template-columns:1fr;color:var(--faint)}

/* --- bottom strip --- */
.strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1px;
  background:var(--line);border:1px solid var(--line);border-radius:13px;overflow:hidden;
  box-shadow:0 1px 2px rgba(11,18,41,.04)}
.strip-i{display:flex;align-items:center;gap:10px;background:#fff;padding:13px 15px;transition:background .15s}
.strip-i:hover{background:var(--bg-2)}
.strip-i small{display:block;font-size:11px;color:var(--muted);font-weight:600}
.strip-i b{font-family:var(--font-head);font-size:18px;color:var(--ink);font-variant-numeric:tabular-nums}

/* --- partner extras --- */
.tier-card{text-align:center}
.tier-ring{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;margin:0 auto 10px;
  background:var(--bg-2);color:var(--yellow)}
.tier-ring svg{width:30px;height:30px}
.tier-card h4{font-family:var(--font-head);font-size:18px;color:var(--ink);margin:0 0 4px}
.tier-card p{font-size:12px;color:var(--muted);margin:0 0 14px;line-height:1.55}
.tier-rows{display:grid;gap:10px;text-align:left;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.tier-rows div{display:flex;justify-content:space-between;gap:12px;font-size:13px}
.tier-rows span{color:var(--muted);font-weight:600}
.tier-rows b{color:var(--ink);font-variant-numeric:tabular-nums}

.share-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.share-row a{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;
  background:var(--bg-2);color:var(--muted);border:1px solid var(--line)}
.share-row a:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.share-row svg{width:17px;height:17px}

@media (max-width:1180px){
  .dash-2{grid-template-columns:1fr}
  .chart-body{grid-template-columns:1fr}
  .chart-stats{border-left:0;border-top:1px solid var(--line);padding:16px 0 0;
    grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
}
@media (max-width:900px){
  .dash-2b{grid-template-columns:1fr}
  .app-search{display:none}
  .app-burger{display:block}
  body.panel-page .app-body{grid-template-columns:1fr}
  body.panel-page .app-side{position:static;height:auto;display:none}
  body.panel-page .app-side.open{display:block}
  body.panel-page .app-main{padding:18px 16px 48px}
  .who-t{display:none}
  body.panel-page .app-top{grid-template-columns:auto auto 1fr auto}
}

/* Customer-panel additions: account card, suggestions, help box. */

.acct{display:flex;align-items:center;gap:13px;margin-bottom:14px}
.acct-av{width:48px;height:48px;border-radius:50%;background:var(--ink);color:var(--yellow);
  display:grid;place-items:center;font-family:var(--font-head);font-weight:800;font-size:16px;flex:none}
.acct b{display:block;font-family:var(--font-head);font-size:15px;color:var(--ink)}
.acct small{display:block;font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.sugg{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
@media (max-width:1280px){.sugg{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.sugg{grid-template-columns:1fr}}
.sugg-i{display:grid;gap:3px;background:var(--bg-2);border:1px solid var(--line);border-radius:11px;
  padding:12px;transition:border-color .15s,transform .15s}
.sugg-i:hover{border-color:var(--ink);transform:translateY(-2px)}
.sugg-i img,.sugg-ph{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:8px;
  background:#fff;border:1px solid var(--line);margin-bottom:6px;display:block}
.sugg-ph{display:grid;place-items:center;font-family:var(--font-head);font-weight:800;
  font-size:15px;color:var(--faint)}
.sugg-i b{font-family:var(--font-head);font-size:13px;color:var(--ink);line-height:1.35}
.sugg-i small{font-size:11px;color:var(--faint);font-weight:600}
.sugg-i em{font-style:normal;font-size:13px;font-weight:800;color:var(--ink);margin-top:3px}
.sugg-i em span{font-weight:600;font-size:11px;color:var(--muted)}

.help-box{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--bg-2);
  border:1px solid var(--line);border-radius:11px;padding:13px 15px;margin-top:14px}
.help-box b{display:block;font-family:var(--font-head);font-size:13px;color:var(--ink)}
.help-box small{display:block;font-size:12px;color:var(--muted)}
.help-box .btn{margin-left:auto}
.help-box>div{min-width:0;flex:1}

.tbl .nowrap,.tbl a.nowrap b{white-space:nowrap}
.card .tbl td:first-child{max-width:210px}

.danger-h{font-family:var(--font-head);font-size:13px;color:#B42318;margin:18px 0 4px;padding-top:16px;border-top:1px solid var(--line)}
.btn-danger{background:#B42318;color:#fff;border:1px solid #B42318}
.btn-danger:hover{background:#912012;border-color:#912012}

/* --- addresses --- */
.addr{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:15px 17px;margin-bottom:12px}
.addr.is-default{border-color:var(--ink)}
.addr-h{display:flex;align-items:center;gap:9px;margin-bottom:7px}
.addr-h b{font-family:var(--font-head);font-size:14px;color:var(--ink)}
.addr p{font-size:13px;color:var(--muted);line-height:1.55;margin:0 0 12px}
.addr-act{display:flex;gap:7px;flex-wrap:wrap;align-items:center}

/* --- wishlist grid --- */
.sugg.wide{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}
.sugg-act{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}
.sugg-act .btn{flex:1}

/* --- stars --- */
.stars{display:inline-flex;align-items:center;gap:1px;font-size:13px}
.stars i{font-style:normal;color:#D8DDE9;line-height:1}
.stars i.on{color:#F79009}
.stars b{margin-left:6px;font-size:12px;color:var(--ink)}
.stars small{margin-left:3px;font-size:11px;color:var(--faint)}
.stars.none{color:var(--faint);font-size:12px;font-weight:600}

.copybox{width:100%;padding:11px 13px;border:1px solid var(--line-2);border-radius:10px;
  font:inherit;font-size:13px;background:var(--bg-2);color:var(--ink);resize:vertical;margin-bottom:10px}
small.sub.reply{color:var(--blue)}
.feed li.unread{background:#FFFDF3;margin:0 -8px;padding-left:8px;padding-right:8px;border-radius:6px}
.share-row a{width:auto;padding:0 13px;font-size:12px;font-weight:700}

/* Products list: breadcrumb, filter bar, category rail, dense table, footer. */

.crumbs{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);margin-top:5px}
.crumbs a{color:var(--muted);font-weight:600}
.crumbs a:hover{color:var(--ink)}
.crumbs span{color:var(--line-2)}
.crumbs b{color:var(--ink);font-weight:700}

/* --- filter bar --- */
.filterbar{display:flex;align-items:center;gap:9px;flex-wrap:wrap;background:#fff;
  border:1px solid var(--line);border-radius:13px;padding:11px 13px;margin-bottom:14px;
  box-shadow:0 1px 2px rgba(11,18,41,.04)}
.fb-search{display:flex;align-items:center;gap:8px;flex:1 1 240px;min-width:0;
  border:1px solid var(--line-2);border-radius:9px;padding:0 11px;height:36px;background:var(--bg-2)}
.fb-search svg{color:var(--faint);flex:none;width:15px;height:15px}
.fb-search input{flex:1;min-width:0;border:0;background:none;font:inherit;font-size:13px;
  color:var(--ink);outline:none}
.filterbar select{height:36px;border:1px solid var(--line-2);border-radius:9px;background:#fff;
  font:inherit;font-size:12px;font-weight:600;color:var(--ink);padding:0 9px;max-width:190px}
.filterbar select:focus,.fb-search:focus-within{outline:2px solid var(--blue);outline-offset:1px}

/* --- layout: category rail beside the table --- */
.prod-layout{display:grid;grid-template-columns:206px minmax(0,1fr);gap:13px;align-items:start}
.cat-rail{background:#fff;border:1px solid var(--line);border-radius:13px;padding:13px 11px;
  box-shadow:0 1px 2px rgba(11,18,41,.04);position:sticky;top:68px}
.cat-rail h4{font-size:10px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;
  color:var(--faint);margin:0 0 7px 8px}
.cat-row{display:flex;align-items:center;justify-content:space-between;gap:9px;
  padding:7px 9px;border-radius:8px;font-size:13px;font-weight:600;color:var(--muted)}
.cat-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cat-row b{font-size:11px;font-weight:800;color:var(--faint);background:var(--bg-2);
  border-radius:999px;padding:2px 7px;flex:none}
.cat-row:hover{background:var(--bg-2);color:var(--ink)}
.cat-row.on{background:var(--ink);color:#fff}
.cat-row.on b{background:rgba(255,255,255,.18);color:#fff}

/* --- the table itself --- */
.prod-table{padding:0;overflow:hidden}
.prod-table>.card-h{padding:14px 16px;margin:0}
.prod-table .count{color:var(--faint);font-weight:600}
.prod-table>.table-wrap{border:0;border-radius:0;box-shadow:none}
.prod-table .tbl th{padding:11px 12px;background:var(--bg-2);border-bottom:1px solid var(--line)}
.prod-table .tbl td{padding:10px 12px;vertical-align:middle}
.prod-table .tbl tr:hover td{background:#FBFCFE}

.pcell{display:flex;align-items:center;gap:10px;min-width:0}
.pcell .thumb{width:36px;height:36px;border-radius:8px;flex:none}
.pcell div{min-width:0}
.pcell b{display:block;font-size:13px;color:var(--ink);line-height:1.3}
.pcell small{display:block;font-size:11px;color:var(--faint);overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap;max-width:24ch}

.chip{display:inline-block;font-size:11px;font-weight:700;padding:3px 9px;border-radius:999px;
  background:#EEF2FF;color:#3730A3;white-space:nowrap}
.chip.c-0,.chip.c-1{background:#EEF2FF;color:#3730A3}
.chip.c-2,.chip.c-3{background:#ECFDF5;color:#065F46}
.chip.c-4,.chip.c-5{background:#FFF7ED;color:#9A3412}
.chip.c-6,.chip.c-7{background:#FDF2F8;color:#9D174D}
.chip.c-8,.chip.c-9{background:#F0F9FF;color:#075985}
.chip.c-a,.chip.c-b{background:#F5F3FF;color:#5B21B6}
.chip.c-c,.chip.c-d{background:#FEFCE8;color:#854D0E}
.chip.c-e,.chip.c-f{background:#F0FDFA;color:#115E59}

.tbl .muted{color:var(--faint);font-size:12px}
small.sub.warn-t{color:#B54708;font-weight:700}

.rowacts{display:flex;gap:5px;justify-content:flex-end}
.ract{width:29px;height:29px;border-radius:7px;display:grid;place-items:center;
  border:1px solid var(--line);color:var(--muted);background:#fff}
.ract:hover{border-color:var(--ink);color:var(--ink);background:var(--bg-2)}
.ract svg{width:15px;height:15px}

.tfoot{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
  padding:12px 16px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}
.tfoot .pager{margin:0}
.perpage select{height:32px;border:1px solid var(--line-2);border-radius:8px;background:#fff;
  font:inherit;font-size:12px;font-weight:600;color:var(--ink);padding:0 8px}

@media (max-width:1080px){
  .prod-layout{grid-template-columns:1fr}
  .cat-rail{position:static;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:4px}
  .cat-rail h4{grid-column:1/-1}
}

/* --- SEO editor: search result and share-card previews ----------------- */
.ogshot{width:100%;max-width:340px;border-radius:10px;border:1px solid var(--line);
  display:block;margin-bottom:10px;aspect-ratio:1200/630;object-fit:cover;background:var(--bg-2)}

.serp{background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px 16px;margin-bottom:14px}
.serp-url{display:flex;align-items:center;gap:9px;margin-bottom:6px}
.serp-fav{width:26px;height:26px;border-radius:50%;background:var(--ink);color:var(--yellow);
  display:grid;place-items:center;font-family:var(--font-head);font-weight:800;font-size:12px;flex:none}
.serp-url b{display:block;font-size:12.5px;color:var(--ink);font-weight:600;line-height:1.2}
.serp-url small{display:block;font-size:11.5px;color:var(--muted)}
.serp-t{display:block;font-size:19px;line-height:1.3;color:#1a0dab;margin:2px 0 3px;
  font-family:var(--font-body);font-weight:400}
.serp-t:hover{text-decoration:underline}
.serp-d{font-size:13px;line-height:1.58;color:#4d5156;margin:0}

.seo-checks{list-style:none;margin:0;padding:0;display:grid;gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:9px;overflow:hidden}
.seo-checks li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;
  background:#fff;padding:9px 12px;font-size:12.5px;align-items:center}
.seo-checks span{color:var(--muted);font-weight:600}
.seo-checks b{font-weight:800;color:var(--ink);white-space:nowrap}
.seo-checks em{grid-column:1/-1;font-style:normal;font-size:11.5px;margin-top:-3px}
.seo-checks li.good b{color:#0B7B4C}
.seo-checks li.warn b{color:#B54708}
.seo-checks li.warn em{color:#B54708}
.seo-checks li.bad b{color:#B42318}
.seo-checks li.bad em{color:#B42318}

.ogcard{border:1px solid var(--line);border-radius:11px;overflow:hidden;background:#fff;max-width:400px}
.ogcard img{width:100%;aspect-ratio:1200/630;object-fit:cover;display:block;background:var(--bg-2)}
.ogcard-none{aspect-ratio:1200/630;display:grid;place-items:center;background:var(--bg-2);
  color:var(--faint);font-size:13px;font-weight:600}
.ogcard-t{padding:11px 14px;border-top:1px solid var(--line)}
.ogcard-t small{display:block;font-size:10.5px;color:var(--faint);letter-spacing:.06em;font-weight:700}
.ogcard-t b{display:block;font-size:14px;color:var(--ink);margin:3px 0;line-height:1.3;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ogcard-t p{font-size:12.5px;color:var(--muted);margin:0;line-height:1.45;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* --- discounts --- */
.saleflag{background:#E6F8EF;border:1px solid #A8E6C6;border-radius:10px;padding:11px 14px;margin-bottom:14px}
.saleflag b{display:block;font-family:var(--font-head);font-size:13.5px;color:#0B6B3F}
.saleflag span{font-size:12.5px;color:#0B6B3F}
.pricepreview{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;background:var(--bg-2);
  border:1px solid var(--line);border-radius:11px;padding:16px 18px;margin-bottom:12px}
.pricepreview .was{font-size:16px;color:var(--faint);text-decoration:line-through}
.pricepreview .now{font-family:var(--font-head);font-size:28px;font-weight:800;color:var(--ink);
  letter-spacing:-.02em}
.pricepreview .off{background:#E6F8EF;color:#0B6B3F;font-size:11.5px;font-weight:800;
  padding:4px 9px;border-radius:999px}
.pricepreview .salelabel{background:var(--yellow);color:var(--ink);font-size:11.5px;font-weight:800;
  padding:4px 9px;border-radius:999px}
.pricepreview small{font-size:12px;color:var(--muted);width:100%}
.tbl s{color:var(--faint)}
