/* ============================================================================
   QO7 Mail-Archiv — Precision-Designsystem (Panel-Port, 2026-06-10)
   Verbindliche Token-Quelle: backend/public/css/precision.css (Panel) bzw.
   webmail-app/public/css/webmail-precision.css (neutrale #111317-Flächen,
   1px-Linien #2a2c34, Radien 4/8px, KEINE Glows/Gradients).
   Theme: html[data-theme="dark|light"] + html[data-brand="qo7|manea"], Key localStorage.qo7Theme.
   Marke kommt aus config('archive.brand') (.env ARCHIVE_BRAND); manea = Teal-Akzent,
   Flächen/Linien/Texte identisch zu qo7 (Token-Quelle: webmail-precision.css).
   Ersetzt app.css (skin-2) vollständig; app.css bleibt nur als Rollback liegen.
   Gliederung: 1 Tokens · 2 Legacy-Aliase · 3 Basis · 4 Shell ·
               5 Portierte Komponenten (app.css) · 6 wm-Komponenten (Webmail-Port) ·
               7 Responsive
   ========================================================================== */

/* ===== 1. Tokens (identisch zum Panel) ===== */
:root{
  --font-display:"Funnel Display",system-ui,sans-serif;
  --font-sans:"Funnel Sans",system-ui,sans-serif;
  --font-mono:"Geist Mono",ui-monospace,monospace;
  --ease:cubic-bezier(.2,.7,.2,1);
  --radius:4px; --radius-lg:8px;
  --ok:#34d3c0; --warn:#e6c46b; --err:#ff7d72; --info:#7fb4e8;
}
:root, html[data-brand="qo7"]{ /* dark = Default */
  --bg:#111317; --bg-2:#0d0f13; --bg-deep:#0c0e12;
  --surface:#16181e; --surface-2:#1c1a21; --surface-3:#23262c;
  --line:#2a2c34; --line-2:#3a3d45;
  --text:#e6e7ec; --text-2:#aeb6b9; --text-3:#79817e;
  --acc:#ff7d2b; --acc-2:#ffa468; --acc-ink:#1c0d02;
  --acc-dim:rgba(255,125,43,.09); --acc-line:rgba(255,125,43,.40);
}
html[data-brand="manea"]{ /* Marke manea, dark — Werte exakt aus webmail-precision.css */
  --bg:#111317; --bg-2:#0d0f13; --bg-deep:#0c0e12;
  --surface:#16181e; --surface-2:#1c1a21; --surface-3:#23262c;
  --line:#2a2c34; --line-2:#3a3d45;
  --text:#e6e7ec; --text-2:#aeb6b9; --text-3:#79817e;
  --acc:#34d3c0; --acc-2:#5bf0dc; --acc-ink:#003731;
  --acc-dim:rgba(52,211,192,.09); --acc-line:rgba(52,211,192,.38);
}
html[data-theme="light"]{
  --bg:#f5f7f6; --bg-2:#eef1f0; --bg-deep:#e9eceb;
  --surface:#ffffff; --surface-2:#f1f4f3; --surface-3:#e6ebe9;
  --line:#e2e5e4; --line-2:#d0d5d3;
  --text:#14181a; --text-2:#45504d; --text-3:#76817d;
  --acc:#d8600c; --acc-2:#b44e07; --acc-ink:#ffffff;
  --acc-dim:rgba(216,96,12,.08); --acc-line:rgba(216,96,12,.32);
  --ok:#1f9d63; --warn:#a9762a; --err:#bb4a3d; --info:#2f6fb0;
}
html[data-theme="light"][data-brand="manea"]{ /* Marke manea, light — Werte exakt aus webmail-precision.css */
  --bg:#f5f7f6; --bg-2:#eef1f0; --bg-deep:#e9eceb;
  --surface:#fff; --surface-2:#f1f4f3; --surface-3:#e6ebe9;
  --line:#e2e5e4; --line-2:#d0d5d3;
  --text:#14181a; --text-2:#45504d; --text-3:#76817d;
  --acc:#0e9c89; --acc-2:#0b7d6e; --acc-ink:#fff;
  --acc-dim:rgba(14,156,137,.08); --acc-line:rgba(14,156,137,.32);
}

