/* =============================================================
   Mailora – App Styles (Dark, modern, mobile-first)
   ============================================================= */
:root{
    --bg:#080B11;
    --bg-2:#0C1119;
    --surface:#121826;
    --surface-2:#171F2E;
    --surface-3:#1F2838;
    --border:#212B3B;
    --border-soft:#171F2C;
    --text:#EBEFF6;
    --text-dim:#9BA6B9;
    --text-mute:#697488;
    --accent:#4F8CFF;
    --accent-2:#7A5CFB;
    --accent-soft:color-mix(in srgb,var(--accent) 15%,transparent);
    --danger:#F0616D;
    --success:#3FCF8E;
    --warning:#F6B44A;
    --radius:16px;
    --radius-sm:11px;
    --shadow:0 18px 44px -18px rgba(0,0,0,.7);
    --shadow-soft:0 8px 22px -10px rgba(0,0,0,.55);
    --ease:cubic-bezier(.22,.61,.36,1);
    --sidebar-w:76px;
    --folder-w:236px;
    --list-w:392px;
    --safe-b:env(safe-area-inset-bottom,0px);
}

*{box-sizing:border-box;}
/* Das hidden-Attribut muss jedes explizite display überschreiben (Spinner, Modals, Composer) */
[hidden]{display:none !important;}
html,body{height:100%;margin:0;}
body{
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,"Inter",sans-serif;
    background:var(--bg);color:var(--text);
    -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
    font-size:14px;line-height:1.55;letter-spacing:-.01em;
    overscroll-behavior:none;
}
::selection{background:color-mix(in srgb,var(--accent) 40%,transparent);}
button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit;}
a{color:var(--accent);text-decoration:none;}
::-webkit-scrollbar{width:9px;height:9px;}
::-webkit-scrollbar-thumb{background:var(--surface-3);border-radius:8px;}
::-webkit-scrollbar-thumb:hover{background:#2a374d;}

/* ---------- Animations ---------- */
@keyframes fadeIn{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}
@keyframes slideUp{from{transform:translateY(100%);}to{transform:none;}}
@keyframes slideInRight{from{transform:translateX(24px);opacity:0;}to{transform:none;opacity:1;}}
@keyframes shimmer{0%{background-position:-400px 0;}100%{background-position:400px 0;}}
@keyframes spin{to{transform:rotate(360deg);}}
@keyframes pop{0%{transform:scale(.9);opacity:0;}100%{transform:scale(1);opacity:1;}}
.fade-in{animation:fadeIn .4s var(--ease);}

/* =============================================================
   LOGIN
   ============================================================= */
.login-body{
    display:grid;place-items:center;min-height:100dvh;padding:20px;
    background:
        radial-gradient(900px 500px at 15% -10%,rgba(122,92,251,.20),transparent 60%),
        radial-gradient(800px 500px at 110% 110%,rgba(79,140,255,.18),transparent 55%),
        var(--bg);
}
.login-wrap{width:100%;max-width:400px;}
.login-card{
    background:linear-gradient(180deg,var(--surface),var(--bg-2));
    border:1px solid var(--border);border-radius:22px;padding:34px 28px;
    box-shadow:var(--shadow);
}
.login-brand{text-align:center;margin-bottom:26px;}
.brand-logo{
    width:60px;height:60px;margin:0 auto 14px;border-radius:18px;
    display:grid;place-items:center;color:#fff;
    background:linear-gradient(135deg,var(--accent-2),var(--accent));
    box-shadow:0 10px 26px -8px rgba(79,140,255,.55);
}
.brand-logo.sm{width:36px;height:36px;border-radius:11px;}
.login-brand h1{margin:0;font-size:26px;letter-spacing:-.5px;}
.login-sub{margin:4px 0 0;color:var(--text-dim);font-size:13.5px;}
.login-form{display:flex;flex-direction:column;gap:15px;}
.field{display:flex;flex-direction:column;gap:6px;}
.field>span{font-size:12.5px;color:var(--text-dim);font-weight:600;padding-left:2px;}
.field input,.comp-row input,.comp-row select,.form-input,.modal input,.modal select,.modal textarea{
    width:100%;background:var(--bg-2);border:1px solid var(--border);
    border-radius:var(--radius-sm);padding:12px 13px;color:var(--text);
    transition:border-color .2s,box-shadow .2s;outline:none;
}
.field input:focus,.form-input:focus,.comp-row input:focus,.modal input:focus,.modal select:focus,.modal textarea:focus{
    border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent);
}
.pw-wrap{position:relative;}
.pw-wrap input{padding-right:44px;}
.pw-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);
    background:none;border:none;cursor:pointer;font-size:16px;padding:8px;opacity:.7;}
.form-error{color:var(--danger);font-size:13px;min-height:18px;}
.login-foot{text-align:center;color:var(--text-mute);font-size:11.5px;margin:18px 0 0;}

/* PWA Installations-Banner */
.pwa-banner{position:fixed;left:16px;right:16px;bottom:calc(18px + var(--safe-b));margin:0 auto;max-width:430px;
    display:flex;align-items:center;gap:13px;background:var(--surface);border:1px solid var(--border);
    border-radius:16px;padding:12px 14px;box-shadow:var(--shadow);z-index:80;animation:slideUp .35s var(--ease);}
.pwa-ico img{border-radius:11px;display:block;}
.pwa-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px;}
.pwa-text strong{font-size:14px;font-weight:600;}
.pwa-text span{font-size:12px;color:var(--text-dim);}
.pwa-close{background:none;border:none;color:var(--text-mute);cursor:pointer;font-size:15px;padding:6px;flex:0 0 auto;line-height:1;}
.pwa-close:hover{color:var(--text);}

