@font-face{font-family:'Manrope Variable';src:url('./assets/fonts/manrope-latin-wght-normal.woff2') format('woff2');font-weight:200 800;font-style:normal;font-display:swap;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:'Manrope Variable';src:url('./assets/fonts/manrope-cyrillic-wght-normal.woff2') format('woff2');font-weight:200 800;font-style:normal;font-display:swap;unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}

:root{--mono:ui-monospace,'SF Mono',SFMono-Regular,Menlo,Consolas,'Roboto Mono','Liberation Mono',monospace;--font:'Manrope Variable',system-ui,-apple-system,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;--r-sheet:20px;--r-ctl:14px;--r-sm:8px;--safe-t:calc(env(safe-area-inset-top,0px) + var(--tg-safe-area-inset-top,0px) + var(--tg-content-safe-area-inset-top,0px));--safe-r:calc(env(safe-area-inset-right,0px) + var(--tg-safe-area-inset-right,0px) + var(--tg-content-safe-area-inset-right,0px));--safe-b:calc(env(safe-area-inset-bottom,0px) + var(--tg-safe-area-inset-bottom,0px) + var(--tg-content-safe-area-inset-bottom,0px));--safe-l:calc(env(safe-area-inset-left,0px) + var(--tg-safe-area-inset-left,0px) + var(--tg-content-safe-area-inset-left,0px))}