/* ===== 2. Legacy-Aliase =====
   Brücke für Bestands-Views/Inline-Styles (Archiv-skin-2-Familie).
   NUR von Blade-Inline-Styles konsumieren — neues CSS nutzt kanonische Namen.
   Abbau view-weise; danach Block löschen. */
:root{
  --ink:var(--text); --ink-2:var(--text-2); --ink-3:var(--text-3);
  --accent:var(--acc); --accent-soft:var(--acc-dim); --accent-text:var(--acc-2);
  --danger:var(--err);
  --ok-soft:color-mix(in srgb,var(--ok) 12%,transparent);
  --warn-soft:color-mix(in srgb,var(--warn) 14%,transparent);
  --danger-soft:color-mix(in srgb,var(--err) 12%,transparent);
  --info-soft:color-mix(in srgb,var(--info) 12%,transparent);
  --sans:var(--font-sans); --head:var(--font-display);
  --hand:var(--acc-2); --mono:var(--font-mono);
}

/* ===== 3. Basis ===== */
*{box-sizing:border-box}
html{scroll-behavior:smooth;color-scheme:dark}
html[data-theme="light"]{color-scheme:light}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-sans);
  font-weight:300;font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(55rem 30rem at 80% -10%,var(--acc-dim),transparent 72%)}
