:root{
  --acc:var(--fg);--on:var(--bg);
  --bg:#000000;--fg:#ffffff;--line:#1b1b1d;--line-2:#2a2a2d;--soft:#c4c4c9;--muted:#6c6c72;--h1:#0c0c0d;--h2:#0f0f10;--h3:#111111;--h4:#161618;--ph:#3d3d42;--onm:#58585e;
  --ease:cubic-bezier(.2,.8,.2,1);
  --font:"SF Pro Rounded",ui-rounded,"Nunito",system-ui,-apple-system,"Segoe UI",sans-serif;
  --head:"SF Pro Display","SF Pro",-apple-system,BlinkMacSystemFont,"Inter","Segoe UI",system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;background:var(--bg);overflow-x:hidden}
body{color:var(--fg);font-family:var(--font);font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%}
button,input{font:inherit;color:inherit;background:none;border:0}
button{cursor:pointer;-webkit-tap-highlight-color:transparent}
:focus-visible{outline:2px solid var(--fg);outline-offset:3px}
h1,h2,.brand b{font-family:var(--head)}
[data-view=setup] #app{display:none}
[data-view=app] #setup{display:none}

/* ---------- motion ---------- */
@keyframes rise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes fade{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes appin{from{opacity:0;transform:scale(.985)}to{opacity:1;transform:none}}
@keyframes leave{to{opacity:0;transform:scale(1.02)}}
@keyframes enter{from{opacity:0;transform:translateY(-14px) scale(.98)}to{opacity:1;transform:none}}
@keyframes pop{from{opacity:0;transform:scale(.94) translateY(-6px)}to{opacity:1;transform:none}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes starpop{50%{transform:scale(1.3)}}
.rise{animation:rise .65s var(--ease) both;animation-delay:calc(var(--i,0)*85ms)}
.anim{animation:fade .32s var(--ease) both}
#app{animation:appin .45s var(--ease) both}
#setup.leaving{animation:leave .32s ease forwards;pointer-events:none}

.brand{display:flex;align-items:center;gap:12px}
.brand svg{width:30px;height:30px;stroke:var(--fg);fill:none;stroke-width:5.5;stroke-linecap:round;flex:none}
.brand b{font-weight:800;font-size:21px;letter-spacing:-.03em}
.ring{width:44px;height:44px;border-radius:50%;border:1px solid var(--line-2);display:grid;place-items:center;font-weight:800;flex:none;transition:border-color .22s,color .22s}
.btn{background:var(--acc);color:var(--on);font-weight:800;border-radius:999px;padding:16px 30px;transition:transform .15s,opacity .25s}
.btn:active{transform:scale(.96)}
.btn:disabled{opacity:.22;cursor:not-allowed;transform:none}

/* ---------- setup ---------- */
#setup{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;padding:calc(28px + env(safe-area-inset-top,0px)) 28px calc(28px + env(safe-area-inset-bottom,0px))}
.setup-in{margin:auto;width:100%;max-width:640px;padding:40px 0}
#setup h1{font-size:clamp(38px,9vw,64px);line-height:1;letter-spacing:-.045em;font-weight:800;margin-bottom:14px}
#setup .lead{color:var(--muted);font-weight:600;font-size:17px;margin-bottom:36px}
.lbl{font-weight:700;color:var(--soft);margin:0 0 10px 6px}
.fw{position:relative;margin-bottom:26px}
.namebox{display:flex;align-items:center;gap:8px;border:1px solid var(--line-2);border-radius:999px;padding:7px 7px 7px 26px;transition:border-color .2s}
.namebox:focus-within,.fw.open .namebox{border-color:var(--acc)}
.namebox input{flex:1;min-width:0;padding:13px 0;font-size:20px;font-weight:700}
.namebox input:focus{outline:0}
.namebox input::placeholder{color:var(--ph)}
.dombtn{display:flex;align-items:center;gap:8px;flex:none;max-width:56%;background:var(--acc);color:var(--on);border-radius:999px;padding:14px 18px 14px 20px;font-weight:800;font-size:16px;transition:transform .15s}
.dombtn:active{transform:scale(.97)}
.dombtn span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dombtn svg{width:16px;height:16px;stroke:var(--on);fill:none;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;flex:none;transition:transform .25s var(--ease)}
.fw.open .dombtn svg{transform:rotate(180deg)}
.menu{display:none;position:absolute;right:0;top:calc(100% + 8px);width:min(100%,340px);background:var(--bg);border:1px solid var(--line-2);border-radius:26px;padding:8px;z-index:5;transform-origin:top right}
.fw.open .menu{display:block;animation:pop .2s var(--ease)}
.opt{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:14px 16px;border-radius:18px;font-weight:700;color:var(--soft);text-align:left;transition:background .15s,color .15s}
@media (hover:hover){.opt:hover{background:var(--h3);color:var(--fg)}}
.opt.on{color:var(--fg)}
.opt svg{width:16px;height:16px;stroke:var(--fg);fill:none;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;flex:none}
.hint{color:var(--muted);font-weight:600;font-size:14px;margin:0 0 22px 6px;min-height:1.4em}
.note{color:var(--muted);font-size:14px;font-weight:600;margin-top:22px}

/* ---------- app ---------- */
.app{height:100vh;height:100dvh;display:grid;grid-template-columns:240px 420px minmax(0,1fr)}
.col{min-height:0;min-width:0;display:flex;flex-direction:column;border-right:1px solid var(--line)}
.col:last-child{border-right:0}

.rail{padding:28px 18px 22px}
.rail .brand{padding:0 10px 26px}
.addr{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;border:1px solid var(--line-2);border-radius:999px;padding:12px 16px;color:var(--soft);font-weight:700;font-size:14px;text-align:left;margin-bottom:26px;transition:border-color .2s,color .2s}
.addr span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (hover:hover){.addr:hover{border-color:var(--acc);color:var(--fg)}}
.addr svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.nav{display:flex;flex-direction:column;gap:2px}
.nav button{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-radius:999px;color:var(--muted);font-weight:700;font-size:17px;text-align:left;border:1px solid transparent;transition:color .2s,border-color .2s}
.nav button:hover{color:var(--soft)}
.nav button.on{color:var(--fg);border-color:var(--line-2)}
.nav em{font-style:normal;font-size:14px;font-weight:700}
.foot{margin-top:auto;padding:0 10px;color:var(--muted);font-size:13px;font-weight:600}
.foot button{display:block;margin-top:10px;color:var(--soft);font-weight:700;font-size:14px;padding:0}
.foot button:hover{color:var(--fg)}

.head{padding:30px 26px 18px}
.head-row{display:flex;justify-content:space-between;align-items:center;gap:12px}
.head h1{font-size:38px;font-weight:800;letter-spacing:-.04em;line-height:1}
.head p{color:var(--muted);margin-top:8px;font-weight:600;min-height:1.4em}
.mob{display:none}
.search{margin:0 20px 14px;border:1px solid var(--line-2);border-radius:999px;padding:13px 20px;width:calc(100% - 40px);font-size:16px;transition:border-color .2s}
.search::placeholder{color:var(--muted)}
.search:focus{outline:0;border-color:var(--acc)}
.mobnav{display:none;gap:6px;padding:0 20px 14px;overflow-x:auto}
.mobnav button{padding:8px 16px;border-radius:999px;border:1px solid var(--line-2);color:var(--muted);font-weight:700;white-space:nowrap;flex:none;transition:background .2s,color .2s}
.mobnav button.on{background:var(--acc);color:var(--on);border-color:var(--acc)}
.mails{overflow-y:auto;overflow-x:hidden;padding:0 12px 12px;display:flex;flex-direction:column;gap:2px;flex:1;min-height:0}
.mail{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px 16px 14px 14px;border-radius:26px;text-align:left;width:100%;background:transparent;transition:background .22s,opacity .2s,transform .2s}
.mail .who,.mail .subj,.mail .prev,.mail .side{transition:color .22s}
@media (hover:hover){.mail:hover{background:var(--h1)}}
.mail .t{min-width:0}
.mail .who{font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mail .subj{color:var(--soft);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mail .prev{color:var(--muted);font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mail .side{display:flex;flex-direction:column;align-items:flex-end;gap:10px;font-size:12.5px;color:var(--muted);font-weight:600;min-height:20px}
.dot{width:9px;height:9px;border-radius:50%;background:var(--acc);box-shadow:0 0 12px var(--acc)}
.mail.read .who{color:var(--soft);font-weight:700}
@media (min-width:781px){
  .mail.on{background:var(--acc)}
  .mail.on .who,.mail.on .subj{color:var(--on)}
  .mail.on .prev,.mail.on .side{color:var(--onm)}
  .mail.on .ring{border-color:var(--on);color:var(--on)}
  .mail.on .dot{background:var(--on);box-shadow:none}
}
.mail.enter{animation:enter .55s var(--ease)}
.mail.out{opacity:0;transform:translateX(-20px)}
.intro .mail{animation:rise .55s var(--ease) both;animation-delay:calc(var(--i,0)*70ms + 220ms)}
.empty,.nomail{margin:auto;color:var(--muted);font-weight:600;text-align:center;padding:40px}

.bar{display:flex;justify-content:space-between;align-items:center;padding:22px 32px;gap:12px}
.icons{display:flex;gap:8px;align-items:center}
.ib{width:42px;height:42px;border-radius:50%;border:1px solid var(--line-2);display:grid;place-items:center;color:var(--soft);flex:none;transition:background .2s,color .2s,border-color .2s,transform .15s}
@media (hover:hover){.ib:hover{background:var(--acc);color:var(--on);border-color:var(--acc)}}
.ib:active{transform:scale(.92)}
.ib.star-on{background:var(--acc);color:var(--on);border-color:var(--acc)}
.ib.star-on svg{fill:var(--on)}
.ib.pulse{animation:starpop .35s var(--ease)}
.ib svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ib.spin svg{animation:spin .8s linear infinite}
.back{display:none}
.bar time{color:var(--muted);font-weight:600;white-space:nowrap}
.body{flex:1;overflow-y:auto;overflow-x:hidden;padding:14px 48px 40px}
.body h2{font-size:44px;line-height:1.05;letter-spacing:-.045em;font-weight:800;max-width:15ch;margin-bottom:30px;overflow-wrap:anywhere}
.from{display:flex;align-items:center;gap:14px;margin-bottom:34px;min-width:0}
.from div:last-child{min-width:0}
.from b{font-weight:800}
.from small{display:block;color:var(--muted);font-weight:600;overflow:hidden;text-overflow:ellipsis}
.body p{max-width:56ch;color:var(--soft);font-size:17px;line-height:1.65;margin-bottom:18px;font-weight:500;overflow-wrap:anywhere}

.toast{position:fixed;left:50%;bottom:calc(28px + env(safe-area-inset-bottom,0px));transform:translate(-50%,20px);background:var(--acc);color:var(--on);font-weight:700;padding:12px 22px;border-radius:999px;opacity:0;pointer-events:none;transition:opacity .25s,transform .35s var(--ease);z-index:20;white-space:nowrap;max-width:92vw;overflow:hidden;text-overflow:ellipsis}
.toast.show{opacity:1;transform:translate(-50%,0)}
.mail{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
.mail.press:not(.on){background:var(--h2);transform:scale(.975)}
.mail.ctxon:not(.on){background:var(--h3)}
.mail.pin{margin-bottom:6px}
.mail.pin .ring{background:var(--acc);color:var(--on);border-color:var(--acc)}
.ring svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.hl{display:flex;align-items:center;gap:12px;min-width:0}
.ib[hidden]{display:none}

.act{display:flex;align-items:center;gap:16px;width:100%;padding:15px 14px;border-radius:20px;font-weight:700;font-size:17px;text-align:left;color:var(--fg);transition:background .15s}
.act svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none;color:var(--soft)}
.act:active{background:var(--h4)}
@media (hover:hover){.act:hover{background:var(--h3)}}
.ctx{position:fixed;z-index:30;min-width:260px;background:var(--bg);border:1px solid var(--line-2);border-radius:22px;padding:6px;display:none;transform-origin:top left}
.ctx.show{display:block;animation:pop .16s var(--ease)}
.ctx .act{padding:11px 14px;font-size:15px;border-radius:14px;gap:12px}
.ctx .act svg{width:18px;height:18px}
.sheet{position:fixed;inset:0;z-index:30;pointer-events:none}
.sheet-bg{position:absolute;inset:0;background:rgba(0,0,0,.72);opacity:0;transition:opacity .3s}
.sheet-box{position:absolute;left:0;right:0;bottom:0;max-width:560px;margin:0 auto;background:var(--bg);border:1px solid var(--line-2);border-bottom:0;border-radius:32px 32px 0 0;padding:10px 12px calc(14px + env(safe-area-inset-bottom,0px));transform:translateY(100%);transition:transform .38s var(--ease)}
.sheet.show{pointer-events:auto}
.sheet.show .sheet-bg{opacity:1}
.sheet.show .sheet-box{transform:none}
.grab{width:40px;height:4px;border-radius:99px;background:var(--line-2);margin:4px auto 14px}
.sh-head{display:flex;align-items:center;gap:14px;padding:4px 10px 14px;border-bottom:1px solid var(--line);margin-bottom:8px;min-width:0}
.sh-head .t{min-width:0}
.sh-head b{display:block;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sh-head small{display:block;color:var(--muted);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mail{touch-action:pan-y}
.sw{position:relative;flex:none}
.sw-bg{position:absolute;right:0;top:0;bottom:0;width:0;background:var(--acc);color:var(--on);border-radius:26px;overflow:hidden;display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:0;font-weight:800;white-space:nowrap}
.sw-bg>:last-child{margin-right:26px}
.sw-bg.done{justify-content:center}
.sw-bg.done>:last-child{margin-right:0}
.sw-bg svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;flex:none;transition:transform .2s var(--ease)}
.sw-bg.ready svg{transform:scale(1.25)}
@media (max-width:780px){.sw-bg{border-radius:22px}}
*{scrollbar-width:none}

@media (max-width:1150px){
  .app{grid-template-columns:84px 380px minmax(0,1fr)}
  .rail{padding:24px 14px;align-items:center}
  .rail .brand{padding:0 0 26px}
  .brand b,.nav span,.nav em,.rail .addr,.foot{display:none}
  .nav button,.nav button.on{justify-content:center;padding:12px}
  .nav button::before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}
}
@media (max-width:780px){
  #setup{padding-left:20px;padding-right:20px}
  .setup-in{padding:24px 0}
  .namebox{padding-left:20px}
  .namebox input{font-size:17px}
  .dombtn{font-size:14px;padding:12px 14px 12px 16px;max-width:60%}
  .app{grid-template-columns:minmax(0,1fr)}
  .rail,.reader{display:none}
  .app.open .reader{display:flex}
  .app.open .list{display:none}
  .col{border-right:0}
  .mob{display:flex}
  .head{padding:calc(22px + env(safe-area-inset-top,0px)) 20px 14px}
  .head h1{font-size:34px}
  .head .addr{margin:16px 0 0;padding:11px 16px}
  .search{margin:0 16px 12px;width:calc(100% - 32px)}
  .mobnav{display:flex;padding:0 16px 12px}
  .mails{padding:0 8px calc(12px + env(safe-area-inset-bottom,0px))}
  .mail{padding:12px;gap:12px;border-radius:22px;grid-template-columns:40px minmax(0,1fr) auto}
  .ring{width:40px;height:40px}
  .back{display:grid}
  .bar{padding:calc(14px + env(safe-area-inset-top,0px)) 16px 12px}
  .body{padding:8px 20px calc(30px + env(safe-area-inset-bottom,0px))}
  .body h2{font-size:32px;margin-bottom:22px;max-width:none}
  .from{margin-bottom:24px}
  .body p{font-size:16px}
}
@media (max-width:780px){
  html,body{height:auto}
  body{overflow:visible}
  .app{height:auto;min-height:100vh;min-height:100dvh}
  .col{min-height:auto}
  .mails{overflow:visible;flex:none;min-height:0}
  .reader{min-height:100vh;min-height:100dvh}
  .body{overflow:visible;flex:none}
  .reader .bar{position:sticky;top:0;z-index:3;background:var(--bg)}
}
/* ---------- выбор / профиль / настройки ---------- */
.list{position:relative}
.avabtn,.av{border-radius:50%;flex:none;display:grid;place-items:center;background:var(--acc);color:var(--on);font-weight:800;overflow:hidden}
.avabtn{width:42px;height:42px;font-size:17px;transition:transform .15s}
.avabtn:active{transform:scale(.92)}
.av{width:44px;height:44px;font-size:18px}
.av.xl{width:96px;height:96px;font-size:40px}
.avabtn img,.av img{width:100%;height:100%;object-fit:cover}
.selbar{position:absolute;top:0;left:0;right:0;height:100px;z-index:4;background:var(--bg);display:flex;align-items:center;gap:12px;padding:0 26px;opacity:0;pointer-events:none;transform:translateY(-8px);transition:opacity .2s,transform .3s var(--ease)}
.selbar b{flex:1;min-width:0;font-family:var(--head);font-size:22px;font-weight:800;letter-spacing:-.03em}
.list.selecting .selbar{opacity:1;pointer-events:auto;transform:none}
.selact{position:absolute;left:50%;bottom:22px;z-index:6;display:flex;gap:6px;padding:8px;background:var(--bg);border:1px solid var(--line-2);border-radius:999px;opacity:0;pointer-events:none;transform:translate(-50%,16px);transition:opacity .2s,transform .35s var(--ease)}
.list.selecting .selact{opacity:1;pointer-events:auto;transform:translate(-50%,0)}
.list.selecting .mails{padding-bottom:96px}
.mail.sel:not(.on){background:var(--h3)}
.mail.sel:not(.on) .ring{background:var(--acc);color:var(--on);border-color:var(--acc)}
.ctx,.sheet{z-index:50}.toast{z-index:60}
.ask{padding:10px 14px 14px;font-weight:700;font-size:17px}
.set{position:fixed;inset:0;z-index:40;background:var(--bg);display:flex;flex-direction:column;transform:translateX(100%);visibility:hidden;transition:transform .35s var(--ease),visibility 0s .35s}
.set.show{transform:none;visibility:visible;transition:transform .35s var(--ease)}
.set-bar{display:flex;align-items:center;gap:14px;padding:calc(22px + env(safe-area-inset-top,0px)) 20px 14px}
.set-bar h2{font-size:30px;font-weight:800;letter-spacing:-.04em}
.set-in{flex:1;min-height:0;overflow-y:auto;padding:6px 20px calc(40px + env(safe-area-inset-bottom,0px))}
.set h3{font-size:14px;color:var(--muted);font-weight:700;margin:28px 6px 8px}
.row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 6px;border-bottom:1px solid var(--line)}
.row.st{flex-direction:column;align-items:stretch;gap:12px}
.rt b{display:block;font-weight:700}
.rt small{display:block;color:var(--muted);font-weight:600;font-size:13.5px;margin-top:2px}
.seg{display:flex;border:1px solid var(--line-2);border-radius:999px;padding:4px;gap:4px}
.seg button{flex:1;padding:9px 10px;border-radius:999px;color:var(--muted);font-weight:700;font-size:14px;transition:background .2s,color .2s}
.seg button.on{background:var(--acc);color:var(--on)}
.tg{width:52px;height:30px;border-radius:999px;border:1px solid var(--line-2);position:relative;flex:none;transition:background .2s,border-color .2s}
.tg i{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:var(--muted);transition:transform .25s var(--ease),background .2s}
.tg.on{background:var(--acc);border-color:var(--acc)}
.tg.on i{transform:translateX(22px);background:var(--on)}
.swas{display:flex;gap:12px;flex-wrap:wrap}
.swa{width:38px;height:38px;border-radius:50%;background:var(--c);box-shadow:0 0 0 2px var(--bg),0 0 0 4px transparent;transition:box-shadow .2s}
.swa.on{box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--c)}
.pcard{display:flex;flex-direction:column;align-items:center;gap:14px;padding:20px 0 6px}
.pname{text-align:center;font-family:var(--head);font-size:28px;font-weight:800;letter-spacing:-.03em;width:100%;padding:6px}
.pname:focus{outline:0}.pname::placeholder{color:var(--ph)}
.pcard .addr{margin:0;width:auto;max-width:100%}
.pcard.mini{flex-direction:row;gap:14px;padding:14px;border:1px solid var(--line-2);border-radius:26px;width:100%;text-align:left}
.pcard.mini .t{min-width:0}
.pcard.mini b,.pcard.mini small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pcard.mini small{color:var(--muted);font-weight:600}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:22px}
.stats div{border:1px solid var(--line);border-radius:22px;padding:14px;text-align:center}
.stats b{display:block;font-family:var(--head);font-size:26px;font-weight:800}
.stats small{color:var(--muted);font-weight:600;font-size:13px}
.pks{display:flex;flex-wrap:wrap;gap:10px}
.pk{min-width:52px;height:52px;padding:0 14px;border-radius:999px;border:1px solid var(--line-2);font-size:22px;font-weight:800;color:var(--soft);transition:background .2s,color .2s}
.pk.on{background:var(--acc);border-color:var(--acc);color:var(--on)}
.set .act{border-radius:20px}
html[data-fs=s] .body p,html[data-fs=s] .pvt{font-size:15px}
html[data-fs=l] .body p,html[data-fs=l] .pvt{font-size:19px;line-height:1.7}
html[data-dens=compact] .mail{padding-top:8px;padding-bottom:8px}
.mail .prev{max-height:22px;transition:max-height .4s var(--ease),opacity .3s,color .22s}
html[data-dens=compact] .mail .prev,html.nopv .mail .prev{max-height:0;opacity:0}
.mail{transition:background .22s,opacity .2s,transform .2s,padding .4s var(--ease)}
.body p,.pvt{transition:font-size .35s var(--ease),line-height .35s var(--ease)}
html.calm *,html.calm *::before,html.calm *::after{animation:none!important;transition:none!important}
@media (min-width:781px){.set{left:auto;width:520px;border-left:1px solid var(--line-2);box-shadow:0 0 0 100vmax rgba(0,0,0,.6)}}
@media (max-width:780px){
  .selbar{position:fixed;height:auto;padding:calc(14px + env(safe-area-inset-top,0px)) 16px 14px;border-bottom:1px solid var(--line)}
  .selact{position:fixed;bottom:calc(18px + env(safe-area-inset-bottom,0px))}
  .list.selecting .mails{padding-bottom:calc(96px + env(safe-area-inset-bottom,0px))}
}
/* ---------- анимации ---------- */
@keyframes flip{0%{transform:perspective(300px) rotateY(0)}50%{transform:perspective(300px) rotateY(90deg)}100%{transform:perspective(300px) rotateY(0)}}
@keyframes bump{40%{transform:scale(.955)}100%{transform:none}}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes tick{from{opacity:.2;transform:translateY(10px) scale(.92)}to{opacity:1;transform:none}}
@keyframes boing{0%{transform:scale(.55) rotate(-14deg);opacity:0}60%{opacity:1}100%{transform:none}}
@keyframes springin{from{opacity:0;transform:translateY(18px) scale(.5)}to{opacity:1;transform:none}}
.ring.flip{animation:flip .42s var(--ease)}
.mail.bump{animation:bump .4s var(--ease)}
.mail.sel .ring svg path{stroke-dasharray:24;stroke-dashoffset:24;animation:draw .4s .14s var(--ease) forwards}
.selbar b.tick{animation:tick .3s var(--ease)}
.selact{transition:opacity .2s,transform .55s cubic-bezier(.3,1.5,.5,1)}
.list.selecting .selact .ib{animation:springin .5s cubic-bezier(.3,1.5,.5,1) backwards;animation-delay:calc(var(--i,0)*55ms + 80ms)}
.set{transition:transform .5s cubic-bezier(.16,1,.3,1),visibility 0s .5s}
.set.show{transition:transform .5s cubic-bezier(.16,1,.3,1)}
.set-in.enter>*{animation:rise .6s var(--ease) both;animation-delay:calc(var(--k,0)*45ms + 140ms)}
.set-in.enter .av.xl{animation:boing .7s cubic-bezier(.3,1.5,.5,1) .15s both}
.av.xl.bounce{animation:boing .55s cubic-bezier(.3,1.6,.5,1)}
.seg{position:relative}
.seg::before{content:"";position:absolute;top:4px;bottom:4px;left:4px;width:calc((100% - 8px - (var(--n) - 1)*4px)/var(--n));border-radius:999px;background:var(--acc);transform:translateX(calc(var(--x)*(100% + 4px)));transition:transform .45s cubic-bezier(.3,1.35,.5,1)}
.seg button{position:relative}
.seg button.on{background:transparent}
.tg i{transition:transform .3s cubic-bezier(.3,1.5,.5,1),background .2s,width .2s}
.tg:active i{width:28px}
.tg.on:active i{transform:translateX(16px)}
.pk{transition:transform .25s cubic-bezier(.3,1.6,.5,1),background .2s,color .2s}
.pk:active{transform:scale(.88)}
.pk.on{transform:scale(1.08)}
.swa{transition:box-shadow .25s,transform .25s cubic-bezier(.3,1.6,.5,1)}
.swa:active{transform:scale(.85)}
.swa.on{transform:scale(1.1)}
::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal}
::view-transition-new(root){z-index:2}
.ctx.show .act,.sheet.show .act{animation:fade .38s var(--ease) backwards}
.ctx .act:nth-of-type(2),.sheet-box .act:nth-of-type(2){animation-delay:40ms}
.ctx .act:nth-of-type(3),.sheet-box .act:nth-of-type(3){animation-delay:80ms}
.ctx .act:nth-of-type(4),.sheet-box .act:nth-of-type(4){animation-delay:120ms}
.ctx .act:nth-of-type(5),.sheet-box .act:nth-of-type(5){animation-delay:160ms}
.ctx .act:nth-of-type(6),.sheet-box .act:nth-of-type(6){animation-delay:200ms}
.ctx .act:nth-of-type(7),.sheet-box .act:nth-of-type(7){animation-delay:240ms}
.ctx .act:nth-of-type(8),.sheet-box .act:nth-of-type(8){animation-delay:280ms}
.pv{border:1px solid var(--line-2);border-radius:28px;padding:8px 8px 2px;margin:6px 0 10px;overflow:hidden}
.pv .mail{cursor:default}
.pvt{font-size:17px;line-height:1.65;color:var(--soft);padding:6px 14px 14px;font-weight:500}
@keyframes pulse{40%{transform:scale(1.02)}100%{transform:none}}
.pv.pulse{animation:pulse .45s var(--ease)}
.ths{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.th{text-align:left}
.thp{height:70px;border-radius:16px;background:var(--tb);border:1px solid var(--tl);padding:11px;display:flex;flex-direction:column;gap:6px;transition:transform .3s cubic-bezier(.3,1.6,.5,1),box-shadow .25s}
.thp i{height:6px;border-radius:9px;background:var(--tf)}
.thp i+i{width:60%;opacity:.4}
.thp u{margin-top:auto;width:42%;height:10px;border-radius:9px;background:var(--tf);opacity:.9}
.th span{display:block;margin:8px 0 0 4px;font-weight:700;font-size:13px;color:var(--muted);transition:color .2s}
.th.on span{color:var(--fg)}
.th.on .thp{transform:scale(1.04);box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--acc)}
.th:active .thp{transform:scale(.93)}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
html[data-theme=paper]{--bg:#ffffff;--fg:#0a0a0b;--line:#ededf0;--line-2:#dcdce1;--soft:#3f3f46;--muted:#8b8b94;--h1:#f7f7f8;--h2:#f0f0f2;--h3:#ececef;--h4:#e4e4e8;--ph:#c5c5cc;--onm:#9a9aa3;color-scheme:light}
html[data-theme=lilac]{--bg:#f5f2ff;--fg:#17112e;--line:#e6e0f7;--line-2:#d6cdee;--soft:#453d66;--muted:#8a82ab;--h1:#efeaff;--h2:#e9e3fb;--h3:#e4ddf8;--h4:#ddd5f3;--ph:#c0b8dc;--onm:#9890b8;color-scheme:light}
html[data-theme=graphite]{--bg:#1c1c1e;--fg:#f2f2f7;--line:#2c2c2e;--line-2:#3a3a3c;--soft:#c7c7cc;--muted:#8e8e93;--h1:#232326;--h2:#28282b;--h3:#2c2c2f;--h4:#333336;--ph:#5a5a5e;--onm:#636366;color-scheme:dark}
html[data-theme=mid]{--bg:#050914;--fg:#e8eeff;--line:#101a33;--line-2:#1d2b50;--soft:#a9b6da;--muted:#5b6a94;--h1:#0a1226;--h2:#0d172e;--h3:#111d3a;--h4:#16244a;--ph:#34436b;--onm:#4a5a85;color-scheme:dark}
html[data-theme=forest]{--bg:#040b07;--fg:#e6f5ec;--line:#0f1d15;--line-2:#1b3225;--soft:#a7c4b2;--muted:#5d7a68;--h1:#08130d;--h2:#0b1a11;--h3:#0f2217;--h4:#142c1e;--ph:#2f4b3a;--onm:#476553;color-scheme:dark}
html[data-theme=wine]{--bg:#0d0508;--fg:#fbe9ee;--line:#1f0d13;--line-2:#371a22;--soft:#d3aab6;--muted:#8a5f6c;--h1:#150a0e;--h2:#1a0c11;--h3:#210f16;--h4:#2a141c;--ph:#54303b;--onm:#7a4f5c;color-scheme:dark}

/* ---------- профиль в левой колонке (ПК) ---------- */
[data-view=boot] #app,[data-view=boot] #setup{display:none}
.prof{display:flex;align-items:center;gap:12px;width:100%;padding:7px 14px 7px 7px;margin:0 0 14px;border:1px solid var(--line-2);border-radius:999px;text-align:left;transition:border-color .2s,transform .15s}
.prof:active{transform:scale(.97)}
@media (hover:hover){.prof:hover{border-color:var(--acc)}}
.prof .av{width:38px;height:38px;font-size:16px}
.prof .t{flex:1;min-width:0}
.prof b{display:block;font-weight:800;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.prof small{display:block;color:var(--muted);font-weight:600;font-size:12.5px}
.prof svg{width:16px;height:16px;stroke:var(--muted);fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;flex:none}
@media (min-width:781px){#avatarBtn{display:none}}
@media (max-width:1150px){.prof{width:auto;padding:0;border:0;margin-bottom:18px}.prof .t,.prof svg{display:none}.prof .av{width:44px;height:44px}}

/* адрес в левой колонке: чтобы целиком влезал */
.rail .addr{padding:11px 12px 11px 13px;font-size:12px;gap:6px;letter-spacing:-.01em}

/* аватарки-картинки и кнопка загрузки */
.pk.pimg{padding:0;width:52px;overflow:hidden;position:relative}
.pk.pimg img{width:100%;height:100%;object-fit:cover;display:block;border-radius:50%}
.pk.pimg.on{box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--acc);background:none}
.pk.add{padding:0;width:52px;display:grid;place-items:center;border-style:dashed;color:var(--muted)}
.pk.add svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2.4;stroke-linecap:round}
@media (hover:hover){.pk.add:hover{color:var(--fg);border-color:var(--acc)}}

/* кнопка «Отмена» на экране создания (видна, только если уже есть другие ящики) */
#setup:not(.can-cancel) #setCancel{display:none}
.btn.ghost{background:none;color:var(--soft);border:1px solid var(--line-2);margin:12px 0 0;display:block}
@media (hover:hover){.btn.ghost:hover{border-color:var(--acc);color:var(--fg)}}

/* загрузка при открытии / смене почты */
@keyframes shimmer{0%{background-position:120% 0}100%{background-position:-120% 0}}
.app.swap .rail,.app.swap .list{animation:appin .45s var(--ease) both}
.sk{display:flex;align-items:center;gap:14px;padding:14px 16px;animation:fade .4s var(--ease) both;animation-delay:calc(var(--i,0)*60ms)}
.sk-r,.sk-t i{background:linear-gradient(100deg,var(--h2) 30%,var(--h4) 50%,var(--h2) 70%);background-size:220% 100%;animation:shimmer 1.3s linear infinite}
.sk-r{width:44px;height:44px;border-radius:50%;flex:none}
.sk-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:9px}
.sk-t i{display:block;height:11px;border-radius:9px}
.sk-t i:nth-child(1){width:34%}.sk-t i:nth-child(2){width:68%}.sk-t i:nth-child(3){width:52%;opacity:.6}
.calm .sk-r,.calm .sk-t i{animation:none}

/* ссылки, коды подтверждения, HTML-письма */
.body p a{color:var(--fg);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--line-2);word-break:break-all;transition:text-decoration-color .2s}
@media (hover:hover){.body p a:hover{text-decoration-color:var(--fg)}}
.codes{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 22px}
.code{display:flex;align-items:center;gap:12px;padding:12px 18px 12px 16px;border-radius:999px;background:var(--acc);color:var(--on);transition:transform .2s cubic-bezier(.3,1.6,.5,1),opacity .2s}
.code small{font-weight:700;font-size:12px;opacity:.6;text-transform:uppercase;letter-spacing:.06em}
.code b{font:800 22px/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.14em}
.code svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;opacity:.7}
.code:active{transform:scale(.94)}
.code.ok{transform:scale(1.05)}
.hm{background:#fff;border-radius:18px;overflow:hidden;margin-top:6px}
.hm iframe{display:block;width:100%;height:120px;border:0;background:#fff}
.hm-img{margin:4px 0 12px;padding:9px 16px;border:1px solid var(--line-2);border-radius:999px;color:var(--soft);font-weight:700;font-size:13.5px;transition:border-color .2s,color .2s}
@media (hover:hover){.hm-img:hover{border-color:var(--acc);color:var(--fg)}}
.hm-load{display:flex;flex-direction:column;gap:10px;padding:6px 0}
.hm-load i{display:block;height:12px;border-radius:9px;background:linear-gradient(100deg,var(--h2) 30%,var(--h4) 50%,var(--h2) 70%);background-size:220% 100%;animation:shimmer 1.3s linear infinite}
.hm-load i:nth-child(2){width:80%}.hm-load i:nth-child(3){width:55%}
.calm .hm-load i{animation:none}
.act[data-pa=limit]{opacity:.45}