[data-theme="light"]{color-scheme:light;--bg:#F2F6F5;--surface:#FFFFFF;--surface-2:#EDF2F1;--surface-3:#E1E9E7;--line:#DAE3E0;--line-strong:#C3D0CC;--ink:#12302C;--muted:#566B66;--accent:#0A7A6B;--accent-fill:#0B8F7E;--coral:#FF7657;--warn:#A5452D;--amber:#8A5A00;--err:#B0372A;--focus:#0B8F7E;--shadow:0 1px 2px rgba(18,48,44,.06),0 14px 32px -18px rgba(18,48,44,.22);--shadow-sheet:0 -12px 40px -12px rgba(10,25,22,.28);--overlay:rgba(10,25,22,.42);--plate:#FFFFFF;--plate-ring:rgba(18,48,44,.12);--on-accent:#FFFFFF;--primary:#0A7A6B;}
[data-theme="dark"]{color-scheme:dark;--bg:#0D1816;--surface:#142321;--surface-2:#1B2D2A;--surface-3:#243B37;--line:#25403B;--line-strong:#34524C;--ink:#E8F2EF;--muted:#9BB2AC;--accent:#2FC2AC;--accent-fill:#2FC2AC;--coral:#FF8A6C;--warn:#FFA48C;--amber:#E8B04B;--err:#FF9E92;--focus:#2FC2AC;--shadow:inset 0 1px 0 rgba(255,255,255,.04),0 18px 36px -22px rgba(0,0,0,.7);--shadow-sheet:0 -12px 40px -8px rgba(0,0,0,.6);--overlay:rgba(0,0,0,.62);--plate:#F2F6F5;--plate-ring:rgba(255,255,255,.14);--on-accent:#0D1816;--primary:#2FC2AC;}

*{box-sizing:border-box}
html{background:var(--bg);-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;min-height:100vh;min-height:100dvh;background:var(--bg);color:var(--ink);font:500 15px/1.45 var(--font);-webkit-font-smoothing:antialiased}
html:has(.sheet[open]),body:has(.sheet[open]){overflow:hidden}
button,input{font:inherit;color:inherit}
button{cursor:pointer;-webkit-tap-highlight-color:transparent}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

.page{width:min(100%,520px);margin:0 auto;padding:calc(10px + var(--safe-t)) calc(16px + var(--safe-r)) calc(28px + var(--safe-b)) calc(16px + var(--safe-l))}
.topbar{display:flex;align-items:center;justify-content:space-between;min-height:48px;margin-bottom:14px}
.logo{display:block;height:30px;width:auto}
.logo-dark{display:none}
[data-theme="dark"] .logo-light{display:none}
[data-theme="dark"] .logo-dark{display:block}
.icon-btn{display:grid;place-items:center;width:44px;height:44px;flex:none;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:var(--muted)}
.icon-btn:active{background:var(--surface-2)}
@media (hover:hover){.icon-btn:hover{color:var(--ink);background:var(--surface-2)}}
.top-actions{display:flex;align-items:center;gap:8px;flex:none}
.lang{display:flex;align-items:center;height:44px;padding:0;border:1px solid var(--line);border-radius:12px;background:var(--surface);overflow:hidden}
.lang button{display:grid;place-items:center;width:42px;height:42px;padding:0;border:0;border-radius:11px;background:none;font-size:13px;font-weight:700;letter-spacing:.04em;color:var(--muted)}
.lang button[aria-pressed="true"]{background:var(--surface-3);color:var(--ink);cursor:default}
@media (hover:hover){.lang button[aria-pressed="false"]:hover{color:var(--ink)}}
.lang button:focus-visible{outline-offset:-2px}
html[data-i18n-pending] body{visibility:hidden}

.exchange{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sheet);box-shadow:var(--shadow);overflow:hidden}
.row{padding:18px 18px 20px}
.row[data-side="from"]{padding-bottom:28px}
.row[data-side="to"]{padding-top:28px}
.row-label{display:block;font-size:13px;font-weight:600;color:var(--muted)}
.row-main{display:flex;align-items:center;gap:12px;margin-top:8px;min-height:56px}

.row-main.stack{flex-wrap:wrap;row-gap:10px}
.row-main.stack>.amount,.row-main.stack>.result{flex:1 1 100%}
.row-main.stack>.asset{flex:1 1 100%;max-width:none}
.amount{display:block;flex:1 1 0;min-width:0;width:auto;border:0;background:transparent;padding:0;margin:0;font-size:34px;line-height:1.15;font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-feature-settings:'tnum' 1;color:var(--ink);caret-color:var(--accent)}
input.amount{outline:0;border-radius:6px}
input.amount:focus-visible{outline:2px solid var(--focus);outline-offset:4px}
input.amount::placeholder{color:var(--muted);opacity:.7}
input.amount[aria-invalid="true"]{color:var(--warn)}
output.amount{white-space:nowrap;overflow:hidden;text-overflow:clip}
output.amount.is-long{white-space:normal;overflow-wrap:anywhere;line-height:1.2}
.result{display:flex;align-items:center;gap:8px;flex:1 1 0;min-width:0}
.approx{flex:none;color:var(--muted);margin-top:2px}
.result[data-empty="true"] output{color:var(--muted)}
.result[data-loading="true"] output{opacity:.4;transition:opacity .15s}

.asset{display:flex;align-items:center;gap:9px;flex:0 0 auto;min-width:118px;max-width:58%;min-height:52px;padding:6px 10px 6px 7px;border-radius:var(--r-ctl);border:1px solid var(--line-strong);background:var(--surface-2);color:var(--ink);text-align:left}
.asset:active:not(:disabled){background:var(--surface-3)}
@media (hover:hover){.asset:hover:not(:disabled){background:var(--surface-3)}}
.asset:disabled{opacity:.55;cursor:default}
.asset-text{display:flex;flex-direction:column;align-items:flex-start;min-width:0;flex:1;line-height:1.2}
.asset-ticker{font-size:15px;font-weight:700;letter-spacing:.01em}
.asset-net{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;max-width:100%;font-size:12px;line-height:1.2;font-weight:500;color:var(--muted);overflow:hidden;overflow-wrap:anywhere}
.chev{flex:none;color:var(--muted)}

.badge{position:relative;display:grid;place-items:center;flex:none;width:40px;height:40px;border-radius:50%;background:var(--surface-3);color:var(--muted);overflow:hidden}
.badge img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;opacity:0}
.badge.has-logo{background:var(--plate);box-shadow:inset 0 0 0 1px var(--plate-ring)}
.badge.has-logo img{opacity:1}
.badge.has-logo .glyph{display:none}