a{color:inherit}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;margin:0}
b,strong{font-weight:600}
button{font-family:inherit}
p,ul,ol,dl,dd,figure{margin:0}
.mono{font-family:var(--font-mono);font-size:12.5px}
.muted{color:var(--text-3)}
img{max-width:100%}
:focus-visible{outline:2px solid var(--acc-line);outline-offset:2px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.is-light{display:none}
html[data-theme="light"] .is-light{display:inline-block}
html[data-theme="light"] .is-dark{display:none}

/* ===== 4. Shell: Topbar · gnav · subnav · Footer · Banner ===== */
.topbar{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:1rem;
  padding:.6rem 1.2rem;background:color-mix(in srgb,var(--bg) 88%,transparent);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:.55rem;font-family:var(--font-display);
  font-weight:700;font-size:1.05rem;text-decoration:none}
.brand .sq{width:13px;height:13px;border-radius:3px;background:var(--acc)}
.brand .sub{font-family:var(--font-mono);font-size:.7rem;color:var(--text-3);font-weight:400;
  border-left:1px solid var(--line-2);padding-left:.55rem}
.tb-right{margin-left:auto;display:flex;align-items:center;gap:.45rem}
.icon-btn{position:relative;width:34px;height:34px;border-radius:var(--radius);
  border:1px solid var(--line-2);background:transparent;color:var(--text);cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;text-decoration:none}
.icon-btn:hover{border-color:var(--acc-line)}
.icon-btn svg{width:17px;height:17px}
.av{width:30px;height:30px;border-radius:50%;background:var(--acc-dim);color:var(--acc);
  border:1px solid var(--acc-line);display:inline-flex;align-items:center;justify-content:center;
  font-family:var(--font-mono);font-size:.7rem;text-decoration:none;overflow:hidden;flex-shrink:0}
.tb-link{display:inline-flex;align-items:center;gap:.35rem;font-family:var(--font-mono);
  font-size:.74rem;color:var(--text-2);border:1px solid var(--line-2);border-radius:var(--radius);
  padding:.4rem .7rem;text-decoration:none}
.tb-link:hover{color:var(--text);border-color:var(--acc-line)}
.tb-link svg{width:14px;height:14px}
.gnav{display:flex;gap:.2rem;padding:0 1.2rem;border-bottom:1px solid var(--line);
  background:var(--bg-2);overflow-x:auto;scrollbar-width:none}
.gnav::-webkit-scrollbar{display:none}
.gnav a{display:inline-flex;align-items:center;gap:.4rem;border-bottom:2px solid transparent;
  color:var(--text-2);font-family:var(--font-mono);font-size:.8rem;padding:.65rem .8rem;
  text-decoration:none;white-space:nowrap}
.gnav a:hover{color:var(--text)}
.gnav a.on{color:var(--text);border-bottom-color:var(--acc)}
.gnav a svg{width:15px;height:15px;flex-shrink:0;opacity:.75}
.gnav a.on svg,.gnav a:hover svg{opacity:1}
.gnav a.on svg{stroke:var(--acc)}
.gnav a.admin{color:var(--acc-2)}
.subnav{display:flex;gap:.15rem;padding:.45rem 1.2rem;border-bottom:1px solid var(--line);
  background:var(--surface);overflow-x:auto;scrollbar-width:none}
.subnav::-webkit-scrollbar{display:none}
.subnav a{border:1px solid transparent;border-radius:99px;color:var(--text-2);
  font-family:var(--font-mono);font-size:.74rem;padding:.3rem .7rem;text-decoration:none;white-space:nowrap}
.subnav a:hover{color:var(--text);border-color:var(--line-2)}
.subnav a.on{color:var(--acc);background:var(--acc-dim);border-color:var(--acc-line)}
.foot{border-top:1px solid var(--line);background:var(--bg-2);margin-top:2.5rem}
.foot .in{max-width:84rem;margin:0 auto;padding:1.1rem 1.2rem;display:flex;align-items:center;
  justify-content:space-between;gap:1rem;flex-wrap:wrap;font-family:var(--font-mono);
  font-size:.74rem;color:var(--text-3)}
.foot a{color:var(--text-2);text-decoration:none}
.foot a:hover{color:var(--text)}
/* Admin-/Auditor-Banner (dezent, Impbar-Stil) */
.admin-banner{background:var(--acc-dim);border-bottom:1px solid var(--acc-line);
  color:var(--acc-2);font-size:.82rem}
.admin-banner-inner{max-width:84rem;margin:0 auto;padding:.45rem 1.2rem;display:flex;
  align-items:center;gap:.6rem;flex-wrap:wrap}
.admin-banner-dot{width:8px;height:8px;border-radius:50%;background:var(--acc);flex-shrink:0}
.admin-banner a{color:var(--acc);text-decoration:underline;text-underline-offset:2px;margin-left:auto}
.admin-banner a:hover{color:var(--acc-2)}
/* Status-Flash (Session-Meldungen) */
.status-flash{display:flex;align-items:center;gap:9px;padding:10px 14px;
  background:var(--ok-soft);color:var(--ok);
  border:1px solid color-mix(in srgb,var(--ok) 35%,transparent);
  border-radius:var(--radius);font-size:13.5px;font-weight:500;margin-bottom:14px}
.status-flash svg{width:15px;height:15px;flex:none}
.status-flash.warn{background:var(--warn-soft);color:var(--warn);
  border-color:color-mix(in srgb,var(--warn) 40%,transparent)}
.status-flash.danger{background:var(--danger-soft);color:var(--err);
  border-color:color-mix(in srgb,var(--err) 40%,transparent)}

/* ===== 5. Portierte Komponenten (app.css skin-2 → Precision) ===== */

/* Layout-Grundgerüst & Seitenkopf */
.wrap{max-width:1180px;margin:0 auto;padding:24px 26px 70px}
.page{display:block}
.pagehead{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:18px;flex-wrap:wrap}
.pagehead h1{font-family:var(--font-display);font-weight:600;font-size:22px;letter-spacing:-.3px;line-height:1.15}
.pagehead .sub{color:var(--text-3);font-size:13.5px;margin-top:4px}
.pagehead .note{color:var(--text-3);font-size:13px}

/* Karten & Grids (Archiv nutzt .card-body, nicht .card-b) */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg)}
.card-h{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--line);gap:10px}
.card-h h2{font-size:14px;font-weight:600;letter-spacing:-.01em}
.card-h .note{font-size:12.5px;color:var(--text-3)}
.card-body,.card-b{padding:18px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.row3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.row4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.stack>*+*{margin-top:16px}

/* Stats */
.stat-card{padding:18px}
.stat-card .label{font-family:var(--font-mono);font-size:11px;letter-spacing:.04em;color:var(--text-3);text-transform:uppercase;font-weight:500}
.stat-card .value{font-family:var(--font-display);font-weight:600;font-size:28px;letter-spacing:-.6px;margin-top:6px;line-height:1.1}
.stat-card .delta{font-size:12px;color:var(--text-3);margin-top:4px}
.stat-card.accent .value{color:var(--acc)}
.stat-card.ok .value{color:var(--ok)}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-mono);font-weight:500;font-size:.78rem;padding:9px 15px;border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);color:var(--text);cursor:pointer;text-decoration:none}
.btn:hover{border-color:var(--acc);color:var(--acc)}
.btn svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.9}
.btn-primary,.btn-accent{background:var(--acc);border-color:var(--acc);color:var(--acc-ink)}
.btn-primary:hover,.btn-accent:hover{background:color-mix(in srgb,var(--acc) 86%,var(--text));border-color:color-mix(in srgb,var(--acc) 86%,var(--text));color:var(--acc-ink)}
.btn-danger{background:var(--err);border-color:var(--err);color:#fff}
.btn-danger:hover{background:color-mix(in srgb,var(--err) 86%,var(--text));border-color:color-mix(in srgb,var(--err) 86%,var(--text));color:#fff}
.btn-ghost{background:transparent;border-color:transparent;color:var(--text-2)}
.btn-ghost:hover{border-color:var(--acc-line);color:var(--text)}
.btn-sm{padding:6px 11px;font-size:.72rem;gap:5px}
.btn-sm svg{width:13px;height:13px}

/* Formulare */
.inp,select.inp,textarea.inp{font-family:var(--font-sans);font-size:14px;color:var(--text);
  background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius);
  padding:9px 11px;width:100%;transition:border-color .12s}
.inp:hover{border-color:var(--line-2)}
.inp:focus{outline:none;border-color:var(--acc)}
textarea.inp{min-height:88px;resize:vertical;font-family:var(--font-mono);font-size:12.5px}
/* Select-Chevron als geschlossenes background-Shorthand (verhindert Kachel-/Doppel-Pfeil-Bug).
   Neutraler Chevron #888 funktioniert in beiden Themes — kein Theme-Override nötig. */
select.inp{cursor:pointer;appearance:none;-webkit-appearance:none;-moz-appearance:none;background:var(--surface-2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23888888' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat calc(100% - 12px) center / 14px 14px;padding-right:36px}
select.inp:focus{border-color:var(--acc)}
select.inp::-ms-expand{display:none}
.inp-date{font-family:var(--font-sans);font-size:13.5px;padding:7px 10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--text);min-width:140px;line-height:1.3;transition:border-color .15s;cursor:pointer}
.inp-date:hover{border-color:var(--acc)}
.inp-date:focus{outline:none;border-color:var(--acc)}
.frow{display:flex;align-items:center;gap:14px;padding:14px 18px;border-top:1px solid var(--line-2)}
.frow:first-child{border-top:0}
.frow .fl{flex:1;min-width:0}
.frow .fl b{display:block;font-size:13.5px;color:var(--text);font-weight:600;margin-bottom:2px}
.frow .fl span{display:block;font-size:12.5px;color:var(--text-3);line-height:1.5}
.frow .fr{flex:none;display:flex;align-items:center;gap:8px}

/* Search-Bar — Terminal-Look (Mono-Input, Akzent-Prompt) */
.searchbar{display:flex;align-items:center;gap:9px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius);padding:8px 12px;transition:border-color .15s}
.searchbar:focus-within{border-color:var(--acc)}
.searchbar::before{content:"~/";font-family:var(--font-mono);font-size:13px;font-weight:600;color:var(--acc);flex:none;opacity:.85}
.searchbar svg{width:17px;height:17px;color:var(--text-3);flex:none}
.searchbar .btn svg{color:inherit;width:16px;height:16px}
.searchbar input{flex:1;border:0;outline:0;background:transparent;color:var(--text);font-family:var(--font-mono);font-size:13.5px;padding:6px 0;caret-color:var(--acc)}
.searchbar input::placeholder{color:var(--text-3);font-family:var(--font-mono)}
.searchbar .filter-btn{background:none;border:0;cursor:pointer;color:var(--text-3);font-family:var(--font-mono);font-size:12.5px;padding:4px 8px;border-radius:var(--radius)}
.searchbar .filter-btn:hover{background:var(--surface-3);color:var(--text)}
/* Safari: native Such-Feld-Dekorationen entfernen (kein Springen/Artefakte) */
.searchbar input[type="search"]{-webkit-appearance:none;appearance:none}
.searchbar input[type="search"]::-webkit-search-decoration,
.searchbar input[type="search"]::-webkit-search-cancel-button,
.searchbar input[type="search"]::-webkit-search-results-button,
.searchbar input[type="search"]::-webkit-search-results-decoration{-webkit-appearance:none;display:none}

/* Tabellen */
.tbl{width:100%;border-collapse:collapse;font-size:13.5px}
.tbl th{text-align:left;font-family:var(--font-mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.03em;color:var(--text-3);font-weight:500;padding:10px 14px;border-bottom:1px solid var(--line)}
.tbl td{padding:12px 14px;border-bottom:1px solid var(--line-2);color:var(--text);vertical-align:middle}
.tbl tr:hover td{background:var(--surface-2)}
.tbl tr:last-child td{border-bottom:0}
.tbl .mono{font-family:var(--font-mono);font-size:12.5px;color:var(--text-2)}
.tbl .empty{text-align:center;color:var(--text-3);padding:36px;font-size:13.5px}

/* Mail-Row (Tabellen-Zeile, klickbar via data-href) */
.mail-row{cursor:pointer}
.mail-row .from{font-weight:600;color:var(--text)}
.mail-row .subj{color:var(--text);font-size:14px}
.mail-row .preview{color:var(--text-3);font-size:12.5px;display:block;margin-top:2px}
.mail-row .meta{color:var(--text-3);font-family:var(--font-mono);font-size:12px;white-space:nowrap}

/* Badges */
.badge{display:inline-flex;align-items:center;gap:5px;padding:2.5px 9px;border-radius:var(--radius);font-size:11.5px;font-weight:600;background:var(--surface-2);color:var(--text-2);font-family:var(--font-mono);letter-spacing:.02em}
.badge .d{width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}
.badge.ok{background:var(--ok-soft);color:var(--ok)}
.badge.warn{background:var(--warn-soft);color:var(--warn)}
.badge.danger{background:var(--danger-soft);color:var(--err)}
.badge.accent{background:var(--acc-dim);color:var(--acc-2)}
.badge.info{background:var(--info-soft);color:var(--info)}

/* Welcome-Page (pre-login) */
.welcome{min-height:calc(100vh - 160px);display:grid;place-items:center;padding:60px 26px}
.welcome-card{max-width:520px;text-align:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:42px 36px}
.welcome-card .icon{width:72px;height:72px;border-radius:var(--radius-lg);background:var(--acc-dim);color:var(--acc);display:grid;place-items:center;margin:0 auto 18px}
.welcome-card .icon svg{width:36px;height:36px;stroke-width:2}
.welcome-card h1{font-family:var(--font-display);font-weight:700;font-size:26px;letter-spacing:-.5px;margin-bottom:8px}
.welcome-card p{color:var(--text-2);font-size:14.5px;line-height:1.6;margin-bottom:22px}
.welcome-card .points{text-align:left;margin:18px 0;padding:14px 18px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-lg);font-size:13.5px;color:var(--text-2);list-style:none}
.welcome-card .points b{color:var(--text);font-weight:600}
.welcome-card .points li{padding:4px 0;display:flex;gap:8px}
.welcome-card .points li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--ok);margin-top:8px;flex:none}
.welcome-card .welcome-note{font-family:var(--font-mono);font-size:12px;color:var(--text-3);margin:18px 0 0;line-height:1.6}
.welcome-card .cta{margin-top:14px}

