/* Verdikt design system — Module 4
   Tokens, layout, and every component style used across the consumer site,
   business portal, and admin panel. No framework, no build step.
   Signature element: .tally — one stacked proportional band showing the whole
   star distribution, used on company headers, cards, and the admin queue. */

/* ═══════════════════════════════════════════════════════════════════
   VERDIKT DESIGN SYSTEM
   Signature element: the tally band — one stacked proportional bar
   showing the whole star distribution at a glance. Used on the company
   header, every company card, and the admin queue. Replaces the usual
   five-stacked-bars pattern.
   ═══════════════════════════════════════════════════════════════════ */

:root{
  /* ink + paper */
  --ink:#10141B; --ink-70:#3F4a58; --ink-45:#6C7887; --ink-25:#9BA5B2;
  --paper:#FFFFFF; --surface:#F1F5F7; --surface-2:#E5EDF0;
  --rule:#DCE4EA; --rule-strong:#C3CED6;

  /* brand: petrol + signal orange */
  --brand:#0D4F5C; --brand-deep:#08333C; --brand-tint:#E2EFF1; --brand-mid:#3E7F8B;
  --accent:#E0512C; --accent-deep:#B93C1C; --accent-tint:#FCEAE4;

  /* rating ramp — informational, deliberately separate from brand */
  --r1:#B03A33; --r2:#CB7530; --r3:#BE9B26; --r4:#5C8C50; --r5:#0F7266;

  --radius:10px; --radius-sm:6px; --radius-lg:16px;
  --shadow-1:0 1px 2px rgba(16,20,27,.05);
  --shadow-2:0 1px 2px rgba(16,20,27,.05), 0 10px 28px -14px rgba(16,20,27,.22);
  --shadow-3:0 24px 60px -24px rgba(8,51,60,.34);

  --font-display:"Bricolage Grotesque","Segoe UI",system-ui,sans-serif;
  --font-body:"Instrument Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --font-mono:"JetBrains Mono",ui-monospace,"SF Mono",Menlo,monospace;

  --step:.25rem; --gut:clamp(1rem,4vw,2.5rem); --max:1200px;
}

