:root {
  color-scheme: dark;
  --canvas: #161917;
  --surface: #1b201c;
  --soft: #242925;
  --ink: #f2f0e9;
  --muted: #b6bcb4;
  --accent: #c4cbb8;
  --emphasis: #a6b29c;
  --action: #d0d8c3;
  --action-hover: #ecf0e4;
  --on-action: #20251f;
  --line: #ffffff24;
  --control-line: #74816d;
  --selected: #374035;
  color: var(--ink);
  background: var(--canvas);
  font-family: Inter, system-ui, -apple-system, Segoe UI, sans-serif;
  font-synthesis: none;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--canvas); }
main { max-width: 760px; margin: auto; padding: 18px 16px calc(92px + env(safe-area-inset-bottom)); }
header { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 22px; }
.brand { color: var(--accent); font-family: Georgia, 'Times New Roman', serif; font-size: 18px; font-weight: 700; letter-spacing: .10em; white-space: nowrap; }
.brand span { color: var(--accent); font-size: 13px; vertical-align: top; }
.badge { border: 1px solid var(--line); border-radius: 999px; padding: 7px 10px; background: var(--soft); color: var(--ink); font-size: 11px; font-weight: 700; white-space: nowrap; }
.eyebrow { color: var(--accent); font-size: 10px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
h1, h2 { color: var(--ink); font-family: Georgia, 'Times New Roman', serif; font-weight: 600; }
h1 { font-size: clamp(26px, 5.8vw, 38px); letter-spacing: -.03em; line-height: 1.05; margin: 10px 0 14px; max-width: 620px; }
h2 { font-size: 19px; letter-spacing: -.02em; margin: 0 0 8px; }
p { color: var(--muted); line-height: 1.5; font-size: 15px; }
a { color: var(--accent); }
button, .button { display: inline-block; border: 1px solid var(--action); border-radius: 12px; padding: 13px 18px; background: var(--action); color: var(--on-action); font: inherit; font-weight: 700; text-decoration: none; text-align: center; cursor: pointer; transition: background .18s ease, transform .18s ease, border-color .18s ease; }
button:hover, .button:hover { background: var(--action-hover); border-color: var(--action-hover); }
button:active, .button:active { transform: translateY(1px); }
button:disabled { opacity: .54; cursor: not-allowed; transform: none; }
button.secondary, .secondary { background: var(--soft); color: var(--accent); border-color: var(--line); }
button.secondary:hover, .secondary:hover { background: var(--selected); border-color: var(--control-line); }
button:focus-visible, a:focus-visible, input:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; }
.panel { margin: 16px 0; padding: 18px; border: 1px solid var(--line); border-radius: 18px; background: var(--surface); box-shadow: 0 10px 30px rgba(0,0,0,.035); }
.how { background: var(--soft); }
.how ol { padding-left: 22px; color: var(--ink); line-height: 1.7; }
.how li { padding-left: 4px; margin: 5px 0; }
.how p { margin-bottom: 0; }
.upload { display: block; margin: 14px 0; padding: 22px 14px; border: 2px dashed var(--control-line); border-radius: 16px; background: var(--soft); text-align: center; cursor: pointer; }
.upload:hover { border-color: var(--accent); background: var(--selected); }
.upload strong { display: block; margin: 10px 0; color: var(--ink); }
.upload small { color: var(--muted); }
.upload input { max-width: 100%; margin-top: 18px; cursor: pointer; }
#preview { display: block; max-width: 100%; height: 180px; object-fit: contain; border-radius: 12px; margin: 16px 0; }
#search-button { width: 100%; min-height: 50px; }
#search-button:disabled { opacity: 1; background: var(--soft); border-color: var(--soft); color: var(--muted); }
input { width: 100%; padding: 12px; border: 1px solid var(--control-line); border-radius: 10px; background: var(--canvas); color: var(--ink); font: inherit; }
label { display: block; margin: 14px 0 8px; }
small { line-height: 1.5; }
.muted { color: var(--muted); font-size: 12px; }
.limit-panel { margin: 24px 0; padding: 24px; border: 1px solid var(--line); border-radius: 20px; background: linear-gradient(135deg, var(--soft), var(--surface)); box-shadow: 0 16px 32px rgba(0,0,0,.16); color: var(--ink); }
.limit-kicker { color: var(--accent); font-size: 11px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.limit-panel h2 { margin: 8px 0; color: var(--ink); font-size: 28px; }
.limit-panel p { margin: 8px 0 20px; color: var(--ink); }
.limit-panel button { background: var(--action); border-color: var(--action); color: var(--on-action); }
.limit-panel button:hover { background: var(--action-hover); border-color: var(--action-hover); }
#notice { position: sticky; top: 8px; z-index: 6; padding: 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--soft); color: var(--accent); white-space: pre-wrap; }
#notice:empty { display: none; }
.demo { margin: 12px 0; padding: 12px; border-radius: 12px; background: var(--soft); color: var(--accent); font-size: 13px; }
.grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.results { margin: 18px 0 0; }
.card { display: block; overflow: hidden; border: 1px solid var(--line); border-radius: 17px; background: var(--surface); color: inherit; text-decoration: none; transition: transform .18s ease, box-shadow .18s ease; }
.card:hover { transform: translateY(-2px); box-shadow: 0 12px 22px rgba(0,0,0,.11); }
.card img { width: 100%; height: 160px; object-fit: contain; background: white; }
.card div { padding: 14px; }
.card strong { display: block; color: var(--accent); font-size: 20px; }
.card p { margin: 8px 0; color: var(--ink); font-size: 13px; line-height: 1.45; overflow-wrap: anywhere; }
.card small { color: var(--muted); }
.card .original-price { display: block; margin: 4px 0; font-size: 12px; }
.row { display: flex; justify-content: space-between; gap: 12px; padding: 14px 0; border-bottom: 1px solid var(--line); font-size: 14px; }
.row:last-child { border-bottom: 0; }
.tabs { display: flex; gap: 8px; margin: 24px 0; }
.tabs button { flex: 1; padding: 10px 15px; }
.progress { margin: 15px 0; padding: 18px; border-radius: 14px; background: var(--soft); color: var(--accent); }
.package { padding: 20px 10px; text-align: center; }
.package h2 { margin: 5px; }
.package p { margin: 10px 0; }
.package button { padding: 12px; font-size: 13px; }
.metric { color: var(--accent); font-size: 28px; font-weight: 750; }
.footer { margin-top: 35px; color: var(--muted); font-size: 12px; }
.account-balance { margin: 12px 0; color: var(--accent); font-size: 27px; font-weight: 800; }
.support-contact { color: var(--accent); font-weight: 700; overflow-wrap: anywhere; }
.screen { min-height: 60vh; }
.screen .tabs { margin: 24px 0 12px; }
.results + #rate-note { margin-top: 12px; }
pre { white-space: pre-wrap; overflow-wrap: anywhere; font-size: 13px; }
.bottom-nav { position: fixed; z-index: 5; left: 50%; bottom: 0; transform: translateX(-50%); width: min(100%, 760px); display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; padding: 9px 16px calc(9px + env(safe-area-inset-bottom)); border-top: 1px solid var(--line); background: var(--surface); box-shadow: 0 -5px 20px rgba(0,0,0,.08); backdrop-filter: blur(12px); }
.bottom-nav button { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; padding: 8px 4px; border: 0; border-radius: 12px; background: transparent; color: var(--muted); font-size: 21px; }
.bottom-nav button small { font-size: 11px; font-weight: 700; }
.bottom-nav button.active { background: var(--selected); color: var(--accent); }
.bottom-nav button:hover { background: var(--soft); border: 0; }
[hidden] { display: none !important; }
@media (max-width: 500px) {
  main { padding: 22px 16px calc(92px + env(safe-area-inset-bottom)); }
  header { margin-bottom: 28px; }
  .brand { font-size: 20px; }
  .panel { padding: 19px; }
  .grid.results { grid-template-columns: 1fr; }
  .results .card { display: flex; }
  .results .card img { width: 118px; height: 144px; flex: none; }
  .results .card div { padding: 13px; }
  #packages { grid-template-columns: 1fr; }
  .bottom-nav { padding-left: 12px; padding-right: 12px; }
  .bottom-nav button { min-height: 48px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  button, .button, .card { transition: none; }
}

/* Ищейка — visual refresh */
main {max-width:740px;}
header {margin-bottom:28px;}
.brand {font-family:Inter,system-ui,sans-serif;font-weight:900;letter-spacing:-.055em;font-size:25px;}
h1,h2 {font-family:Inter,system-ui,sans-serif;letter-spacing:-.055em;font-weight:800;}
h1 {font-size:clamp(37px,8vw,58px);line-height:1.04;max-width:650px;}
h1 em {font-style:normal;color:var(--emphasis);}
.screen > p {max-width:550px;}
.panel {background:var(--surface);border:1px solid var(--line);box-shadow:0 12px 40px rgba(0,0,0,.045);border-radius:22px;}
button,.button {border-radius:14px;transition:transform .15s ease,background .15s ease;}
button:active,.button:active {transform:scale(.985);}
.quick-facts {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:22px 0;}
.quick-facts>div {padding:16px 12px;background:var(--soft);border:1px solid var(--line);border-radius:16px;display:flex;flex-direction:column;gap:6px;}
.quick-facts strong {font-size:13px;color:var(--accent);}.quick-facts span {font-size:12px;font-weight:650;color:var(--ink);line-height:1.3;}
.panel-heading {display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:15px;}.panel-heading h2 {margin-top:6px;}
.hint-pill {background:var(--soft);color:var(--accent);border-radius:999px;padding:7px 11px;font-size:12px;white-space:nowrap;}
.search-panel {border:1px solid var(--line);}
.tariff-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;}
.tariff-card {min-width:0;border:1px solid var(--line);border-radius:17px;padding:16px 12px;display:flex;gap:10px;flex-direction:column;align-items:flex-start;background:var(--surface);}
.tariff-card:nth-child(2) {background:var(--soft);border-color:var(--line);}
.tariff-kicker {font-size:11px;color:var(--accent);font-weight:750;}.tariff-card strong {font-size:16px;}.tariff-price {font-size:22px;font-weight:850;}.tariff-card .button {width:100%;padding:10px 8px;text-align:center;font-size:12px;}
.tariff-card .disabled {pointer-events:none;opacity:.5;}
.bottom-nav {box-shadow:0 -8px 32px rgba(0,0,0,.07);}
@media(max-width:500px) {.tariff-grid{grid-template-columns:1fr;}.tariff-card{display:grid;grid-template-columns:1fr auto;align-items:center;gap:5px 12px;}.tariff-card .tariff-kicker{grid-column:1 / -1}.tariff-card .button{grid-column:2;grid-row:2 / span 2}.quick-facts>div{padding:11px 8px}.quick-facts span{font-size:11px}}

/* Custom photo picker */
.upload { position: relative; cursor: pointer; }
.upload input[type="file"] {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: 0;
  opacity: 0;
  overflow: hidden;
}
.upload strong {
  font-size: 15px;
  line-height: 1.4;
}
.upload:focus-within {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}

/* History UI */
.history-entry {
  padding: 12px 0;
  border-bottom: 1px solid var(--line);
}

.history-entry .row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
}

.history-entry .row button {
  font-size: 12px;
  padding: 9px 12px;
}

.history-products {
  margin-top: 12px;
}

.history-products .grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.history-products .card {
  min-width: 0;
  overflow: hidden;
}

.history-products .card img {
  width: 100%;
  height: 125px;
  object-fit: cover;
}

.history-products .card p {
  font-size: 12px;
  line-height: 1.4;
  overflow-wrap: anywhere;
}
.legal-text { white-space: pre-wrap; overflow-wrap: anywhere; line-height: 1.6; margin: 16px 0; font-size: 14px; }
.legal-actions { display: grid; gap: 12px; margin-top: 20px; }
.legal-links li { margin: 12px 0; }
.legal-check { display: flex; align-items: flex-start; gap: 12px; min-height: 44px; margin: 20px 0; }
.legal-check input[type=checkbox] { width: 22px; height: 22px; flex: 0 0 22px; margin-top: 2px; }
#marketing-data-open, #marketing-open { margin: 8px 0; }
button:focus-visible,a:focus-visible,input:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; }