/* Mail Detail */
.mail-detail{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden}
.mail-detail-h{padding:20px 24px;border-bottom:1px solid var(--line)}
.mail-detail-h h2{font-family:var(--font-display);font-weight:600;font-size:18px;letter-spacing:-.2px;margin-bottom:6px}
.mail-detail-meta{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;font-size:13px;color:var(--text-2);margin-top:14px}
.mail-detail-meta dt{color:var(--text-3);font-weight:500;font-size:11.5px;letter-spacing:.04em;text-transform:uppercase}
.mail-detail-meta dd{color:var(--text);font-family:var(--font-mono);font-size:12.5px;word-break:break-all}
.mail-detail-body{padding:20px 24px;font-size:14px;line-height:1.65;color:var(--text);max-height:60vh;overflow:auto}
.mail-detail-body pre{font-family:var(--font-mono);font-size:12.5px;color:var(--text-2);white-space:pre-wrap;word-break:break-word;background:var(--surface-2);padding:14px;border-radius:var(--radius);margin:8px 0}
.mail-detail-actions{padding:14px 20px;border-top:1px solid var(--line);display:flex;gap:10px;flex-wrap:wrap;align-items:center;background:var(--surface-2)}
.mail-detail-actions .note{margin-left:auto;font-size:12px;color:var(--text-3)}
.att-list{margin-top:14px}
.att-item{display:flex;align-items:center;gap:10px;padding:8px 12px;border:1px solid var(--line);border-radius:var(--radius);margin-top:6px;background:var(--surface)}
.att-item svg{width:18px;height:18px;color:var(--text-3);flex:none}
.att-item .name{flex:1;font-size:13.5px;color:var(--text);word-break:break-all}
.att-item .size{font-family:var(--font-mono);font-size:12px;color:var(--text-3);flex:none}

