/* Шрифт Golos Text лежит на нашем сервере (public/fonts, лицензия OFL) — без обращений к иностранным серверам. */
@font-face{font-family:'Golos Text';font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/golos-text-cyrillic-400-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Golos Text';font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/golos-text-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Golos Text';font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/golos-text-cyrillic-500-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Golos Text';font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/golos-text-latin-500-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Golos Text';font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/golos-text-cyrillic-600-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Golos Text';font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/golos-text-latin-600-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Golos Text';font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/golos-text-cyrillic-700-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Golos Text';font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/golos-text-latin-700-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* Магазин 05 — стили сайта (из одобренного прототипа 2026-10-11).
   Layout: витрина — шапка с поиском, сетки магазинов и товаров; кабинеты — вкладки и строки-карточки; всё сжимается в одну колонку на телефоне */
:root{
  --bg:#f5f7f6; --surface:#ffffff; --surface-2:#eef2f0; --fg:#18201b; --muted:#66706a; --line:#e1e7e3;
  --accent:#23a047; --accent-strong:#197a35; --accent-soft:#e6f5ea; --on-accent:#ffffff;
  --warn:#94580a; --warn-soft:#fff2df; --bad:#b02525; --bad-soft:#fdeded; --info:#1d4f9e; --info-soft:#e9f0fc;
  --demo:#1c2420; --on-demo:#dfe6e2; --star:#e2a400;
  --tile-s:42%; --tile-l:91%; --tile-fg:32%;
  --font:"Golos Text", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --r:12px; --r-sm:8px;
  --shadow:0 1px 2px rgba(20,40,28,.06),0 6px 20px rgba(20,40,28,.07);
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#111613; --surface:#18201c; --surface-2:#212a25; --fg:#e6ece8; --muted:#97a39c; --line:#2b3530;
  --accent:#3dbf63; --accent-strong:#62d483; --accent-soft:#17321f; --on-accent:#07140b;
  --warn:#f0b45c; --warn-soft:#33260f; --bad:#f28b8b; --bad-soft:#3a1b1b; --info:#90b6f6; --info-soft:#17233a;
  --demo:#050806; --on-demo:#c9d2cd; --star:#f3c14b;
  --tile-s:22%; --tile-l:22%; --tile-fg:78%;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 6px 20px rgba(0,0,0,.35); color-scheme:dark;}}
:root[data-theme="dark"]{
  --bg:#111613; --surface:#18201c; --surface-2:#212a25; --fg:#e6ece8; --muted:#97a39c; --line:#2b3530;
  --accent:#3dbf63; --accent-strong:#62d483; --accent-soft:#17321f; --on-accent:#07140b;
  --warn:#f0b45c; --warn-soft:#33260f; --bad:#f28b8b; --bad-soft:#3a1b1b; --info:#90b6f6; --info-soft:#17233a;
  --demo:#050806; --on-demo:#c9d2cd; --star:#f3c14b;
  --tile-s:22%; --tile-l:22%; --tile-fg:78%;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 6px 20px rgba(0,0,0,.35); color-scheme:dark;}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{background:var(--bg);color:var(--fg);font-family:var(--font);font-size:15px;line-height:1.45}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
h1,h2,h3{text-wrap:balance;margin:0;line-height:1.2}
h1{font-size:clamp(24px,4vw,36px);font-weight:700}
h2{font-size:20px;font-weight:700}
h3{font-size:16px;font-weight:600}
p{margin:0}
.wrap{max-width:1240px;margin:0 auto;padding-inline:16px}
.muted{color:var(--muted)} .sm{font-size:13px}
.num{font-variant-numeric:tabular-nums}
.link{background:none;border:0;padding:0;color:var(--accent-strong);font-weight:500}
.link:hover{text-decoration:underline}
a{color:var(--accent-strong)}