/* ---------- Buttons ---------- */
.btn{
    display:inline-flex;align-items:center;justify-content:center;gap:8px;
    border:1px solid transparent;border-radius:var(--radius-sm);
    padding:11px 18px;font-weight:600;cursor:pointer;
    transition:transform .12s var(--ease),background .2s,opacity .2s;
    user-select:none;
}
.btn:active{transform:scale(.97);}
.btn-primary{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;
    box-shadow:0 8px 20px -10px rgba(79,140,255,.6);}
.btn-primary:hover{filter:brightness(1.06);}
.btn-block{width:100%;}
.btn-ghost{background:var(--surface-2);border-color:var(--border);color:var(--text-dim);}
.btn-ghost:hover{background:var(--surface-3);color:var(--text);}
.btn-danger{background:var(--danger);color:#fff;}
.btn.loading .btn-label{opacity:.6;}
.link-btn{background:none;border:none;color:var(--accent);cursor:pointer;font-size:12.5px;padding:4px;}
.spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;
    border-radius:50%;animation:spin .7s linear infinite;display:inline-block;}
.icon-btn{
    background:var(--surface-2);border:1px solid var(--border-soft);border-radius:11px;
    width:38px;height:38px;display:grid;place-items:center;cursor:pointer;color:var(--text-dim);
    transition:background .18s,color .18s,transform .12s;
}
.icon-btn svg{display:block;}
.icon-btn:hover{background:var(--surface-3);color:var(--text);}
.icon-btn:active{transform:scale(.94);}
.icon-btn.sm{width:30px;height:30px;border-radius:9px;}
.icon-btn.is-on{color:var(--warning);}
.icon-btn.danger-hover:hover{color:var(--danger);background:color-mix(in srgb,var(--danger) 14%,transparent);}
.icon-btn.ok-hover:hover{color:var(--success);background:color-mix(in srgb,var(--success) 14%,transparent);}
/* Langer Fingerdruck soll keine Textauswahl auslösen */
.mail-item{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;}
.mail-item .mi-preview,.mail-item .mi-subject{user-select:none;}

/* =============================================================
   APP SHELL – responsive grid
   ============================================================= */
.app-body{overflow:hidden;}
.app-shell{
    display:grid;height:100dvh;
    grid-template-columns:var(--sidebar-w) var(--folder-w) var(--list-w) 1fr;
    background:var(--bg);
    max-width:100vw;overflow:hidden;
}
/* min-width:0 ist wichtig: sonst können Flex-Kinder breiter werden als die Spalte */
.col{min-height:0;min-width:0;display:flex;flex-direction:column;position:relative;max-width:100%;}
.col>*{min-width:0;max-width:100%;}
.col-accounts{background:var(--bg-2);border-right:1px solid var(--border-soft);align-items:center;padding:14px 0;}
.col-folders{background:var(--bg-2);border-right:1px solid var(--border-soft);}
.col-list{background:var(--bg);border-right:1px solid var(--border-soft);}
.col-viewer{background:var(--bg-2);}

/* ---------- Spalten-Resizer (Breite mit Maus ziehen) ---------- */
.col-resizer{position:absolute;top:0;right:-4px;bottom:0;width:8px;cursor:col-resize;z-index:30;touch-action:none;}
.col-resizer::after{content:"";position:absolute;left:3px;top:0;bottom:0;width:2px;background:transparent;border-radius:2px;transition:background .15s;}
.col-resizer:hover::after,.col-resizer.active::after{background:var(--accent);}
body.resizing{cursor:col-resize;user-select:none;}
body.resizing iframe{pointer-events:none;}
@media(max-width:980px){.col-resizer{display:none;}}

/* ---------- Accounts sidebar ---------- */
.brand-row{display:flex;flex-direction:column;align-items:center;gap:6px;margin-bottom:16px;}
.brand-name{display:none;}
.accounts-scroll{flex:1;overflow-y:auto;width:100%;display:flex;flex-direction:column;
    align-items:center;gap:12px;padding:6px 0;}
/* Desktop: kompakte Avatare in der schmalen Leiste */
.acc-chip{position:relative;cursor:pointer;display:grid;place-items:center;
    border-radius:15px;transition:transform .15s var(--ease);}
.acc-chip:hover{transform:translateY(-2px);}
.acc-av{position:relative;width:46px;height:46px;border-radius:15px;display:grid;place-items:center;
    font-weight:700;color:#fff;font-size:15px;border:2px solid transparent;
    transition:border-color .2s,box-shadow .2s;}
.acc-chip.active .acc-av{border-color:#fff;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 30%,transparent);}
.acc-badge{position:absolute;top:-6px;right:-6px;min-width:19px;height:19px;padding:0 5px;
    background:var(--danger);color:#fff;border-radius:10px;font-size:11px;font-weight:700;
    display:grid;place-items:center;border:2px solid var(--bg-2);}
.acc-chip.inactive{opacity:.4;}
/* Name/Adresse nur in der breiten (mobilen) Ansicht */
.acc-meta,.acc-count{display:none;}
.add-account-btn{margin:8px 0;background:var(--surface-2);border:1px dashed var(--border);
    color:var(--text-dim);border-radius:13px;width:46px;height:40px;cursor:pointer;font-size:12px;
    display:grid;place-items:center;transition:background .2s;}
.add-account-btn:hover{background:var(--surface-3);color:var(--text);}
.add-account-btn .plus{font-size:20px;}
.account-foot{display:flex;flex-direction:column;gap:10px;padding-top:10px;}

/* ---------- Folders column ---------- */
.col-head{display:flex;align-items:center;justify-content:space-between;
    padding:16px 16px 10px;}
.col-title{font-weight:700;font-size:15px;letter-spacing:-.2px;}
.folder-scroll{flex:1;overflow-y:auto;padding:4px 10px 16px;}
.folder-item{display:flex;align-items:center;gap:12px;padding:9px 12px;border-radius:10px;
    cursor:pointer;color:var(--text-dim);transition:background .16s,color .16s;margin-bottom:1px;position:relative;}
.folder-item:hover{background:var(--surface);color:var(--text);}
.folder-item.active{background:var(--accent-soft);color:var(--text);}
.folder-item.active::before{content:"";position:absolute;left:0;top:9px;bottom:9px;width:3px;border-radius:3px;background:var(--accent);}
.folder-item .f-ico{width:18px;height:18px;flex:0 0 auto;display:grid;place-items:center;opacity:.85;}
.folder-item .f-ico svg{display:block;}
.folder-item:hover .f-ico,.folder-item.active .f-ico{opacity:1;}
.folder-item.active .f-ico{color:var(--accent);}
.folder-item .f-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13.5px;font-weight:500;}
.folder-item .f-count{font-size:11px;background:transparent;color:var(--accent);
    border:1.5px solid var(--accent);padding:0 6px;min-width:20px;height:20px;border-radius:11px;
    display:inline-flex;align-items:center;justify-content:center;font-weight:700;flex:0 0 auto;}