/* Filter-Chips */
.chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:var(--radius-lg);background:var(--surface-2);color:var(--text-2);font-family:var(--font-mono);font-size:12px;font-weight:500;border:1px solid var(--line)}
.chip.active{background:var(--acc-dim);color:var(--acc-2);border-color:var(--acc-line)}
.chip button{background:none;border:0;color:inherit;cursor:pointer;padding:0;display:grid;place-items:center}
.chip button svg{width:11px;height:11px;stroke-width:2.5}

/* Pagination-Rahmen (Karten-Fuß) */
.pager{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-top:1px solid var(--line-2);gap:8px;flex-wrap:wrap}
.pager .info{font-family:var(--font-mono);font-size:12px;color:var(--text-3)}
.pager .nav{display:flex;gap:6px}

/* Footer-Note (in-content, z. B. unter Listen) */
.foot-note{text-align:center;color:var(--text-3);font-size:12px;margin-top:40px;padding-top:18px;border-top:1px solid var(--line)}
.foot-note a{color:var(--text-2);text-decoration:none}
.foot-note a:hover{color:var(--text)}

/* Empty State */
.empty-state{text-align:center;padding:60px 26px;color:var(--text-3)}
.empty-state .icon{width:60px;height:60px;margin:0 auto 16px;border-radius:var(--radius-lg);background:var(--surface-2);color:var(--text-3);display:grid;place-items:center}
.empty-state .icon svg{width:30px;height:30px;stroke-width:1.6}
.empty-state h3{font-family:var(--font-display);font-weight:600;font-size:17px;color:var(--text);margin-bottom:6px}
.empty-state p{font-size:13.5px;color:var(--text-2);max-width:380px;margin:0 auto;line-height:1.6}

