[hidden]{display:none !important}
:root{
  --black:#0B0B0C; --ink:#0B0B0C; --ink-2:#3F3F46; --muted:#71717A; --faint:#A1A1AA;
  --paper:#F5F5F3; --panel:#FFFFFF; --line:#E6E6E3; --line-2:#D4D4D0; --hover:#EFEFEC;
  --side-ink:#0B0B0C; --side-muted:#71717A; --side-line:#E6E6E3;
  --accounting:#1F9D6B; --advance:#E0921A; --booking:#D23A85; --travel:#1E93CC; --marketing:#7C5CD6; --contact:#0F8A8A;
  --accent:var(--ink); --danger:#C4321F;
  --r:10px; --r-sm:8px;
  --bar:64px; --safe-b:env(safe-area-inset-bottom,0px); --safe-t:env(safe-area-inset-top,0px);
  --shadow:0 1px 2px rgba(11,11,12,.04),0 8px 24px rgba(11,11,12,.06);
  --on-black:#fff; --primary-hover:#26262A; --field:#fff; --mix-base:#fff; --mix-ink:#000;
  --ok-bg:#E8F5EE; --ok-ink:#17724F; --bad-bg:#FDECEA; --warn-bg:#FFF6E8; --warn-line:#F2C77D;
  --glass:#fff; --ring:rgba(11,11,12,.08); --glow:rgba(11,11,12,.05);
  color-scheme:light;
}
/* Tema scuro (pulsante nel menu, scelta salvata nel browser) */
:root[data-theme="dark"]{
  color-scheme:dark;
  --black:#F4F4F5; --on-black:#0B0B0C; --primary-hover:#D4D4D8;
  --ink:#F4F4F5; --ink-2:#C4C4CB; --muted:#8E8E97; --faint:#5F5F68;
  --paper:#0C0C0E; --panel:#151518; --line:#232328; --line-2:#33333A; --hover:#1D1D22;
  --side-ink:#F4F4F5; --side-muted:#8E8E97; --side-line:#232328;
  --field:#101013; --mix-base:#151518; --mix-ink:#fff;
  --ok-bg:#12301F; --ok-ink:#5FD39A; --bad-bg:#3A1714; --danger:#FF6B57; --warn-bg:#2E2410; --warn-line:#6B5220;
  --glass:#151518; --ring:rgba(255,255,255,.12); --glow:rgba(255,255,255,.04);
  --shadow:0 1px 2px rgba(0,0,0,.3),0 8px 24px rgba(0,0,0,.35);
}
*{box-sizing:border-box}
html,body{height:100%;margin:0}
body{font-family:"Inter Tight",system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper);
  font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}
svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}
h1,h2,h3{letter-spacing:-.02em;line-height:1.15}

/* ---------- Controlli ---------- */
button{font:inherit;cursor:pointer;border:1px solid transparent;border-radius:var(--r-sm);padding:.55rem 1rem;
  background:var(--hover);color:var(--ink);font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;
  transition:background .15s,border-color .15s,color .15s,transform .1s}
button:active{transform:scale(.98)}
button:disabled{opacity:.55;cursor:default}
button.primary{background:var(--black);color:var(--on-black)}
button.primary:hover{background:var(--primary-hover)}
button.ghost{background:var(--panel);border-color:var(--line-2)}
button.ghost:hover{background:var(--hover)}
button.sm{padding:.35rem .7rem;font-size:.85rem}
button.wide{width:100%}
.icon-btn{background:transparent;padding:.45rem;border-radius:50%;color:inherit}
.icon-btn:hover{background:var(--hover)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
input,textarea{font:inherit;width:100%;padding:.65rem .8rem;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--field);color:var(--ink);
  transition:border-color .15s,box-shadow .15s}
input:focus,textarea:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px var(--ring)}
textarea{resize:vertical;line-height:1.5}
label{display:block;font-size:.85rem;font-weight:600;margin:.75rem 0;color:var(--ink-2)}
label input,label textarea{margin-top:.35rem;font-weight:400}
.error{color:var(--danger);min-height:1.2em;font-size:.88rem;margin:.4rem 0}
.hint{color:var(--muted);font-size:.92rem;margin:.2rem 0 1rem}
.wordmark{font-weight:800;letter-spacing:.16em;text-transform:uppercase}
.avatar{--c:var(--ink);width:36px;height:36px;border-radius:50%;display:inline-grid;place-items:center;flex:none;
  background:color-mix(in srgb,var(--c) 16%,var(--mix-base));color:color-mix(in srgb,var(--c) 75%,var(--mix-ink));font-weight:700;font-size:.8rem;letter-spacing:.02em}