.folder-item.active .f-count{background:transparent;color:var(--accent);border-color:var(--accent);}
/* Ausgeblendete Ordner (nur sichtbar, wenn eingeblendet) */
.folder-item.is-hidden-folder{opacity:.45;}
.folder-item.is-hidden-folder .f-name{font-style:italic;}
.hidden-toggle{width:100%;margin-top:8px;background:none;border:none;color:var(--text-mute);
    font-size:11.5px;padding:8px 12px;cursor:pointer;text-align:left;border-radius:9px;transition:background .15s,color .15s;}
.hidden-toggle:hover{background:var(--surface);color:var(--text-dim);}

/* Drag & Drop Ziel-Ordner */
body.dnd-active .folder-item.droppable{outline:1px dashed color-mix(in srgb,var(--accent) 35%,transparent);outline-offset:-2px;}
.folder-item.drop-target{background:var(--accent-soft) !important;outline:1.5px solid var(--accent) !important;outline-offset:-2px;color:var(--text);}
.folder-item.drop-target .f-ico{color:var(--accent);opacity:1;}
.folder-item.dragging{opacity:.45;}
body.dnd-active .folder-item.custom{cursor:grabbing;}

/* ---------- Mail list ---------- */
.list-topbar{display:flex;align-items:center;gap:9px;padding:12px 14px;
    border-bottom:1px solid var(--border-soft);min-width:0;}
.list-topbar .icon-btn{flex:0 0 auto;}
.search-box{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:8px;background:var(--surface);
    border:1px solid var(--border);border-radius:12px;padding:8px 12px;transition:border-color .2s;}
.search-box:focus-within{border-color:var(--accent);}
.search-box svg{color:var(--text-mute);flex:0 0 auto;}
.search-box input{background:none;border:none;outline:none;width:100%;min-width:0;}
.filter-bar{display:flex;gap:7px;padding:11px 14px;overflow-x:auto;overflow-y:hidden;
    scrollbar-width:none;border-bottom:1px solid var(--border-soft);
    max-width:100%;-webkit-overflow-scrolling:touch;scroll-behavior:smooth;
    scroll-snap-type:x proximity;overscroll-behavior-x:contain;}
.filter-bar::-webkit-scrollbar{display:none;}
.filter-bar .chip{scroll-snap-align:start;flex:0 0 auto;}
.chip{white-space:nowrap;background:transparent;border:1px solid var(--border-soft);
    color:var(--text-dim);border-radius:20px;padding:6px 14px;font-size:12.5px;cursor:pointer;
    transition:background .18s,color .18s,border-color .18s;font-weight:500;}
.chip:hover{color:var(--text);background:var(--surface);}
.chip.active{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 45%,transparent);color:var(--accent);font-weight:600;}
/* Hinweis zur Berechtigung für den Zähler am App-Symbol */
.badge-prompt{display:flex;align-items:center;gap:12px;padding:12px 14px;
    background:var(--surface);border-bottom:1px solid var(--border-soft);
    animation:fadeIn .3s var(--ease);flex-wrap:wrap;}
.bp-ico{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;
    background:var(--accent-soft);color:var(--accent);flex:0 0 auto;}
.bp-ico svg{display:block;}
.bp-text{display:flex;flex-direction:column;gap:2px;flex:1;min-width:150px;}
.bp-text strong{font-size:13px;font-weight:600;}
.bp-text span{font-size:11.5px;color:var(--text-mute);line-height:1.4;}
.bp-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto;}
.bp-dismiss{background:none;border:none;color:var(--text-mute);font-size:11.5px;
    cursor:pointer;padding:7px 8px;border-radius:8px;white-space:nowrap;transition:color .15s,background .15s;}
.bp-dismiss:hover{color:var(--text-dim);background:var(--surface-2);}

/* Fortschritt beim Nachladen von Nachrichten */
.sync-progress{display:flex;align-items:center;gap:9px;padding:8px 15px;font-size:12px;
    color:var(--accent);background:var(--accent-soft);border-bottom:1px solid var(--border-soft);
    animation:fadeIn .25s var(--ease);}
.spinner.sm{width:12px;height:12px;border-width:2px;border-color:color-mix(in srgb,var(--accent) 30%,transparent);border-top-color:var(--accent);}

.mail-list{flex:1;overflow-y:auto;padding:6px 8px;}

/* ---------- Wisch-Hülle ---------- */
.mail-row{position:relative;border-radius:12px;overflow:hidden;margin-bottom:2px;
    animation:fadeIn .3s var(--ease);background:var(--surface-2);}
.mi-swipe{position:absolute;top:0;bottom:0;display:flex;align-items:stretch;z-index:1;opacity:0;
    transition:opacity .12s;pointer-events:none;}