/* Info-Box (Erklärung) & Tip-Box (kompakter Hinweis) */
.info-box{background:var(--info-soft);border:1px solid color-mix(in srgb,var(--info) 40%,transparent);border-radius:var(--radius);padding:12px 14px;display:flex;gap:11px;font-size:13px;color:var(--text-2);line-height:1.55;margin-bottom:18px}
.info-box svg{width:18px;height:18px;color:var(--info);flex:none;margin-top:2px}
.info-box b{color:var(--text);font-weight:600}
.tip{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius);padding:8px 12px;font-size:12.5px;color:var(--text-3);line-height:1.5;margin-top:10px}
.tip b{color:var(--text-2);font-weight:600}

/* QO7-Checkbox (Häkchen in var(--acc-ink) — funktioniert in beiden Themes) */
input[type="checkbox"]{appearance:none;-webkit-appearance:none;width:16px;height:16px;flex:none;
  border:1px solid var(--line-2);border-radius:var(--radius);background:var(--surface-2);cursor:pointer;
  display:inline-grid;place-content:center;vertical-align:middle;margin:0;transition:background .12s,border-color .12s}
input[type="checkbox"]:hover{border-color:var(--acc)}
input[type="checkbox"]:checked{background:var(--acc);border-color:var(--acc)}
input[type="checkbox"]:checked::before{content:"";width:9px;height:5px;border-left:2px solid var(--acc-ink);border-bottom:2px solid var(--acc-ink);transform:rotate(-45deg) translate(1px,-1px)}