[data-theme="dark"]{
  --ink:#E8EDF2; --ink-70:#B3BDC9; --ink-45:#8592A1; --ink-25:#5C6875;
  --paper:#151A21; --surface:#0F1318; --surface-2:#1D242C;
  --rule:#28313A; --rule-strong:#3A4652;
  --brand:#5FB3BF; --brand-deep:#8ACDD6; --brand-tint:#16323A; --brand-mid:#4A8F9B;
  --accent:#FF7048; --accent-deep:#FF8A69; --accent-tint:#33190F;
  --r1:#D45C54; --r2:#E0913F; --r3:#D6B33A; --r4:#78A96A; --r5:#2A9788;
  --shadow-2:0 1px 2px rgba(0,0,0,.4), 0 10px 28px -14px rgba(0,0,0,.6);
  --shadow-3:0 24px 60px -24px rgba(0,0,0,.7);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; font-family:var(--font-body); font-size:.9375rem; line-height:1.6;
  color:var(--ink); background:var(--surface);
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
h1,h2,h3,h4{font-family:var(--font-display); font-weight:700; line-height:1.12; letter-spacing:-.022em; margin:0}
p{margin:0}
a{color:inherit; text-decoration:none}
img{max-width:100%; display:block}
button,input,select,textarea{font:inherit; color:inherit}
:focus-visible{outline:2px solid var(--accent); outline-offset:2px; border-radius:3px}
::selection{background:var(--brand); color:#fff}

.wrap{max-width:var(--max); margin-inline:auto; padding-inline:var(--gut)}
.mono{font-family:var(--font-mono); font-variant-numeric:tabular-nums}
.eyebrow{font-family:var(--font-mono); font-size:.6875rem; letter-spacing:.13em;
  text-transform:uppercase; color:var(--ink-45); font-weight:500}
.muted{color:var(--ink-45)}
.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip{position:absolute;left:-999px;top:0;z-index:99;background:var(--ink);color:var(--paper);padding:.7rem 1.1rem;border-radius:0 0 var(--radius) 0}
.skip:focus{left:0}

/* ── buttons ────────────────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  padding:.65rem 1.15rem;border-radius:var(--radius-sm);border:1px solid transparent;
  font-weight:600;font-size:.875rem;cursor:pointer;transition:.15s ease;white-space:nowrap}
.btn--accent{background:var(--accent);color:#fff}
.btn--accent:hover{background:var(--accent-deep)}
.btn--ink{background:var(--ink);color:var(--paper)}
.btn--ink:hover{opacity:.86}
.btn--brand{background:var(--brand);color:#fff}
.btn--brand:hover{background:var(--brand-deep)}
.btn--ghost{background:transparent;border-color:var(--rule-strong);color:var(--ink)}
.btn--ghost:hover{background:var(--surface-2);border-color:var(--ink-45)}
.btn--sm{padding:.42rem .8rem;font-size:.8125rem}
.btn--lg{padding:.85rem 1.6rem;font-size:.9375rem}
.btn--block{width:100%}
.btn[disabled]{opacity:.45;cursor:not-allowed}

/* ── header ─────────────────────────────────────────────────────── */
.hdr{position:sticky;top:0;z-index:60;background:var(--paper);border-bottom:1px solid var(--rule)}
.hdr__in{max-width:var(--max);margin-inline:auto;padding:0 var(--gut);height:64px;
  display:flex;align-items:center;gap:1.25rem}
.logo{display:flex;align-items:center;gap:.5rem;font-family:var(--font-display);
  font-weight:800;font-size:1.2rem;letter-spacing:-.035em}
.logo__mark{display:flex;gap:2px;align-items:flex-end;height:20px}
.logo__mark i{display:block;width:3px;border-radius:2px;background:var(--brand)}
.logo__mark i:nth-child(1){height:8px}.logo__mark i:nth-child(2){height:12px}
.logo__mark i:nth-child(3){height:16px}.logo__mark i:nth-child(4){height:20px;background:var(--accent)}
.hdr__nav{display:flex;gap:.25rem;margin-left:.5rem}
.hdr__nav a{padding:.45rem .7rem;border-radius:var(--radius-sm);font-size:.875rem;
  font-weight:500;color:var(--ink-70)}
.hdr__nav a:hover{background:var(--surface);color:var(--ink)}
.hdr__spacer{flex:1}
.hdr__actions{display:flex;align-items:center;gap:.5rem}
.icon-btn{width:34px;height:34px;display:grid;place-items:center;border-radius:var(--radius-sm);
  border:1px solid var(--rule);background:var(--paper);cursor:pointer;color:var(--ink-70)}
.icon-btn:hover{background:var(--surface);color:var(--ink)}
.burger{display:none}
@media(max-width:880px){
  .hdr__nav{display:none} .burger{display:grid}
  .hdr__actions .btn--ghost{display:none}
}

/* mobile drawer */
.drawer{position:fixed;inset:0;z-index:70;visibility:hidden;pointer-events:none}
.drawer[data-open="true"]{visibility:visible;pointer-events:auto}
.drawer__veil{position:absolute;inset:0;background:rgba(8,20,26,.5);opacity:0;transition:.25s}
.drawer[data-open="true"] .drawer__veil{opacity:1}
.drawer__panel{position:absolute;inset-block:0;inset-inline-end:0;width:min(320px,86vw);
  background:var(--paper);padding:1.25rem;transform:translateX(100%);transition:.28s cubic-bezier(.4,0,.2,1);
  display:flex;flex-direction:column;gap:.25rem;overflow:auto}
.drawer[data-open="true"] .drawer__panel{transform:none}
.drawer__panel a{padding:.7rem .6rem;border-radius:var(--radius-sm);font-weight:500;border-bottom:1px solid var(--rule)}
.drawer__panel a:hover{background:var(--surface)}

/* ── search + autocomplete ──────────────────────────────────────── */
.search{position:relative}
.search__field{display:flex;align-items:center;gap:.6rem;background:var(--paper);
  border:1.5px solid var(--rule-strong);border-radius:var(--radius);padding:.2rem .3rem .2rem .9rem;
  transition:.16s;box-shadow:var(--shadow-1)}
.search__field:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-tint)}
.search__field input{flex:1;border:0;background:none;padding:.75rem 0;outline:none;min-width:0}
.search__field input::placeholder{color:var(--ink-25)}
.search--lg .search__field input{padding:.95rem 0;font-size:1.0625rem}
.ac{position:absolute;top:calc(100% + .5rem);inset-inline:0;background:var(--paper);
  border:1px solid var(--rule);border-radius:var(--radius);box-shadow:var(--shadow-3);
  padding:.35rem;z-index:40;max-height:340px;overflow:auto;display:none}