.mi-swipe-left{right:0;}
.mi-swipe-right{left:0;}
.mail-row.show-left .mi-swipe-left,.mail-row.show-right .mi-swipe-right{opacity:1;pointer-events:auto;}
.sw-act{width:84px;border:none;cursor:pointer;color:#fff;display:flex;flex-direction:column;
    align-items:center;justify-content:center;gap:4px;font-size:11px;font-weight:600;
    -webkit-tap-highlight-color:transparent;}
.sw-act svg{display:block;}
.sw-act:active{filter:brightness(.88);}
.sw-read{background:#3B82F6;}
.sw-delete{background:var(--danger);}
.sw-spam{background:var(--warning);color:#161616;width:96px;}

.mail-item{display:flex;gap:12px;padding:12px 12px 12px 16px;cursor:pointer;border-radius:12px;
    transition:background .14s,transform .22s var(--ease);position:relative;z-index:2;
    background:var(--bg);will-change:transform;}
.mail-row.swiping .mail-item{transition:none;}
.mail-item:hover{background:var(--surface);}
.mail-item.active{background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--border);}
.mail-item.dragging{opacity:.45;cursor:grabbing;}

/* ---------- Mehrfachauswahl ---------- */
.mi-check{width:0;overflow:hidden;flex:0 0 auto;display:grid;place-items:center;
    border-radius:50%;color:transparent;transition:width .18s var(--ease),margin .18s var(--ease);
    align-self:center;}
.mi-check svg{display:block;}
body.select-mode .mi-check{width:22px;height:22px;margin-right:2px;
    border:1.5px solid var(--border);background:var(--surface-2);}
.mail-item.selected .mi-check{background:var(--accent);border-color:var(--accent);color:#fff;}
.mail-item.selected{background:var(--accent-soft);}
.mail-item.selected:hover{background:color-mix(in srgb,var(--accent) 22%,transparent);}
body.select-mode .mail-item{cursor:default;}
body.select-mode .mi-hover,body.select-mode .star-btn{display:none;}

.selection-bar{display:flex;align-items:center;gap:10px;padding:9px 12px;
    background:var(--surface);border-bottom:1px solid var(--border-soft);
    animation:fadeIn .2s var(--ease);flex-wrap:nowrap;min-width:0;}
.sel-count{font-size:13px;font-weight:600;white-space:nowrap;}
.sel-all{background:none;border:none;color:var(--accent);font-size:12px;font-weight:600;
    cursor:pointer;padding:5px 6px;border-radius:7px;white-space:nowrap;flex:1;text-align:left;
    overflow:hidden;text-overflow:ellipsis;}
.sel-all:hover{background:var(--accent-soft);}
.sel-actions{display:flex;gap:5px;flex:0 0 auto;}
.mail-item[draggable="true"]{-webkit-user-drag:element;}
.mail-item.unread::before{content:"";position:absolute;left:6px;top:50%;transform:translateY(-50%);
    width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px color-mix(in srgb,var(--accent) 60%,transparent);}
.mi-avatar{width:40px;height:40px;border-radius:50%;flex:0 0 auto;display:grid;place-items:center;
    color:#fff;font-weight:700;font-size:14px;letter-spacing:.02em;}
.mi-main{flex:1;min-width:0;}
.mi-top{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:2px;}
.mi-from{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13.5px;color:var(--text-dim);}
.mail-item.unread .mi-from{color:var(--text);font-weight:600;}
.mi-meta{display:flex;align-items:center;gap:6px;flex:0 0 auto;}
.mi-date{font-size:11px;color:var(--text-mute);flex:0 0 auto;font-weight:500;}
.mi-subject{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text-dim);display:flex;align-items:center;gap:5px;}
.mail-item.unread .mi-subject{font-weight:600;color:var(--text);}
.mi-answered{color:var(--accent);display:inline-flex;flex:0 0 auto;opacity:.85;}
.mi-bottom{display:flex;align-items:center;gap:6px;margin-top:2px;}
.mi-preview{font-size:12px;color:var(--text-mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;}
.mi-clip{color:var(--text-mute);display:inline-flex;flex:0 0 auto;}
/* Stern inline neben dem Datum (kein Überlappen mehr) */
.star-btn{background:none;border:none;cursor:pointer;color:var(--text-mute);padding:0;margin:0;
    display:inline-grid;place-items:center;border-radius:6px;transition:color .15s,opacity .15s;opacity:0;flex:0 0 auto;line-height:0;}
.star-btn svg{display:block;}
.mail-item:hover .star-btn,.star-btn.on{opacity:1;}
.star-btn.on{color:var(--warning);}
.star-btn:hover{color:var(--warning);}
.mi-hover{position:absolute;right:10px;bottom:9px;display:flex;gap:4px;opacity:0;transform:translateY(3px);
    transition:opacity .15s,transform .15s;pointer-events:none;}
.mail-item:hover .mi-hover{opacity:1;transform:none;pointer-events:auto;}
.mi-act{width:30px;height:30px;border-radius:8px;background:var(--surface-3);border:1px solid var(--border);
    color:var(--text-dim);display:grid;place-items:center;cursor:pointer;transition:background .15s,color .15s;}
.mi-act svg{display:block;}
.mi-act:hover{background:var(--bg);color:var(--text);}
.mi-act.danger:hover{color:var(--danger);}
.list-pager{display:flex;align-items:center;justify-content:center;gap:14px;padding:10px;
    border-top:1px solid var(--border-soft);font-size:12.5px;color:var(--text-dim);}

/* skeleton */
.skel{padding:13px 15px;display:flex;gap:11px;border-bottom:1px solid var(--border-soft);}
.skel .sk-av{width:40px;height:40px;border-radius:12px;}
.skel .sk-lines{flex:1;display:flex;flex-direction:column;gap:7px;}
.sk-bar{height:10px;border-radius:6px;}
.sk-av,.sk-bar{background:linear-gradient(90deg,var(--surface) 25%,var(--surface-3) 37%,var(--surface) 63%);
    background-size:800px 100%;animation:shimmer 1.4s infinite linear;}

/* ---------- Viewer ---------- */
.viewer-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
    gap:16px;color:var(--text-mute);text-align:center;padding:30px;}
.empty-illus{opacity:.25;}
.viewer-content{flex:1;overflow-y:auto;display:flex;flex-direction:column;}
.v-topbar{display:flex;align-items:center;gap:8px;padding:11px 20px;border-bottom:1px solid var(--border-soft);
    position:sticky;top:0;background:color-mix(in srgb,var(--bg-2) 88%,transparent);backdrop-filter:blur(12px);z-index:2;}
.v-topbar .only-mobile{margin-right:2px;}
.v-actions{display:flex;gap:14px;margin-left:auto;align-items:center;}
.v-act-group{display:flex;gap:4px;align-items:center;}
.v-act-group+.v-act-group{padding-left:14px;border-left:1px solid var(--border-soft);}
.v-actions .icon-btn{background:transparent;border-color:transparent;width:36px;height:36px;}
.v-actions .icon-btn:hover{background:var(--surface-2);}
.v-head{padding:26px 32px 16px;animation:fadeIn .35s var(--ease);border-bottom:1px solid var(--border-soft);}
.v-subject{font-size:22px;font-weight:650;letter-spacing:-.02em;margin:0 0 18px;line-height:1.3;}
.v-meta{display:flex;gap:13px;align-items:flex-start;}
.v-avatar{width:44px;height:44px;border-radius:50%;color:#fff;display:grid;place-items:center;font-weight:700;font-size:15px;flex:0 0 auto;}
.v-meta-main{flex:1;min-width:0;}
.v-from-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;}
.v-from-name{font-weight:600;font-size:14.5px;}
.v-from-email{color:var(--text-dim);font-size:12.5px;margin-top:1px;}
.v-to{color:var(--text-mute);font-size:12px;margin-top:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.v-date{color:var(--text-mute);font-size:12px;white-space:nowrap;flex:0 0 auto;font-weight:500;}
.v-banner{margin:16px 32px 0;padding:10px 14px;border-radius:11px;background:color-mix(in srgb,var(--warning) 12%,transparent);
    border:1px solid color-mix(in srgb,var(--warning) 30%,transparent);color:var(--warning);
    font-size:12.5px;display:flex;align-items:center;gap:10px;}
.v-banner span{flex:1;}
.v-banner button{background:var(--warning);color:#161616;border:none;border-radius:8px;padding:6px 12px;cursor:pointer;font-weight:600;font-size:12px;flex:0 0 auto;}
.v-body{padding:22px 32px 32px;max-width:100%;overflow-x:auto;font-size:14.5px;line-height:1.65;}
.v-body.has-html{padding:20px 24px 32px;}
.v-body-html{background:#fff;color:#1c1c1c;border-radius:14px;padding:26px 28px;
    box-shadow:var(--shadow-soft);max-width:820px;margin:0 auto;line-height:1.6;
    overflow:hidden;position:relative;}
.v-html-inner{transform-origin:top left;}
/* Wenn nicht skaliert wird, sollen Bilder trotzdem nicht ausbrechen */
.v-body-html:not([data-scaled]) .v-html-inner img{max-width:100%;height:auto;}
.v-body-html a{color:#2563eb;}
.v-body-text{white-space:pre-wrap;word-break:break-word;color:var(--text);max-width:720px;}
.v-attachments{padding:0 32px 28px;}
.v-att-label{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-mute);font-weight:600;margin:8px 0 12px;text-transform:uppercase;letter-spacing:.04em;}
.v-att-label svg{display:block;}
.v-att-grid{display:flex;flex-wrap:wrap;gap:10px;}
.att-card{display:flex;align-items:center;gap:11px;background:var(--surface);border:1px solid var(--border);
    border-radius:12px;padding:10px 12px;cursor:pointer;transition:background .18s,border-color .18s,transform .12s;
    min-width:200px;max-width:260px;position:relative;}
.att-card:hover{background:var(--surface-2);border-color:var(--accent);transform:translateY(-1px);}
.att-ico{width:36px;height:36px;border-radius:10px;background:var(--accent-soft);color:var(--accent);
    display:grid;place-items:center;flex:0 0 auto;}
.att-ico svg{display:block;}
.att-info{min-width:0;flex:1;}
.att-name{font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600;}
.att-size{font-size:11px;color:var(--text-mute);margin-top:1px;}
.att-dl{color:var(--text-mute);display:grid;place-items:center;flex:0 0 auto;opacity:0;transition:opacity .15s;}
.att-card:hover .att-dl{opacity:1;color:var(--accent);}
.att-card.blocked{opacity:.55;}
.att-card.blocked .att-ico{background:color-mix(in srgb,var(--danger) 15%,transparent);color:var(--danger);}

/* =============================================================
   COMPOSER
   ============================================================= */
.composer{position:fixed;right:24px;bottom:24px;width:min(560px,calc(100vw - 40px));
    height:min(640px,calc(100dvh - 48px));background:var(--surface);border:1px solid var(--border);
    border-radius:18px;box-shadow:var(--shadow);display:flex;flex-direction:column;z-index:60;
    animation:pop .25s var(--ease);overflow:hidden;}
.composer-head{display:flex;align-items:center;justify-content:space-between;
    padding:13px 16px;background:var(--bg-2);border-bottom:1px solid var(--border-soft);font-weight:600;}
.composer-body{flex:1;overflow-y:auto;padding:6px 16px;display:flex;flex-direction:column;}
.comp-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--border-soft);}
.comp-row label{width:52px;color:var(--text-dim);font-size:12.5px;flex:0 0 auto;}
.comp-row input,.comp-row select{border:none;background:none;padding:6px 0;}
.comp-row input:focus,.comp-row select:focus{box-shadow:none;}
.comp-editor{flex:1;min-height:180px;padding:14px 2px;outline:none;font-size:14px;line-height:1.6;overflow-y:auto;}
.comp-editor:empty::before{content:attr(data-placeholder);color:var(--text-mute);}
.comp-attachments{display:flex;flex-wrap:wrap;gap:8px;padding:6px 0;}
.comp-att{display:flex;align-items:center;gap:7px;background:var(--surface-2);border:1px solid var(--border);
    border-radius:9px;padding:5px 9px;font-size:12px;}
.comp-att button{background:none;border:none;color:var(--danger);cursor:pointer;font-size:13px;}
.composer-foot{display:flex;align-items:center;justify-content:space-between;padding:11px 16px;
    border-top:1px solid var(--border-soft);background:var(--bg-2);}
.comp-foot-left,.comp-foot-right{display:flex;align-items:center;gap:8px;}

/* =============================================================
   MODALS / TOASTS / NAV
   ============================================================= */
.scrim{position:fixed;inset:0;background:rgba(3,6,12,.6);backdrop-filter:blur(3px);z-index:50;animation:fadeIn .2s;}
.modal{position:fixed;inset:0;z-index:70;display:grid;place-items:center;padding:18px;}
.modal-card{background:var(--surface);border:1px solid var(--border);border-radius:20px;
    width:100%;max-width:440px;max-height:90dvh;overflow:hidden;display:flex;flex-direction:column;
    box-shadow:var(--shadow);animation:pop .24s var(--ease);}
.modal-card.wide{max-width:640px;}
.modal-card.small{max-width:360px;}
.modal-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-soft);}
.modal-head h2{margin:0;font-size:17px;}
.modal-body{padding:18px 20px;overflow-y:auto;}
.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:18px;}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px;}
.form-grid .full{grid-column:1/-1;}
.form-group{display:flex;flex-direction:column;gap:5px;}
.form-group label{font-size:12px;color:var(--text-dim);font-weight:600;}
.form-section{margin-top:14px;padding-top:14px;border-top:1px solid var(--border-soft);}
.form-section h3{font-size:13px;color:var(--accent);margin:0 0 10px;text-transform:uppercase;letter-spacing:.5px;}
.test-result{font-size:12.5px;margin-top:6px;min-height:16px;}
.test-result.ok{color:var(--success);}
.test-result.err{color:var(--danger);}
.switch-row{display:flex;align-items:center;justify-content:space-between;padding:9px 0;}
.switch{position:relative;width:44px;height:25px;flex:0 0 auto;}
.switch input{opacity:0;width:0;height:0;}
.switch .slider{position:absolute;inset:0;background:var(--surface-3);border-radius:20px;cursor:pointer;transition:.2s;}
.switch .slider::before{content:"";position:absolute;width:19px;height:19px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s;}
.switch input:checked+.slider{background:var(--accent);}
.switch input:checked+.slider::before{transform:translateX(19px);}