/* демо-полоса */
.demo{background:var(--demo);color:var(--on-demo);font-size:13px}
.demo-in{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;padding-block:6px}
.demo b{color:#7ee29a;font-weight:600;letter-spacing:.04em;text-transform:uppercase;font-size:11px}
.demo select{background:#2a332e;border:1px solid #3a4540;color:#eef3f0;border-radius:6px;padding:3px 6px}
.demo button{background:none;border:1px solid #3a4540;color:var(--on-demo);border-radius:6px;padding:3px 8px;font-size:12px}
.demo .sp{flex:1}

/* шапка */
.top{background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:env(safe-area-inset-top,0px);z-index:20}
.top-in{display:flex;align-items:center;gap:12px 16px;padding-block:10px;flex-wrap:wrap}
.logo{background:none;border:0;padding:0;font-size:22px;font-weight:700;letter-spacing:-.01em;white-space:nowrap}
.logo span{color:var(--on-accent);background:var(--accent);border-radius:6px;padding:0 6px;margin-left:4px}
.search{flex:1 1 320px;display:flex;border:2px solid var(--accent);border-radius:10px;overflow:hidden;min-width:0;background:var(--surface)}
.search input{flex:1;border:0;padding:9px 12px;background:transparent;min-width:0}
.search input:focus{outline:none}
.search button{border:0;background:var(--accent-soft);color:var(--accent-strong);font-weight:600;padding:0 16px}
.icons{display:flex;gap:6px;margin-left:auto}
.ibtn{position:relative;background:none;border:0;padding:6px 10px;border-radius:8px;font-size:13px;color:var(--fg);display:flex;flex-direction:column;align-items:center;gap:2px}
.ibtn:hover{background:var(--surface-2)}
.ibtn svg{width:22px;height:22px}
.ibtn .cnt{position:absolute;top:0;right:4px;background:var(--accent);color:var(--on-accent);font-size:11px;font-weight:700;border-radius:9px;min-width:18px;height:18px;line-height:18px;padding:0 5px}
.role-title{font-weight:600;color:var(--muted)}
.top select{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:6px 8px;max-width:100%}
@media (max-width:640px){.search{order:3;flex-basis:100%}.ibtn span.t{display:none}}

/* общее */
.sec{padding-block:18px}
.sec-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:12px;flex-wrap:wrap}
.sec>h2{margin-bottom:12px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;border-radius:10px;background:var(--accent);color:var(--on-accent);font-weight:600;padding:10px 16px;min-height:42px}
.btn:hover{background:var(--accent-strong)}
.btn.sm{padding:6px 12px;min-height:34px;font-size:14px}
.btn.ghost{background:var(--surface-2);color:var(--fg)}
.btn.ghost:hover{background:var(--line)}
.btn.bad{background:var(--bad-soft);color:var(--bad)}
.btn.wide{width:100%}
.btn[disabled]{opacity:.55;cursor:not-allowed}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px}
.stack{display:flex;flex-direction:column;gap:12px}
.rowx{display:flex;gap:8px 12px;align-items:center;flex-wrap:wrap}
.pill{display:inline-flex;align-items:center;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:600;white-space:nowrap}
.pill.info{background:var(--info-soft);color:var(--info)} .pill.warn{background:var(--warn-soft);color:var(--warn)}
.pill.ok{background:var(--accent-soft);color:var(--accent-strong)} .pill.bad{background:var(--bad-soft);color:var(--bad)}
.pill.neutral{background:var(--surface-2);color:var(--muted)}
.dot{width:8px;height:8px;border-radius:50%;background:var(--muted);display:inline-block;margin-right:6px;vertical-align:middle}
.dot.on{background:var(--accent)}
.star{color:var(--star)}
.empty{text-align:center;padding:40px 16px;color:var(--muted)}
.empty b{display:block;color:var(--fg);font-size:17px;margin-bottom:4px}
label.fl{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted);font-weight:500}
input[type=text],input[type=tel],input[type=number],input[type=time],input[type=password],input[type=email],select,textarea{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:9px 10px;color:var(--fg);width:100%;min-width:0}
textarea{resize:vertical;min-height:70px}
input:focus,select:focus,textarea:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}
.check{display:flex;gap:8px;align-items:flex-start;font-size:14px}
.check input{margin-top:3px;accent-color:var(--accent);width:16px;height:16px;flex:none}
.err{color:var(--bad);font-size:13px}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.seg{display:inline-flex;background:var(--surface-2);border-radius:10px;padding:3px;gap:3px;flex-wrap:wrap}
.seg label{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:8px;font-size:14px;cursor:pointer}
.seg input{position:absolute;opacity:0;pointer-events:none}
.seg label:has(input:checked){background:var(--surface);box-shadow:var(--shadow);font-weight:600}
.crumbs{font-size:13px;color:var(--muted);margin-bottom:12px}

