@font-face{font-family:'InterVar';src:url('fonts/Inter.woff2') format('woff2');font-weight:100 900;font-display:swap}
:root{
  --brand:#0099cb;--brand-2:#0083ae;--brand-3:#006d91;--brand-soft:#e2f3fa;--brand-softer:#f0f9fd;--on-brand:#fff;
  --bg:#eef2f6;--bg-2:#f6f8fa;--surface:#ffffff;--surface-2:#f8fafb;--surface-3:#f1f4f7;--hover:#f2f6f9;--hover-2:#e9eff4;
  --sel:#dceffa;--sel-2:#cde7f6;--text:#1a1f26;--text-2:#4f5966;--text-3:#7a8491;--border:#e2e7ed;--border-2:#d3dae2;
  --danger:#c4314b;--danger-soft:#fdecef;--warn:#9a6700;--warn-soft:#fff6dd;--ok:#107c41;--ok-soft:#e5f5ec;
  --shadow-1:0 1px 2px rgba(16,24,40,.06),0 1px 3px rgba(16,24,40,.08);
  --shadow-2:0 4px 12px rgba(16,24,40,.08),0 2px 4px rgba(16,24,40,.05);
  --shadow-3:0 18px 50px rgba(16,24,40,.18),0 6px 16px rgba(16,24,40,.08);
  --r-1:6px;--r-2:10px;--r-3:14px;
  --ease:cubic-bezier(.1,.9,.2,1);--ease-in:cubic-bezier(.9,.1,1,.2);--ease-std:cubic-bezier(.33,0,.67,1);
  --font:'InterVar',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,'Noto Sans',sans-serif;
  --top-h:52px;--nav-w:248px;--list-w:400px;
  --topbar:linear-gradient(100deg,#0089b8 0%,#0099cb 55%,#13a7d6 100%);
  color-scheme:light;
}
:root[data-theme=dark]{
  --brand:#38b6e2;--brand-2:#5cc4ea;--brand-3:#82d3f0;--brand-soft:#123446;--brand-softer:#0f2533;--on-brand:#06202c;
  --bg:#0d1217;--bg-2:#11171d;--surface:#161d24;--surface-2:#1a222a;--surface-3:#1f2831;--hover:#1d262f;--hover-2:#242f39;
  --sel:#173a4e;--sel-2:#1c4760;--text:#e7edf2;--text-2:#a9b4bf;--text-3:#7f8b97;--border:#253039;--border-2:#2f3b46;
  --danger:#ff6b81;--danger-soft:#3a1820;--warn:#f0c14b;--warn-soft:#382b0b;--ok:#4cc38a;--ok-soft:#10301f;
  --shadow-1:0 1px 2px rgba(0,0,0,.4);--shadow-2:0 4px 14px rgba(0,0,0,.45);--shadow-3:0 20px 60px rgba(0,0,0,.6);
  --topbar:linear-gradient(100deg,#0f1a22 0%,#13212c 100%);
  color-scheme:dark;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%;background:var(--bg);color:var(--text);font:14px/1.45 var(--font);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;font-feature-settings:'cv11','ss01'}
body{overflow:hidden;overscroll-behavior:none}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;border:0;background:none;padding:0}
a{color:var(--brand-2)}
svg.ic{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}
svg.ic.sm{width:16px;height:16px}svg.ic.lg{width:24px;height:24px}
svg.ic.fill{fill:currentColor}
:focus-visible{outline:2px solid var(--brand);outline-offset:1px;border-radius:4px}
::selection{background:var(--sel-2)}
.hidden{display:none!important}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.muted{color:var(--text-3)}
.spacer{flex:1}
.scroll{overflow:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--border-2) transparent}
.scroll::-webkit-scrollbar{width:10px;height:10px}.scroll::-webkit-scrollbar-thumb{background:var(--border-2);border-radius:10px;border:3px solid transparent;background-clip:padding-box}
.scroll::-webkit-scrollbar-thumb:hover{background:var(--text-3);background-clip:padding-box;border:3px solid transparent}