.ac[data-open="true"]{display:block}
.ac__group{font-family:var(--font-mono);font-size:.625rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink-45);padding:.55rem .65rem .3rem}
.ac__item{display:flex;align-items:center;gap:.7rem;padding:.55rem .65rem;border-radius:var(--radius-sm);
  cursor:pointer;width:100%;border:0;background:none;text-align:left}
.ac__item:hover,.ac__item[aria-selected="true"]{background:var(--surface)}
.ac__logo{width:32px;height:32px;border-radius:7px;display:grid;place-items:center;flex:none;
  font-family:var(--font-display);font-weight:700;font-size:.8125rem;color:#fff;background:var(--brand)}
.ac__meta{min-width:0;flex:1}
.ac__name{font-weight:600;font-size:.875rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ac__sub{font-size:.75rem;color:var(--ink-45)}

/* ── STARS ──────────────────────────────────────────────────────── */
.stars{display:inline-flex;gap:2px;vertical-align:middle}
.stars i{width:1em;height:1em;display:block;background:var(--rule-strong);
  -webkit-mask:var(--star) center/contain no-repeat; mask:var(--star) center/contain no-repeat}
.stars[data-score] i.on{background:var(--sc)}
.stars--sm{font-size:.875rem}.stars--md{font-size:1.0625rem}.stars--lg{font-size:1.5rem}

/* ── SIGNATURE: the tally band ──────────────────────────────────── */
.tally{display:flex;height:10px;border-radius:99px;overflow:hidden;background:var(--surface-2);
  border:1px solid var(--rule)}
.tally span{display:block;width:0;transition:width .7s cubic-bezier(.2,.7,.3,1)}
.tally span:nth-child(1){background:var(--r1)}
.tally span:nth-child(2){background:var(--r2)}
.tally span:nth-child(3){background:var(--r3)}
.tally span:nth-child(4){background:var(--r4)}
.tally span:nth-child(5){background:var(--r5)}
.tally--tall{height:16px}
.tally--interactive span{cursor:pointer}
.tally--interactive span:hover{filter:brightness(1.15)}
.tally-key{display:flex;gap:.9rem;flex-wrap:wrap;font-size:.75rem;color:var(--ink-45);margin-top:.55rem}
.tally-key b{display:inline-flex;align-items:center;gap:.35rem;font-weight:500}
.tally-key i{width:8px;height:8px;border-radius:2px;display:block}

/* score block */
.score{display:flex;align-items:baseline;gap:.3rem;font-family:var(--font-mono);font-weight:700;
  letter-spacing:-.03em;line-height:1}
.score b{font-size:2.75rem}
.score em{font-style:normal;font-size:1rem;color:var(--ink-45);font-weight:400}
.score--sm b{font-size:1.375rem}
.verdict{display:inline-block;font-family:var(--font-mono);font-size:.6875rem;letter-spacing:.1em;
  text-transform:uppercase;padding:.25rem .55rem;border-radius:4px;font-weight:500}

/* ── cards ──────────────────────────────────────────────────────── */
.card{background:var(--paper);border:1px solid var(--rule);border-radius:var(--radius);box-shadow:var(--shadow-1)}
.card--pad{padding:1.25rem}
.grid{display:grid;gap:1rem}
.sec{padding-block:clamp(2.5rem,6vw,4.5rem)}
.sec__head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}
.sec__head h2{font-size:clamp(1.35rem,3vw,1.85rem)}
.sec__head p{color:var(--ink-45);font-size:.875rem;margin-top:.3rem}

/* ── HOME hero: asymmetric, not a centred box on a gradient ─────── */
.hero{background:var(--paper);border-bottom:1px solid var(--rule);position:relative;overflow:hidden}
.hero::after{content:"";position:absolute;inset-block:0;inset-inline-end:0;width:38%;
  background:linear-gradient(160deg,var(--brand-tint),transparent 70%);pointer-events:none}
@media(max-width:900px){.hero::after{display:none}}
.hero__in{max-width:var(--max);margin-inline:auto;padding:clamp(2.5rem,6vw,4.25rem) var(--gut);
  display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(2rem,5vw,4rem);align-items:center;
  position:relative;z-index:1}
@media(max-width:900px){.hero__in{grid-template-columns:1fr}}
.hero h1{font-size:clamp(2.1rem,5.5vw,3.6rem);letter-spacing:-.038em;margin:.7rem 0 .85rem}
.hero h1 span{color:var(--brand);position:relative;white-space:nowrap}
.hero h1 span::after{content:"";position:absolute;left:0;right:0;bottom:.06em;height:.11em;
  background:var(--accent);opacity:.35;border-radius:2px}
.hero__lede{font-size:1.0625rem;color:var(--ink-70);max-width:44ch;margin-bottom:1.6rem}
.hero__hints{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.9rem;font-size:.8125rem}
.chip{border:1px solid var(--rule);background:var(--paper);border-radius:99px;padding:.32rem .75rem;
  cursor:pointer;color:var(--ink-70);transition:.15s;font-size:.8125rem}
.chip:hover{border-color:var(--brand);color:var(--brand);background:var(--brand-tint)}
.chip[aria-pressed="true"]{background:var(--brand);border-color:var(--brand);color:#fff}

/* live tally panel */
.livepanel{background:var(--paper);border:1px solid var(--rule);border-radius:var(--radius-lg);
  box-shadow:var(--shadow-2);overflow:hidden}
.livepanel__hd{display:flex;align-items:center;gap:.5rem;padding:.85rem 1.1rem;
  border-bottom:1px solid var(--rule);background:var(--surface)}
.pulse{width:7px;height:7px;border-radius:99px;background:var(--r5);position:relative}
.pulse::after{content:"";position:absolute;inset:-4px;border-radius:99px;border:1.5px solid var(--r5);
  opacity:.45;animation:ping 2.4s ease-out infinite}
@keyframes ping{0%{transform:scale(.6);opacity:.5}100%{transform:scale(1.5);opacity:0}}
.liverow{display:flex;gap:.85rem;padding:.9rem 1.1rem;border-bottom:1px solid var(--rule);align-items:center}
.liverow:last-child{border-bottom:0}
.liverow__body{min-width:0;flex:1}
.liverow__name{font-weight:600;font-size:.875rem}
.liverow__txt{font-size:.8125rem;color:var(--ink-45);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* stat strip */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--rule);
  border-block:1px solid var(--rule)}
@media(max-width:700px){.stats{grid-template-columns:repeat(2,1fr)}}
.stat{background:var(--paper);padding:1.4rem var(--gut);text-align:center}
.stat b{display:block;font-family:var(--font-mono);font-size:1.6rem;font-weight:700;letter-spacing:-.03em}
.stat span{font-size:.75rem;color:var(--ink-45)}

/* category tiles */
.cats{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.75rem}
.cat{display:flex;align-items:center;gap:.7rem;padding:.95rem 1rem;background:var(--paper);
  border:1px solid var(--rule);border-radius:var(--radius);transition:.16s;cursor:pointer}
.cat:hover{border-color:var(--brand);transform:translateY(-2px);box-shadow:var(--shadow-2)}
.cat__ico{width:34px;height:34px;border-radius:8px;background:var(--brand-tint);color:var(--brand);
  display:grid;place-items:center;flex:none}
.cat__n{font-weight:600;font-size:.875rem;line-height:1.25}
.cat__c{font-size:.75rem;color:var(--ink-45);font-family:var(--font-mono)}

/* ── carousel ───────────────────────────────────────────────────── */
.carousel{position:relative}
.carousel__track{display:flex;gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;
  scroll-behavior:smooth;padding-bottom:.5rem;scrollbar-width:thin}
.carousel__track>*{scroll-snap-align:start;flex:0 0 clamp(220px,26vw,272px)}
.carousel__btn{position:absolute;top:38%;width:36px;height:36px;border-radius:99px;border:1px solid var(--rule);
  background:var(--paper);box-shadow:var(--shadow-2);cursor:pointer;display:grid;place-items:center;z-index:2}
.carousel__btn[data-dir="prev"]{left:-14px}.carousel__btn[data-dir="next"]{right:-14px}
.carousel__btn:disabled{opacity:.3;cursor:default}
@media(max-width:700px){.carousel__btn{display:none}}

/* company card */
.co{background:var(--paper);border:1px solid var(--rule);border-radius:var(--radius);
  padding:1.05rem;display:flex;flex-direction:column;gap:.7rem;transition:.16s;cursor:pointer;height:100%}
.co:hover{border-color:var(--brand-mid);box-shadow:var(--shadow-2)}
.co__top{display:flex;gap:.7rem;align-items:center}
.co__logo{width:42px;height:42px;border-radius:9px;display:grid;place-items:center;flex:none;
  font-family:var(--font-display);font-weight:800;font-size:.9375rem;color:#fff}
.co__name{font-weight:600;font-size:.9375rem;line-height:1.2}
.co__dom{font-size:.75rem;color:var(--ink-45);font-family:var(--font-mono)}
.co__row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;font-size:.8125rem}

/* ── review card ────────────────────────────────────────────────── */
.rev{background:var(--paper);border:1px solid var(--rule);border-radius:var(--radius);padding:1.25rem}
.rev__hd{display:flex;gap:.8rem;align-items:center;margin-bottom:.85rem}
.avatar{width:38px;height:38px;border-radius:99px;display:grid;place-items:center;flex:none;
  font-weight:600;font-size:.8125rem;color:#fff;background:var(--brand-mid)}
.rev__who{flex:1;min-width:0}
.rev__nm{font-weight:600;font-size:.875rem}
.rev__mt{font-size:.75rem;color:var(--ink-45);display:flex;gap:.5rem;flex-wrap:wrap}
.rev__title{font-family:var(--font-display);font-weight:700;font-size:1.0625rem;margin:.7rem 0 .4rem;letter-spacing:-.015em}
.rev__body{color:var(--ink-70);font-size:.9375rem}
.rev__body.clamped{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.rev__more{background:none;border:0;color:var(--brand);font-weight:600;font-size:.8125rem;
  cursor:pointer;padding:.35rem 0}
.rev__more:hover{text-decoration:underline}
.rev__imgs{display:flex;gap:.5rem;margin-top:.8rem}
.rev__imgs button{width:66px;height:66px;border-radius:var(--radius-sm);border:1px solid var(--rule);
  cursor:pointer;background-size:cover;background-position:center}
.rev__ft{display:flex;align-items:center;gap:.35rem;margin-top:1rem;padding-top:.85rem;
  border-top:1px solid var(--rule);flex-wrap:wrap}
.tinybtn{background:none;border:1px solid var(--rule);border-radius:99px;padding:.3rem .7rem;
  font-size:.75rem;color:var(--ink-45);cursor:pointer;display:inline-flex;gap:.35rem;align-items:center}
.tinybtn:hover{border-color:var(--ink-45);color:var(--ink)}
.tinybtn[aria-pressed="true"]{background:var(--brand-tint);border-color:var(--brand);color:var(--brand)}
.verified{display:inline-flex;align-items:center;gap:.3rem;font-size:.6875rem;font-weight:600;
  color:var(--r5);background:color-mix(in srgb,var(--r5) 12%,transparent);
  padding:.2rem .45rem;border-radius:4px}

/* business reply */
.reply{margin-top:.9rem;border-left:3px solid var(--brand);background:var(--surface);
  border-radius:0 var(--radius-sm) var(--radius-sm) 0;padding:.9rem 1rem}
.reply__hd{display:flex;align-items:center;gap:.45rem;font-size:.8125rem;font-weight:600;margin-bottom:.35rem}
.reply__hd span{color:var(--ink-45);font-weight:400;font-size:.75rem}

/* ── company profile header ─────────────────────────────────────── */
.crumbs{font-size:.8125rem;color:var(--ink-45);padding-block:1rem;display:flex;gap:.45rem;flex-wrap:wrap}
.crumbs a:hover{color:var(--brand);text-decoration:underline}
.profile{background:var(--paper);border:1px solid var(--rule);border-radius:var(--radius-lg);
  padding:clamp(1.25rem,3vw,1.9rem);display:grid;grid-template-columns:auto 1fr auto;
  gap:clamp(1rem,3vw,2rem);align-items:center}
@media(max-width:820px){.profile{grid-template-columns:auto 1fr;}
  .profile__cta{grid-column:1/-1}}
.profile__logo{width:76px;height:76px;border-radius:14px;display:grid;place-items:center;
  font-family:var(--font-display);font-weight:800;font-size:1.7rem;color:#fff;background:var(--brand)}
.profile h1{font-size:clamp(1.5rem,3.4vw,2rem)}
.profile__sub{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;margin-top:.35rem;font-size:.8125rem}
.profile__scorebox{min-width:230px}
@media(max-width:820px){.profile__scorebox{min-width:0}}

/* tabs */
.tabs{display:flex;gap:.25rem;border-bottom:1px solid var(--rule);margin-top:1.75rem;overflow-x:auto}
.tabs button{background:none;border:0;padding:.75rem 1rem;font-weight:600;font-size:.875rem;
  color:var(--ink-45);cursor:pointer;border-bottom:2px solid transparent;white-space:nowrap}
.tabs button[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--accent)}
.tabs button:hover{color:var(--ink)}

/* two column */
.two{display:grid;grid-template-columns:1fr 300px;gap:1.5rem;align-items:start;margin-top:1.5rem}
@media(max-width:960px){.two{grid-template-columns:1fr}}
.rail{display:flex;flex-direction:column;gap:1rem;position:sticky;top:84px}
@media(max-width:960px){.rail{position:static}}

/* filter bar */
.filters{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;margin-bottom:1rem}
.select{border:1px solid var(--rule-strong);background:var(--paper);border-radius:var(--radius-sm);
  padding:.45rem .7rem;font-size:.8125rem;cursor:pointer}

/* pagination */
.pager{display:flex;gap:.3rem;justify-content:center;margin-top:1.5rem;flex-wrap:wrap}
.pager button{min-width:36px;height:36px;border:1px solid var(--rule);background:var(--paper);
  border-radius:var(--radius-sm);cursor:pointer;font-size:.8125rem;font-family:var(--font-mono)}
.pager button[aria-current="page"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.pager button:hover:not([aria-current]){background:var(--surface)}
.pager span{display:grid;place-items:center;min-width:24px;color:var(--ink-25)}

/* ── list row (category page) ───────────────────────────────────── */
.lrow{display:grid;grid-template-columns:auto 1fr 220px;gap:1.1rem;align-items:center;
  background:var(--paper);border:1px solid var(--rule);border-radius:var(--radius);padding:1rem 1.15rem;
  transition:.16s;cursor:pointer}
.lrow:hover{border-color:var(--brand-mid);box-shadow:var(--shadow-2)}
@media(max-width:760px){.lrow{grid-template-columns:auto 1fr}.lrow__score{grid-column:1/-1}}

/* ── wizard ─────────────────────────────────────────────────────── */
.steps{display:flex;gap:.5rem;margin-bottom:1.75rem}
.step{flex:1;display:flex;flex-direction:column;gap:.45rem}
.step__bar{height:4px;border-radius:99px;background:var(--rule)}
.step[data-state="done"] .step__bar,.step[data-state="now"] .step__bar{background:var(--accent)}
.step__lb{font-size:.75rem;color:var(--ink-45);font-family:var(--font-mono);letter-spacing:.06em}
.step[data-state="now"] .step__lb{color:var(--ink);font-weight:500}

.field{margin-bottom:1.15rem}
.label{display:block;font-weight:600;font-size:.875rem;margin-bottom:.4rem}
.hint{font-size:.75rem;color:var(--ink-45);margin-top:.35rem}
.input,.textarea{width:100%;border:1.5px solid var(--rule-strong);border-radius:var(--radius-sm);
  padding:.7rem .85rem;background:var(--paper);outline:none;transition:.15s}
.input:focus,.textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-tint)}
.textarea{min-height:150px;resize:vertical;font-family:inherit}
.input[aria-invalid="true"]{border-color:var(--r1)}
.err{color:var(--r1);font-size:.75rem;margin-top:.35rem;display:none}
.input[aria-invalid="true"]~.err{display:block}

/* rating input */
.rate{display:inline-flex;gap:.35rem;padding:.3rem;border-radius:var(--radius-sm)}
.rate button{background:none;border:0;padding:.1rem;cursor:pointer;line-height:0;
  color:var(--rule-strong);transition:transform .12s}
.rate button:hover{transform:scale(1.14)}
.rate button svg{width:38px;height:38px;display:block}
.rate__out{margin-left:.9rem;font-weight:600;font-size:.9375rem;align-self:center}

/* dropzone */
.drop{border:2px dashed var(--rule-strong);border-radius:var(--radius);padding:1.75rem 1rem;
  text-align:center;color:var(--ink-45);cursor:pointer;transition:.16s;background:var(--surface)}
.drop:hover,.drop[data-over="true"]{border-color:var(--brand);background:var(--brand-tint);color:var(--brand)}

/* ── modal ──────────────────────────────────────────────────────── */
.modal{position:fixed;inset:0;z-index:90;display:grid;place-items:center;padding:1rem;
  visibility:hidden;pointer-events:none}
.modal[data-open="true"]{visibility:visible;pointer-events:auto}
.modal__veil{position:absolute;inset:0;background:rgba(8,20,26,.55);opacity:0;transition:.2s;backdrop-filter:blur(2px)}
.modal[data-open="true"] .modal__veil{opacity:1}
.modal__box{position:relative;background:var(--paper);border-radius:var(--radius-lg);
  width:min(460px,100%);padding:1.5rem;box-shadow:var(--shadow-3);
  transform:translateY(12px) scale(.98);opacity:0;transition:.22s cubic-bezier(.2,.8,.3,1)}
.modal[data-open="true"] .modal__box{transform:none;opacity:1}
.modal__x{position:absolute;top:.85rem;right:.85rem}
.radio{display:flex;gap:.65rem;align-items:flex-start;padding:.7rem .8rem;border:1px solid var(--rule);
  border-radius:var(--radius-sm);cursor:pointer;margin-bottom:.5rem}
.radio:hover{background:var(--surface)}
.radio input{margin-top:.2rem;accent-color:var(--brand)}
.radio b{display:block;font-size:.875rem}
.radio span{font-size:.75rem;color:var(--ink-45)}

/* ── toast ──────────────────────────────────────────────────────── */
.toasts{position:fixed;bottom:1.25rem;right:1.25rem;z-index:95;display:flex;flex-direction:column;
  gap:.5rem;max-width:340px}
.toast{background:var(--ink);color:var(--paper);padding:.8rem 1rem;border-radius:var(--radius);
  box-shadow:var(--shadow-3);font-size:.875rem;display:flex;gap:.6rem;align-items:flex-start;
  animation:tin .28s cubic-bezier(.2,.8,.3,1)}
@keyframes tin{from{transform:translateY(12px);opacity:0}}
.toast[data-kind="ok"]{background:var(--r5)}
.toast[data-kind="err"]{background:var(--r1)}

/* ── accordion ──────────────────────────────────────────────────── */
.acc{border:1px solid var(--rule);border-radius:var(--radius);overflow:hidden;background:var(--paper)}
.acc__q{width:100%;background:none;border:0;text-align:left;padding:1rem 1.1rem;font-weight:600;
  font-size:.9375rem;cursor:pointer;display:flex;justify-content:space-between;gap:1rem;align-items:center}
.acc__q:hover{background:var(--surface)}
.acc__item+.acc__item{border-top:1px solid var(--rule)}
.acc__a{max-height:0;overflow:hidden;transition:max-height .3s ease;color:var(--ink-70);font-size:.875rem}
.acc__a>div{padding:0 1.1rem 1.1rem}
.acc__item[data-open="true"] .acc__a{max-height:340px}
.acc__item[data-open="true"] .acc__q svg{transform:rotate(180deg)}
.acc__q svg{transition:transform .25s;flex:none}

/* ── ADMIN ──────────────────────────────────────────────────────── */
.admin{display:grid;grid-template-columns:232px 1fr;min-height:calc(100vh - 41px);background:var(--surface)}
@media(max-width:900px){.admin{grid-template-columns:1fr}.admin__side{display:none}}
.admin__side{background:var(--brand-deep);color:#CFE4E8;padding:1.1rem .8rem;display:flex;
  flex-direction:column;gap:.15rem}
.admin__brand{display:flex;align-items:center;gap:.5rem;padding:.35rem .6rem 1.1rem;
  font-family:var(--font-display);font-weight:800;color:#fff;font-size:1.05rem}
.admin__side a{display:flex;align-items:center;gap:.6rem;padding:.5rem .6rem;border-radius:var(--radius-sm);
  font-size:.8125rem;opacity:.72;transition:.15s}
.admin__side a:hover{opacity:1;background:rgba(255,255,255,.08)}
.admin__side a[aria-current="page"]{opacity:1;background:rgba(255,255,255,.14);font-weight:600}
.admin__grp{font-family:var(--font-mono);font-size:.5625rem;letter-spacing:.16em;text-transform:uppercase;
  opacity:.45;padding:1rem .6rem .35rem}
.admin__main{padding:clamp(1rem,3vw,1.75rem);min-width:0}
.admin__bar{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:1.5rem}
.kpi{background:var(--paper);border:1px solid var(--rule);border-radius:var(--radius);padding:1.1rem}
.kpi b{display:block;font-family:var(--font-mono);font-size:1.75rem;font-weight:700;letter-spacing:-.03em;margin:.3rem 0 .15rem}
.kpi__d{font-size:.75rem;font-weight:600}
.up{color:var(--r5)}.down{color:var(--r1)}

.table{width:100%;border-collapse:collapse;background:var(--paper);font-size:.875rem}
.table th{text-align:left;font-family:var(--font-mono);font-size:.625rem;letter-spacing:.11em;
  text-transform:uppercase;color:var(--ink-45);padding:.75rem 1rem;border-bottom:1px solid var(--rule);
  background:var(--surface);font-weight:500;white-space:nowrap}
.table td{padding:.85rem 1rem;border-bottom:1px solid var(--rule);vertical-align:middle}
.table tr:hover td{background:var(--surface)}
.tablewrap{border:1px solid var(--rule);border-radius:var(--radius);overflow:auto}
.pill{display:inline-block;font-size:.6875rem;font-weight:600;padding:.2rem .5rem;border-radius:4px;
  font-family:var(--font-mono);letter-spacing:.03em}
.pill--pend{background:color-mix(in srgb,var(--r3) 16%,transparent);color:var(--r3)}
.pill--flag{background:color-mix(in srgb,var(--r1) 14%,transparent);color:var(--r1)}
.pill--pub{background:color-mix(in srgb,var(--r5) 14%,transparent);color:var(--r5)}
.bulkbar{display:flex;align-items:center;gap:.6rem;padding:.7rem 1rem;background:var(--brand-tint);
  border:1px solid var(--brand-mid);border-radius:var(--radius);margin-bottom:.75rem;font-size:.8125rem}
.bulkbar[hidden]{display:none}
.spark{display:flex;align-items:flex-end;gap:3px;height:44px;margin-top:.6rem}
.spark i{flex:1;background:var(--brand-mid);border-radius:2px 2px 0 0;opacity:.55}
.spark i:last-child{background:var(--accent);opacity:1}

/* ── footer ─────────────────────────────────────────────────────── */
.ft{background:var(--brand-deep);color:#B9D5DA;margin-top:3rem}
.ft__in{max-width:var(--max);margin-inline:auto;padding:3rem var(--gut) 1.5rem;
  display:grid;grid-template-columns:1.4fr repeat(4,1fr);gap:2rem}
@media(max-width:900px){.ft__in{grid-template-columns:1fr 1fr}}
.ft h4{color:#fff;font-size:.8125rem;font-family:var(--font-mono);letter-spacing:.11em;
  text-transform:uppercase;font-weight:500;margin-bottom:.85rem;opacity:.65}
.ft a{display:block;padding:.28rem 0;font-size:.875rem;opacity:.8}
.ft a:hover{opacity:1;color:#fff}
.ft__bottom{border-top:1px solid rgba(255,255,255,.12);padding:1.25rem var(--gut);
  max-width:var(--max);margin-inline:auto;display:flex;justify-content:space-between;
  gap:1rem;flex-wrap:wrap;font-size:.8125rem;opacity:.65}
.nl{display:flex;gap:.5rem;margin-top:.9rem}
.nl input{flex:1;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.07);
  border-radius:var(--radius-sm);padding:.6rem .8rem;color:#fff;outline:none;min-width:0}
.nl input::placeholder{color:rgba(255,255,255,.45)}
.nl input:focus{border-color:var(--accent)}

/* cookie banner */
.cookie{position:fixed;bottom:1rem;left:1rem;z-index:88;max-width:400px;background:var(--paper);
  border:1px solid var(--rule);border-radius:var(--radius-lg);padding:1.15rem;box-shadow:var(--shadow-3)}
.cookie[hidden]{display:none}

.view{display:none}
.view[data-active="true"]{display:block;animation:fade .3s ease}
@keyframes fade{from{opacity:0;transform:translateY(6px)}}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;
    transition-duration:.01ms!important;scroll-behavior:auto!important}
}