/* Spinner */
.spinner{display:inline-block;width:16px;height:16px;border:2px solid var(--acc-dim);border-top-color:var(--acc);border-radius:50%;animation:spin .9s linear infinite;vertical-align:middle}
@keyframes spin{to{transform:rotate(360deg)}}

/* QO7-Datepicker-Popup (datepicker.js — Panel-Stand, ohne Gradient/Glow) */
.qo7-dp-input{cursor:pointer;caret-color:transparent}
.qo7-dp-popup{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:0 14px 34px -14px rgba(0,0,0,.5);padding:12px;width:268px;font-family:var(--font-sans);color:var(--text);user-select:none;animation:qo7-dp-pop .12s ease-out}
@keyframes qo7-dp-pop{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
.qo7-dp-head{display:flex;align-items:center;gap:4px;margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid var(--line-2)}
.qo7-dp-title{flex:1;text-align:center;font-family:var(--font-display);font-weight:700;font-size:14px;color:var(--text);letter-spacing:.01em}
.qo7-dp-nav{flex:none;width:28px;height:28px;display:grid;place-items:center;background:none;border:1px solid transparent;border-radius:var(--radius);color:var(--text-2);font-size:18px;line-height:1;cursor:pointer;transition:background .12s,color .12s,border-color .12s;font-family:var(--font-sans)}
.qo7-dp-nav:hover{background:var(--line-2);color:var(--acc);border-color:var(--line)}
.qo7-dp-today{flex:none;width:24px;height:24px;display:grid;place-items:center;background:none;border:1px solid transparent;border-radius:50%;color:var(--text-3);cursor:pointer;font-size:10px;line-height:1;transition:background .12s,color .12s}
.qo7-dp-today:hover{background:var(--acc-dim);color:var(--acc)}
.qo7-dp-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:4px}
.qo7-dp-weekdays span{text-align:center;font-size:10.5px;font-weight:600;color:var(--text-3);text-transform:uppercase;letter-spacing:.06em;padding:3px 0}
.qo7-dp-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.qo7-dp-day{aspect-ratio:1/1;display:grid;place-items:center;background:none;border:1px solid transparent;border-radius:var(--radius);color:var(--text);font-size:12.5px;font-weight:500;cursor:pointer;transition:background .1s,color .1s,border-color .1s;font-family:var(--font-sans)}
.qo7-dp-day:hover:not(:disabled){background:var(--acc-dim);color:var(--acc-2);border-color:var(--acc-line)}
.qo7-dp-day.is-today{color:var(--acc);font-weight:700;border-color:color-mix(in srgb,var(--acc) 30%,transparent)}
.qo7-dp-day.is-selected{background:var(--acc);color:var(--acc-ink);font-weight:700;border-color:transparent}
.qo7-dp-day.is-selected:hover{background:var(--acc);color:var(--acc-ink)}
.qo7-dp-day-other{color:var(--text-3);opacity:.4}
.qo7-dp-day.is-disabled{color:var(--text-3);opacity:.35;cursor:not-allowed}