/* плитки-заглушки фото */
.tile{background:hsl(var(--h) var(--tile-s) var(--tile-l));color:hsl(var(--h) 45% var(--tile-fg));display:flex;align-items:center;justify-content:center;aspect-ratio:1;border-radius:var(--r-sm);overflow:hidden;max-width:100%}
.tile span{font-weight:700;font-size:clamp(13px,2.2vw,18px);padding:8px;text-align:center;word-break:break-word;opacity:.9}
.tile.mini{width:56px;height:56px;flex:none} .tile.mini span{font-size:18px;padding:4px}
.tile.ini span{font-size:24px;letter-spacing:.02em}
.tile.big span{font-size:28px}

/* главная */
.hero{display:grid;grid-template-columns:1.6fr 1fr;gap:16px;padding-block:20px}
.hero-text{background:var(--accent);color:var(--on-accent);border-radius:16px;padding:28px;display:flex;flex-direction:column;gap:10px;justify-content:center}
.hero-text .eyebrow{font-size:12px;letter-spacing:.08em;text-transform:uppercase;font-weight:600;opacity:.85}
.hero-text .lead{max-width:52ch;opacity:.92}
.facts{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.facts li{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:12px 16px;display:flex;flex-direction:column}
.facts b{font-size:20px} .facts span{color:var(--muted);font-size:13px}
@media (max-width:760px){.hero{grid-template-columns:1fr}.hero-text{padding:20px}.facts{grid-template-columns:repeat(3,1fr)}.facts li{padding:10px}.facts b{font-size:15px}}
.shops{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:12px}
.shops.mb{margin-bottom:16px}
.scard{display:flex;gap:12px;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:12px;align-items:flex-start}
.scard:hover{border-color:var(--accent)}
.scard .tile{width:64px;flex:none}
.scard-b{display:flex;flex-direction:column;gap:2px;min-width:0}
.scard-n{font-size:16px}
.scard-meta{font-size:13px}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{border:0;border-radius:999px;padding:8px 14px;background:hsl(var(--h,140) var(--tile-s) var(--tile-l));color:hsl(var(--h,140) 45% var(--tile-fg));font-weight:600}
.chip.on{outline:2px solid var(--accent)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(176px,1fr));gap:12px}
@media (max-width:420px){.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}}
.pcard{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;min-width:0}
.pimg{border:0;padding:8px;background:none;position:relative;display:block}
.pimg .badge{position:absolute;top:14px;left:14px;background:var(--bad);color:#fff;font-size:12px;font-weight:700;border-radius:6px;padding:1px 6px}
.pbody{padding:0 10px 10px;display:flex;flex-direction:column;gap:4px;flex:1}
.price{font-weight:700;font-size:17px} .price s{color:var(--muted);font-weight:400;font-size:13px}
.pname{background:none;border:0;padding:0;text-align:left;font-size:14px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pshop{background:none;border:0;padding:0;text-align:left;font-size:12px;color:var(--muted)}
.pshop:hover{color:var(--accent-strong)}
.stock{font-size:12px;font-weight:500} .stock.ok{color:var(--accent-strong)} .stock.few{color:var(--warn)} .stock.none{color:var(--muted)}
.pbody .btn,.pbody .stepper{margin-top:auto}
.stepper{display:inline-flex;align-items:center;justify-content:space-between;background:var(--accent-soft);border-radius:10px;min-height:34px}
.stepper button{border:0;background:none;width:36px;height:34px;font-size:18px;font-weight:600;color:var(--accent-strong)}
.stepper span{min-width:24px;text-align:center;font-weight:600}
.pbody .stepper{width:100%}

/* каталог */
.cat-layout{display:grid;grid-template-columns:230px 1fr;gap:20px;align-items:start}
.filters{display:flex;flex-direction:column;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px;position:sticky;top:90px}
.results{min-width:0;display:flex;flex-direction:column;gap:10px}
@media (max-width:760px){.cat-layout{grid-template-columns:1fr}.filters{position:static;display:grid;grid-template-columns:1fr 1fr;align-items:end}}

/* товар и магазин */
.pv{display:grid;grid-template-columns:minmax(0,420px) 1fr;gap:24px;align-items:start}
.pv .tile{width:100%}
@media (max-width:760px){.pv{grid-template-columns:1fr}.pv .tile{max-width:320px;margin:0 auto}}
.pv-info{display:flex;flex-direction:column;gap:12px;min-width:0}
.pv-price{font-size:28px;font-weight:700}
.shopbox{background:var(--surface-2);border-radius:var(--r);padding:14px;display:flex;flex-direction:column;gap:6px}
.shead{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap}
.shead .tile{width:96px;flex:none}
.shead-b{flex:1 1 280px;display:flex;flex-direction:column;gap:6px;min-width:0}
.facts-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin-top:14px}
.facts-row div{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);padding:10px 12px;font-size:14px}
.facts-row b{display:block;font-size:12px;color:var(--muted);font-weight:500;margin-bottom:2px}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:14px;overflow-x:auto}
.tabs button{border:0;background:none;padding:10px 14px;font-weight:600;color:var(--muted);border-bottom:2px solid transparent;white-space:nowrap}
.tabs button.on{color:var(--fg);border-bottom-color:var(--accent)}
.tabs .cnt{background:var(--accent);color:var(--on-accent);border-radius:9px;font-size:11px;padding:1px 6px;margin-left:4px}
.review{border-bottom:1px solid var(--line);padding-block:10px;display:flex;flex-direction:column;gap:4px}