/* Akzentfarbe-Auswahl */
.accent-row{display:flex;align-items:center;gap:12px;}
.accent-swatch{position:relative;width:52px;height:36px;border-radius:10px;border:1px solid var(--border);
    cursor:pointer;overflow:hidden;flex:0 0 auto;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);}
.accent-swatch input[type=color]{position:absolute;inset:-6px;width:calc(100% + 12px);height:calc(100% + 12px);
    border:none;padding:0;margin:0;background:none;cursor:pointer;opacity:0;}
.accent-hex{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;color:var(--text-dim);letter-spacing:.05em;flex:1;}
.btn-sm{padding:7px 13px;font-size:12.5px;}

/* Zähler am App-Symbol */
.badge-row{display:flex;align-items:center;gap:12px;}
.badge-state{font-size:12.5px;color:var(--text-dim);flex:1;min-width:0;}
.badge-state.ok{color:var(--success);font-weight:600;}
.badge-state.err{color:var(--danger);}

/* ---------- Admin: Benutzerliste ---------- */
.users-list{display:flex;flex-direction:column;gap:8px;margin-top:6px;}
.user-row{display:flex;align-items:center;gap:10px;background:var(--bg-2);border:1px solid var(--border-soft);
    border-radius:12px;padding:9px 11px;}