/* Pagination (qo7) — ersetzt Laravel-Default */
.qo7pg{display:inline-flex;align-items:center;gap:4px;flex-wrap:wrap}
.qo7pg-btn{display:inline-grid;place-items:center;min-width:32px;height:32px;padding:0 9px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--text-2);font-family:var(--font-mono);font-size:13px;font-weight:500;text-decoration:none;transition:border-color .12s,color .12s,background .12s}
.qo7pg-btn svg{width:14px;height:14px}
.qo7pg-btn:hover{border-color:var(--acc);color:var(--acc)}
.qo7pg-btn.is-active{background:var(--acc);border-color:var(--acc);color:var(--acc-ink)}
.qo7pg-btn.is-disabled{opacity:.4;cursor:default;color:var(--text-3)}
.qo7pg-dots{padding:0 4px;color:var(--text-3);font-size:13px}

/* ===== 6. wm-Komponenten (Webmail-Port: Listen & Lesebereich) =====
   Aus webmail-precision.css portiert; ohne position:sticky, da das Archiv
   page-scroll statt Pane-Scroll nutzt (Listen leben in .card-Containern). */
.wm-listhead{display:flex;justify-content:space-between;align-items:center;gap:.6rem;padding:.65rem 1rem;border-bottom:1px solid var(--line);font-family:var(--font-mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-3)}
.wm-row{display:grid;grid-template-columns:auto 1fr auto;gap:.6rem;padding:.7rem 1rem;border-bottom:1px solid var(--line);cursor:pointer;transition:background .12s;text-decoration:none;color:inherit}
.wm-row:last-child{border-bottom:0}
.wm-row:hover{background:var(--surface-2)}
.wm-row.sel{background:var(--acc-dim);box-shadow:inset 2px 0 0 var(--acc)}
.wm-row .from{font-size:.88rem}
.wm-row .subj{font-size:.84rem;color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wm-row .snip{font-size:.78rem;color:var(--text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wm-row .meta{text-align:right;font-family:var(--font-mono);font-size:.68rem;color:var(--text-3);white-space:nowrap}
.wm-empty{display:grid;place-items:center;padding:3rem 1.2rem;color:var(--text-3);font-family:var(--font-mono);font-size:.84rem;gap:.6rem;text-align:center}
.wm-empty svg{width:34px;height:34px;opacity:.5}
.wm-toolbar{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center;padding:.6rem 1.1rem;border-bottom:1px solid var(--line)}
.wm-rhead{padding:1.1rem 1.3rem;border-bottom:1px solid var(--line)}
.wm-rhead h2{font-family:var(--font-display);font-weight:600;font-size:1.25rem;margin:0 0 .6rem}
.wm-rhead .meta{font-family:var(--font-mono);font-size:.76rem;color:var(--text-3);display:flex;flex-direction:column;gap:.2rem}
.wm-rbody{padding:1.3rem;font-size:.93rem;color:var(--text-2);line-height:1.7}
.wm-rbody iframe{width:100%;border:0;background:#fff;border-radius:var(--radius)}
.wm-ratt{padding:1rem 1.3rem;border-top:1px solid var(--line);display:flex;gap:.5rem;flex-wrap:wrap}
.att-chip{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--font-mono);font-size:.74rem;border:1px solid var(--line-2);border-radius:var(--radius);padding:.3rem .6rem;color:var(--text-2);text-decoration:none}
.att-chip:hover{border-color:var(--acc-line);color:var(--text)}
.att-chip svg{width:13px;height:13px;color:var(--acc)}
.wm-secure-banner{display:flex;align-items:center;gap:.5rem;margin-top:.7rem;padding:.45rem .7rem;background:var(--ok-soft);border:1px solid color-mix(in srgb,var(--ok) 30%,transparent);border-radius:var(--radius);color:var(--ok);font-family:var(--font-mono);font-size:.78rem}
.wm-secure-banner svg{width:14px;height:14px;flex:none}

/* ===== 7. Responsive ===== */
@media(max-width:880px){
  .row2,.row3,.row4{grid-template-columns:1fr;gap:12px}
  .wrap{padding:16px 16px 60px}
  .tbl{font-size:12.5px}
  .tbl th,.tbl td{padding:9px 10px}
  .pagehead h1{font-size:19px}
  .welcome-card{padding:28px 22px}
  .frow{flex-wrap:wrap}
  .mail-detail-meta{grid-template-columns:1fr;gap:2px 0}
  .mail-detail-meta dt{margin-top:8px}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}html{scroll-behavior:auto}}
