/* Shared shell + design tokens used by every page (dashboard, reviews, scraper).
   Page-specific rules live in collector.css / dashboard.css / reviews.css. */
:root{color-scheme:light;--ink:#18202b;--muted:#687386;--line:#dfe4ea;--blue:#1769e0;--blue-dark:#0d54bc;--soft:#f4f7fb;--green:#18794e;--amber:#946200;--red:#b42318}
*{box-sizing:border-box}
body{margin:0;background:#f7f8fa;color:var(--ink);font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}

.topbar{height:64px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1120px)/2))}
.brand{font-size:18px;font-weight:800;color:var(--ink);text-decoration:none}
.brand span{font-weight:500;color:var(--muted)}
nav{display:flex;gap:8px}
nav a{padding:9px 13px;border-radius:8px;text-decoration:none;color:var(--muted);font-size:14px;font-weight:600}
nav a:hover,nav a.active{background:#eef4ff;color:var(--blue)}

main{max-width:1120px;margin:0 auto;padding:42px 24px 64px}
.hero{display:flex;justify-content:space-between;gap:32px;align-items:flex-end;margin-bottom:28px}
.eyebrow{font-size:11px;font-weight:800;letter-spacing:.14em;color:var(--blue);margin:0 0 8px}
h1{font-size:34px;line-height:1.15;margin:0 0 10px;letter-spacing:-.03em}
h2{font-size:18px;margin:0}
.lede{color:var(--muted);margin:0;max-width:620px;font-size:15px}
.total-card{background:#10233f;color:#fff;border-radius:14px;padding:18px 24px;min-width:150px}
.total-card strong{display:block;font-size:26px}
.total-card span{font-size:12px;color:#bfd0e8}

.control-bar{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;display:grid;grid-template-columns:1.2fr 1fr auto;gap:18px;align-items:end;box-shadow:0 2px 8px rgba(20,35,55,.04)}
.control-bar label>span,.range-field>span{display:block;font-size:12px;font-weight:700;margin-bottom:7px}
.control-bar select,.control-bar input{border:1px solid #cbd3dd;border-radius:8px;background:#fff;font:inherit}
.property-field select{width:100%;padding:10px}
.range-controls{display:flex;gap:8px}
.range-controls select{padding:10px;flex:1}
.range-controls input{padding:10px;width:105px}

button{border:0;border-radius:9px;padding:10px 14px;font:inherit;font-size:13px;font-weight:750;cursor:pointer}
button:disabled{opacity:.5;cursor:not-allowed}
.primary{background:var(--blue);color:#fff}
.primary:hover:not(:disabled){background:var(--blue-dark)}
.secondary{background:#fff;border:1px solid #cbd3dd;color:#334155}

.card{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 2px 8px rgba(20,35,55,.04)}
.section-head{display:flex;align-items:center;justify-content:space-between;gap:16px}
.section-head .eyebrow{margin-bottom:4px}
.section-head>span{font-size:12px;color:var(--muted)}

.status-pill{border-radius:99px;background:#eef2f6;color:#5d6878;padding:5px 9px;font-size:11px;font-weight:700}
.status-pill.ready{background:#e8f7ef;color:var(--green)}
.status-pill.warning,.status-pill.manual{background:#fff5da;color:var(--amber)}
.status-pill.error{background:#ffebe8;color:var(--red)}

.empty{color:var(--muted);font-size:13px}

dialog{border:0;border-radius:16px;padding:0;box-shadow:0 24px 80px rgba(0,0,0,.25);max-width:480px;width:calc(100% - 32px)}
dialog::backdrop{background:rgba(15,23,42,.48)}
.dialog-card{padding:26px;position:relative}
.dialog-card>p:not(.eyebrow){color:var(--muted);font-size:14px;line-height:1.5}
.dialog-close{position:absolute;right:14px;top:12px;background:none;font-size:24px;color:var(--muted)}
.dialog-actions{display:flex;gap:9px;margin-top:20px}

@media(max-width:760px){
  .topbar{padding:0 16px}
  .brand span{display:none}
  main{padding:28px 16px}
  .hero{align-items:flex-start}
  .total-card{min-width:120px;padding:14px}
  .control-bar{grid-template-columns:1fr}
  h1{font-size:29px}
}
@media(max-width:480px){
  nav a{padding:8px}
  .hero{display:block}
  .total-card{margin-top:18px;display:inline-block}
  .range-controls{flex-wrap:wrap}
}