/* корзина и оформление */
.two{display:grid;grid-template-columns:1fr 340px;gap:20px;align-items:start}
@media (max-width:860px){.two{grid-template-columns:1fr}}
.two>*{min-width:0}
.aside{position:sticky;top:90px}
@media (max-width:860px){.aside{position:static}}
.group{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.group-h{display:flex;gap:8px 12px;align-items:center;flex-wrap:wrap;padding:12px 16px;background:var(--surface-2)}
.line{display:flex;gap:12px;align-items:center;padding:12px 16px;border-top:1px solid var(--line);flex-wrap:wrap}
.line-n{flex:1 1 160px;min-width:0;display:flex;flex-direction:column;gap:2px}
.line-p{font-weight:600;min-width:80px;text-align:right}
.note{border-radius:var(--r-sm);padding:10px 12px;font-size:14px}
.note.warn{background:var(--warn-soft);color:var(--warn)} .note.info{background:var(--info-soft);color:var(--info)} .note.ok{background:var(--accent-soft);color:var(--accent-strong)} .note.bad{background:var(--bad-soft);color:var(--bad)}
.sum{display:flex;justify-content:space-between;gap:12px;font-size:14px}
.sum.total{font-size:18px;font-weight:700;border-top:1px solid var(--line);padding-top:10px}

/* заказ */
.steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0}
.steps li{display:grid;grid-template-columns:22px 1fr;gap:10px;padding-bottom:14px;position:relative}
.steps li::before{content:"";position:absolute;left:10px;top:20px;bottom:0;width:2px;background:var(--line)}
.steps li:last-child::before{display:none}
.steps .mk{width:22px;height:22px;border-radius:50%;border:2px solid var(--line);background:var(--surface);z-index:1}
.steps li.done .mk{background:var(--accent);border-color:var(--accent)}
.steps li.done::before{background:var(--accent)}
.steps li.cur .mk{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}
.steps li.todo{color:var(--muted)}
.photo{width:100%;max-width:420px;border-radius:var(--r-sm);display:block;border:1px solid var(--line)}
.stars{display:inline-flex;gap:2px}
.stars button{border:0;background:none;font-size:26px;line-height:1;color:var(--line);padding:2px}
.stars button.on{color:var(--star)}