.divider{position:relative;height:1px;margin:0 18px;background:var(--line)}
.swap{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:44px;height:44px;border-radius:14px;border:1px solid var(--line-strong);background:var(--surface);color:var(--accent);box-shadow:0 1px 2px rgba(0,0,0,.06)}
.swap svg{transition:transform .22s cubic-bezier(.3,.7,.2,1)}
.swap:active:not(:disabled) svg{transform:rotate(180deg)}
.swap:disabled{opacity:.55;cursor:default}
@media (hover:hover){.swap:hover:not(:disabled){background:var(--surface-2)}}

.facts{padding:16px 18px 16px;background:var(--surface-2);border-top:1px solid var(--line)}
.limits{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0}
.limits>div{min-width:0}
.limits dt{font-size:12px;font-weight:500;color:var(--muted)}
.limits dd{margin:2px 0 0;font-size:14px;font-weight:600;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.link{display:inline;padding:6px 0;margin:-6px 0;border:0;background:none;font:inherit;font-weight:600;font-variant-numeric:tabular-nums;color:var(--accent);text-align:left;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;overflow-wrap:anywhere}
.link:disabled{color:inherit;text-decoration:none;cursor:default}
.state{display:flex;align-items:flex-start;gap:10px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line);min-height:54px;font-size:13px;line-height:1.4;color:var(--muted)}
.state-text{flex:1;min-width:0;padding-top:1px}
.state-icon{position:relative;flex:none;width:18px;height:18px;margin-top:1px}
.state-icon::before{content:"";position:absolute;inset:0;border-radius:50%}
.state[data-kind="ok"] .state-icon::before{inset:5px;background:var(--accent-fill)}
.state[data-kind="loading"] .state-icon::before{inset:2px;border:2px solid var(--line-strong);border-top-color:var(--accent);animation:spin .8s linear infinite}
.state[data-kind="note"],.state[data-kind="note"] .state-text{color:var(--ink)}
.state[data-kind="note"] .state-icon::before{inset:5px;background:var(--coral)}
.state[data-kind="warn"],.state[data-kind="warn"] .state-text{color:var(--warn)}
.state[data-kind="error"],.state[data-kind="error"] .state-text{color:var(--err)}
.state[data-kind="warn"] .state-icon::before,.state[data-kind="error"] .state-icon::before{content:"!";display:grid;place-items:center;color:var(--surface-2);font-size:12px;font-weight:800;line-height:1}
.state[data-kind="warn"] .state-icon::before{background:var(--warn)}
.state[data-kind="error"] .state-icon::before{background:var(--err)}
.state-action{flex:none;align-self:flex-start;white-space:nowrap}
.state-action[hidden]{display:none}
@keyframes spin{to{transform:rotate(360deg)}}
.foot{margin:16px 4px 0;font-size:12px;line-height:1.5;color:var(--muted)}