.mobile-only{display:none}

/* ---------- Login ---------- */
.login{min-height:100%;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}
.login-art{background:var(--paper);color:var(--ink);border-right:1px solid var(--line);padding:3rem;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}
.login-art::after{content:"";position:absolute;inset:auto -20% -35% auto;width:70%;aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle,var(--glow),transparent 65%)}
.login-art .wordmark{font-size:clamp(2.6rem,6vw,5rem);letter-spacing:.12em;line-height:1}
.login-tag{color:var(--muted);font-size:1.15rem;margin:1.2rem 0 0;max-width:24ch}
.login-foot{position:absolute;left:3rem;bottom:2rem;margin:0;color:var(--faint);font-size:.85rem;letter-spacing:.04em}
.login-side{display:grid;place-items:center;padding:2rem 1.5rem;background:var(--panel)}
.login-box{width:min(360px,100%)}
.login-box h1{font-size:1.9rem;margin:0 0 .3rem}
.login-box .primary{margin-top:.6rem;padding:.8rem}

/* ---------- Struttura ---------- */
.app{display:grid;grid-template-columns:252px minmax(320px,400px) minmax(0,1fr);height:100vh;height:100dvh}

.side{background:var(--panel);color:var(--side-ink);border-right:1px solid var(--line);padding:1.5rem .9rem 1rem;display:flex;flex-direction:column;min-height:0}
.side-brand{display:flex;align-items:baseline;gap:.55rem;padding:0 .6rem 1.8rem}
.side-brand .wordmark{font-size:1.15rem}
.side-brand .sub{color:var(--side-muted);font-size:.9rem;font-weight:500}
.side-label{color:var(--side-muted);font-size:.78rem;font-weight:600;margin:0 .6rem .5rem;letter-spacing:.02em}
.boxes{display:flex;flex-direction:column;gap:2px;flex:1;overflow:auto}
.box{background:transparent;color:var(--ink-2);justify-content:flex-start;text-align:left;font-weight:500;padding:.6rem .6rem;border-radius:var(--r-sm);gap:.75rem}
.box:hover{background:var(--hover);color:var(--ink)}
.box.active{background:var(--paper);color:var(--ink);font-weight:600;box-shadow:inset 0 0 0 1px var(--line)}
.box .dot{width:9px;height:9px;border-radius:50%;background:var(--c);flex:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--c) 25%,transparent)}
.box-text{display:flex;flex-direction:column;min-width:0}
.box-name{font-size:.95rem}
.box small{font-size:.74rem;color:var(--side-muted);font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.side-foot{display:flex;flex-direction:column;gap:2px;border-top:1px solid var(--side-line);padding-top:.8rem}
.side-link{background:transparent;color:var(--ink-2);justify-content:flex-start;font-weight:500;padding:.55rem .6rem;gap:.7rem;font-size:.9rem}
.side-link:hover{background:var(--hover);color:var(--ink)}
.side .me{display:flex;align-items:center;gap:.65rem;padding:.7rem .6rem 0;margin-top:.5rem;border-top:1px solid var(--side-line)}
.side .avatar,.menu .avatar{width:30px;height:30px;background:var(--black);color:var(--on-black);font-size:.75rem}
.me-name{flex:1;font-weight:600;font-size:.9rem;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.side .icon-btn{color:var(--side-muted)}
.side .icon-btn:hover{background:var(--hover);color:var(--ink)}

/* ---------- Lista ---------- */
.list-pane{display:flex;flex-direction:column;background:var(--paper);border-right:1px solid var(--line);min-width:0;min-height:0;position:relative}
.list-pane::before{content:"";position:absolute;inset:0 0 auto;height:3px;background:var(--accent);transition:background .2s}
.list-head{padding:1.4rem 1rem .8rem;display:grid;grid-template-columns:1fr auto;gap:.8rem;align-items:center}
.pane-title{grid-column:1/-1;display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem;padding:0 .2rem}
.pane-title h1{font-size:1.6rem;font-weight:800;margin:0}
.addr{margin:.2rem 0 0;color:var(--muted);font-size:.85rem}
.tabs{grid-column:1/-1;display:flex;gap:.2rem;border-bottom:1px solid var(--line);margin:0 .2rem}
.tab{background:transparent;color:var(--muted);padding:.5rem .2rem;margin-right:1rem;border-radius:0;border-bottom:2px solid transparent;margin-bottom:-1px;font-weight:600}
.tab:hover{color:var(--ink)}
.tab.active{color:var(--ink);border-bottom-color:var(--ink)}
.search{position:relative;display:flex;align-items:center}
.search svg{position:absolute;left:.7rem;color:var(--faint);pointer-events:none}
.search input{padding-left:2.2rem;background:var(--panel);border-color:var(--line)}
.compose{padding:.62rem 1rem}
.list{list-style:none;margin:0;padding:.2rem .5rem 1rem;overflow:auto;flex:1;-webkit-overflow-scrolling:touch}
.list li{padding:.75rem .7rem;border-radius:var(--r);cursor:pointer;display:grid;grid-template-columns:auto 1fr auto;gap:.1rem .75rem;align-items:center;position:relative}
.list li + li::before{content:"";position:absolute;left:3.6rem;right:.7rem;top:0;border-top:1px solid var(--line)}
.list li:hover{background:var(--hover)}
.list li:hover::before,.list li:hover + li::before,.list li.sel::before,.list li.sel + li::before{border-color:transparent}
.list li.sel{background:var(--panel);box-shadow:var(--shadow)}
.list li .avatar{grid-row:1/3}
.from{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.date{color:var(--muted);font-size:.78rem;white-space:nowrap}
.subj{grid-column:2/4;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.9rem}
.list li.unread .from{font-weight:800}
.list li.unread .subj{color:var(--ink);font-weight:600}
.list li.unread .date{color:var(--ink);font-weight:700}
.list li.unread::after{content:"";position:absolute;left:.15rem;top:50%;width:6px;height:6px;margin-top:-3px;border-radius:50%;background:var(--accent)}
.pager{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.6rem 1rem;border-top:1px solid var(--line);font-size:.82rem;color:var(--muted);background:var(--paper)}
.loading,.empty{padding:2.5rem 1rem;color:var(--muted);text-align:center;list-style:none}
.list .loading::before{content:"";display:block;width:22px;height:22px;margin:0 auto .8rem;border-radius:50%;border:2px solid var(--line-2);border-top-color:var(--ink);animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* ---------- Lettura ---------- */
.reader{overflow:auto;background:var(--panel);min-width:0;-webkit-overflow-scrolling:touch}
.reader > .loading{padding-top:4rem}
.empty-state{height:100%;display:grid;place-content:center;justify-items:center;gap:.6rem;color:var(--faint);text-align:center;padding:2rem}
.empty-state svg{width:42px;height:42px;stroke-width:1.2}
.empty-state p{margin:0;color:var(--muted)}
.msg{max-width:860px;margin:0 auto;padding:2rem 2.4rem 3rem}
.back{display:none}
.msg h2{font-size:1.7rem;font-weight:700;margin:0 0 1.3rem}
.sender{display:flex;align-items:center;gap:.8rem;padding-bottom:1.2rem;border-bottom:1px solid var(--line)}
.sender .avatar{width:42px;height:42px;font-size:.88rem}
.sender-main{flex:1;min-width:0}
.sender-name{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sender-sub{font-size:.85rem;color:var(--muted);overflow-wrap:break-word;word-break:break-word}
.sender-date{font-size:.82rem;color:var(--muted);white-space:nowrap;align-self:flex-start;padding-top:.15rem}
.actions{display:flex;gap:.5rem;margin:1rem 0 1.2rem;flex-wrap:wrap}
.attachments{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.2rem}
.attachments a{display:inline-flex;align-items:center;gap:.45rem;font-size:.85rem;padding:.5rem .75rem;border:1px solid var(--line-2);border-radius:var(--r-sm);
  color:var(--ink);text-decoration:none;background:var(--panel);max-width:100%}
.attachments a:hover{background:var(--hover)}
.attachments a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.attachments a small{color:var(--muted);flex:none}
.body-frame{width:100%;border:0;background:#fff;min-height:60vh;display:block;border-radius:var(--r)}
:root[data-theme="dark"] .body-frame{min-height:120px}
.body-text{white-space:pre-wrap;line-height:1.65;max-width:75ch;overflow-wrap:anywhere}

/* ---------- Finestre ---------- */
dialog{border:0;border-radius:16px;background:var(--panel);padding:1.5rem;width:min(560px,94vw);max-height:90vh;max-height:90dvh;overflow:auto;
  box-shadow:0 24px 70px rgba(11,11,12,.3);color:var(--ink)}
dialog.wide-dlg{width:min(760px,94vw)}
dialog[open]{animation:pop .18s ease-out}
@keyframes pop{from{opacity:0;transform:translateY(8px) scale(.98)}}
dialog::backdrop{background:rgba(11,11,12,.5);backdrop-filter:blur(2px)}
.dlg-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.3rem}
.dlg-head h2{margin:0;font-size:1.3rem;font-weight:700}
.row{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem}
.menu{display:flex;flex-direction:column;gap:2px}
.menu .me{display:flex;align-items:center;gap:.7rem;padding:.2rem .6rem 1rem;margin-bottom:.4rem;border-bottom:1px solid var(--line)}
.menu .side-link{color:var(--ink);font-size:1rem;padding:.8rem .6rem}
.menu .side-link:hover{background:var(--hover);color:var(--ink)}
.menu .ghost{margin-top:.8rem}

.table-wrap{overflow-x:auto;margin:0 -.2rem}
.admin table{width:100%;border-collapse:collapse;font-size:.9rem}
.admin th{text-align:left;color:var(--muted);font-weight:600;padding:.5rem .4rem;border-bottom:1px solid var(--line);font-size:.8rem}
.admin td{padding:.75rem .4rem;border-bottom:1px solid var(--line);vertical-align:top}
.admin td:last-child{white-space:nowrap;text-align:right}
.admin td button{padding:.35rem .65rem;font-size:.82rem}
.checks{display:flex;flex-wrap:wrap;gap:.4rem}
.checks label{display:inline-flex;align-items:center;gap:.4rem;margin:0;font-weight:500;padding:.35rem .7rem;border:1px solid var(--line-2);border-radius:999px;
  cursor:pointer;color:var(--ink);font-size:.85rem;background:var(--panel)}
.checks label:has(input:checked){background:var(--black);color:var(--on-black);border-color:var(--black)}
.checks input{width:auto;margin:0;accent-color:var(--black)}
.new-user{margin-top:1.5rem;padding-top:1.2rem;border-top:1px solid var(--line);display:grid;gap:.7rem}
.new-user h3{margin:0;font-size:1.05rem}
.new-user .primary{justify-self:start}
.two{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.tag{font-size:.78rem;color:var(--muted);font-weight:400}
.theme-btn .sun{display:none}
:root[data-theme="dark"] .theme-btn .sun{display:block}
:root[data-theme="dark"] .theme-btn .moon{display:none}
.box-rows{list-style:none;margin:0;padding:0}
.box-rows li{display:flex;align-items:center;gap:.75rem;padding:.75rem .2rem;border-bottom:1px solid var(--line)}
.box-rows .dot{width:10px;height:10px;border-radius:50%;background:var(--c);flex:none}
.box-rows .info{flex:1;min-width:0}
.box-rows .info b{display:block}
.box-rows .info small{color:var(--muted);overflow-wrap:anywhere}
.box-rows .state{font-size:.78rem;font-weight:600;padding:.2rem .55rem;border-radius:999px;background:var(--ok-bg);color:var(--ok-ink);white-space:nowrap}
.box-rows .state.off{background:var(--bad-bg);color:var(--danger)}
.box-rows .acts{display:flex;gap:.35rem}
.box-rows .acts button{padding:.35rem .65rem;font-size:.82rem}
.addr-input{display:flex;align-items:center;margin-top:.35rem;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--field);overflow:hidden}
.addr-input:focus-within{border-color:var(--ink);box-shadow:0 0 0 3px var(--ring)}
.addr-input input{border:0;margin:0;box-shadow:none !important;min-width:0}
.addr-input input:read-only{color:var(--muted)}
.addr-input span{padding:0 .8rem;color:var(--muted);font-weight:400;white-space:nowrap}
.two label{margin:0}
.swatches{display:flex;gap:.5rem;flex-wrap:wrap}
.swatch{width:30px;height:30px;padding:0;border-radius:50%;background:var(--c);border:2px solid var(--panel);box-shadow:0 0 0 1px var(--line-2)}
.swatch[aria-checked="true"]{box-shadow:0 0 0 2px var(--ink)}
.row.start{justify-content:flex-start}
.box-rows + .new-user{border-top:0;margin-top:.6rem}

.client-tabs{display:flex;flex-wrap:wrap;gap:.3rem;margin:1.2rem 0 1rem;padding:.25rem;background:var(--paper);border-radius:var(--r)}
.ctab,.atab{background:transparent;color:var(--muted);padding:.45rem .8rem;font-size:.88rem;flex:1 1 auto}
.ctab:hover,.atab:hover{color:var(--ink)}
.ctab.active,.atab.active{background:var(--panel);color:var(--ink);box-shadow:0 1px 3px rgba(11,11,12,.1)}
.setup h3{font-size:1rem;margin:1.2rem 0 .3rem}
.setup ol{padding-left:1.2rem;line-height:1.65;margin:.8rem 0}
.setup .note{font-size:.86rem;color:var(--muted);line-height:1.55}
.setup .warn{font-size:.86rem;background:var(--warn-bg);border:1px solid var(--warn-line);border-radius:var(--r-sm);padding:.65rem .8rem;line-height:1.5}
.setup a{color:var(--ink)}
.settings{width:100%;border-collapse:collapse;font-size:.9rem;margin:.4rem 0}
.settings td{padding:.55rem .3rem;border-bottom:1px solid var(--line);vertical-align:middle}
.settings td:first-child{color:var(--muted);width:42%}
.settings code{font-family:inherit;font-weight:600;overflow-wrap:anywhere}
.copy{padding:.2rem .55rem;font-size:.75rem;margin-left:.5rem;background:var(--hover);color:var(--ink);border-radius:6px}
.dl{display:inline-flex;align-items:center;gap:.5rem;margin:.6rem 0;padding:.7rem 1.1rem;border-radius:var(--r-sm);background:var(--black);color:var(--on-black) !important;text-decoration:none;font-weight:600}
.inline-check{display:flex;align-items:center;gap:.5rem;font-weight:500;margin:.8rem 0 .4rem;color:var(--ink)}
.inline-check input{width:auto;margin:0;accent-color:var(--black)}

/* ---------- Tablet ---------- */
@media (max-width:1180px) and (min-width:901px){
  .app{grid-template-columns:76px minmax(300px,360px) minmax(0,1fr)}
  .side{padding:1.2rem .6rem;align-items:center}
  .side-brand .sub,.side-label,.box-text{display:none}
  .side-link{font-size:0;gap:0}
  .side-brand{padding:0 0 1.4rem}
  .side-brand .wordmark{font-size:.8rem;letter-spacing:.06em}
  .box,.side-link{justify-content:center;width:52px;height:44px;padding:0}
  .box .dot{width:12px;height:12px}
  .side .me{padding:.7rem 0 0;flex-direction:column}
  .side .me-name{display:none}
  .msg{padding:1.6rem 1.6rem 3rem}
}

/* ---------- Telefono ---------- */
@media (max-width:900px){
  .mobile-only{display:inline-flex}

  .login{grid-template-columns:1fr;grid-template-rows:auto 1fr}
  .login-art{padding:calc(3rem + var(--safe-t)) 1.5rem 2.2rem;min-height:38vh;justify-content:flex-end}
  .login-art .wordmark{font-size:2.6rem}
  .login-tag{font-size:1rem}
  .login-foot{display:none}
  .login-side{place-items:start center;padding:2rem 1.5rem calc(2rem + var(--safe-b))}
  .login-box input{font-size:16px}

  .app{display:block;height:auto;min-height:100dvh}

  /* Barra delle caselle in basso */
  .side{position:fixed;left:0;right:0;bottom:0;z-index:20;padding:0 .4rem var(--safe-b);height:calc(var(--bar) + var(--safe-b));
    flex-direction:row;border-top:1px solid var(--line);border-right:0;background:color-mix(in srgb,var(--glass) 94%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
  .side-brand,.side-label,.side-foot{display:none}
  .boxes{flex-direction:row;gap:0;overflow-x:auto;scrollbar-width:none}
  .box{flex:1 0 62px;flex-direction:column;gap:.35rem;padding:.55rem .2rem;border-radius:0;background:transparent !important;color:var(--side-muted);min-width:0}
  .box.active{color:var(--ink);box-shadow:none}
  .box .dot{width:8px;height:8px;box-shadow:none;opacity:.55;transition:transform .15s,opacity .15s}
  .box.active .dot{opacity:1;transform:scale(1.35);box-shadow:0 0 0 4px color-mix(in srgb,var(--c) 30%,transparent)}
  .box-text{align-items:center;max-width:100%}
  .box-name{font-size:.68rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
  .box small{display:none}

  .list-pane{border:0;min-height:100dvh;padding-bottom:calc(var(--bar) + var(--safe-b))}
  .list-pane::before{position:fixed;z-index:12}
  .list-head{position:sticky;top:0;z-index:10;background:var(--paper);
    padding:calc(1rem + var(--safe-t)) 1rem .6rem;grid-template-columns:1fr}
  .pane-title h1{font-size:1.75rem}
  .search input{font-size:16px}
  .list{overflow:visible;padding:.2rem .4rem 6rem}
  .list li{padding:.8rem .6rem}
  .pager{position:fixed;left:0;right:0;bottom:calc(var(--bar) + var(--safe-b));z-index:11;padding:.45rem 1rem;background:color-mix(in srgb,var(--paper) 94%,transparent);backdrop-filter:blur(12px)}

  /* Scrivi: pulsante flottante */
  .compose{position:fixed;right:1rem;bottom:calc(var(--bar) + var(--safe-b) + 3.2rem);z-index:15;border-radius:999px;padding:.85rem 1.2rem;
    box-shadow:0 10px 28px rgba(11,11,12,.32)}

  /* Lettura a schermo intero */
  .reader{display:none}
  .app.reading .list-pane,.app.reading .side,.app.reading .compose{display:none}
  .app.reading .reader{display:block;min-height:100dvh}
  .msg{padding:0 1.1rem calc(2rem + var(--safe-b))}
  .back{display:flex;position:sticky;top:0;z-index:5;margin:0 -1.1rem 1rem;padding:calc(.7rem + var(--safe-t)) .7rem .7rem;width:calc(100% + 2.2rem);
    justify-content:flex-start;background:color-mix(in srgb,var(--glass) 92%,transparent);backdrop-filter:blur(12px);border-radius:0;border:0;border-bottom:1px solid var(--line);font-weight:600}
  .msg h2{font-size:1.35rem}
  .sender .avatar{width:38px;height:38px}
  .sender{flex-wrap:wrap;row-gap:.2rem}
  .sender-date{order:3;flex-basis:100%;padding:0 0 0 calc(38px + .8rem)}
  .actions button{flex:1}
  .body-frame{min-height:50vh}

  /* Finestre come pannelli dal basso */
  dialog.sheet{width:100%;max-width:100%;margin:auto 0 0;border-radius:18px 18px 0 0;padding:1.2rem 1.1rem calc(1.2rem + var(--safe-b));max-height:94dvh}
  dialog.sheet[open]{animation:sheet .22s ease-out}
  @keyframes sheet{from{transform:translateY(40px);opacity:.4}}
  dialog.sheet::before{content:"";display:block;width:38px;height:4px;border-radius:2px;background:var(--line-2);margin:-.4rem auto .9rem}
  dialog input,dialog textarea{font-size:16px}
  .two{grid-template-columns:1fr}
  .row button{flex:1}
  .admin td:last-child{white-space:normal}
  .admin td button{margin:0 0 .3rem}
  .settings td:first-child{width:38%}
  .box-rows li{flex-wrap:wrap}
  .box-rows .acts{flex-basis:100%;padding-left:calc(10px + .75rem)}
  .box-rows .info small{overflow-wrap:normal}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