/* кабинеты */
.cab{padding-block:16px}
.cab-h{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:12px}
.ocard{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;display:flex;flex-direction:column;gap:10px}
.ocard.new{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.ocard-h{display:flex;gap:8px 12px;align-items:center;flex-wrap:wrap}
.ocard-h .id{font-weight:700}
.kv{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:6px 16px;font-size:14px}
.kv b{color:var(--muted);font-weight:500;font-size:12px;display:block}
.items{font-size:14px;margin:0;padding-left:18px}
.list{display:flex;flex-direction:column;gap:10px}
.prow{display:grid;grid-template-columns:56px minmax(0,2fr) minmax(90px,.8fr) minmax(220px,1.6fr) auto;gap:10px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);padding:8px 10px}
.prow .nm{min-width:0} .prow .nm b{display:block;font-weight:600;font-size:14px;overflow-wrap:anywhere}
.prow .stk{display:flex;gap:6px;min-width:0}
.prow .stk>*{flex:1;min-width:0}
@media (max-width:760px){.prow{grid-template-columns:56px 1fr}.prow>*:nth-child(n+3){grid-column:1/-1}}
.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
.toolbar input{flex:1 1 220px;width:auto}
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-sm)}
table{border-collapse:collapse;width:100%;font-size:14px}
th,td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}
th{background:var(--surface-2);font-weight:600;font-size:12px;color:var(--muted)}
.big-actions{display:flex;flex-direction:column;gap:8px}
.big-actions .btn{min-height:52px;font-size:16px}
.alarm{background:var(--accent);color:var(--on-accent);border-radius:var(--r);padding:12px 16px;display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:12px;font-weight:600}
.alarm .btn{background:var(--on-accent);color:var(--accent-strong)}

footer.foot{border-top:1px solid var(--line);margin-top:24px;padding-block:20px;color:var(--muted);font-size:13px}
.foot-in{display:flex;gap:10px 20px;flex-wrap:wrap;align-items:center}

/* модальное окно и уведомления */
.modal{position:fixed;inset:0;background:rgba(10,16,12,.5);display:flex;align-items:center;justify-content:center;padding:16px;z-index:50}
.modal-box{background:var(--surface);border-radius:16px;max-width:460px;width:100%;max-height:90vh;overflow:auto;padding:20px;display:flex;flex-direction:column;gap:12px}
.modal-h{display:flex;justify-content:space-between;align-items:center;gap:12px}
.x{border:0;background:var(--surface-2);border-radius:8px;width:34px;height:34px;font-size:18px}
.qr{display:flex;justify-content:center;background:#fff;border-radius:var(--r-sm);padding:10px}
.qr svg{width:180px;height:180px}
.contact-btns{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px}
.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--fg);color:var(--bg);padding:10px 16px;border-radius:10px;font-size:14px;z-index:60;max-width:calc(100% - 32px);box-shadow:var(--shadow)}
@media (prefers-reduced-motion:no-preference){.toast{animation:up .2s ease-out}@keyframes up{from{opacity:0;transform:translate(-50%,8px)}}}