.sheet{border:0;padding:0;margin:auto 0 0;width:100%;max-width:100%;max-height:min(88vh,88dvh);background-color:var(--surface);color:var(--ink);opacity:1;border-radius:22px 22px 0 0;box-shadow:var(--shadow-sheet);overflow:hidden}
@media (min-width:560px){.sheet{margin:auto;width:480px;border-radius:22px}}
.sheet[open]{display:flex;flex-direction:column;height:min(88vh,88dvh);animation:sheet-in .22s cubic-bezier(.2,.8,.2,1)}
.sheet-sm[open]{height:fit-content}
.sheet::backdrop{background:var(--overlay)}
@keyframes sheet-in{from{transform:translateY(18px)}to{transform:none}}
.sheet-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 12px 4px 20px;flex:none}
.sheet-head h2{margin:0;font-size:17px;font-weight:700;letter-spacing:-.005em}
.sheet-head .icon-btn{border-color:transparent;background:transparent}
.search{display:flex;align-items:center;gap:10px;flex:none;height:48px;margin:8px 16px 6px;padding:0 14px;border-radius:var(--r-ctl);border:1px solid var(--line);background:var(--surface-2);color:var(--muted)}
.search:focus-within{border-color:var(--focus);outline:1px solid var(--focus)}
.search input{flex:1;min-width:0;height:100%;border:0;outline:0;background:transparent;color:var(--ink);font-size:16px;font-weight:500}
.search input::placeholder{color:var(--muted);opacity:1}
.list{list-style:none;margin:0;padding:4px 8px calc(12px + var(--safe-b));overflow-y:auto;flex:1 1 auto;min-height:0;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.opt{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;min-height:60px;padding:8px 10px;border:0;border-radius:12px;background:none;text-align:left}
.opt[aria-current="true"]{background:var(--surface-2)}
@media (hover:hover){.opt:hover{background:var(--surface-2)}}
.opt:active{background:var(--surface-3)}
.opt-body{display:block;min-width:0}
.opt-top{display:flex;align-items:baseline;gap:8px;min-width:0}
.opt-ticker{font-size:15px;font-weight:700;letter-spacing:.01em;flex:none}
.opt-name{min-width:0;font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.opt-net{display:inline-block;max-width:100%;margin-top:4px;padding:1px 7px;border:1px solid var(--line-strong);border-radius:6px;font-size:12px;font-weight:600;line-height:1.5;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:top}
.opt-check{color:var(--accent)}
.list-note{padding:16px 12px;font-size:13px;line-height:1.5;color:var(--muted)}

.choices{padding:4px 0 calc(12px + var(--safe-b))}
.choice{display:flex;align-items:center;gap:14px;min-height:58px;padding:10px 20px}
.choice input{width:20px;height:20px;margin:0;flex:none;accent-color:var(--accent-fill)}
.choice span{display:flex;flex-direction:column;font-size:15px;font-weight:600}
.choice small{font-size:12.5px;font-weight:500;color:var(--muted)}

@media (max-width:350px){.logo{height:26px}.top-actions{gap:6px}.page{padding-left:calc(12px + var(--safe-l));padding-right:calc(12px + var(--safe-r))}.row{padding-left:14px;padding-right:14px}.amount{font-size:30px}.asset{min-width:104px;gap:7px}.facts{padding-left:14px;padding-right:14px}.divider{margin:0 14px}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.state[data-kind="loading"] .state-icon::before{border-top-color:var(--line-strong)}}

/* ---------- оформление обмена (2.2.0, демонстрация) ---------- */
.step[hidden]{display:none}
.primary{display:flex;align-items:center;justify-content:center;width:100%;min-height:52px;margin-top:14px;padding:12px 18px;border:0;border-radius:var(--r-ctl);background:var(--primary);color:var(--on-accent);font-size:16px;font-weight:700;letter-spacing:.005em;box-shadow:var(--shadow)}
.primary:active:not(:disabled){transform:translateY(1px)}
.primary:disabled{background:var(--surface-3);color:var(--muted);box-shadow:none;cursor:default}
.primary[aria-busy="true"]{background:var(--primary);color:var(--on-accent);opacity:.75}
.step-head{display:flex;align-items:center;gap:10px;margin:0 0 10px}
.step-head .icon-btn{color:var(--ink)}
.step-head h2{margin:0;font-size:20px;font-weight:700;letter-spacing:-.01em}
.step-head h2:focus{outline:none}
.demo-flag{display:flex;align-items:center;gap:8px;width:fit-content;max-width:100%;margin:0 0 12px;padding:5px 11px;border:1px dashed var(--coral);border-radius:999px;font-size:12.5px;font-weight:600;line-height:1.35;color:var(--ink)}
.demo-flag::before{content:"";flex:none;width:7px;height:7px;border-radius:50%;background:var(--coral)}
.summary{position:sticky;top:calc(6px + var(--safe-t));z-index:2;display:flex;flex-direction:column;gap:8px;margin-bottom:14px;padding:12px 14px;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}
.sum-row{display:flex;align-items:center;gap:10px;min-width:0}
.summary .badge{width:30px;height:30px}
.summary .badge .glyph{width:16px;height:16px}
.sum-text{display:flex;flex-direction:column;min-width:0}
.sum-amount{font-size:15px;font-weight:700;line-height:1.3;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.sum-approx,.sum-ticker{white-space:nowrap}
.sum-meta{font-size:12px;line-height:1.3;color:var(--muted)}
.sum-edit{align-self:flex-start;font-size:13px}
.group{min-width:0;margin:0 0 14px;padding:16px;border:1px solid var(--line);border-radius:var(--r-sheet);background:var(--surface);box-shadow:var(--shadow)}
.group[hidden]{display:none}
.group legend{float:left;width:100%;margin:0 0 4px;padding:0;font-size:15px;font-weight:700}
.group-hint{clear:both;margin:0 0 12px;font-size:13px;line-height:1.45;color:var(--muted)}
.field+.field{margin-top:16px}
.field[hidden]{display:none}
.field-top{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:6px}
.field-top label{font-size:13px;font-weight:600}
.field-tag{flex:none;font-size:12px;color:var(--muted)}
.field-tag[data-mode="required"]{color:var(--accent)}
.ctl-wrap{position:relative}
.ctl{display:block;width:100%;min-height:52px;margin:0;padding:14px 46px 14px 14px;border:1px solid var(--line-strong);border-radius:var(--r-ctl);background:var(--surface-2);color:var(--ink);font:500 16px/1.4 var(--mono);resize:none;overflow:hidden;overflow-wrap:anywhere;word-break:break-all}
.ctl::placeholder{font-family:var(--font);color:var(--muted);opacity:1}
.ctl:focus{outline:none;border-color:var(--focus);box-shadow:0 0 0 1px var(--focus)}
.has-err .ctl{border-color:var(--err);box-shadow:0 0 0 1px var(--err)}
.clear{position:absolute;top:6px;right:6px;display:grid;place-items:center;width:40px;height:40px;padding:0;border:0;border-radius:10px;background:none;color:var(--muted)}
.clear[hidden]{display:none}
.field-note{margin:6px 0 0;font-size:12.5px;line-height:1.45;color:var(--muted)}
.field-note.warn{color:var(--warn);font-weight:600}
.field-note[hidden],.field-err[hidden],.form-err[hidden]{display:none}
.field-err{margin:6px 0 0;font-size:13px;font-weight:600;line-height:1.4;color:var(--err)}
.form-err{margin:0;font-size:13px;font-weight:600;color:var(--err)}
.review{padding:2px 16px 16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sheet);box-shadow:var(--shadow)}
.review-list{margin:0}
.rv-row{padding:12px 0;border-bottom:1px solid var(--line)}
.rv-row dt{margin-bottom:4px;font-size:12px;font-weight:600;color:var(--muted)}
.rv-row dd{display:flex;align-items:flex-start;gap:12px;margin:0}
.rv-body{display:flex;flex:1;flex-direction:column;gap:3px;min-width:0}
.rv-main{font-size:15px;font-weight:700;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.rv-sub{font-size:12.5px;color:var(--muted)}
.rv-none{font-size:14px;color:var(--muted)}
.rv-edit{flex:none;font-size:13px}
.addr-full{display:block;font:500 15px/1.55 var(--mono);color:var(--ink)}
.addr-full span{display:inline-block;margin-inline-end:.4em}
.review-state{flex-wrap:wrap;margin-top:12px;padding-top:0;border-top:0}
.review-state .state-text{flex:1 1 calc(100% - 28px)}
.review-state .state-action{flex-basis:100%;margin:2px 0 0 28px;padding:10px 0;white-space:normal}
.demo-panel{margin-top:20px;padding:10px 14px;border:1px dashed var(--line-strong);border-radius:14px;font-size:13px;color:var(--muted)}
.demo-panel summary{min-height:32px;padding-top:5px;font-weight:700;color:var(--ink);cursor:pointer}
.demo-panel p{margin:4px 0 6px}
.demo-panel label{display:flex;align-items:center;gap:10px;min-height:40px;color:var(--ink)}
.demo-panel input{flex:none;width:18px;height:18px;margin:0;accent-color:var(--accent-fill)}
@media (max-width:350px){.group,.review{padding-left:14px;padding-right:14px}.summary{padding:10px 12px}}
.gate{margin-top:14px;padding:12px 14px;border:1px solid var(--line-strong);border-radius:14px;background:var(--surface);font-size:13px;line-height:1.45;color:var(--ink)}
.gate[hidden]{display:none}
.gate[data-kind="blocked"]{border-color:var(--warn);color:var(--warn);font-weight:600}
.gate p{margin:0}
.gate-action{margin-top:6px;padding:8px 0;font-size:14px}
.gate-action[hidden]{display:none}
.demo-flag[hidden],.demo-panel[hidden]{display:none}
/* ---------- «Мои обмены» и экран заявки (2.3.0, демо) ---------- */
.secondary{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:48px;margin-top:10px;padding:10px 16px;border:1px solid var(--line-strong);border-radius:var(--r-ctl);background:var(--surface);color:var(--ink);font-size:15px;font-weight:600}
.secondary:active:not(:disabled){background:var(--surface-2)}
@media (hover:hover){.secondary:hover:not(:disabled){background:var(--surface-2)}}
.secondary:disabled{color:var(--muted);cursor:default}
.secondary svg{color:var(--muted)}
.ex-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.ex-card{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"pair body" "pair right";align-items:center;gap:6px 12px;width:100%;min-height:76px;padding:12px 14px;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:var(--shadow);color:var(--ink);text-align:left}
@media (hover:hover){.ex-card:hover{border-color:var(--line-strong)}}
.ex-pair{grid-area:pair;display:flex;align-self:center}
.ex-pair .badge+.badge{margin-left:-10px;box-shadow:0 0 0 2px var(--surface)}
.badge.sm{width:30px;height:30px}
.badge.sm .glyph{width:16px;height:16px}
.ex-body{grid-area:body;display:flex;flex-direction:column;min-width:0}
.ex-amounts{font-size:14.5px;font-weight:700;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;line-height:1.3}
.ex-meta{font-size:12px;color:var(--muted);line-height:1.35;overflow-wrap:anywhere}
.ex-right{grid-area:right;justify-self:start}
.pill{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:700;line-height:1.3;background:var(--surface-2);color:var(--ink);border:1px solid var(--line)}
.pill::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--accent-fill)}
.pill[data-kind="info"]::before{background:var(--muted)}
.pill[data-kind="warn"]{color:var(--warn)}.pill[data-kind="warn"]::before{background:var(--warn)}
.pill[data-kind="error"]{color:var(--err)}.pill[data-kind="error"]::before{background:var(--err)}
.acc-state{padding:18px 16px;border:1px solid var(--line);border-radius:16px;background:var(--surface);font-size:14px;line-height:1.5;color:var(--ink)}
.acc-state p{margin:0}
.acc-state .link{margin-top:10px;padding:8px 0}
.acc-state[data-kind="error"]{border-color:var(--err);color:var(--err)}
.acc-state[data-kind="warn"]{border-color:var(--warn);color:var(--warn)}
.skeleton{min-height:76px;background:linear-gradient(90deg,var(--surface) 0%,var(--surface-2) 50%,var(--surface) 100%);background-size:200% 100%;animation:shimmer 1.2s linear infinite;border:1px solid var(--line);border-radius:16px;margin-bottom:10px}
.skeleton.tall{min-height:220px}
@keyframes shimmer{to{background-position:-200% 0}}
.ex-hero{margin-bottom:14px;padding:16px;border:1px solid var(--line);border-radius:var(--r-sheet);background:var(--surface);box-shadow:var(--shadow)}
.ex-hero h3{margin:10px 0 4px;font-size:19px;font-weight:700;letter-spacing:-.01em}
.ex-hero p{margin:0;font-size:14px;line-height:1.5;color:var(--muted)}
.ex-hero[data-kind="error"]{border-color:var(--err)}
.ex-hero[data-kind="warn"]{border-color:var(--warn)}
.timeline{list-style:none;margin:16px 0 0;padding:0}
.timeline li{position:relative;padding:0 0 14px 28px;font-size:14px;color:var(--muted)}
.timeline li:last-child{padding-bottom:0}
.timeline li::before{content:"";position:absolute;left:4px;top:3px;width:12px;height:12px;border-radius:50%;border:2px solid var(--line-strong);background:var(--surface);box-sizing:border-box}
.timeline li:not(:last-child)::after{content:"";position:absolute;left:9px;top:17px;bottom:1px;width:2px;background:var(--line)}
.timeline li[data-state="done"]{color:var(--ink)}
.timeline li[data-state="done"]::before{background:var(--accent-fill);border-color:var(--accent-fill)}
.timeline li[data-state="done"]::after{background:var(--accent-fill)}
.timeline li[data-state="current"]{color:var(--ink);font-weight:700}
.timeline li[data-state="current"]::before{border-color:var(--accent-fill);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent-fill) 22%,transparent)}
.payin{margin-bottom:14px;padding:14px 16px;border:1px solid var(--line-strong);border-radius:16px;background:var(--surface);font-size:14px;line-height:1.5}
.payin[data-placeholder="true"]{border-style:dashed;color:var(--muted)}
.payin p{margin:0}
.payin h4{margin:0 0 6px;font-size:13px;color:var(--muted)}
.ex-foot{margin-top:4px}
.ex-updated{margin:8px 2px 0;font-size:12.5px;color:var(--muted)}
.ex-refresh-err{margin:6px 2px 0;font-size:13px;font-weight:600;color:var(--err)}
@media (prefers-reduced-motion:reduce){.skeleton{animation:none}}
/* 2.3.1: подтверждение «memo не нужен» и что именно проверено */
.confirm{display:flex;align-items:flex-start;gap:10px;margin-top:10px;min-height:44px;padding:10px 12px;border:1px solid var(--line-strong);border-radius:12px;background:var(--surface-2);font-size:14px;line-height:1.4;color:var(--ink);cursor:pointer}
.confirm[hidden]{display:none}
.confirm input{flex:none;width:20px;height:20px;margin:0;accent-color:var(--accent-fill)}
.has-err .confirm{border-color:var(--err)}
.rv-check{font-size:12.5px;line-height:1.4;color:var(--muted)}
.rv-check[data-kind="ok"]{color:var(--accent)}
/* Пометки проверки — не ошибки: «не подтверждено» серым с жёлтой точкой, «не проверялось» жёлтым. Красный — только ошибки. */
.rv-check[data-kind="note"]::before{content:"";display:inline-block;width:7px;height:7px;margin:0 6px 1px 0;border-radius:50%;background:var(--amber);vertical-align:middle}
.rv-check[data-kind="warn"]{color:var(--amber)}

/* 2.4.0: реквизиты депозита, QR, стенд */
.stage-banner{margin:0 0 12px;padding:9px 12px;border:1px dashed var(--coral);border-radius:12px;font-size:12.5px;font-weight:600;line-height:1.4;color:var(--ink);background:var(--surface)}
.stage-banner[hidden]{display:none}
.payin-amount{font-weight:700;font-size:16px;margin:0 0 10px}
.payin-label{margin:10px 0 2px;font-size:12.5px;color:var(--muted)}
.payin-row{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.payin-row .addr-full{flex:1 1 auto;min-width:0;word-break:break-all}
.payin-warn{margin-top:8px;font-size:13px;line-height:1.45;color:var(--warn);font-weight:600}
.qr-box{display:flex;justify-content:center;margin:4px 0 10px}
.qr{width:min(200px,60vw);height:auto;border-radius:10px;background:#fff;box-shadow:0 0 0 1px var(--line-strong)}
