:root{
  --bg: var(--tg-theme-bg-color, #17212b);
  --card: var(--tg-theme-secondary-bg-color, #202b36);
  --text: var(--tg-theme-text-color, #f1f4f7);
  --hint: var(--tg-theme-hint-color, #8696a6);
  --accent: var(--tg-theme-button-color, #2ea6ff);
  --accent-text: var(--tg-theme-button-text-color, #ffffff);
  --line: rgba(134,150,166,.18);
  --ok: #3ccf7a; --warn: #f2b33d; --bad: #ff5c5c;
  --r: 14px;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{background:#0e1621;color:var(--text);font:15px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}
button,input,select,textarea{font:inherit;color:inherit}
a{color:var(--accent);text-decoration:none}
.shell{max-width:440px;min-height:100vh;margin:0 auto;background:var(--bg);display:flex;flex-direction:column;position:relative}
.shell.wide{max-width:560px}
@media (min-width:500px){.shell{min-height:calc(100vh - 32px);margin:16px auto;border-radius:22px;overflow:hidden;box-shadow:0 10px 40px rgba(0,0,0,.45)}}
.top{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 16px;border-bottom:1px solid var(--line)}
.top b{font-size:16px}
.top span{font-size:12px;color:var(--hint)}
.top .tr{display:flex;align-items:center;gap:12px}
.top .lnk{border:0;background:none;color:var(--accent);cursor:pointer;font-size:14px;padding:0}
.hist{display:block;width:100%;text-align:left;border:0;cursor:pointer}
.hist .hh{display:flex;justify-content:space-between;align-items:center;gap:8px}
.hist .pr{font-weight:600}
.hist .hd{font-size:12px;color:var(--hint);margin-top:4px;display:flex;justify-content:space-between;gap:8px}
.stats{display:flex;gap:10px;margin-bottom:10px}
.stats>div{flex:1;background:var(--card);border-radius:var(--r);padding:10px 12px}
.stats b{display:block;font-size:18px}
.stats span{font-size:12px;color:var(--hint)}
.demo{font-size:12px;color:var(--hint);padding:6px 16px;background:rgba(242,179,61,.08);border-bottom:1px solid var(--line)}
.stepbar{padding:12px 16px 0;display:flex;align-items:center;gap:10px}
.stepbar .back{border:0;background:none;color:var(--accent);cursor:pointer;font-size:15px;padding:4px 0}
.stepbar .bars{display:flex;gap:4px;flex:1}
.stepbar .bars i{flex:1;height:3px;border-radius:2px;background:var(--line)}
.stepbar .bars i.on{background:var(--accent)}
.stepbar .n{font-size:12px;color:var(--hint)}
main{flex:1;padding:14px 16px 110px;overflow-y:auto}
.title{font-size:22px;font-weight:700;margin:4px 0}
.sub{color:var(--hint);margin-bottom:14px}
.card{background:var(--card);border-radius:var(--r);padding:14px;margin-bottom:10px}
.label{font-size:13px;color:var(--hint);margin-bottom:6px;display:block}
.pair{display:flex;align-items:center;gap:10px}
.amount{flex:1;min-width:0;border:0;background:none;outline:none;font-size:28px;font-weight:700}
.amount.out{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
select{background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:8px 10px;outline:none;cursor:pointer;max-width:52%}
.hint{font-size:12px;color:var(--hint);margin-top:6px}
.hint.bad,.bad{color:var(--bad)}
.ok{color:var(--ok)}.warn{color:var(--warn)}.muted{color:var(--hint)}
.center{text-align:center}
.flip{display:block;margin:-16px auto;position:relative;z-index:2;width:38px;height:38px;border-radius:50%;border:3px solid var(--bg);background:var(--card);cursor:pointer;font-size:18px;color:var(--accent)}
.rows .r{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid var(--line);font-size:14px}
.rows .r:last-child{border-bottom:0}
.rows .r>span:first-child{color:var(--hint);flex-shrink:0}
.rows .r>span:last-child{text-align:right;word-break:break-all}
.input{width:100%;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:10px;outline:none;resize:none;margin-bottom:6px}
.input:focus{border-color:var(--accent)}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;word-break:break-all}
.chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:4px}
.chips button{border:1px dashed var(--line);background:none;border-radius:8px;padding:3px 8px;font-size:12px;color:var(--hint);cursor:pointer}
.checks{list-style:none}
.checks li{display:flex;gap:8px;align-items:flex-start;padding:4px 0;font-size:14px}
.checks li b{width:18px;flex-shrink:0;text-align:center}
.badge{display:inline-block;padding:2px 8px;border-radius:7px;font-size:12px;font-weight:600;white-space:nowrap}
.badge.low{background:rgba(60,207,122,.15);color:var(--ok)}
.badge.medium{background:rgba(242,179,61,.15);color:var(--warn)}
.badge.high{background:rgba(255,92,92,.15);color:var(--bad)}
.badge.n{background:var(--line);color:var(--hint)}
.badge.act{background:rgba(46,166,255,.15);color:var(--accent)}
.bottom{position:absolute;left:0;right:0;bottom:0;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:linear-gradient(transparent,var(--bg) 30%)}
.btn{width:100%;border:0;border-radius:12px;padding:14px;background:var(--accent);color:var(--accent-text);font-weight:600;font-size:16px;cursor:pointer}
.btn:disabled{opacity:.45;cursor:default}
.btn.sm{padding:8px 12px;font-size:13px;width:auto;border-radius:9px}
.btn.ghost{background:var(--line);color:var(--text)}
.btn.danger{background:rgba(255,92,92,.18);color:var(--bad)}
.qr{display:flex;justify-content:center;padding:12px;background:#fff;border-radius:12px;width:max-content;margin:0 auto 12px}
.copy{display:flex;gap:8px;align-items:center;background:var(--bg);border-radius:10px;padding:10px;cursor:pointer}
.copy .mono{flex:1}
.copy em{font-style:normal;color:var(--accent);font-size:13px;flex-shrink:0}
.warnbox{background:rgba(242,179,61,.1);color:var(--warn);border-radius:10px;padding:10px;font-size:13px;margin-top:10px}
.badbox{background:rgba(255,92,92,.1);color:var(--bad);border-radius:10px;padding:10px;font-size:13px;margin-top:10px}
.check{display:flex;gap:10px;align-items:flex-start;font-size:14px;cursor:pointer}
.check input{margin-top:3px;width:18px;height:18px;accent-color:var(--accent);flex-shrink:0}
.tl{list-style:none}
.tl li{display:flex;gap:12px;padding:0 0 18px;position:relative}
.tl li:not(:last-child)::before{content:"";position:absolute;left:10px;top:22px;bottom:0;width:2px;background:var(--line)}
.tl li.done:not(:last-child)::before{background:var(--ok)}
.tl .ic{width:22px;height:22px;border-radius:50%;border:2px solid var(--line);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:12px;background:var(--bg)}
.tl li.done .ic{background:var(--ok);border-color:var(--ok);color:#fff}
.tl li.act .ic{border-color:var(--accent);box-shadow:0 0 0 4px rgba(46,166,255,.18)}
.tl li.stop .ic{border-color:var(--bad);color:var(--bad)}
.tl .t{font-weight:600}
.tl .d{font-size:13px;color:var(--hint);word-break:break-all}
.spin{display:inline-block;width:14px;height:14px;border:2px solid var(--hint);border-top-color:transparent;border-radius:50%;animation:s .8s linear infinite;vertical-align:-2px}
@keyframes s{to{transform:rotate(360deg)}}
.tabs{display:flex;gap:6px;overflow-x:auto;padding:10px 16px 0;scrollbar-width:none}
.tabs button{border:0;background:var(--card);border-radius:9px;padding:7px 11px;font-size:13px;color:var(--hint);cursor:pointer;white-space:nowrap}
.tabs button.on{background:var(--accent);color:var(--accent-text)}
.tabs i{font-style:normal;margin-left:5px;opacity:.8}
.tabs i.late{background:var(--bad);color:#fff;opacity:1;border-radius:7px;padding:0 5px}
.toolbar{padding:10px 16px 0}
.toolbar .input{margin:0;padding:8px 10px}
.qsum{font-size:12px;color:var(--hint);margin:0 2px 8px}
.card.q{padding:0;margin-bottom:6px;border:1px solid transparent}
.card.q.late{border-left:3px solid var(--bad)}
.card.q.open{border-color:var(--accent)}
.q-h{display:flex;align-items:center;gap:10px;width:100%;border:0;background:none;padding:10px 12px;text-align:left;cursor:pointer}
.q-m{flex:1;min-width:0}
.q-t{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.q-s{font-size:12px;color:var(--hint);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.q-r{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0}
.chev{color:var(--hint);font-size:18px;transition:transform .15s;flex-shrink:0}
.q.open .chev{transform:rotate(90deg)}
.q-b{padding:0 12px 12px;border-top:1px solid var(--line)}
.q-b>.rows{margin-top:6px}
.age{font-size:12px;font-weight:600;padding:2px 7px;border-radius:7px;white-space:nowrap;background:var(--line);color:var(--hint)}
.age.medium{background:rgba(242,179,61,.15);color:var(--warn)}
.age.high{background:rgba(255,92,92,.15);color:var(--bad)}
.flags{display:flex;gap:4px}
.flag{font-size:11px;padding:1px 6px;border-radius:6px;background:var(--line);color:var(--hint);white-space:nowrap}
.flag.warn{color:var(--warn)}
.flag.act{color:var(--accent)}
.opt{display:flex;gap:10px;align-items:flex-start;padding:10px;border:1px solid var(--line);border-radius:10px;margin-top:8px;cursor:pointer}
.opt:has(input:checked){border-color:var(--accent);background:rgba(46,166,255,.06)}
.opt input{margin-top:3px;width:18px;height:18px;accent-color:var(--accent);flex-shrink:0}
.opt .hint{margin-top:4px}
.rate{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:6px;align-items:center;margin-bottom:6px}
.rate .input{margin:0;padding:8px;min-width:0}
.rate .input:disabled{opacity:.6}
.rate .rng{font-size:12px;color:var(--hint)}
.rate.th{font-size:11px;color:var(--hint);margin-bottom:4px}
.fee2{display:grid;grid-template-columns:1fr auto 1fr auto;gap:8px;align-items:center}
.fee2 .input{margin:0;padding:8px 10px}
.fee2 span{font-size:13px;color:var(--hint)}
.demo select{padding:2px 6px;font-size:12px;max-width:none;margin-left:4px}
.staff{display:grid;grid-template-columns:1.2fr 1fr 1.2fr 36px;gap:6px;align-items:center;margin-bottom:6px}
.staff .input{margin:0;padding:8px;min-width:0}
.staff select{max-width:none;min-width:0;padding:8px 6px;font-size:13px}
.staff.th{font-size:11px;color:var(--hint);margin-bottom:4px}
.assign{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:12px;padding:10px 12px;border-radius:10px;background:rgba(242,179,61,.1);color:var(--warn);font-size:13px}
.assign.free{background:rgba(46,166,255,.08);color:var(--text)}
.assign.mine{background:rgba(60,207,122,.08);color:var(--ok);padding:6px 6px 6px 12px}
details.sub{margin-top:14px;border:1px solid var(--line);border-radius:10px;padding:8px 10px}
details.sub summary{cursor:pointer;font-size:13px;color:var(--bad)}
.setlog{font-size:13px;padding:10px 12px}
.setlog .hd{color:var(--hint);margin-bottom:4px}
.rules{font-size:13px;line-height:1.45;background:rgba(242,179,61,.08);border:1px solid rgba(242,179,61,.25)}
.rules ul{margin:6px 0 0 18px}
.rules li{margin-bottom:4px}
.checklist{list-style:none;display:flex;flex-direction:column;gap:8px;margin:4px 0}
.demobar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 12px 7px 16px;background:rgba(255,92,92,.12);border-bottom:1px solid rgba(255,92,92,.25);font-size:12.5px;color:#ffb3b3}
.demobar b{color:#ff8a8a}
.demobar button{border:1px solid rgba(255,179,179,.35);background:none;color:#ffd0d0;border-radius:8px;padding:4px 9px;font-size:12px;cursor:pointer;white-space:nowrap}
.modal{position:fixed;inset:0;z-index:50;background:rgba(0,0,0,.6);display:flex;align-items:flex-end;justify-content:center}
.modal-card{width:100%;max-width:440px;background:var(--bg);border-radius:18px 18px 0 0;padding:18px 16px calc(16px + env(safe-area-inset-bottom))}
.demo-addr{position:relative}
.demo-addr .mono{text-decoration:line-through;opacity:.55}
.copy em.bad{color:var(--bad)}
.qr-demo{width:170px;height:170px;margin:0 auto 12px;border-radius:12px;border:2px dashed rgba(255,92,92,.5);display:flex;align-items:center;justify-content:center;text-align:center;color:#ff9a9a;font-weight:700;font-size:15px;line-height:1.3;padding:14px}
details.log{margin-top:12px;font-size:12px;color:var(--hint)}
details.log summary{cursor:pointer;color:var(--accent)}
details.log div{padding:3px 0;border-bottom:1px solid var(--line)}
details.log div span{font-variant-numeric:tabular-nums}
.op-h{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}
.op-h b{font-size:16px}
.acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.sect{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--hint);margin:14px 0 6px}
.empty{color:var(--hint);text-align:center;padding:40px 10px}
.big{font-size:15px;padding:12px;background:var(--bg);border-radius:10px}
#toast{position:fixed;left:50%;bottom:90px;transform:translateX(-50%);background:rgba(0,0,0,.8);color:#fff;padding:8px 14px;border-radius:10px;font-size:14px;opacity:0;transition:opacity .2s;pointer-events:none;z-index:9}
#toast.on{opacity:1}
/* Выбор токена и сети — две отдельные кнопки, каждая открывает своё окно */
.picks{display:flex;gap:8px;margin-top:10px}
.pick{display:flex;align-items:center;gap:7px;border:1px solid var(--line);background:var(--bg);border-radius:12px;padding:8px 10px;cursor:pointer;min-width:0}
.pick:first-child{flex:0 0 auto}
.pick:last-child{flex:1}
.pick b{font-weight:600;white-space:nowrap}
.pick small{font-size:12px;color:var(--hint)}
.pick .pk-l{font-size:12px;color:var(--hint)}
.pick .car{margin-left:auto;color:var(--hint);font-size:12px;padding-left:4px}
.tok{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;font-style:normal;font-weight:700;font-size:13px;color:#fff;flex-shrink:0}
.tok.usdt{background:#26a17b}
.tok.own{background:var(--accent);color:var(--accent-text)}
.pickopt{display:flex;align-items:center;gap:12px;width:100%;text-align:left;border:1px solid var(--line);background:var(--card);border-radius:12px;padding:12px;margin-top:8px;cursor:pointer}
.pickopt.on{border-color:var(--accent)}
.pickopt .po-m{flex:1;min-width:0}
.pickopt .po-m b small{font-weight:400;color:var(--hint);font-size:12px}
.pickopt .po-m em{font-style:normal;font-size:11px;font-weight:600;color:var(--ok);background:rgba(60,207,122,.15);border-radius:6px;padding:1px 6px;margin-left:6px}
.pickopt .hint{display:block;margin-top:2px}
.pickopt .po-c{color:var(--accent);font-weight:700;width:16px;text-align:center}
.card>.amount{display:block;width:100%}