.user-av{width:34px;height:34px;border-radius:10px;color:#fff;display:grid;place-items:center;font-weight:700;font-size:13px;flex:0 0 auto;}
.user-info{flex:1;min-width:0;}
.user-name{font-weight:600;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.user-you{color:var(--accent);font-weight:600;font-size:11.5px;}
.user-email{font-size:12px;color:var(--text-mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.user-badge{font-size:11px;font-weight:600;padding:2px 8px;border-radius:9px;background:var(--surface-3);color:var(--text-dim);flex:0 0 auto;}
.user-badge.admin{background:color-mix(in srgb,var(--accent) 22%,transparent);color:var(--accent);}
.user-badge.off{background:color-mix(in srgb,var(--danger) 18%,transparent);color:var(--danger);}
.user-accs{font-size:11.5px;color:var(--text-mute);flex:0 0 auto;}
.user-actions{display:flex;gap:5px;flex:0 0 auto;}
.user-av.sm{width:28px;height:28px;border-radius:8px;font-size:11px;}

/* ---------- Verschieben-Dialog ---------- */
.move-list{display:flex;flex-direction:column;gap:5px;max-height:60dvh;overflow-y:auto;}
.move-item{display:flex;align-items:center;gap:11px;width:100%;padding:11px 12px;
    background:var(--bg-2);border:1px solid var(--border-soft);border-radius:11px;
    color:var(--text-dim);cursor:pointer;font-size:13.5px;text-align:left;
    transition:background .15s,color .15s,border-color .15s;}
.move-item:hover{background:var(--surface);color:var(--text);border-color:var(--accent);}
.move-ico{display:grid;place-items:center;flex:0 0 auto;opacity:.85;}
.move-ico svg{display:block;}
.move-name{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500;}

/* ---------- Konten-Zuweisung ---------- */
.hint-text{font-size:12px;color:var(--text-mute);line-height:1.5;margin:0 0 10px;}
.assign-list{display:flex;flex-direction:column;gap:7px;margin-top:8px;max-height:280px;overflow-y:auto;}
.assign-row{display:flex;align-items:center;gap:10px;background:var(--bg-2);border:1px solid var(--border-soft);
    border-radius:11px;padding:9px 11px;cursor:pointer;transition:border-color .15s,background .15s;}
.assign-row:hover{background:var(--surface);border-color:var(--border);}
.assign-row input[type=checkbox]{width:17px;height:17px;accent-color:var(--accent);cursor:pointer;flex:0 0 auto;margin:0;}
.assign-dot{width:11px;height:11px;border-radius:50%;flex:0 0 auto;}
.assign-info{flex:1;min-width:0;display:flex;flex-direction:column;}
.assign-name{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.assign-mail{font-size:11.5px;color:var(--text-mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.assign-state{font-size:11px;color:var(--accent);font-weight:600;flex:0 0 auto;}

/* ---------- Kontextmenü (Rechtsklick) ---------- */
.context-menu{position:fixed;z-index:200;background:var(--surface);border:1px solid var(--border);
    border-radius:12px;box-shadow:var(--shadow);padding:6px;min-width:196px;animation:pop .12s var(--ease);}
.ctx-item{display:flex;align-items:center;gap:10px;width:100%;padding:9px 11px;border:none;background:none;
    color:var(--text-dim);border-radius:8px;cursor:pointer;font-size:13px;font-weight:500;text-align:left;
    transition:background .13s,color .13s;}
.ctx-item:hover{background:var(--surface-2);color:var(--text);}
.ctx-item.danger{color:var(--danger);}
.ctx-item.danger:hover{background:color-mix(in srgb,var(--danger) 14%,transparent);color:var(--danger);}
.ctx-ico{display:grid;place-items:center;width:16px;height:16px;flex:0 0 auto;opacity:.85;}
.ctx-ico svg{display:block;}
.ctx-divider{height:1px;background:var(--border-soft);margin:5px 6px;}

.toast-stack{position:fixed;bottom:calc(20px + var(--safe-b));left:50%;transform:translateX(-50%);
    z-index:90;display:flex;flex-direction:column;gap:9px;align-items:center;pointer-events:none;width:max-content;max-width:92vw;}
.toast{background:var(--surface-3);border:1px solid var(--border);color:var(--text);
    padding:11px 17px;border-radius:12px;box-shadow:var(--shadow-soft);font-size:13px;
    animation:slideInRight .3s var(--ease);pointer-events:auto;display:flex;align-items:center;gap:9px;}
.toast.ok{border-color:color-mix(in srgb,var(--success) 45%,transparent);}
.toast.err{border-color:color-mix(in srgb,var(--danger) 45%,transparent);}
.toast .t-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);}
.toast.ok .t-dot{background:var(--success);}
.toast.err .t-dot{background:var(--danger);}

/* empty / error states */
.state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
    gap:12px;color:var(--text-mute);text-align:center;padding:40px 20px;font-size:13.5px;}
.state .state-ico{font-size:34px;opacity:.4;color:var(--text-mute);}
.state .state-ico svg{display:block;}
.state p{margin:0;max-width:260px;line-height:1.5;}

/* ---------- Bottom nav (mobile) ---------- */
.bottom-nav{display:none;}
.fab-compose{position:fixed;right:26px;bottom:26px;width:56px;height:56px;border-radius:18px;
    background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;border:none;
    display:grid;place-items:center;cursor:pointer;box-shadow:0 12px 26px -8px rgba(79,140,255,.6);
    z-index:40;transition:transform .15s;}
.fab-compose:active{transform:scale(.92);}

.only-mobile{display:none;}
.only-desktop{display:grid;}

/* =============================================================
   RESPONSIVE
   ============================================================= */
@media (max-width:1200px){
    :root{--folder-w:200px;--list-w:340px;}
}
@media (max-width:980px){
    /* Drei-Spalten → Ordner ausblenden, per Slide */
    .app-shell{grid-template-columns:var(--sidebar-w) var(--list-w) 1fr;}
    .col-folders{position:fixed;left:var(--sidebar-w);top:0;bottom:0;width:260px;z-index:45;
        transform:translateX(-115%);transition:transform .28s var(--ease);box-shadow:var(--shadow);}
    .col-folders.open{transform:none;}
}
@media (max-width:760px){
    :root{--safe-b:env(safe-area-inset-bottom,0px);}
    .app-shell{grid-template-columns:1fr;}

    /* Konten als vollwertige Liste statt schmaler Icon-Leiste */
    .col-accounts{position:fixed;left:0;top:0;bottom:0;width:min(310px,86vw);z-index:48;
        transform:translateX(-105%);transition:transform .28s var(--ease);box-shadow:var(--shadow);
        padding:0 0 calc(70px + var(--safe-b));align-items:stretch;}
    .col-accounts.open{transform:none;}
    .brand-row{flex-direction:row;align-items:center;gap:11px;padding:16px 16px 10px;margin-bottom:6px;}
    .accounts-scroll{align-items:stretch;padding:4px 10px;gap:6px;}
    .acc-chip{display:flex;align-items:center;gap:12px;padding:9px 11px;border-radius:13px;
        place-items:stretch;transition:background .16s;}
    .acc-chip:hover,.acc-chip:active{transform:none;background:var(--surface);}
    .acc-chip.active{background:var(--accent-soft);}
    .acc-av{width:40px;height:40px;border-radius:12px;flex:0 0 auto;font-size:14px;}
    .acc-chip.active .acc-av{border-color:transparent;box-shadow:none;}
    .acc-badge{display:none;}
    .acc-meta{display:flex;flex-direction:column;flex:1;min-width:0;}
    .acc-name{font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
    .acc-mail{font-size:11.5px;color:var(--text-mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
    .acc-count{display:grid;place-items:center;min-width:22px;height:22px;padding:0 7px;
        border-radius:11px;border:1.5px solid var(--accent);color:var(--accent);
        font-size:11px;font-weight:700;flex:0 0 auto;}
    .add-account-btn{width:auto;margin:8px 10px;height:42px;border-radius:12px;
        display:flex;align-items:center;justify-content:center;gap:8px;font-size:13px;}
    .add-account-btn::after{content:"Konto hinzufügen";}
    .account-foot{flex-direction:row;justify-content:space-between;padding:10px 14px 0;
        border-top:1px solid var(--border-soft);margin-top:6px;}
    .col-folders{left:0;width:min(300px,84vw);z-index:49;}
    .col-list{grid-column:1;border-right:none;padding-bottom:calc(64px + var(--safe-b));}
    .col-viewer{position:fixed;inset:0;z-index:46;transform:translateX(100%);
        transition:transform .3s var(--ease);padding-bottom:0;}
    .col-viewer.open{transform:none;}
    .only-mobile{display:grid;}
    .only-desktop{display:none;}
    .fab-compose{display:none;}

    /* ---------- Untere Navigation (App-Look) ---------- */
    .bottom-nav{display:flex;position:fixed;left:0;right:0;bottom:0;
        height:calc(58px + var(--safe-b));padding-bottom:var(--safe-b);
        background:color-mix(in srgb,var(--bg-2) 92%,transparent);backdrop-filter:blur(20px);
        border-top:1px solid var(--border-soft);z-index:47;
        justify-content:space-around;align-items:stretch;}
    .bn-item{background:none;border:none;color:var(--text-mute);display:flex;flex-direction:column;
        align-items:center;justify-content:center;gap:3px;font-size:10px;font-weight:500;
        cursor:pointer;padding:7px 4px;flex:1;min-width:0;transition:color .18s;
        -webkit-tap-highlight-color:transparent;}
    .bn-item:active{opacity:.6;}
    .bn-item.active{color:var(--accent);}
    .bn-ico{display:grid;place-items:center;height:22px;}
    .bn-ico svg{display:block;}
    .bn-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;letter-spacing:-.01em;}
    .bn-compose{flex:0 0 auto;padding:0 6px;}
    .bn-compose .fab{width:52px;height:52px;border-radius:17px;margin-top:-20px;
        background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;
        display:grid;place-items:center;
        box-shadow:0 10px 24px -8px color-mix(in srgb,var(--accent) 70%,transparent);
        transition:transform .15s var(--ease);}
    .bn-compose:active .fab{transform:scale(.92);}

    /* ---------- Kopfbereiche mit Safe-Area (Statusleiste) ---------- */
    .list-topbar{padding:calc(10px + env(safe-area-inset-top,0px)) 12px 10px;gap:8px;
        width:100%;max-width:100%;overflow:hidden;}
    .list-topbar>*{flex-shrink:0;}
    .list-topbar .search-box{flex:1 1 auto;min-width:0;padding:9px 11px;}
    .list-topbar .icon-btn{width:40px;height:40px;}
    .v-topbar{padding:calc(9px + env(safe-area-inset-top,0px)) 10px 9px;gap:6px;
        width:100%;max-width:100%;overflow-x:auto;scrollbar-width:none;}
    .v-topbar::-webkit-scrollbar{display:none;}
    .col-folders,.col-accounts{padding-top:env(safe-area-inset-top,0px);}

    /* Filterleiste: kompakter, sauber scrollbar, nichts ragt heraus */
    .filter-bar{padding:9px 12px;gap:6px;}
    .filter-bar .chip{padding:6px 12px;font-size:12px;}

    /* ---------- Mail-Liste: größere Tap-Flächen ---------- */
    .mail-list{padding:4px 6px;}
    .mail-row{border-radius:14px;}
    .mail-item{padding:13px 12px 13px 18px;gap:12px;border-radius:14px;}
    .selection-bar{padding:10px 12px;gap:8px;}
    .sel-all{font-size:11.5px;}
    .mail-item:active{background:var(--surface-2);}
    .mi-avatar{width:42px;height:42px;font-size:15px;}
    .mi-from{font-size:14px;}
    .mi-subject{font-size:13.5px;}
    .mi-preview{font-size:12.5px;}
    .mi-date{font-size:11.5px;}
    /* Hover-Schnellaktionen ergeben auf Touch keinen Sinn */
    .mi-hover{display:none;}
    .star-btn{opacity:1;}

    /* ---------- Leseansicht ---------- */
    .composer{right:0;bottom:0;width:100vw;height:100dvh;border-radius:0;border:none;animation:slideUp .3s var(--ease);}
    .v-actions{gap:8px;}
    .v-act-group{gap:2px;}
    .v-act-group+.v-act-group{padding-left:8px;}
    .v-actions .icon-btn{width:38px;height:38px;}
    .v-head{padding:18px 16px 14px;}
    .v-subject{font-size:19px;margin-bottom:14px;}
    .v-avatar{width:40px;height:40px;font-size:14px;}
    .v-from-row{flex-direction:column;align-items:flex-start;gap:1px;}
    .v-date{font-size:11.5px;}
    .v-to{white-space:normal;}
    /* HTML-Mails randlos und auf Bildschirmbreite eingepasst */
    .v-body{padding:14px 0 26px;}
    .v-body.has-html{padding:12px 0 26px;}
    .v-body-html{border-radius:0;padding:16px;box-shadow:none;max-width:none;}
    .v-body-text{padding:0 16px;}
    .v-banner{margin:12px 16px 0;}
    .v-attachments{padding:0 16px 24px;}
    .att-card{min-width:0;flex:1 1 100%;max-width:none;}

    .brand-name{display:block;}
}
@media (min-width:761px){
    .col-viewer{display:flex !important;transform:none !important;}
}