/* ---------- generic controls ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:34px;padding:0 14px;border-radius:var(--r-1);font-weight:550;letter-spacing:-.005em;color:var(--text);background:var(--surface);border:1px solid var(--border-2);transition:background .15s,border-color .15s,box-shadow .15s,transform .1s;white-space:nowrap;user-select:none}
.btn:hover{background:var(--hover)}
.btn:active{transform:scale(.98)}
.btn.primary{background:var(--brand);border-color:transparent;color:var(--on-brand);box-shadow:0 1px 2px rgba(0,80,110,.25)}
.btn.primary:hover{background:var(--brand-2)}
.btn.danger{color:var(--danger)}
.btn.ghost{border-color:transparent;background:transparent}
.btn.ghost:hover{background:var(--hover-2)}
.btn[disabled]{opacity:.55;pointer-events:none}
.ibtn{width:34px;height:34px;display:inline-grid;place-items:center;border-radius:var(--r-1);color:var(--text-2);transition:background .15s,color .15s,transform .1s;flex:none;position:relative}
.ibtn:hover{background:var(--hover-2);color:var(--text)}
.ibtn:active{transform:scale(.94)}
.ibtn.on{color:var(--brand)}
.ibtn[disabled]{opacity:.4;pointer-events:none}
.tbtn{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 10px;border-radius:var(--r-1);color:var(--text-2);font-weight:520;white-space:nowrap;transition:background .15s,color .15s}
.tbtn:hover{background:var(--hover-2);color:var(--text)}
.tbtn svg{color:var(--brand)}
.tbtn.danger svg{color:var(--danger)}
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.field>label{font-size:12.5px;font-weight:600;color:var(--text-2)}
.input,select.input,textarea.input{height:38px;padding:0 12px;border-radius:var(--r-1);border:1px solid var(--border-2);background:var(--surface);color:var(--text);outline:none;transition:border-color .15s,box-shadow .15s;width:100%}
textarea.input{height:auto;padding:10px 12px;resize:vertical;min-height:80px}
.input:focus{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 22%,transparent)}
.switch{position:relative;display:inline-flex;align-items:center;gap:10px;cursor:pointer;user-select:none}
.switch input{position:absolute;opacity:0;width:0;height:0}
.switch .track{width:38px;height:22px;border-radius:22px;background:var(--border-2);position:relative;transition:background .2s var(--ease-std);flex:none}
.switch .track::after{content:'';position:absolute;left:3px;top:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.25);transition:transform .25s var(--ease)}
.switch input:checked+.track{background:var(--brand)}
.switch input:checked+.track::after{transform:translateX(16px)}
.switch input:focus-visible+.track{outline:2px solid var(--brand);outline-offset:2px}
.chk{width:18px;height:18px;border-radius:5px;border:1.5px solid var(--text-3);display:inline-grid;place-items:center;flex:none;transition:background .15s,border-color .15s;background:var(--surface)}
.chk svg{width:13px;height:13px;stroke:#fff;stroke-width:3;fill:none;opacity:0;transform:scale(.6);transition:opacity .15s,transform .2s var(--ease)}
.chk.on{background:var(--brand);border-color:var(--brand)}
.chk.on svg{opacity:1;transform:none}
.badge{min-width:20px;height:20px;padding:0 6px;border-radius:10px;font-size:11.5px;font-weight:650;display:inline-grid;place-items:center;color:var(--brand-3);background:var(--brand-soft)}
.chip{display:inline-flex;align-items:center;gap:5px;height:20px;padding:0 8px;border-radius:10px;font-size:11.5px;font-weight:600;white-space:nowrap;max-width:160px;overflow:hidden;text-overflow:ellipsis;line-height:20px}
.chip .dot{width:7px;height:7px;border-radius:50%;flex:none}
.chip.warn{background:var(--warn-soft);color:var(--warn)}
.spin{width:18px;height:18px;border-radius:50%;border:2.2px solid color-mix(in srgb,currentColor 25%,transparent);border-top-color:currentColor;animation:rot .7s linear infinite;flex:none}
@keyframes rot{to{transform:rotate(360deg)}}
.kbd{font:600 11px var(--font);padding:2px 6px;border-radius:5px;border:1px solid var(--border-2);background:var(--surface-2);color:var(--text-2)}

/* ---------- avatar ---------- */
.av{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-weight:650;font-size:13.5px;color:#fff;flex:none;overflow:hidden;letter-spacing:.02em;user-select:none;background:#7a8491;position:relative}
.av img{width:100%;height:100%;object-fit:cover}
.av.lg{width:44px;height:44px;font-size:16px}
.av.xl{width:84px;height:84px;font-size:30px}
.av.sm{width:28px;height:28px;font-size:11.5px}

/* =============================== LOGIN =============================== */
.login{position:fixed;inset:0;display:grid;place-items:center;place-items:safe center;overflow-x:hidden;overflow-y:auto;background:#e9f3f8;padding:20px}
:root[data-theme=dark] .login{background:#0a1016}
.login .bgfx{position:fixed;inset:-20%;filter:blur(60px) saturate(115%);opacity:.95;pointer-events:none}
.login .blob{position:absolute;border-radius:50%;mix-blend-mode:multiply;animation:float 22s var(--ease-std) infinite alternate}
:root[data-theme=dark] .login .blob{mix-blend-mode:screen;opacity:.45}
.login .b1{width:55vmax;height:55vmax;left:-8%;top:-12%;background:radial-gradient(circle at 30% 30%,#7fd3f2,#0099cb 70%)}
.login .b2{width:45vmax;height:45vmax;right:-10%;top:5%;background:radial-gradient(circle at 60% 40%,#b9e6f7,#38a9d9 70%);animation-duration:26s;animation-delay:-6s}
.login .b3{width:50vmax;height:50vmax;left:25%;bottom:-30%;background:radial-gradient(circle,#d6f0fa,#6cc3e6 70%);animation-duration:30s;animation-delay:-12s}
.login .grain{position:fixed;inset:0;background-image:radial-gradient(rgba(255,255,255,.35) 1px,transparent 1px);background-size:3px 3px;opacity:.18;pointer-events:none}
@keyframes float{0%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(6%,4%,0) scale(1.08)}100%{transform:translate3d(-4%,7%,0) scale(.96)}}
.lcard{position:relative;width:100%;max-width:412px;background:color-mix(in srgb,var(--surface) 88%,transparent);backdrop-filter:blur(24px) saturate(160%);-webkit-backdrop-filter:blur(24px) saturate(160%);border:1px solid color-mix(in srgb,#fff 60%,transparent);border-radius:20px;box-shadow:0 30px 80px rgba(0,60,90,.22),0 8px 24px rgba(0,60,90,.10);padding:40px 38px 30px;animation:cardIn .7s var(--ease) both}
:root[data-theme=dark] .lcard{border-color:rgba(255,255,255,.07)}
@keyframes cardIn{from{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:none}}
.lcard .logo{width:64px;height:64px;display:block;margin:0 auto 18px;animation:logoIn .9s .1s var(--ease) both;filter:drop-shadow(0 6px 14px rgba(0,153,203,.35))}
@keyframes logoIn{from{opacity:0;transform:scale(.6) rotate(-12deg)}to{opacity:1;transform:none}}
.lcard h1{margin:0;text-align:center;font-size:24px;font-weight:700;letter-spacing:-.02em}
.lcard .sub{text-align:center;color:var(--text-2);margin:6px 0 28px;font-size:14.5px}
.lcard .stagger>*{animation:fadeUp .6s var(--ease) both}
.lcard .stagger>*:nth-child(1){animation-delay:.18s}.lcard .stagger>*:nth-child(2){animation-delay:.24s}.lcard .stagger>*:nth-child(3){animation-delay:.30s}.lcard .stagger>*:nth-child(4){animation-delay:.36s}.lcard .stagger>*:nth-child(5){animation-delay:.42s}
@keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.lfield{position:relative;margin-bottom:16px}
.lfield .input{height:50px;padding:18px 14px 4px;font-size:15px;border-radius:10px;background:var(--surface)}
.lfield label{position:absolute;left:15px;top:15px;color:var(--text-3);font-size:15px;pointer-events:none;transition:transform .2s var(--ease),font-size .2s var(--ease),color .2s;transform-origin:left top}
.lfield .input:focus~label,.lfield .input:not(:placeholder-shown)~label{transform:translateY(-9px);font-size:11.5px;color:var(--brand-2);font-weight:600}
.lfield .suffix{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:14px;color:var(--text-3);background:var(--surface-3);padding:3px 8px;border-radius:6px;pointer-events:none;max-width:45%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lfield.has-suffix .input{padding-right:46%}
.lfield .eye{position:absolute;right:6px;top:50%;transform:translateY(-50%)}
.lrow{display:flex;align-items:center;justify-content:space-between;margin:4px 0 22px;font-size:13.5px;color:var(--text-2)}
.lbtn{width:100%;height:48px;font-size:15.5px;border-radius:10px;position:relative;overflow:hidden}
.lbtn .spin{position:absolute;left:50%;top:50%;margin:-9px 0 0 -9px;color:#fff}
.lbtn.busy span{opacity:0}
.lerr{display:flex;gap:8px;align-items:flex-start;background:var(--danger-soft);color:var(--danger);border-radius:10px;padding:10px 12px;font-size:13.5px;margin-bottom:16px;animation:fadeUp .3s var(--ease)}
.shake{animation:shake .45s var(--ease-std)}
@keyframes shake{10%,90%{transform:translateX(-2px)}20%,80%{transform:translateX(4px)}30%,50%,70%{transform:translateX(-7px)}40%,60%{transform:translateX(7px)}}
.lfoot{margin-top:24px;text-align:center;font-size:12px;color:var(--text-3);display:flex;align-items:center;justify-content:center;gap:6px}
/* sign-up + "sign in with" extras */
.lcard.reg{max-width:440px;padding-top:32px}
.lcard.reg .logo{width:52px;height:52px;margin-bottom:14px}
.lcard.reg .sub{margin-bottom:22px}
.lgrid{display:grid;grid-template-columns:1fr 1fr;gap:0 10px}
.lavail{display:flex;align-items:center;gap:6px;min-height:0;margin:-8px 2px 12px;font-size:12.5px;font-weight:550}
.lavail:empty{display:none}
.lavail.ok{color:var(--ok)}.lavail.bad{color:var(--danger)}.lavail.wait{color:var(--text-3)}
.lavail .spin{width:13px;height:13px;border-width:2px}
.lcard .pwmeter{margin:-10px 2px 6px}
.lhint{margin:12px 2px 0;font-size:12.5px;color:var(--text-3);text-align:center;line-height:1.4}
.rdom{position:absolute;right:8px;top:50%;transform:translateY(-50%);max-width:46%;height:30px;border:0;border-radius:6px;background:var(--surface-3);color:var(--text-2);font-size:14px;padding:0 6px;outline:none}
.lalt{margin-top:18px;display:flex;justify-content:center;align-items:center;gap:6px;font-size:13.5px;color:var(--text-2)}
.linkbtn{color:var(--brand-2);font-weight:650;padding:4px 2px;border-radius:4px}
.linkbtn:hover{text-decoration:underline}
.loauth{display:flex;align-items:center;justify-content:center;gap:10px;text-decoration:none;color:var(--text);background:var(--surface);border:1px solid var(--border-2);font-weight:600}
.loauth:hover{background:var(--hover)}
.pmark{width:20px;height:20px;border-radius:50%;display:inline-grid;place-items:center;font:700 13px var(--font);color:#fff;background:var(--brand)}
.pmark.ms{border-radius:2px;background:none;grid-template-columns:1fr 1fr;gap:2px;width:18px;height:18px}
.pmark.ms i{display:block;background:var(--text-2);border-radius:1px}
.ldiv{display:flex;align-items:center;gap:12px;margin:18px 0 16px;color:var(--text-3);font-size:12.5px}
.ldiv::before,.ldiv::after{content:'';flex:1;height:1px;background:var(--border-2)}
.login.leaving .lcard{animation:cardOut .45s var(--ease-in) forwards}
@keyframes cardOut{to{opacity:0;transform:scale(.96) translateY(-8px)}}
.login.leaving{transition:opacity .5s .15s;opacity:0}

/* =============================== SHELL =============================== */
.shell{position:fixed;inset:0;display:grid;grid-template-rows:var(--top-h) 1fr;animation:shellIn .5s var(--ease) both}
@keyframes shellIn{from{opacity:0}to{opacity:1}}
.top{display:flex;align-items:center;gap:10px;padding:0 12px 0 8px;background:var(--topbar);color:#fff;position:relative;z-index:20}
.top .ibtn{color:rgba(255,255,255,.92)}
.top .ibtn:hover{background:rgba(255,255,255,.16);color:#fff}
.brand{display:flex;align-items:center;gap:10px;font-weight:650;font-size:16px;letter-spacing:-.01em;min-width:0;padding-right:6px;white-space:nowrap}
.brand .lg{width:28px;height:28px;border-radius:50%;background:#fff;display:grid;place-items:center;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.brand .lg img{width:26px;height:26px}
:root[data-theme=dark] .brand .lg{background:#1d2a33}
.search{flex:1;max-width:720px;margin:0 auto;position:relative;display:flex;align-items:center}
.search input{width:100%;height:36px;border-radius:8px;border:0;background:rgba(255,255,255,.95);color:#1a1f26;padding:0 40px 0 40px;outline:none;font-size:14px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.04);transition:box-shadow .2s,background .2s}
:root[data-theme=dark] .search input{background:#22303a;color:var(--text)}
.search input::placeholder{color:#6b7682}
.search input:focus{box-shadow:0 0 0 2px #fff,0 6px 18px rgba(0,0,0,.18)}
:root[data-theme=dark] .search input:focus{box-shadow:0 0 0 2px var(--brand)}
.search>svg{position:absolute;left:11px;color:#5d6873;pointer-events:none}
.search .clear{position:absolute;right:4px;color:#5d6873}
.search .clear:hover{background:rgba(0,0,0,.06)}
.sugg{position:absolute;left:0;right:0;top:42px;background:var(--surface);color:var(--text);border-radius:10px;box-shadow:var(--shadow-3);padding:8px;animation:pop .18s var(--ease);font-size:13px}
.sugg .row{display:flex;gap:10px;align-items:center;padding:7px 10px;border-radius:6px;cursor:pointer}
.sugg .row:hover,.sugg .row.act{background:var(--hover-2)}
.sugg code{font:600 12px ui-monospace,Menlo,monospace;color:var(--brand-2)}
.top .me{width:34px;height:34px;border-radius:50%;padding:0;box-shadow:0 0 0 2px rgba(255,255,255,.65);overflow:hidden}
.top .me .av{width:34px;height:34px}
.main{display:grid;grid-template-columns:var(--nav-w) var(--list-w) 1fr;min-height:0;position:relative}
.shell.nav-collapsed .main{grid-template-columns:56px var(--list-w) 1fr}
.shell.no-pane .main{grid-template-columns:var(--nav-w) 1fr 0}
.shell.nav-collapsed.no-pane .main{grid-template-columns:56px 1fr 0}

/* ---------- nav ---------- */
.nav{background:var(--bg-2);border-right:1px solid var(--border);display:flex;flex-direction:column;min-height:0;padding:12px 8px 8px}
.compose-btn{display:flex;align-items:center;gap:10px;height:44px;margin:0 4px 12px;padding:0 18px 0 14px;border-radius:12px;background:var(--brand);color:var(--on-brand);font-weight:650;font-size:14.5px;box-shadow:0 3px 10px color-mix(in srgb,var(--brand) 35%,transparent);transition:transform .15s var(--ease),box-shadow .2s,background .2s}
.compose-btn:hover{background:var(--brand-2);box-shadow:0 6px 16px color-mix(in srgb,var(--brand) 40%,transparent);transform:translateY(-1px)}
.compose-btn:active{transform:scale(.98)}
.nav .sec{font-size:11.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--text-3);padding:16px 12px 6px;display:flex;align-items:center;justify-content:space-between}
.nav .sec .ibtn{width:24px;height:24px}
.nav .sec .ibtn svg{width:16px;height:16px}
.ni{display:flex;align-items:center;gap:12px;height:36px;padding:0 10px 0 12px;border-radius:8px;color:var(--text);cursor:pointer;position:relative;user-select:none;transition:background .12s;white-space:nowrap}
.ni svg.ic{color:var(--text-2)}
.ni:hover{background:var(--hover-2)}
.ni.act{background:var(--sel);font-weight:600}
.ni.act::before{content:'';position:absolute;left:0;top:9px;bottom:9px;width:3px;border-radius:3px;background:var(--brand);animation:barIn .25s var(--ease)}
@keyframes barIn{from{transform:scaleY(0)}to{transform:none}}
.ni.act svg.ic{color:var(--brand)}
.ni .nm{flex:1;overflow:hidden;text-overflow:ellipsis}
.ni .cnt{font-size:12px;font-weight:650;color:var(--brand-2)}
.ni .cnt.muted{color:var(--text-3);font-weight:500}
.ni .ldot{width:10px;height:10px;border-radius:3px;margin:0 5px;flex:none}
.ni.drop{background:var(--brand-soft);box-shadow:inset 0 0 0 1.5px var(--brand)}
.ni .sub{padding-left:18px}
.nav .foot{margin-top:auto;padding:10px 6px 2px;font-size:11.5px;color:var(--text-3);display:flex;align-items:center;gap:8px}
.nav .quota{flex:1;height:4px;border-radius:2px;background:var(--border);overflow:hidden}
.shell.nav-collapsed .nav .nm,.shell.nav-collapsed .nav .cnt,.shell.nav-collapsed .nav .sec,.shell.nav-collapsed .compose-btn span,.shell.nav-collapsed .nav .foot{display:none}
.shell.nav-collapsed .compose-btn{padding:0;justify-content:center;width:44px;margin:0 auto 12px}
.shell.nav-collapsed .ni{justify-content:center;padding:0}
.shell.nav-collapsed .ni .ldot{margin:0}

/* ---------- list ---------- */
.list{display:flex;flex-direction:column;min-height:0;background:var(--surface);border-right:1px solid var(--border);position:relative}
.lhead{display:flex;align-items:center;gap:8px;padding:12px 12px 8px 16px;min-height:56px}
.lhead h2{margin:0;font-size:19px;font-weight:700;letter-spacing:-.015em;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tabs{display:flex;gap:4px;padding:0 12px 8px 12px;border-bottom:1px solid var(--border)}
.tab{height:28px;padding:0 12px;border-radius:14px;font-size:13px;font-weight:550;color:var(--text-2);transition:background .15s,color .15s}
.tab:hover{background:var(--hover-2);color:var(--text)}
.tab.act{background:var(--brand-soft);color:var(--brand-3)}
:root[data-theme=dark] .tab.act{color:var(--brand-2)}
.bulk{display:flex;align-items:center;gap:2px;padding:6px 8px 6px 12px;border-bottom:1px solid var(--border);background:var(--brand-softer);animation:slideDown .22s var(--ease);flex-wrap:wrap}
.bulk .n{font-weight:650;margin:0 8px 0 6px;font-size:13px;color:var(--brand-3)}
:root[data-theme=dark] .bulk .n{color:var(--brand-2)}
@keyframes slideDown{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.items{flex:1;min-height:0;position:relative}
.grp{position:sticky;top:0;z-index:2;font-size:12px;font-weight:650;color:var(--text-2);padding:10px 16px 6px;background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(6px)}
.it{position:relative;display:grid;grid-template-columns:auto 1fr;gap:12px;padding:11px 14px 11px 16px;cursor:pointer;border-bottom:1px solid color-mix(in srgb,var(--border) 70%,transparent);transition:background .12s;outline:none;touch-action:pan-y;user-select:none;-webkit-user-select:none}
.it:hover{background:var(--hover)}
.it.sel{background:var(--sel)}
.it.cur{background:var(--sel)}
.it.cur::after{content:'';position:absolute;inset:0;box-shadow:inset 3px 0 0 var(--brand);pointer-events:none}
.it .lead{position:relative;width:36px;height:36px}
.it .lead .chk{position:absolute;inset:9px;opacity:0;transition:opacity .15s}
.it .lead .av{transition:opacity .15s,transform .2s var(--ease)}
.items.selecting .it .lead .chk,.it:hover .lead .chk,.it.sel .lead .chk{opacity:1}
.items.selecting .it .lead .av,.it:hover .lead .av,.it.sel .lead .av{opacity:0;transform:scale(.7)}
.it .body{min-width:0}
.it .r1{display:flex;align-items:baseline;gap:8px;min-width:0}
.it .from{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;color:var(--text)}
.it .date{font-size:12px;color:var(--text-3);white-space:nowrap;font-variant-numeric:tabular-nums}
.it .r2{display:flex;align-items:center;gap:6px;min-width:0;margin-top:1px}
.it .subj{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;color:var(--text)}
.it .snip{font-size:13px;color:var(--text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:1px}
.it .icons{display:flex;gap:4px;color:var(--text-3);align-items:center}
.it .icons svg{width:15px;height:15px}
.it .labels{display:flex;gap:4px;margin-top:5px;flex-wrap:wrap}
.it.unread .from{font-weight:700}
.it.unread .subj{font-weight:650;color:var(--brand-3)}
:root[data-theme=dark] .it.unread .subj{color:var(--brand-2)}
.it.unread .date{color:var(--brand-2);font-weight:650}
.it.unread::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--brand)}
.it .star{color:#e0a400}
.it .qa{position:absolute;right:10px;top:50%;transform:translateY(-50%);display:flex;gap:2px;background:var(--surface);border-radius:8px;box-shadow:var(--shadow-2);padding:2px;opacity:0;pointer-events:none;transition:opacity .15s}
.it:hover .qa{opacity:1;pointer-events:auto}
.it .qa .ibtn{width:30px;height:30px}
.it .qa .ibtn svg{width:17px;height:17px}
.it.enter{animation:itIn .35s var(--ease) both}
@keyframes itIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.it.leave{animation:itOut .28s var(--ease-in) forwards}
@keyframes itOut{to{opacity:0;transform:translateX(30px);height:0;padding-top:0;padding-bottom:0;margin:0}}
.it.spam-sus .subj::before{content:'';display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--warn);margin-right:6px;vertical-align:middle}
.more-row{padding:16px;text-align:center}
.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--text-3);padding:60px 24px;text-align:center;height:100%}
.empty .art{width:120px;height:120px;border-radius:50%;background:radial-gradient(circle at 50% 40%,var(--brand-soft),transparent 70%);display:grid;place-items:center;color:var(--brand)}
.empty .art svg{width:52px;height:52px;stroke-width:1.3}
.empty h3{margin:0;color:var(--text);font-size:16px}
.skel{padding:14px 16px;display:grid;grid-template-columns:36px 1fr;gap:12px;border-bottom:1px solid var(--border)}
.skel i{display:block;height:10px;border-radius:5px;background:linear-gradient(90deg,var(--surface-3),var(--hover-2),var(--surface-3));background-size:200% 100%;animation:sh 1.2s linear infinite}
.skel .c{width:36px;height:36px;border-radius:50%}
@keyframes sh{to{background-position:-200% 0}}
.ptr{position:absolute;left:50%;top:0;transform:translate(-50%,-40px);width:36px;height:36px;border-radius:50%;background:var(--surface);box-shadow:var(--shadow-2);display:grid;place-items:center;color:var(--brand);z-index:5;transition:transform .2s}
.swipe-bg{position:absolute;inset:0;display:flex;align-items:center;justify-content:space-between;padding:0 22px;color:#fff;font-weight:650;font-size:13px}
.swipe-bg.l{background:var(--ok)}.swipe-bg.r{background:var(--brand)}
.swipe-bg.del{background:var(--danger)}
.resizer{position:absolute;right:-3px;top:0;bottom:0;width:6px;cursor:col-resize;z-index:6}
.resizer:hover,.resizer.drag{background:color-mix(in srgb,var(--brand) 35%,transparent)}

/* ---------- reader ---------- */
.pane{min-width:0;min-height:0;display:flex;flex-direction:column;background:var(--bg)}
.rbar{display:flex;align-items:center;gap:2px;padding:8px 12px;border-bottom:1px solid var(--border);background:var(--surface);flex-wrap:nowrap;overflow:hidden;min-height:52px}
.reader{flex:1;min-height:0}
.rin{max-width:1060px;margin:0 auto;padding:22px 26px 40px}
.rin.anim{animation:rIn .38s var(--ease) both}
@keyframes rIn{from{opacity:0;transform:translateX(18px)}to{opacity:1;transform:none}}
.rsubj{display:flex;align-items:flex-start;gap:10px;margin:0 0 16px}
.rsubj h1{margin:0;font-size:22px;line-height:1.3;font-weight:650;letter-spacing:-.018em;flex:1;overflow-wrap:anywhere}
.rlabels{display:flex;gap:6px;flex-wrap:wrap;margin:-6px 0 14px}
.rlabels .chip{height:22px;cursor:default}
.rlabels .chip .x{cursor:pointer;opacity:.6}.rlabels .chip .x:hover{opacity:1}
.card{background:var(--surface);border-radius:var(--r-3);box-shadow:var(--shadow-1);border:1px solid color-mix(in srgb,var(--border) 70%,transparent)}
.mhead{display:flex;gap:12px;padding:16px 18px 10px;align-items:flex-start}
.mhead .who{flex:1;min-width:0}
.mhead .nm{font-weight:650;font-size:15px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.mhead .em{color:var(--text-3);font-weight:450;font-size:13px}
.mhead .to{color:var(--text-2);font-size:13px;margin-top:2px;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mhead .to.open{white-space:normal}
.mhead .when{font-size:12.5px;color:var(--text-3);white-space:nowrap;text-align:right}
.mhead .acts{display:flex;gap:2px;margin-top:4px;justify-content:flex-end}
.verified{display:inline-flex;align-items:center;gap:3px;color:var(--ok);font-size:11.5px;font-weight:600;background:var(--ok-soft);padding:1px 7px 1px 4px;border-radius:9px}
.verified svg{width:14px;height:14px}
.banner{display:flex;align-items:center;gap:10px;margin:0 18px 10px;padding:10px 12px;border-radius:10px;font-size:13px;animation:fadeUp .3s var(--ease)}
.banner.warn{background:var(--warn-soft);color:var(--warn)}
.banner.info{background:var(--brand-softer);color:var(--text-2)}
.banner .btn{height:28px;padding:0 10px;font-size:12.5px}
.banner .t{flex:1}
.mbody{padding:4px 18px 18px;position:relative}
.mframe{width:100%;border:0;display:block;min-height:60px;background:#fff;border-radius:8px;transition:height .2s var(--ease-std)}
.atts{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;padding:0 18px 18px}
.atth{padding:2px 18px 10px;font-size:12.5px;color:var(--text-2);font-weight:600;display:flex;align-items:center;gap:8px}
.att{display:flex;align-items:center;gap:10px;padding:8px 10px 8px 8px;border-radius:10px;border:1px solid var(--border);background:var(--surface-2);min-width:0;cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .15s var(--ease);position:relative}
.att:hover{border-color:var(--border-2);box-shadow:var(--shadow-2);transform:translateY(-1px)}
.att .ft{width:40px;height:40px;border-radius:8px;display:grid;place-items:center;flex:none;font:700 10.5px var(--font);color:#fff;letter-spacing:.03em;overflow:hidden}
.att .ft img{width:100%;height:100%;object-fit:cover}
.att .meta{min-width:0;flex:1}
.att .an{font-size:13px;font-weight:550;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.att .as{font-size:11.5px;color:var(--text-3)}
.att .dl{opacity:.0;transition:opacity .15s}
.att:hover .dl{opacity:1}
.quick{display:flex;gap:10px;padding:18px 2px 0;flex-wrap:wrap}
.quick .btn{height:38px;border-radius:19px;padding:0 18px}
.rempty{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--text-3)}
.rempty img{width:96px;height:96px;opacity:.9;filter:grayscale(.15)}
.rempty .t{font-size:15px;color:var(--text-2);font-weight:550}

/* ---------- menus / dialogs / toasts ---------- */
.menu{position:fixed;z-index:1000;min-width:220px;max-width:320px;max-height:70vh;background:var(--surface);border-radius:10px;box-shadow:var(--shadow-3);border:1px solid var(--border);padding:6px;animation:pop .16s var(--ease);transform-origin:top left}
@keyframes pop{from{opacity:0;transform:scale(.96) translateY(-4px)}to{opacity:1;transform:none}}
.menu .mi{display:flex;align-items:center;gap:10px;height:34px;padding:0 10px;border-radius:6px;cursor:pointer;white-space:nowrap;color:var(--text);font-size:13.5px}
.menu .mi svg.ic{color:var(--text-2);width:18px;height:18px}
.menu .mi:hover,.menu .mi.act{background:var(--hover-2)}
.menu .mi.danger,.menu .mi.danger svg.ic{color:var(--danger)}
.menu .sep{height:1px;background:var(--border);margin:5px 4px}
.menu .mh{font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);padding:8px 10px 4px}
.menu .mi .k{margin-left:auto;color:var(--text-3);font-size:12px}
.menu input.input{height:32px;margin:4px 0 6px}
.scrim{position:fixed;inset:0;z-index:900;background:rgba(10,18,26,.38);animation:fade .2s ease both;backdrop-filter:blur(1.5px)}
@keyframes fade{from{opacity:0}}
.dlg{position:fixed;z-index:950;left:50%;top:50%;transform:translate(-50%,-50%);width:min(560px,calc(100vw - 32px));max-height:calc(100vh - 48px);display:flex;flex-direction:column;background:var(--surface);border-radius:16px;box-shadow:var(--shadow-3);animation:dlgIn .28s var(--ease) both}
@keyframes dlgIn{from{opacity:0;transform:translate(-50%,-48%) scale(.96)}to{opacity:1;transform:translate(-50%,-50%)}}
.dlg .dh{display:flex;align-items:center;gap:10px;padding:18px 20px 10px}
.dlg .dh h3{margin:0;font-size:18px;font-weight:650;flex:1;letter-spacing:-.01em}
.dlg .db{padding:8px 20px 16px;overflow:auto}
.dlg .df{display:flex;justify-content:flex-end;gap:10px;padding:12px 20px 18px}
.toasts{position:fixed;z-index:2000;left:50%;bottom:24px;transform:translateX(-50%);display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none;width:max-content;max-width:calc(100vw - 24px)}
.toast{pointer-events:auto;display:flex;align-items:center;gap:12px;background:#1f2a33;color:#fff;border-radius:10px;padding:10px 10px 10px 16px;box-shadow:var(--shadow-3);font-size:13.5px;animation:tIn .32s var(--ease) both;min-height:44px}
:root[data-theme=dark] .toast{background:#e9eef2;color:#13202a}
.toast.err{background:#a52a3f;color:#fff}
.toast .btn{height:30px;background:transparent;border:0;color:#7fd6f5;font-weight:650;padding:0 10px}
:root[data-theme=dark] .toast .btn{color:#006d91}
.toast .bar{position:absolute;left:0;bottom:0;height:3px;background:#7fd6f5;border-radius:0 0 0 10px}
.toast.out{animation:tOut .22s var(--ease-in) forwards}
@keyframes tIn{from{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:none}}
@keyframes tOut{to{opacity:0;transform:translateY(10px) scale(.97)}}
.tip{position:fixed;z-index:3000;background:#1f2a33;color:#fff;font-size:12px;padding:5px 8px;border-radius:6px;pointer-events:none;animation:fade .12s;white-space:nowrap}

/* =============================== COMPOSE =============================== */
.compose{position:fixed;z-index:800;right:24px;bottom:0;width:620px;height:min(680px,calc(100vh - 80px));background:var(--surface);border-radius:14px 14px 0 0;box-shadow:var(--shadow-3);display:flex;flex-direction:column;animation:cIn .34s var(--ease) both;border:1px solid var(--border)}
@keyframes cIn{from{opacity:0;transform:translateY(40px)}to{opacity:1;transform:none}}
.compose.out{animation:cOut .24s var(--ease-in) forwards}
@keyframes cOut{to{opacity:0;transform:translateY(40px)}}
.compose.max{right:50%;bottom:50%;transform:translate(50%,50%);width:min(1000px,calc(100vw - 48px));height:min(820px,calc(100vh - 48px));border-radius:14px;animation:none}
.compose.min{height:48px;width:320px}
.compose.min .cbody,.compose.min .cfoot,.compose.min .cfields{display:none}
.chead{display:flex;align-items:center;gap:4px;padding:6px 6px 6px 16px;height:48px;border-bottom:1px solid var(--border);cursor:default;flex:none}
.chead .t{flex:1;font-weight:650;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chead .st{font-size:12px;color:var(--text-3);margin-right:6px;white-space:nowrap}
.cfields{flex:none;padding:0 16px}
.crow{display:flex;align-items:flex-start;gap:8px;border-bottom:1px solid var(--border);min-height:42px;padding:5px 0}
.crow>.lab{width:52px;flex:none;color:var(--text-3);font-size:13.5px;padding-top:6px}
.crow .tbtn{height:28px;font-size:12.5px;color:var(--text-3)}
.crow input.bare{flex:1;border:0;outline:0;background:transparent;height:30px;min-width:120px;font-size:14px}
.rcpts{flex:1;display:flex;flex-wrap:wrap;gap:5px;align-items:center;position:relative;min-width:0}
.rc{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 4px 0 3px;border-radius:14px;background:var(--surface-3);font-size:13px;max-width:100%;animation:pop .18s var(--ease);border:1px solid transparent}
.rc .av{width:22px;height:22px;font-size:10px}
.rc .n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rc .x{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;color:var(--text-3)}
.rc .x:hover{background:var(--hover-2);color:var(--text)}
.rc.bad{background:var(--danger-soft);color:var(--danger)}
.rc.sel{border-color:var(--brand)}
.ac{position:absolute;left:0;top:100%;margin-top:4px;z-index:50;width:min(420px,100%);min-width:280px;background:var(--surface);border-radius:10px;box-shadow:var(--shadow-3);border:1px solid var(--border);padding:6px;animation:pop .15s var(--ease)}
.ac .o{display:flex;align-items:center;gap:10px;padding:7px 8px;border-radius:7px;cursor:pointer}
.ac .o.act,.ac .o:hover{background:var(--hover-2)}
.ac .o .nm{font-weight:600;font-size:13.5px}
.ac .o .em{font-size:12px;color:var(--text-3)}
.ac .o .src{margin-left:auto;font-size:11px;color:var(--text-3);text-transform:uppercase;letter-spacing:.05em}
.cbody{flex:1;min-height:0;display:flex;flex-direction:column}
.editor{flex:1;min-height:120px;padding:14px 18px;outline:none;overflow:auto;font-size:14.5px;line-height:1.6;color:var(--text);word-wrap:break-word}
.editor:empty::before{content:attr(data-ph);color:var(--text-3)}
.editor blockquote{margin:0 0 0 .8ex;border-left:2px solid var(--border-2);padding-left:1ex;color:var(--text-2)}
.editor img{max-width:100%;border-radius:4px}
.editor img.selimg{outline:2px solid var(--brand)}
.editor .gmail_signature{color:var(--text-2)}
.editor a{color:var(--brand-2)}
.quoteblk{margin:0 18px 10px}
.quoteblk .qbtn{display:inline-flex;align-items:center;justify-content:center;height:16px;width:32px;border-radius:6px;background:var(--surface-3);color:var(--text-2);font-size:12px;letter-spacing:1px}
.quoteblk .qbtn:hover{background:var(--hover-2)}
.quoteblk .qprev{margin-top:8px;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:#fff}
.quoteblk .qprev iframe{width:100%;border:0;display:block;height:160px}
.quoteblk .qrow{display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--text-3)}
.catts{display:flex;flex-wrap:wrap;gap:8px;padding:0 16px 10px}
.catt{display:flex;align-items:center;gap:8px;height:36px;padding:0 6px 0 10px;border-radius:8px;background:var(--surface-3);font-size:12.5px;max-width:260px;position:relative;overflow:hidden;animation:pop .2s var(--ease)}
.catt .n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:550}
.catt .s{color:var(--text-3);white-space:nowrap}
.catt .prog{position:absolute;left:0;bottom:0;height:3px;background:var(--brand);transition:width .2s}
.catt.err{background:var(--danger-soft);color:var(--danger)}
.fmtbar{display:flex;align-items:center;gap:1px;padding:4px 10px;border-top:1px solid var(--border);overflow-x:auto;flex:none;scrollbar-width:none}
.fmtbar::-webkit-scrollbar{display:none}
.fmtbar .ibtn{width:32px;height:32px}
.fmtbar .ibtn svg{width:18px;height:18px}
.fmtbar .ibtn.on{background:var(--brand-soft);color:var(--brand-3)}
.fmtbar .vs{width:1px;height:20px;background:var(--border);margin:0 4px;flex:none}
.cfoot{display:flex;align-items:center;gap:8px;padding:10px 12px 12px 16px;flex:none}
.sendbtn{height:38px;padding:0 20px;border-radius:19px;font-size:14.5px}
.sizemeter{font-size:12px;color:var(--text-3);display:flex;align-items:center;gap:8px}
.sizemeter .bar{width:80px;height:5px;border-radius:3px;background:var(--border);overflow:hidden}
.sizemeter .bar i{display:block;height:100%;background:var(--brand);border-radius:3px;transition:width .3s var(--ease)}
.sizemeter.over{color:var(--danger)}.sizemeter.over .bar i{background:var(--danger)}
.dropzone{position:absolute;inset:48px 0 0;background:color-mix(in srgb,var(--brand-soft) 92%,transparent);border:2px dashed var(--brand);border-radius:0 0 12px 12px;display:grid;place-items:center;color:var(--brand-3);font-weight:650;z-index:5;animation:fade .15s}
.colors{display:grid;grid-template-columns:repeat(8,24px);gap:6px;padding:8px}
.colors button{width:24px;height:24px;border-radius:6px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.12)}
.colors button:hover{transform:scale(1.12)}

/* =============================== SETTINGS =============================== */
.settings{position:fixed;inset:0;z-index:850;display:grid;place-items:center;padding:24px}
.settings>.scrim{position:absolute;z-index:0}
.settings .win{width:min(980px,100%);height:min(720px,100%);background:var(--surface);border-radius:18px;box-shadow:var(--shadow-3);display:grid;grid-template-columns:240px 1fr;overflow:hidden;animation:dlgIn2 .3s var(--ease) both;position:relative;z-index:1}
@keyframes dlgIn2{from{opacity:0;transform:scale(.97) translateY(10px)}to{opacity:1;transform:none}}
.settings .side{background:var(--bg-2);border-right:1px solid var(--border);padding:18px 10px;display:flex;flex-direction:column;gap:2px}
.settings .side h2{margin:4px 10px 14px;font-size:19px;letter-spacing:-.015em}
.settings .cont{overflow:auto;padding:26px 32px 40px;position:relative}
.settings .cont h3{margin:0 0 4px;font-size:19px;letter-spacing:-.01em}
.settings .cont .desc{color:var(--text-3);margin:0 0 22px;font-size:13.5px}
.settings .close{position:absolute;right:14px;top:14px;z-index:2}
.srow{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid var(--border)}
.srow .l{min-width:0}
.srow .l b{display:block;font-weight:600;font-size:14px}
.srow .l span{display:block;color:var(--text-3);font-size:12.5px;margin-top:2px}
.seg{display:inline-flex;background:var(--surface-3);border-radius:9px;padding:3px;gap:2px}
.seg button{height:30px;padding:0 12px;border-radius:7px;font-size:13px;font-weight:550;color:var(--text-2);display:inline-flex;align-items:center;gap:6px}
.seg button.act{background:var(--surface);color:var(--text);box-shadow:var(--shadow-1)}
.tbl{width:100%;border-collapse:collapse;font-size:13.5px}
.tbl td,.tbl th{padding:10px 8px;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}
.tbl th{font-size:12px;color:var(--text-3);font-weight:600;text-transform:uppercase;letter-spacing:.05em}
.tbl tr:hover td{background:var(--hover)}
.sigbox{border:1px solid var(--border-2);border-radius:10px;overflow:hidden}
.sigbox .editor{min-height:140px;max-height:300px}
.pbar{height:6px;border-radius:3px;background:var(--border);overflow:hidden;margin-top:6px}
.pbar i{display:block;height:100%;background:var(--brand);transition:width .4s var(--ease)}
.pwmeter{display:flex;gap:4px;margin-top:6px}.pwmeter i{flex:1;height:4px;border-radius:2px;background:var(--border);transition:background .2s}

/* lightbox */
.lightbox{position:fixed;inset:0;z-index:1500;background:rgba(5,10,15,.9);display:flex;flex-direction:column;animation:fade .2s}
.lightbox .lbar{display:flex;align-items:center;gap:8px;padding:10px 14px;color:#fff}
.lightbox .lbar .ibtn{color:#fff}.lightbox .lbar .ibtn:hover{background:rgba(255,255,255,.12)}
.lightbox .lbar .t{flex:1;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lightbox .stage{flex:1;display:grid;place-items:center;min-height:0;padding:10px}
.lightbox .stage img{max-width:100%;max-height:100%;border-radius:6px;box-shadow:0 20px 60px rgba(0,0,0,.5);animation:zoomIn .3s var(--ease)}
.lightbox .stage iframe{width:min(1000px,100%);height:100%;border:0;background:#fff;border-radius:6px}
@keyframes zoomIn{from{opacity:0;transform:scale(.94)}}

/* =============================== RESPONSIVE =============================== */
@media (max-width:1280px){:root{--list-w:360px}}
/* tablet / half-screen only: on phones (<=820px) the off-canvas drawer below takes over. Keeping this block
   out of the phone range matters: its ".shell.nav-open .nav{z-index:30}" used to out-rank the drawer's
   z-index and put the open drawer *under* its own scrim, so links could not be tapped. */
@media (min-width:821px) and (max-width:1100px){
  .shell:not(.nav-open) .main{grid-template-columns:56px var(--list-w) 1fr}
  .shell:not(.nav-open) .nav .nm,.shell:not(.nav-open) .nav .cnt,.shell:not(.nav-open) .nav .sec,.shell:not(.nav-open) .compose-btn span,.shell:not(.nav-open) .nav .foot{display:none}
  .shell:not(.nav-open) .compose-btn{padding:0;justify-content:center;width:44px;margin:0 auto 12px}
  .shell:not(.nav-open) .ni{justify-content:center;padding:0}
  .shell.nav-open .nav{position:absolute;z-index:30;top:0;bottom:0;left:0;width:var(--nav-w);box-shadow:var(--shadow-3);animation:navIn .28s var(--ease)}
  .shell.nav-open .main{grid-template-columns:56px var(--list-w) 1fr}
  .shell.nav-open .main>.list{grid-column:2}
  .shell.nav-open .main>.pane{grid-column:3}
  .navscrim{position:fixed;inset:0;z-index:25;background:transparent}
}
@keyframes navIn{from{transform:translateX(-30px);opacity:.5}}
@media (max-width:820px){
  :root{--top-h:56px}
  body{overflow:hidden}
  .top{padding:0 6px;gap:4px;padding-top:env(safe-area-inset-top);height:calc(var(--top-h) + env(safe-area-inset-top))}
  .shell{grid-template-rows:calc(var(--top-h) + env(safe-area-inset-top)) 1fr}
  .brand .t{display:none}
  .brand{padding-right:0}
  .top .hide-m{display:none}
  .search{margin:0 4px}
  .search input{height:40px;border-radius:20px;font-size:15px}
  .main,.shell.nav-collapsed .main,.shell.no-pane .main,.shell:not(.nav-open) .main,.shell.nav-open .main{grid-template-columns:1fr!important;display:block}
  .nav{position:fixed!important;z-index:700;top:0;bottom:0;left:0;width:min(84vw,320px)!important;transform:translateX(-102%);transition:transform .32s var(--ease);box-shadow:none;padding-top:calc(14px + env(safe-area-inset-top));padding-bottom:calc(8px + env(safe-area-inset-bottom));animation:none!important}
  .shell.nav-open .nav{transform:none;box-shadow:var(--shadow-3);z-index:700}
  .shell .nav .nm,.shell .nav .cnt,.shell .nav .foot{display:block!important}
  .shell .nav .sec{display:flex!important}
  .shell .nav .ni{justify-content:flex-start!important;padding:0 10px 0 12px!important;height:44px;font-size:15px}
  .shell .nav .compose-btn{display:none}
  .navscrim{position:fixed;inset:0;z-index:650;background:rgba(8,14,20,.4);animation:fade .25s}
  .list{position:absolute;inset:0;border-right:0}
  .lhead{padding:10px 8px 6px 16px}
  .lhead h2{font-size:22px}
  .it{padding:12px 14px 12px 14px;grid-template-columns:auto 1fr;gap:12px}
  .it .lead,.it .lead .av{width:42px;height:42px}
  .it .lead .chk{inset:12px}
  .it .from{font-size:15px}.it .subj{font-size:14.5px}.it .snip{font-size:14px}
  .it:hover{background:transparent}
  .it .qa{display:none}
  .it:hover .lead .chk{opacity:0}.it:hover .lead .av{opacity:1;transform:none}
  .items.selecting .it .lead .chk,.it.sel .lead .chk{opacity:1}
  .items.selecting .it .lead .av,.it.sel .lead .av{opacity:0}
  .pane{position:absolute;inset:0;z-index:40;transform:translateX(100%);transition:transform .34s var(--ease);box-shadow:-10px 0 30px rgba(0,0,0,.08);visibility:hidden}
  .shell.reading .pane{transform:none;visibility:visible}
  .shell.reading .list{transform:translateX(-22%);transition:transform .34s var(--ease)}
  .list{transition:transform .34s var(--ease)}
  .rbar{padding:4px 4px;padding-top:4px;min-height:52px;position:sticky;top:0;z-index:3}
  .rin{padding:16px 14px calc(110px + env(safe-area-inset-bottom))}
  .rin.anim{animation:none}
  .rsubj h1{font-size:20px}
  .card{border-radius:12px}
  .mhead{padding:14px 12px 8px}
  .mbody{padding:2px 10px 12px}
  .atts{padding:0 12px 14px;grid-template-columns:1fr 1fr}
  .att .dl{opacity:1}
  .banner{margin:0 12px 10px}
  .fab{position:fixed;right:16px;bottom:calc(18px + env(safe-area-inset-bottom));z-index:60;height:56px;min-width:56px;padding:0 20px 0 18px;border-radius:18px;background:var(--brand);color:var(--on-brand);display:flex;align-items:center;gap:10px;font-weight:650;font-size:15px;box-shadow:0 8px 24px color-mix(in srgb,var(--brand) 45%,transparent),0 2px 6px rgba(0,0,0,.15);transition:padding .25s var(--ease),transform .2s var(--ease)}
  .fab.shrink{padding:0;justify-content:center}
  .fab.shrink span{display:none}
  .fab:active{transform:scale(.95)}
  .shell.reading .fab{display:none}
  .mbar{position:fixed;left:0;right:0;bottom:0;z-index:45;display:flex;justify-content:space-around;align-items:center;padding:6px 6px calc(6px + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--surface) 94%,transparent);backdrop-filter:blur(14px);border-top:1px solid var(--border)}
  .mbar .ibtn{width:48px;height:44px}
  .mbar .ibtn svg{width:22px;height:22px}
  .compose,.compose.max{left:0;right:0;top:0;bottom:0;width:auto;height:auto;border-radius:0;transform:none;border:0;animation:cInM .34s var(--ease) both;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}
  @keyframes cInM{from{transform:translateY(100%)}to{transform:none}}
  .compose.out{animation:cOutM .26s var(--ease-in) forwards}
  @keyframes cOutM{to{transform:translateY(100%)}}
  .compose .chead .hide-m{display:none}
  .editor{font-size:16px;padding:12px 16px}
  .crow input.bare{font-size:16px}
  .settings{padding:0}
  .settings .win{grid-template-columns:1fr;border-radius:0;height:100%;width:100%}
  .settings .side{flex-direction:row;overflow-x:auto;padding:calc(10px + env(safe-area-inset-top)) 8px 8px;border-right:0;border-bottom:1px solid var(--border);gap:4px;scrollbar-width:none}
  .settings .side h2{display:none}
  .settings .side .ni{height:36px;padding:0 12px!important;font-size:13.5px;flex:none}
  .settings .side .ni::before{display:none}
  .settings .cont{padding:20px 16px calc(40px + env(safe-area-inset-bottom))}
  .settings .close{top:calc(8px + env(safe-area-inset-top))}
  .srow{flex-wrap:wrap}
  .dlg{width:calc(100vw - 20px)}
  .toasts{bottom:calc(84px + env(safe-area-inset-bottom))}
  .lcard{padding:32px 22px 24px;border-radius:18px}
  .menu{max-width:calc(100vw - 16px)}
  .input,.lfield .input{font-size:16px}
}
@media (min-width:821px){.fab,.mbar,.m-only{display:none!important}}
@media (min-width:1101px){.navscrim{display:none!important}}
@media (max-width:820px){.d-only{display:none!important}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
@media print{.top,.nav,.list,.rbar,.fab,.mbar{display:none!important}}
.density-compact .it{padding-top:7px;padding-bottom:7px}
.density-compact .it .snip{display:none}
.density-compact .it .lead,.density-compact .it .lead .av{width:28px;height:28px;font-size:11px}
.density-compact .it .lead .chk{inset:5px}
:root[data-theme=dark] .mbody{padding:14px 30px 26px}
:root[data-theme=dark] .mframe{box-shadow:0 0 0 12px #fff;border-radius:1px}
.nav .dhead{display:flex;align-items:center;gap:12px;padding:6px 12px 16px;margin-bottom:6px;border-bottom:1px solid var(--border)}
.nav .dhead img{width:40px;height:40px}
.nav .dhead b{display:block;font-size:16px}
.nav .dhead .muted{font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