/* ===== дополнения сайта ===== */
html,body{min-height:100%}
body{margin:0}
.loading{padding:60px 16px;text-align:center;color:var(--muted)}
.errbox{max-width:560px;margin:40px auto}
.change{border:2px solid var(--warn);background:var(--warn-soft);border-radius:var(--r);padding:16px;display:flex;flex-direction:column;gap:10px}
.change h3{color:var(--warn)}
.diff{width:100%;border-collapse:collapse;font-size:14px;background:var(--surface);border-radius:var(--r-sm);overflow:hidden}
.diff td{padding:6px 10px;border-bottom:1px solid var(--line);white-space:normal}
.diff .old{color:var(--muted);text-decoration:line-through}
.diff .new{font-weight:700}
.fact{display:grid;grid-template-columns:minmax(0,1fr) 110px auto;gap:8px;align-items:center;font-size:14px;padding:6px 0;border-bottom:1px dashed var(--line)}
.fact input[type=number]{padding:6px 8px}
.fact .was{font-size:12px;color:var(--muted)}
.chat{display:flex;flex-direction:column;height:min(70vh,640px);background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.msgs{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:8px;background:var(--bg)}
.msg{max-width:78%;padding:8px 12px;border-radius:14px;background:var(--surface);border:1px solid var(--line);align-self:flex-start;overflow-wrap:anywhere}
.msg.me{align-self:flex-end;background:var(--accent-soft);border-color:transparent}
.msg time{display:block;font-size:11px;color:var(--muted);margin-top:2px}
.ptag{display:inline-flex;gap:6px;align-items:center;background:var(--surface-2);border-radius:8px;padding:4px 8px;font-size:13px;margin-bottom:4px;text-decoration:none;color:var(--fg)}
.ptag b{font-weight:600}
.composer{border-top:1px solid var(--line);padding:10px;display:flex;flex-direction:column;gap:8px}
.composer textarea{min-height:44px;max-height:140px}
.picker{max-height:240px;overflow-y:auto;border:1px solid var(--line);border-radius:var(--r-sm)}
.picker button{display:flex;justify-content:space-between;gap:8px;width:100%;text-align:left;border:0;border-bottom:1px solid var(--line);background:var(--surface);padding:8px 10px}
.picker button:hover{background:var(--surface-2)}
.threads .ocard{text-decoration:none;color:var(--fg)}
a.btn{text-decoration:none}
a.scard,a.pname,a.pshop,a.logo{text-decoration:none;color:inherit}
a.pimg{display:block}
.demo-login{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}
.tabs a{padding:10px 14px;font-weight:600;color:var(--muted);border-bottom:2px solid transparent;white-space:nowrap;text-decoration:none}
.tabs a.on{color:var(--fg);border-bottom-color:var(--accent)}
.seg a{display:flex;align-items:center;padding:6px 12px;border-radius:8px;font-size:14px;color:inherit;text-decoration:none}
.seg a.on{background:var(--surface);box-shadow:var(--shadow);font-weight:600}
.ibtn{text-decoration:none}
.catpick{border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:10px;min-width:0}
.catpick legend{font-size:13px;color:var(--muted);font-weight:500;margin-bottom:6px;padding:0}
.catchip{display:inline-flex;align-items:center;gap:6px;cursor:pointer;font-weight:500;opacity:.75}
.catchip input{accent-color:var(--accent);width:16px;height:16px;margin:0}
.catchip:has(input:checked){opacity:1;outline:2px solid var(--accent)}
.catchip:focus-within{outline:2px solid var(--accent)}
.doc h3{margin-top:6px}.doc ul{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px}.doc p,.doc li{max-width:72ch}
.banner{background:var(--warn-soft);color:var(--warn);text-align:center;font-weight:600;padding:8px 16px;font-size:14px}
