/* Токены и компоненты из макета docs/mockup/ekran.html */
:root {
  --tekst:#14150F; --seryy:#5C6158; --tihiy:#A9B09E; --liniya:#E1E5DC; --zelenyy:#8CC63E;
  --temno-zelenyy:#4F7D20; --fon:#FFFFFF; --podlozhka:#F4F6F1; --svetlo-zelenyy:#E9EFE2; --korichnevyy:#8A5A2B;
  color-scheme:light;
}
* { box-sizing:border-box; -webkit-tap-highlight-color:transparent; }
[hidden] { display:none !important; }
html, body { height:100%; }
body { margin:0; background:var(--fon); color:var(--tekst); font-family:'HelveticaNeueCyr','Helvetica Neue',Helvetica,Arial,sans-serif; font-size:16px; -webkit-font-smoothing:antialiased; display:flex; flex-direction:column; }
button { font:inherit; color:inherit; background:none; border:none; padding:0; cursor:pointer; text-align:left; }
button:focus-visible, input:focus-visible { outline:2px solid var(--zelenyy); outline-offset:2px; }
a { color:inherit; text-decoration:none; }
.num { font-variant-numeric:tabular-nums; }

/* Своя шапка нужна только в обычном браузере, в Telegram «Назад» рисует мессенджер */
.shapka { display:flex; align-items:center; gap:8px; padding:10px 14px; border-bottom:1px solid var(--liniya); flex-shrink:0; }
.shapka button { color:var(--temno-zelenyy); display:flex; align-items:center; gap:2px; font-size:16px; }
.shapka .demo { margin-left:auto; font-size:12px; font-weight:700; color:var(--korichnevyy); background:#FCF3E8; border-radius:20px; padding:3px 10px; }

.telo { flex-grow:1; overflow-y:auto; padding:18px 18px 26px; display:flex; flex-direction:column; gap:14px; width:100%; max-width:520px; margin:0 auto; }
h1 { font-size:26px; line-height:1.15; font-weight:700; margin:0; }
.pod-h1 { font-size:15px; color:var(--seryy); line-height:1.45; margin-top:-6px; }
.logo { display:flex; align-items:center; gap:9px; font-size:20px; font-weight:700; padding:22px 0 8px; }
.tochka { width:8px; height:8px; border-radius:50%; background:var(--zelenyy); }

.zelenaya { background:var(--zelenyy); color:#14150F; font-size:16px; font-weight:700; padding:14px 20px; border-radius:12px; min-height:50px; width:100%; text-align:center; box-shadow:0 6px 16px rgba(140,198,62,.28); display:block; }
.zelenaya:disabled { background:#DDE3D5; color:#8E9586; box-shadow:none; cursor:default; }
.belaya { border:1px solid var(--liniya); color:var(--tekst); font-size:16px; padding:13px 20px; border-radius:12px; min-height:50px; width:100%; text-align:center; background:var(--fon); display:block; }
.belaya:disabled { color:var(--tihiy); cursor:default; }
.tihaya { font-size:15px; color:#9aa092; text-align:center; width:100%; padding:8px 0; }
.knopki { display:flex; flex-direction:column; gap:12px; }

.podpis-polya { font-size:16px; font-weight:700; margin-bottom:-4px; }
.pole { display:flex; align-items:center; border:1px solid var(--liniya); border-radius:12px; padding:0 16px; min-height:54px; font-size:18px; }
.pole:focus-within { border-color:var(--zelenyy); }
.pole .plyus7 { margin-right:6px; }
.pole input { border:none; outline:none; font:inherit; flex-grow:1; min-width:0; color:var(--tekst); background:transparent; letter-spacing:.04em; }
.pole input::placeholder { color:#a9aea2; }
.galochka { display:flex; gap:12px; align-items:flex-start; font-size:14px; line-height:1.45; color:var(--seryy); }
.kvadrat { width:22px; height:22px; border-radius:6px; border:2px solid var(--liniya); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.galochka.vkl .kvadrat { border-color:var(--zelenyy); }
.galochka .kvadrat svg { opacity:0; }
.galochka.vkl .kvadrat svg { opacity:1; }
.galochka a { color:var(--temno-zelenyy); text-decoration:underline; }

.kod-pole { width:100%; height:58px; border:1px solid var(--liniya); border-radius:12px; text-align:center; font-size:26px; font-weight:700; letter-spacing:.5em; padding-left:.5em; font-family:inherit; outline:none; }
.kod-pole:focus { border-color:var(--zelenyy); }
.otschet { text-align:center; font-size:14px; color:#9aa092; }
.oshibka { color:#9A4B3A; font-size:14px; text-align:center; }
.demo-kod { text-align:center; font-size:13px; color:var(--korichnevyy); background:#FCF3E8; border-radius:10px; padding:8px; }

.karta-bonusov { position:relative; background:var(--svetlo-zelenyy); color:#22301A; border-radius:18px; padding:20px 22px; overflow:hidden; min-height:170px; display:flex; flex-direction:column; }
.karta-bonusov::after { content:''; position:absolute; right:-40px; bottom:-60px; width:200px; height:200px; border-radius:50%; background:radial-gradient(circle, rgba(140,198,62,.35), transparent 70%); }
.kb-verh { display:flex; align-items:baseline; justify-content:space-between; gap:12px; position:relative; z-index:2; }
.kb-krupno { font-size:25px; font-weight:700; letter-spacing:-0.015em; }
.kb-sred { display:flex; align-items:flex-end; justify-content:space-between; gap:12px; margin-top:18px; position:relative; z-index:2; }
.kb-lab { font-size:13px; color:#71806A; }
.kb-zn { font-size:18px; font-weight:700; margin-top:3px; color:var(--temno-zelenyy); }
.kb-niz { margin-top:auto; padding-top:18px; font-size:12.5px; line-height:1.5; color:#71806A; position:relative; z-index:2; }

.blok { border:1px solid var(--liniya); border-radius:14px; padding:14px 16px; }
.blok.sgoranie { border-color:#E3DBCD; background:#FCFBF8; }
.blok.sgoranie.net { border-color:var(--liniya); background:var(--fon); }
.cap { font-size:11px; letter-spacing:0.1em; text-transform:uppercase; font-weight:700; color:var(--seryy); }
.blok .zn { font-size:16px; font-weight:700; margin-top:5px; }
.sgoranie .zn { color:var(--korichnevyy); }
.sgoranie.net .zn { color:var(--seryy); font-weight:400; }
.stroka-ssylka { display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; border:1px solid var(--liniya); border-radius:14px; padding:15px 16px; font-size:16px; font-weight:700; }
.obnovleno { font-size:13px; color:var(--seryy); text-align:center; }

.ch-stroka { display:flex; justify-content:space-between; align-items:baseline; gap:16px; padding:6px 0; font-size:15px; }
.ch-stroka span { color:var(--seryy); }
.ch-stroka b { font-weight:600; white-space:nowrap; }
.ch-stroka.itog { border-top:1px solid var(--liniya); margin-top:4px; padding-top:11px; }
.ch-stroka.itog span { color:var(--tekst); font-weight:700; }

.filtry { display:flex; gap:8px; flex-wrap:wrap; }
.filtr { font-size:14px; color:var(--seryy); padding:8px 14px; border:1px solid var(--liniya); border-radius:20px; min-height:38px; background:var(--fon); }
.filtr.aktiv { color:#2C4420; font-weight:700; background:var(--svetlo-zelenyy); border-color:#D2E2BF; }
.mesyac { font-size:11px; letter-spacing:0.12em; text-transform:uppercase; color:var(--seryy); font-weight:700; padding-top:6px; }
.oper { display:flex; align-items:center; gap:12px; width:100%; border:1px solid var(--liniya); border-radius:14px; padding:13px 14px; }
.oper-telo { flex-grow:1; min-width:0; }
.oper-imya { font-size:15px; font-weight:700; display:block; }
.oper-data { font-size:13px; color:var(--seryy); margin-top:3px; display:block; }
.oper-chislo { font-size:17px; font-weight:700; white-space:nowrap; }
.plyus { color:var(--temno-zelenyy); }
.minus { color:var(--korichnevyy); }
.sgorelo { color:#9A4B3A; }
.shapka-oper { border-radius:16px; padding:18px; background:#F2F7EA; border:1px solid #D5E2C5; }
.shapka-oper .krupno { font-size:30px; font-weight:700; margin:6px 0 4px; }

.akciya { border:1px solid var(--liniya); border-radius:16px; overflow:hidden; }
.oblozhka { position:relative; height:170px; background:linear-gradient(150deg,#DDE9CC 0%,#C6DCA8 100%); overflow:hidden; padding:16px 18px; display:flex; flex-direction:column; justify-content:space-between; }
.oblozhka .skidka { font-size:42px; font-weight:700; color:var(--temno-zelenyy); letter-spacing:-0.02em; }
.oblozhka .metka { align-self:flex-start; font-size:12px; font-weight:700; background:rgba(255,255,255,.85); color:var(--temno-zelenyy); border-radius:20px; padding:4px 10px; }
.akciya-telo { padding:14px 16px 16px; display:flex; flex-direction:column; gap:6px; }
.akciya-imya { font-size:18px; font-weight:700; }
.akciya-srok { font-size:14px; color:var(--seryy); }
.tekst { font-size:15px; line-height:1.55; }

.mag { border:1px solid var(--liniya); border-radius:16px; padding:14px; display:flex; flex-direction:column; gap:10px; }
.mag-imya { font-size:17px; font-weight:700; }
.mag-adres { font-size:14px; color:var(--seryy); line-height:1.45; margin-top:-6px; }
.dve { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.dve .zelenaya, .dve .belaya { font-size:15px; padding:12px 10px; }
.rekvizit { display:flex; flex-direction:column; border:1px solid var(--liniya); border-radius:14px; padding:4px 16px; }
.rekvizit div { padding:11px 0; border-bottom:1px solid var(--liniya); }
.rekvizit div:last-child { border-bottom:none; }
.rekvizit span { display:block; font-size:12px; color:var(--seryy); margin-bottom:3px; }

.profil { display:flex; align-items:center; gap:14px; border:1px solid var(--liniya); border-radius:16px; padding:16px; }
.avatar { width:52px; height:52px; border-radius:50%; background:var(--svetlo-zelenyy); display:flex; align-items:center; justify-content:center; flex-shrink:0; font-size:20px; font-weight:700; color:var(--temno-zelenyy); }
.profil b { font-size:18px; display:block; }
.profil div span { font-size:14px; color:var(--seryy); display:block; margin-top:3px; }
.spisok { border:1px solid var(--liniya); border-radius:14px; display:flex; flex-direction:column; }
.spisok a { display:flex; justify-content:space-between; align-items:center; padding:15px 16px; border-bottom:1px solid var(--liniya); font-size:15px; }
.spisok a:last-child { border-bottom:none; }
.vyyti { color:var(--seryy); text-align:center; width:100%; padding:10px 0; font-size:15px; }

.zagruzka { text-align:center; color:var(--seryy); padding:40px 0; }
.pusto { text-align:center; color:var(--seryy); }

.niz { display:flex; justify-content:center; border-top:1px solid var(--liniya); flex-shrink:0; background:var(--fon); padding-bottom:max(10px, env(safe-area-inset-bottom)); }
.niz button { flex:1; max-width:130px; padding:9px 0 6px; display:flex; flex-direction:column; align-items:center; gap:4px; font-size:11px; color:var(--seryy); text-align:center; }
.niz button svg { stroke:#5C6158; }
.niz button.aktiv { color:var(--tekst); font-weight:700; }
.niz button.aktiv svg { stroke:var(--temno-zelenyy); }

.plashka { position:fixed; left:16px; right:16px; bottom:96px; max-width:480px; margin:0 auto; background:var(--tekst); color:#FFFFFF; font-size:14px; padding:13px 18px; border-radius:12px; opacity:0; transform:translateY(12px); transition:opacity .2s ease, transform .2s ease; pointer-events:none; text-align:center; z-index:9; }
.plashka.vidno { opacity:1; transform:translateY(0); }
@media (prefers-reduced-motion: reduce) { * { transition:none !important; } }
