/* Organas – helles Design, Akzent #FEC600. Schrift (Inter) wird lokal mitgeliefert. */
@font-face{font-family:"Inter";font-style:normal;font-weight:100 900;font-display:swap;
  src:url("../fonts/inter-latin-wght-normal.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Inter";font-style:normal;font-weight:100 900;font-display:swap;
  src:url("../fonts/inter-latin-ext-wght-normal.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

:root{
  --accent:#FEC600; --accent-hover:#EDB800; --accent-soft:#FFF6D1; --accent-ink:#1F1A00; --accent-text:#7A5C00;
  --bg:#F7F6F2; --surface:#FFFFFF; --surface-2:#FAF9F5; --line:#E8E5DC; --line-strong:#D6D2C4;
  --text:#1F1D17; --muted:#6B685D; --faint:#A19D8F;
  --ok:#1E7A46; --ok-soft:#E3F4EA; --warn:#9A5B00; --warn-soft:#FFF0D6; --danger:#C0392B; --danger-soft:#FCE8E5; --info:#245FA8; --info-soft:#E4EEFA;
  --radius:14px; --radius-sm:10px; --shadow:0 1px 2px rgba(31,29,23,.05),0 4px 16px rgba(31,29,23,.04);
  --sidebar:248px; --tabbar:62px; --safe-b:env(safe-area-inset-bottom,0px);
  --font:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;font:400 15px/1.5 var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-feature-settings:"cv11","ss03"}
h1,h2,h3{margin:0;line-height:1.25;font-weight:650;letter-spacing:-.01em}
h1{font-size:1.6rem}h2{font-size:1.05rem}h3{font-size:1rem}
p{margin:0}a{color:var(--accent-text);text-decoration:none}a:hover{text-decoration:underline}
img{max-width:100%}code{font:.9em ui-monospace,Menlo,Consolas,monospace;background:var(--surface-2);padding:.1em .35em;border-radius:6px;border:1px solid var(--line)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}
[hidden]{display:none!important}
.icon{width:1.15em;height:1.15em;flex:none;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.18em}
.icon.inline{width:1em;height:1em}.faint{color:var(--faint)}
.muted{color:var(--muted)}.small{font-size:.85rem}.big{font-size:1.9rem;font-weight:700}.big-number{font-size:2rem;font-weight:700;letter-spacing:-.02em}
.block{display:block}.nowrap{white-space:nowrap}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.grow{flex:1;min-width:0}.center{text-align:center;align-items:center}.push-right{margin-left:auto}.struck{text-decoration:line-through;color:var(--muted)}
.stack{display:flex;flex-direction:column;gap:14px}
.row{display:flex;align-items:center}.row.gap,.gap{gap:10px}.wrap{flex-wrap:wrap}.between{justify-content:space-between}
.hint{display:block;color:var(--muted);font-size:.8rem;margin-top:4px}
.link{color:var(--accent-text);text-decoration:underline;cursor:pointer}

/* Layout */
.app{display:grid;grid-template-columns:var(--sidebar) 1fr;min-height:100vh}
.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:6px;padding:18px 14px;background:var(--surface);border-right:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:1.15rem;color:var(--text);padding:4px 8px 16px}.brand:hover{text-decoration:none}
.brand img{height:42px;width:auto;object-fit:contain}
.nav{display:flex;flex-direction:column;gap:2px}.nav-bottom{margin-top:auto;border-top:1px solid var(--line);padding-top:10px}
.nav a{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--radius-sm);color:var(--text);font-weight:500}
.nav a:hover{background:var(--surface-2);text-decoration:none}
.nav a.active{background:var(--accent-soft);color:var(--accent-ink);font-weight:650}
.nav a.active .icon{color:var(--accent-text)}
.main{min-width:0;display:flex;flex-direction:column}
.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:12px;padding:12px 28px;background:rgba(247,246,242,.88);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--line)}
.brand-mobile{display:none;padding:0}.brand-mobile img{height:34px}
.content{width:100%;max-width:1080px;margin:0 auto;padding:26px 28px 60px;display:flex;flex-direction:column;gap:18px}
.content-plain{max-width:none;padding:0}
.tabbar{display:none}
.count{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;margin-left:auto;border-radius:999px;background:var(--accent);color:var(--accent-ink);font-size:.72rem;font-weight:700}
.bell{position:relative}.bell .count{position:absolute;top:-4px;right:-4px;margin:0;min-width:18px;height:18px}
.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap}
.page-head h1{margin-top:2px}
.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px}
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}
.dash-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:18px;align-items:start}.dash-grid>.card{margin:0;min-width:0}.card-wide{grid-column:1/-1}
.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:16px 0}
.stat{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);color:var(--text);box-shadow:var(--shadow);transition:transform .12s,border-color .12s}
.stat:hover{text-decoration:none;border-color:var(--accent);transform:translateY(-2px)}
.stat>.icon{width:1.3em;height:1.3em;padding:9px;box-sizing:content-box;border-radius:12px;background:var(--accent-soft);color:var(--accent-text);flex:none}
.stat>span{display:flex;flex-direction:column;min-width:0}.stat strong{font-size:1.35rem;letter-spacing:-.02em;line-height:1.15;white-space:nowrap}.stat small{color:var(--muted);font-size:.78rem}
.stat-hot{border-color:var(--accent)}.stat-hot>.icon{background:var(--accent);color:var(--accent-ink)}
.fin-pair{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:6px}.fin-pair .fin-total strong{font-size:1.45rem}
.list-tight .list-item{padding-top:5px;padding-bottom:5px}
.form-narrow{max-width:560px}.form-wide{max-width:780px}

/* Karten, Listen */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow);min-width:0}
.card-quiet{background:var(--surface-2);box-shadow:none}
.card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.card.list{padding:4px 0}
.list{list-style:none;margin:0;padding:0}.list-flush{margin:0 -18px}.card.list .list-item{padding-left:18px;padding-right:18px}
.list-item{display:flex;align-items:center;gap:12px;padding:12px 18px;border-top:1px solid var(--line)}
.list-item:first-child{border-top:0}.list-item a.grow{color:inherit;display:block}.list-item a.grow:hover{text-decoration:none}
.list-item:hover{background:var(--surface-2)}
.list-item strong{display:block;font-weight:600}
.list-item.unread,.list-item.unseen{background:#FFFBEA}.list-item.unseen strong{font-weight:750}
.card > .list:not(.list-flush) .list-item{padding-left:0;padding-right:0}
.empty{color:var(--muted);padding:18px 4px;text-align:center}
.file-ico{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:var(--accent-soft);color:var(--accent-text);flex:none}
.avatar{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--accent);color:var(--accent-ink);font-weight:700;font-size:.85rem;flex:none}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex:none}.dot-lg{width:12px;height:12px}
.dot-own{background:var(--accent)}.dot-shared{background:#3B82C4}
.notif-dot{width:9px;height:9px;border-radius:50%;background:transparent;flex:none}.unread .notif-dot{background:var(--accent)}
.kv{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;margin:0}.kv dt{color:var(--muted)}.kv dd{margin:0;font-weight:550}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--surface);color:var(--text);font:600 .92rem var(--font);cursor:pointer;transition:background .15s,border-color .15s,transform .05s;text-decoration:none!important;white-space:nowrap}
.btn:hover{background:var(--surface-2)}.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}
.btn-ghost{background:transparent;border-color:transparent;color:var(--text)}.btn-ghost:hover{background:rgba(31,29,23,.06)}
.btn-sm{padding:6px 11px;font-size:.84rem}.btn-block{width:100%;padding:13px}
.btn-icon{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:50%;border:0;background:transparent;color:var(--text);cursor:pointer;padding:0}.btn-icon:hover{background:rgba(31,29,23,.07);text-decoration:none}
.danger,.btn.danger{color:var(--danger)}button.danger:hover{background:var(--danger-soft)}
.inline{display:inline}form.inline{display:inline-flex}

/* Formulare */
.field{display:flex;flex-direction:column;gap:5px;min-width:0}.field>span{font-weight:600;font-size:.85rem}
.field em{font-style:normal;font-weight:400}
.field-row{display:flex;gap:12px;flex-wrap:wrap}.field-row>.field{flex:1 1 180px}.field-row>.w-sm{flex:0 0 100px;min-width:90px}.field-row>.w-md{flex:0 0 170px}
.field-inline{flex-direction:column}
.input,select.input,textarea.input{width:100%;padding:10px 12px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font:inherit;transition:border-color .15s,box-shadow .15s}
.input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(254,198,0,.3)}
textarea.input{resize:vertical;min-height:44px;line-height:1.5}
.input:disabled{background:var(--surface-2);color:var(--muted)}
.input-code{font-size:1.9rem;letter-spacing:.5em;text-align:center;font-weight:700;padding:14px}
.check{display:flex;align-items:flex-start;gap:10px;cursor:pointer}.check input{margin-top:.3em;accent-color:var(--accent);width:17px;height:17px}
.checks,.check-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px}
.drop{display:flex;flex-direction:column;align-items:center;gap:6px;padding:22px;border:2px dashed var(--line-strong);border-radius:var(--radius);background:var(--surface-2);cursor:pointer;text-align:center;font-weight:600}
.drop:hover,.drop.over{border-color:var(--accent);background:var(--accent-soft)}.drop input{position:absolute;opacity:0;width:1px;height:1px}.drop .icon{width:1.6em;height:1.6em;color:var(--accent-text)}.drop-sm{padding:12px}
.file-btn{cursor:pointer}
.sticky-actions{position:sticky;bottom:calc(var(--tabbar) + var(--safe-b) + 8px);display:flex;gap:10px;padding:10px;background:rgba(255,255,255,.92);backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}

/* Segmente, Chips */
.seg{display:inline-flex;gap:3px;padding:3px;background:#ECE9DF;border-radius:12px;max-width:100%}
.seg>a,.seg>button,.seg>label{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border:0;border-radius:9px;background:transparent;color:var(--text);font:600 .88rem var(--font);cursor:pointer;white-space:nowrap}
.seg>a:hover{text-decoration:none;background:rgba(255,255,255,.55)}
.seg>.active,.seg>a.active,.seg>button.active{background:var(--surface);box-shadow:0 1px 3px rgba(0,0,0,.12)}
.seg input{position:absolute;opacity:0;width:0;height:0}.seg>label:has(input:checked){background:var(--surface);box-shadow:0 1px 3px rgba(0,0,0,.12)}
.seg-scroll{overflow-x:auto;scrollbar-width:none}.seg-scroll::-webkit-scrollbar{display:none}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{display:inline-flex;align-items:center;gap:5px;padding:2px 10px;border-radius:999px;background:#EFEDE4;color:var(--text);font-size:.78rem;font-weight:600;white-space:nowrap}
.chip .icon{width:.95em;height:.95em}
.chip-btn{padding:5px 13px;background:var(--surface);border:1px solid var(--line);font-size:.84rem}.chip-btn:hover{text-decoration:none;background:var(--surface-2)}
.chip-on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.chip-ref{background:var(--accent-soft);color:var(--accent-text);font-variant-numeric:tabular-nums}
.chip-ok{background:var(--ok-soft);color:var(--ok)}.chip-warn{background:var(--warn-soft);color:var(--warn)}.chip-danger{background:var(--danger-soft);color:var(--danger)}.chip-private{background:var(--accent-soft,#fff3c4);color:#7a5c00}
.chip-accent{background:var(--accent-soft);color:var(--accent-text)}.chip-off{background:#EEE;color:#777}

/* Hinweise */
.alert{padding:12px 14px;border-radius:var(--radius-sm);border:1px solid;font-size:.92rem}
.alert-success{background:var(--ok-soft);border-color:#BFE4CC;color:#14502D}.alert-error{background:var(--danger-soft);border-color:#F2C3BC;color:#8A261B}
.alert-warn{background:var(--warn-soft);border-color:#F2D9A5;color:#6B3F00}.alert-info{background:var(--info-soft);border-color:#C3D9F2;color:#1B4A82}

/* Menü */
.menu{position:relative}.menu summary{list-style:none;cursor:pointer}.menu summary::-webkit-details-marker{display:none}
.menu-pop{position:absolute;right:0;top:calc(100% + 4px);z-index:30;min-width:210px;padding:6px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px rgba(31,29,23,.15)}
.menu-pop a,.menu-pop button{display:flex;align-items:center;gap:10px;width:100%;padding:9px 11px;border:0;border-radius:8px;background:none;color:var(--text);font:500 .9rem var(--font);text-align:left;cursor:pointer}
.menu-pop a:hover,.menu-pop button:hover{background:var(--surface-2);text-decoration:none}.menu-pop .danger{color:var(--danger)}
.menu-sm summary{width:30px;height:30px}

/* Suche */
.search{position:relative;flex:1;max-width:460px;display:flex;align-items:center}
.search .icon{position:absolute;left:12px;color:var(--faint);pointer-events:none}
.search input{width:100%;padding:9px 12px 9px 38px;border:1px solid var(--line-strong);border-radius:999px;background:var(--surface);font:inherit}
.search input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(254,198,0,.3)}
.search-page{max-width:none}.search-inline{max-width:300px;flex:0 1 300px}
.pager{display:flex;align-items:center;justify-content:space-between;gap:10px}

/* Schnellzugriff */
.quick{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px}
.quick-item{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 8px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);color:var(--text);font-weight:600;font-size:.88rem;text-align:center;box-shadow:var(--shadow);transition:transform .12s,border-color .12s}
.quick-item:hover{text-decoration:none;border-color:var(--accent);transform:translateY(-2px)}
.quick-item .icon{width:1.5em;height:1.5em;padding:8px;box-sizing:content-box;border-radius:12px;background:var(--accent);color:var(--accent-ink)}
.checkbox{display:grid;place-items:center;width:24px;height:24px;border-radius:7px;border:2px solid var(--line-strong);background:var(--surface);color:var(--accent-ink);cursor:pointer;padding:0;flex:none}
.checkbox:hover{border-color:var(--accent)}.checkbox.checked{background:var(--accent);border-color:var(--accent)}.checkbox .icon{width:14px;height:14px;stroke-width:3}

/* Zeitleiste (Akte) */
.timeline{list-style:none;margin:0;padding:0 0 0 22px;position:relative;display:flex;flex-direction:column;gap:14px}
.timeline::before{content:"";position:absolute;left:15px;top:6px;bottom:6px;width:2px;background:var(--line)}
.tl-item{position:relative;display:flex;gap:14px;align-items:flex-start;scroll-margin-top:80px}
.tl-dot{position:absolute;left:-22px;top:12px;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--surface);border:2px solid var(--line-strong);color:var(--muted);z-index:1}
.tl-dot .icon{width:14px;height:14px}
.tl-note .tl-dot{border-color:#E7C95C;color:var(--accent-text)}.tl-todo .tl-dot{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-text)}
.tl-mail_in .tl-dot{border-color:#7FB2E5;color:var(--info)}.tl-mail_out .tl-dot{border-color:#7FB2E5;background:var(--info-soft);color:var(--info)}
.tl-document .tl-dot{border-color:#B9B4A3}.tl-letter_out .tl-dot{border-color:var(--ok);background:var(--ok-soft);color:var(--ok)}
.tl-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:10px;padding:14px 16px}
.tl-item:target .tl-body{border-color:var(--accent);box-shadow:0 0 0 3px rgba(254,198,0,.35)}
.tl-system{align-items:center}.tl-system .tl-dot{top:50%;transform:translateY(-50%);width:22px;height:22px;left:-18px;background:var(--bg);border-width:1px}.tl-system .tl-body{padding:0 0 0 8px;background:none;border:0;box-shadow:none}
.tl-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.tl-head .menu{margin-left:auto}
.tl-type{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--accent-text)}
.tl-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:10px}
.is-done .tl-body{opacity:.75}
.todo-row{display:flex;align-items:center;gap:12px}
.prose{white-space:normal;overflow-wrap:anywhere;line-height:1.6}.prose p+p{margin-top:.7em}
.prose-clip{color:var(--muted)}.more>summary{cursor:pointer;list-style:none}.more>summary::-webkit-details-marker{display:none}.more[open]>summary .prose-clip,.more[open]>summary .link{display:none}.more[open]>.prose{margin-top:4px}
.hdr{display:grid;grid-template-columns:auto 1fr;gap:3px 14px;margin:0;font-size:.88rem}.hdr dt{color:var(--muted)}.hdr dd{margin:0;overflow-wrap:anywhere}
.files{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.files li{display:flex;align-items:center;gap:10px;padding:8px 10px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm)}
.composer{padding:14px}.composer .seg{align-self:flex-start;margin-bottom:12px}
.quote{border-left:3px solid var(--accent);padding-left:12px;color:var(--muted)}

/* Datei-Vorschau */
.files li.has-thumb{align-items:flex-start;flex-wrap:wrap}
.file-thumb{position:relative;flex:0 0 120px;width:120px;height:160px;overflow:hidden;border:1px solid var(--line-strong);border-radius:8px;background:#fff;box-shadow:var(--shadow);display:block}
.file-thumb:hover{border-color:var(--accent)}
.file-thumb canvas{display:none;width:100%;height:auto}.file-thumb.ready canvas{display:block}
.file-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.file-thumb .thumb-label{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:.72rem;font-weight:700;color:var(--muted)}
.file-thumb.ready .thumb-label{display:none}
.has-thumb>.icon{display:none}
.app-foot{padding:6px 28px calc(18px + var(--safe-b));text-align:center;color:var(--faint);font-size:.75rem}

/* Postfach */
.mail-layout{display:grid;grid-template-columns:200px 1fr;gap:18px;align-items:start}
.folders{display:flex;flex-direction:column;gap:2px;position:sticky;top:78px}
.folders a{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:var(--radius-sm);color:var(--text);font-weight:500}.folders a:hover{background:var(--surface);text-decoration:none}
.folders a.active{background:var(--accent-soft);font-weight:650}
.mail-main{min-width:0;display:flex;flex-direction:column;gap:14px}
.mail-row a{display:flex;flex-direction:column;gap:2px}.mail-top{display:flex;justify-content:space-between;gap:10px}
.mail-subject{color:var(--muted);font-size:.9rem;display:block}.unseen .mail-subject{color:var(--text)}
.mail-title{font-size:1.3rem;overflow-wrap:anywhere}
.mail-frame{width:100%;border:0;min-height:200px;display:block;background:#fff}
.mail-text{font-size:.95rem}.mail-compose .input{font-size:1rem}
.mascot{display:block;margin:0 auto}

/* Postfach: Mehrfachauswahl */
.bulkbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 14px;margin-bottom:10px;position:sticky;top:64px;z-index:15}
.bulk-actions{display:flex;align-items:center;justify-content:flex-end;gap:2px;flex-wrap:wrap}.bulkbar .check{white-space:nowrap}.bulkbar{margin-bottom:12px}
.mail-check{width:18px;height:18px;accent-color:var(--accent);flex:none;cursor:pointer}
.mail-row.selected{background:var(--accent-soft)}
.bulk-pop{min-width:300px;padding:14px}
.bulk-assign .menu-pop{right:0}

/* Kalender */
.cal{padding:14px}
.cal-head{display:flex;align-items:center;gap:6px;margin-bottom:10px}.cal-head h2{flex:1;text-align:center;font-size:1.1rem}
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}
.cal-wd{padding:6px;text-align:center;font-size:.74rem;font-weight:700;color:var(--muted);border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface-2)}
.cal-day{display:flex;flex-direction:column;gap:3px;min-height:96px;padding:5px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--text);overflow:hidden}
.cal-day:hover{text-decoration:none;background:var(--surface-2)}.cal-day.other{background:#FAFAF7;color:var(--faint)}.cal-day.weekend{background:#FCFBF8}
.cal-num{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;font-size:.84rem;font-weight:600}
.cal-day.today .cal-num{background:var(--accent);color:var(--accent-ink);font-weight:750}
.cal-day.selected{box-shadow:inset 0 0 0 2px var(--accent)}
.cal-evs{display:flex;flex-direction:column;gap:2px;min-width:0}
.cal-ev{display:block;padding:1px 6px;border-radius:5px;font-size:.72rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cal-ev.own{background:var(--accent-soft);color:var(--accent-ink);border-left:3px solid var(--accent)}.cal-ev.shared{background:var(--info-soft);color:#17406F;border-left:3px solid #3B82C4}
.cal-more{font-size:.7rem;color:var(--muted);padding-left:4px}.cal-dots{display:none;gap:3px;justify-content:center;flex-wrap:wrap}
.cal-legend{margin-top:10px;display:flex;align-items:center;gap:6px}
.ev-item{align-items:flex-start}.ev-item .dot{margin-top:6px}

/* Brief / PDF */
.letter-form{max-width:780px}.letter-body{min-height:260px;font-size:1rem}
.pdf-frame{width:100%;height:78vh;min-height:480px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#eee}
.pdf-card{display:flex;flex-direction:column;gap:12px}
.sig-box{position:relative;border:1px dashed var(--line-strong);border-radius:var(--radius-sm);background:#fff;touch-action:none}
.sig-canvas{display:block;width:100%;height:auto;aspect-ratio:3/1;cursor:crosshair;touch-action:none}
.sig-hint{position:absolute;left:14px;bottom:8px;font-size:.78rem;color:var(--faint);pointer-events:none}.sig-box.has-ink .sig-hint{display:none}
.sig-current,.sig-preview{padding:10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:repeating-conic-gradient(#f4f2ea 0 25%,#fff 0 50%) 0 0/16px 16px}
.sig-current img,.sig-preview img{max-height:90px;display:block}
.inline-details>summary{cursor:pointer;color:var(--accent-text);font-weight:600}

/* Login */
body.auth{background:linear-gradient(180deg,var(--accent-soft),var(--bg) 55%);min-height:100vh}
.auth-wrap{max-width:420px;margin:0 auto;padding:clamp(24px,8vh,80px) 20px 40px;display:flex;flex-direction:column;gap:14px}
.auth-card{display:flex;flex-direction:column;gap:14px;background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:28px 24px;box-shadow:var(--shadow);text-align:center}
.auth-card .field,.auth-card .stack{text-align:left}.lead{color:var(--muted)}
.auth-foot{text-align:center;color:var(--faint);font-size:.8rem}

.divider{display:flex;align-items:center;gap:12px;color:var(--faint);font-size:.8rem;margin:2px 0 12px}.divider::before,.divider::after{content:"";flex:1;height:1px;background:var(--line)}
.passkey-login{display:flex;flex-direction:column;gap:6px}.passkey-login [data-passkey-msg]{color:var(--danger);min-height:1.2em}

/* Mobil */
@media (max-width:860px){
  .app{display:block}.sidebar{display:none}
  .topbar{padding:10px 16px;padding-top:calc(10px + env(safe-area-inset-top,0px))}.brand-mobile{display:flex}.topbar .search{display:none}.topbar{justify-content:space-between}
  .content{padding:18px 16px calc(var(--tabbar) + var(--safe-b) + 32px)}
  .tabbar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:grid;grid-template-columns:repeat(5,1fr);height:calc(var(--tabbar) + var(--safe-b));padding-bottom:var(--safe-b);background:rgba(255,255,255,.96);backdrop-filter:blur(12px);border-top:1px solid var(--line)}
  .tabbar a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--muted);font-size:.7rem;font-weight:600}.tabbar a:hover{text-decoration:none}
  .tabbar a .icon{width:1.45em;height:1.45em}.tabbar a.active{color:var(--accent-ink)}
  .tabbar a.active .icon{background:var(--accent);padding:4px 14px;width:1.45em;height:1.45em;box-sizing:content-box;border-radius:999px}
  h1{font-size:1.4rem}.grid-2{grid-template-columns:1fr}.card-wide{grid-column:auto}
  .quick{grid-template-columns:repeat(2,1fr)}
  .fin-pair{grid-template-columns:1fr}
  .hide-sm{display:none}.btn-sm .hide-sm{display:none}
  .mail-layout{grid-template-columns:1fr}.folders{flex-direction:row;overflow-x:auto;position:static;gap:6px;scrollbar-width:none}.folders a{white-space:nowrap;background:var(--surface);border:1px solid var(--line)}.folders a.active{border-color:var(--accent)}
  .cal-day{min-height:62px;padding:3px}.cal-evs{display:none}.cal-dots{display:flex}.cal{padding:10px}
  .search-inline{flex:1 1 100%;max-width:none}.sticky-actions{bottom:calc(var(--tabbar) + var(--safe-b) + 6px)}
  .list-flush{margin:0 -14px}.card{padding:14px}.card.list .list-item{padding-left:14px;padding-right:14px}
  .timeline{padding-left:18px}.timeline::before{left:12px}.tl-dot{left:-18px;width:26px;height:26px}
  .form-narrow,.form-wide{max-width:none}
  .app-foot{padding-bottom:calc(var(--tabbar) + var(--safe-b) + 14px)}
  .menu-pop{position:fixed;left:12px;right:12px;top:auto;bottom:calc(var(--tabbar) + var(--safe-b) + 8px)}
  .bulkbar{top:56px}.bulk-pop{min-width:0}
  .pdf-frame{height:65vh}
}
@media (max-width:480px){.field-row>.w-sm,.field-row>.w-md{flex:1 1 100%}.todo-row{flex-wrap:wrap}}
@media (display-mode:standalone){body{overscroll-behavior-y:none}}
@media print{.sidebar,.topbar,.tabbar,.btn,.composer,.toolbar{display:none!important}.app{display:block}.card{box-shadow:none}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* Speicheranzeige */
.storage{display:flex;flex-direction:column;gap:6px}
.bar{height:10px;border-radius:999px;background:#ECE9DF;overflow:hidden}
.bar>span{display:block;height:100%;background:var(--accent);border-radius:999px;transition:width .3s}
.bar-warn>span{background:#E8920C}.bar-danger>span{background:var(--danger)}
[data-passkey-add]{flex-direction:column;align-items:stretch}

.avatar{overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover;display:block}
.avatar-xl{width:88px;height:88px;font-size:2rem}
.avatar-row{display:flex;gap:var(--s-4,1rem);align-items:center;flex-wrap:wrap}

.app-foot a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.changelog{margin-block:var(--s-3,.75rem)}.changelog summary{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;cursor:pointer;list-style:none}
.changelog summary::-webkit-details-marker{display:none}.changelog h3{margin:1rem 0 .25rem;font-size:.95rem}
.changes{margin:.25rem 0 0;padding-left:1.1rem;display:grid;gap:.35rem}

.shop-item{padding-block:.2rem}.shop-check{display:flex;align-items:center;gap:.8rem;flex:1;min-height:52px;background:none;border:0;padding:0;font:inherit;color:inherit;text-align:left;cursor:pointer}
.shop-check .checkbox{width:28px;height:28px}.shop-text{font-size:1.05rem}.shop-qty{color:var(--muted);font-weight:600}
.is-done .shop-text,.list-item.is-done strong{text-decoration:line-through;color:var(--muted)}
.quick-add .input{min-height:46px}
@media (max-width:860px){.tabbar{display:flex!important;overflow-x:auto;scrollbar-width:none}.tabbar::-webkit-scrollbar{display:none}.tabbar a{flex:1 0 64px}}

.fin-total{display:flex;flex-direction:column;gap:2px}.fin-total strong{font-size:1.9rem;letter-spacing:-.02em}
.money{white-space:nowrap;font-variant-numeric:tabular-nums}.neg{color:var(--danger)}.pos{color:var(--ok)}
.dash-fin li a strong{display:block}

.ai-assist{display:flex;flex-direction:column;gap:10px}.ai-bar{display:flex;gap:8px;flex-wrap:wrap}.ai-bar select{width:auto;max-width:100%}.ai-bar .grow{min-width:180px}
.ai-result{padding:14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2);display:flex;flex-direction:column;gap:10px}
.ai-cols{display:grid;grid-template-columns:1fr 1fr;gap:14px}.ai-cols h3{margin:0 0 4px;font-size:.85rem;color:var(--muted)}
.ai-text{white-space:pre-wrap;word-break:break-word;font-size:.95rem;line-height:1.5;max-height:340px;overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px}
.ai-text mark{background:#d9f3dc;color:inherit;border-radius:3px;padding:0 1px}.ai-text del{background:#fbe0dc;color:inherit;text-decoration:line-through;border-radius:3px}
.text-danger{color:var(--danger)}
@media (max-width:700px){.ai-cols{grid-template-columns:1fr}}

.shop-add{display:flex;gap:8px;margin-bottom:6px}.shop-add .input{min-height:44px}
.shop-nav{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}.shop-nav::-webkit-scrollbar{display:none}.shop-nav .chip{white-space:nowrap;text-decoration:none}
.shop-store .card-head h2{display:flex;align-items:center;gap:8px}.shop-foot{display:flex;justify-content:flex-end;margin-top:8px}
.shop-item.is-done{opacity:.55}.shop-item.is-done .shop-text,.shop-item.is-done .shop-qty{color:var(--faint,#9a9a92)}
.shop-store{scroll-margin-top:12px}

/* 1.8 – Unterkalender */
.chip.active{background:var(--accent);color:var(--accent-ink)}.chip-ghost{background:transparent;border:1px dashed var(--line-strong,#CFCBBB);color:var(--muted)}
.cal-ev{background:color-mix(in srgb,var(--c,#3B82C4) 16%,#fff);border-left:3px solid var(--c,#3B82C4);color:var(--text)}
.swatches{display:flex;gap:6px;align-items:center}.swatch{position:relative;cursor:pointer}.swatch input{position:absolute;opacity:0;inset:0}
.swatch span{display:block;width:24px;height:24px;border-radius:50%;background:var(--c);box-shadow:inset 0 0 0 2px #fff,0 0 0 1px var(--line)}
.swatch input:checked+span{box-shadow:inset 0 0 0 2px #fff,0 0 0 2px var(--text)}.swatch input:focus-visible+span{outline:2px solid var(--info);outline-offset:2px}
.cal-form .input{min-width:0}.cal-sub{display:flex;flex-direction:column;gap:8px;padding-top:10px;border-top:1px solid var(--line)}
.checks{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 14px;font-size:.84rem}.checks .ok{color:var(--ok)}.checks .bad{color:var(--danger,#B3261E)}

/* 1.8 – Mappe: Reiter & Anhänge */
.tabs{display:flex;gap:4px;margin:18px 0 12px;border-bottom:1px solid var(--line)}
.tabs a{display:inline-flex;align-items:center;gap:6px;padding:9px 14px;border-bottom:3px solid transparent;margin-bottom:-1px;color:var(--muted);font-weight:650}
.tabs a:hover{text-decoration:none;color:var(--text)}.tabs a.active{color:var(--text);border-bottom-color:var(--accent)}
.tab-count{font-style:normal;font-size:.75rem;background:var(--surface-2);border:1px solid var(--line);border-radius:999px;padding:0 7px}
.chip em{font-style:normal;opacity:.65;margin-left:2px}
.file-search{margin-left:auto;min-width:200px}.file-search .input{min-height:36px}
.file-card{align-items:center;gap:12px}.file-card .file-thumb{flex:0 0 72px;width:72px;height:96px}
.file-thumb-ico{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--muted);background:var(--surface-2)}.file-thumb-ico small{font-weight:700;font-size:.68rem}
.file-meta{min-width:0;display:flex;flex-direction:column;gap:2px}.file-meta .truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cal-form{align-items:center}.cal-form .input{width:auto;flex:1 1 180px}.cal-form input[name=name]{flex:2 1 220px}
.cal-manage select[name=move_to]{flex:1 1 220px;width:auto}
.file-grid{margin:0;padding-left:0;padding-right:0}.file-grid .list-item{padding-left:16px;padding-right:16px}

/* 1.10 – Rezepte, Kochmodus, Timer */
.timer-bar{position:sticky;top:0;z-index:50;display:flex;flex-wrap:wrap;gap:8px;padding:8px 16px;padding-top:calc(8px + env(safe-area-inset-top,0px));background:var(--text,#22201a);color:#fff}
.timer-bar[hidden]{display:none}.topbar{top:var(--timer-h,0px)}
.timer-chip{display:flex;align-items:center;gap:10px;padding:4px 6px 4px 12px;border-radius:999px;background:rgba(255,255,255,.12)}
.timer-name{color:#fff;font-weight:650}.timer-left{font-variant-numeric:tabular-nums;font-size:1.15rem;color:var(--accent,#FEC600)}
.timer-btn{border:0;border-radius:999px;padding:5px 12px;background:rgba(255,255,255,.18);color:#fff;font:inherit;font-size:.8rem;font-weight:650;cursor:pointer}
.timer-btn:hover{background:rgba(255,255,255,.3)}
.timer-bar.is-ringing{background:#B3261E;animation:timer-pulse 1s ease-in-out infinite}.timer-chip.is-ringing .timer-left{color:#fff}
@keyframes timer-pulse{50%{background:#E0453B}}
.recipe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;margin-top:14px}
.recipe-card{display:flex;flex-direction:column;gap:4px;color:var(--text)}.recipe-card:hover{text-decoration:none;border-color:var(--accent)}
.recipe-ico{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:var(--accent);color:var(--accent-ink);margin-bottom:6px}
.steps-list{margin:0;padding-left:1.3em;display:flex;flex-direction:column;gap:12px}.steps-list li::marker{font-weight:700;color:var(--accent-ink)}
.ing-list .check{width:100%}.btn-lg{padding:12px 20px;font-size:1.05rem}.servings-form{align-items:flex-end}.w-auto{width:auto}
.step-rows{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.step-row{display:flex;gap:12px;padding:12px;border:1px solid var(--line);border-radius:var(--radius-sm,10px);background:var(--surface-2)}
.step-num{flex:none;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--accent);color:var(--accent-ink);font-weight:750}
.step-timer{align-items:flex-end}
.cook{max-width:720px;margin:0 auto;display:flex;flex-direction:column;gap:14px}
.cook-head{display:flex;align-items:center;gap:12px}.cook-head strong{flex:1;min-width:0}
.cook-bar{height:6px;border-radius:99px;background:var(--line);overflow:hidden}.cook-bar span{display:block;height:100%;width:0;background:var(--accent);transition:width .4s}
.cook-screen{display:flex;flex-direction:column;align-items:center;gap:18px;text-align:center;padding:12px 0 24px}
.cook-screen[hidden]{display:none}
.cook-ings{width:100%;text-align:left}.cook-ings .check{width:100%;padding:6px 0;font-size:1.05rem}
.cook-step-no{margin:0;color:var(--muted);font-weight:650;letter-spacing:.04em;text-transform:uppercase;font-size:.85rem}
.cook-step-text{margin:0;font-size:clamp(1.5rem,5vw,2.2rem);line-height:1.35;font-weight:650;white-space:pre-line}
.cook-actions{display:flex;flex-direction:column;gap:12px;width:100%;margin-top:10px}
.btn-xl{padding:16px 24px;font-size:1.2rem;border-radius:16px;min-height:60px}
.cook-actions .btn-xl{width:100%}
.mascot{height:min(256px,38vh);width:auto;animation:mascot-pop .6s cubic-bezier(.3,1.6,.5,1)}.mascot-big{height:min(320px,42vh)}
@keyframes mascot-pop{0%{transform:scale(.4) rotate(-8deg);opacity:0}100%{transform:none;opacity:1}}
.praise-text{margin:0;font-size:clamp(1.4rem,4.5vw,2rem);font-weight:700;line-height:1.3;max-width:20ch}
.cook-praise h1{margin:0}
@media (prefers-reduced-motion:reduce){.mascot,.timer-bar.is-ringing{animation:none}}
@media (max-width:860px){.timer-bar{padding:6px 12px;padding-top:calc(6px + env(safe-area-inset-top,0px))}}

/* Haushaltsplan */
.progress{height:10px;border-radius:99px;background:var(--line);overflow:hidden;margin-top:6px}
.progress span{display:block;height:100%;background:var(--accent);border-radius:99px;transition:width .4s}
.chore-edit{list-style:none;padding:0 0 6px 46px;border:0}
.chore-edit summary{cursor:pointer}
.chore-edit form{margin-top:8px}
.chore.is-done strong{text-decoration:line-through;color:var(--muted)}
.btn-danger{color:var(--danger);border-color:var(--danger-soft)}.btn-danger:hover{background:var(--danger-soft)}
@media (max-width:640px){.quick-add .field-inline.grow{flex-basis:100%}}

/* Ersatzdomain-Hinweis, unsichere Verbindung */
.domain-notice{display:flex;gap:10px;align-items:flex-start;margin:0;padding:10px 18px;background:var(--info-soft);color:var(--info);font-size:.88rem;line-height:1.4;border-bottom:1px solid #CFE0F4}
.domain-notice .icon{flex:none;margin-top:2px}
.auth-card.insecure{text-align:center}.auth-card.insecure .mascot{margin-bottom:6px}

/* Postfach: alle im Ordner auswählen, Seitengröße */
.select-all-banner{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;justify-content:center;margin:0 0 10px;padding:9px 14px;border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--accent-text);font-size:.9rem}
.select-all-banner[hidden]{display:none}
.select-all-banner .link{background:none;border:0;padding:0;cursor:pointer;font:inherit;font-weight:600;color:inherit;text-decoration:underline}
.per-page{align-items:center;margin-left:auto}
.mail-list.list-flush{margin-left:0;margin-right:0;padding:0;overflow:hidden}

/* Finanzen: Budget & Fixkosten */
.budget-sum{display:grid;gap:6px;margin:0 0 12px}
.budget-sum>div{display:flex;justify-content:space-between;gap:12px;align-items:baseline}
.budget-sum dt{color:var(--muted)}.budget-sum dd{margin:0;font-variant-numeric:tabular-nums;font-weight:650}
.budget-sum .minus dd{color:var(--muted)}
.budget-sum .total{border-top:1px solid var(--line);padding-top:8px;margin-top:2px}
.budget-sum .total dt{color:var(--text);font-weight:700}.budget-sum .total dd{font-size:1.35rem;font-weight:800}
.budget-sum .total.neg dd{color:var(--danger)}
.budget-list .budget-pending{background:#EFEDE6;border-radius:var(--radius-sm);margin:3px 0;padding-left:10px;padding-right:10px}
.budget-list .budget-pending .file-ico{background:#E2DFD5}
.budget-list .budget-done{opacity:.75}.budget-list .budget-done .file-ico{color:var(--ok)}
.budget-list .list-item{border-bottom:0}
.rec-item.is-pending{background:#F6F4EE}
.rec-actions{list-style:none;padding:0 0 10px;border-bottom:1px solid var(--line)}
.rec-book{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:4px 0 8px;padding:8px 10px;background:var(--accent-soft);border-radius:var(--radius-sm)}
.input-sm{width:auto;max-width:140px;padding:6px 9px;font-size:.9rem}
.rec-actions details{margin-top:2px}

/* Einkauf: Artikel bearbeiten */
.shop-item{flex-wrap:wrap}
.shop-editform{flex:0 0 100%;display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;padding:10px 0 4px}
.shop-editform[hidden]{display:none}
.shop-item.is-editing{background:var(--surface-2)}

/* Termine in Mappen, Notizen zum Termin */
.ev-case{list-style:none;padding:0;border-bottom:1px solid var(--line)}.ev-case:last-child{border-bottom:0}
.ev-case .list-item{border-bottom:0}
.ev-notes-box{margin:0 0 10px 30px}.ev-notes{display:grid;gap:8px;margin-top:8px}
.ev-note{padding:8px 10px;background:var(--surface-2);border-radius:var(--radius-sm)}
.ev-note-head{display:flex;gap:8px;align-items:center}.ev-note-head form{margin-left:auto}
.ev-note-form{display:grid;gap:6px;justify-items:start}.ev-note-form textarea{width:100%}
.row.between{justify-content:space-between;align-items:center}
ul.card.list-flush{margin-left:0;margin-right:0;padding:0;overflow:hidden}

/* Bubblenas-Logo: gelegentliche Bewegungen */
.logo-anim{position:relative;display:inline-block;flex:none;transform-origin:50% 90%;cursor:pointer}
.brand .logo-anim img,.brand-mobile .logo-anim img{position:absolute;inset:0;width:100%;height:100%}
.logo-straw{transform-origin:28.3% 15.6%}
.logo-anim.do-wiggle .logo-straw{animation:logo-wiggle 1.1s ease-in-out}
.logo-anim.do-hop{animation:logo-hop .9s cubic-bezier(.3,.7,.4,1)}
.logo-anim.do-hop .logo-straw{animation:logo-wiggle .9s ease-in-out .15s}
.logo-anim.do-roll{animation:logo-roll 1.4s ease-in-out}
.logo-anim.do-laugh{animation:logo-laugh 1.2s ease-in-out}
.logo-anim.do-laugh .logo-straw{animation:logo-wiggle .6s ease-in-out 2}
@keyframes logo-wiggle{0%,100%{transform:rotate(0)}15%{transform:rotate(-16deg)}35%{transform:rotate(12deg)}55%{transform:rotate(-9deg)}75%{transform:rotate(5deg)}}
@keyframes logo-hop{0%{transform:translateY(0) scale(1,1)}15%{transform:translateY(0) scale(1.1,.88)}40%{transform:translateY(-12px) scale(.94,1.08)}65%{transform:translateY(0) scale(1.08,.9)}80%{transform:translateY(-4px) scale(.98,1.03)}100%{transform:translateY(0) scale(1,1)}}
@keyframes logo-roll{0%{transform:translateX(0) rotate(0)}35%{transform:translateX(10px) rotate(200deg)}70%{transform:translateX(10px) rotate(360deg)}100%{transform:translateX(0) rotate(360deg)}}
@keyframes logo-laugh{0%,100%{transform:scale(1) rotate(0)}12%{transform:scale(1.12,.92) rotate(-4deg)}24%{transform:scale(.94,1.08) rotate(4deg)}36%{transform:scale(1.1,.94) rotate(-4deg)}48%{transform:scale(.96,1.06) rotate(3deg)}60%{transform:scale(1.06,.97) rotate(-2deg)}}
@media (prefers-reduced-motion:reduce){.logo-anim,.logo-anim *{animation:none!important}}

/* Kontostand neben der Buchung */
.fin-amounts{display:flex;flex-direction:column;align-items:flex-end;gap:1px;text-align:right;min-width:112px}
.fin-after{font-size:.8rem;font-variant-numeric:tabular-nums;white-space:nowrap}
.fin-after b{font-weight:700}

/* Wünsche & Vorschläge */
.sugg .mail-check{margin-right:4px}
.prompt-box{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92rem;line-height:1.55;min-height:140px}

.fin-forecast{display:block;color:var(--muted,#6b7280);margin-top:2px}.fin-forecast .icon{width:14px;height:14px;vertical-align:-2px}

/* Hauptmappen & Untermappen */
.case-main{background:linear-gradient(90deg,rgba(254,198,0,.10),transparent 60%)}
.case-sub{padding-left:34px;position:relative}
.case-sub::before{content:"";position:absolute;left:20px;top:0;bottom:50%;width:8px;border-left:2px solid var(--line,#e5e0d4);border-bottom:2px solid var(--line,#e5e0d4);border-bottom-left-radius:6px}
.case-sub .file-ico{width:30px;height:30px}
.sub-attach{margin-top:12px;align-items:flex-end}
.stack-sm{display:grid;gap:10px}

/* Startbild */
.splash{display:none;position:fixed;inset:0;z-index:10000;background:#FFFBEF;align-items:center;justify-content:center;
  animation:splash-out .55s ease 2.3s forwards}
.show-splash .splash{display:flex}
.splash-inner{display:flex;flex-direction:column;align-items:center;gap:6px;padding-bottom:6px}
.splash-logo{position:relative;display:block;width:110px;height:178px;margin-bottom:12px;background:no-repeat center/100% 100%;-webkit-transform:translateZ(0);transform-origin:50% 100%;animation:splash-pop .55s cubic-bezier(.2,1.3,.4,1) both,splash-joy .8s ease-in-out .55s infinite}
.splash-logo img{position:absolute;left:0;top:0;width:110px;height:178px;max-width:none;z-index:1}
.splash-logo .sl-straw{transform-origin:22.5% 16%;animation:splash-wiggle .42s ease-in-out .5s infinite}
.sl-spark{position:absolute;width:10px;height:10px;background:#FEC600;border-radius:2px;transform:rotate(45deg);opacity:0;animation:splash-spark 1s ease-out infinite}
.sl-spark.s1{left:-14px;top:70px;animation-delay:.6s}.sl-spark.s2{right:-16px;top:40px;animation-delay:.85s;background:#F2A33A}.sl-spark.s3{right:-6px;top:118px;animation-delay:1.1s;width:8px;height:8px}
.splash-name{font-size:1.7rem;letter-spacing:-.01em;color:#2B2A26;animation:splash-up .5s ease .35s both}
.splash-ver{font-size:.9rem;color:#8A8577;animation:splash-up .5s ease .5s both}
@keyframes splash-out{to{opacity:0;visibility:hidden}}
@keyframes splash-pop{0%{transform:scale(.4) translateY(30px);opacity:0}100%{transform:scale(1) translateY(0);opacity:1}}
@keyframes splash-joy{0%,100%{transform:translateY(0) scale(1.04,.96)}45%{transform:translateY(-16px) scale(.97,1.04) rotate(-2deg)}75%{transform:translateY(-3px) scale(1,1) rotate(2deg)}}
@keyframes splash-wiggle{0%,100%{transform:rotate(-12deg)}50%{transform:rotate(14deg)}}
@keyframes splash-spark{0%{opacity:0;transform:rotate(45deg) scale(.3)}30%{opacity:1;transform:rotate(45deg) scale(1.1)}100%{opacity:0;transform:rotate(45deg) translate(-6px,-14px) scale(.4)}}
@keyframes splash-up{0%{opacity:0;transform:translateY(10px)}100%{opacity:1;transform:translateY(0)}}
@media (prefers-reduced-motion:reduce){.splash{animation-duration:.4s;animation-delay:1.2s}.splash *{animation:none!important;opacity:1!important}}

/* ---------- Dunkle Darstellung (pro Benutzer einstellbar; theme.js setzt html[data-theme]) ---------- */
:root[data-theme="dark"]{
  color-scheme:dark;
  --accent-hover:#FFD43B; --accent-soft:#3B3100; --accent-ink:#1F1A00; --accent-text:#FFD84D;
  --bg:#141310; --surface:#1E1D18; --surface-2:#191813; --line:#33312A; --line-strong:#47453B;
  --text:#EEEBE1; --muted:#A8A495; --faint:#7C7869;
  --ok:#5FCB8B; --ok-soft:#14301F; --warn:#F0B35A; --warn-soft:#3A2907; --danger:#F27A6C; --danger-soft:#3C1A16; --info:#7DB4F0; --info-soft:#152A42;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 4px 16px rgba(0,0,0,.3);
}
:root[data-theme="dark"] .topbar{background:rgba(20,19,16,.88)}
:root[data-theme="dark"] .tabbar{background:rgba(30,29,24,.96)}
:root[data-theme="dark"] .sticky-actions{background:rgba(30,29,24,.94)}
:root[data-theme="dark"] .list-item.unread,:root[data-theme="dark"] .list-item.unseen{background:#2A2410}
:root[data-theme="dark"] .btn-ghost:hover,:root[data-theme="dark"] .btn-icon:hover{background:rgba(255,255,255,.08)}
:root[data-theme="dark"] .seg{background:#2A2922}
:root[data-theme="dark"] .seg>a:hover{background:rgba(255,255,255,.08)}
:root[data-theme="dark"] .seg>.active,:root[data-theme="dark"] .seg>a.active,:root[data-theme="dark"] .seg>button.active,:root[data-theme="dark"] .seg>label:has(input:checked){background:#403E33;box-shadow:0 1px 3px rgba(0,0,0,.4)}
:root[data-theme="dark"] .chip{background:#2C2B24}
:root[data-theme="dark"] .chip.active{background:var(--accent);color:var(--accent-ink)}
:root[data-theme="dark"] .chip-ok{background:var(--ok-soft)}:root[data-theme="dark"] .chip-warn{background:var(--warn-soft)}:root[data-theme="dark"] .chip-danger{background:var(--danger-soft)}
:root[data-theme="dark"] .chip-accent{background:var(--accent-soft)}:root[data-theme="dark"] .chip-off{background:#2C2B24;color:#8D897A}
:root[data-theme="dark"] .alert-success{border-color:#245A38;color:#9BE2B5}:root[data-theme="dark"] .alert-error{border-color:#6A2A22;color:#F7A99E}
:root[data-theme="dark"] .alert-warn{border-color:#5E4412;color:#F5CF8E}:root[data-theme="dark"] .alert-info{border-color:#244B75;color:#A9CDF5}
:root[data-theme="dark"] .domain-notice{border-bottom-color:#244B75}
:root[data-theme="dark"] .menu-pop{box-shadow:0 10px 30px rgba(0,0,0,.5)}
:root[data-theme="dark"] .input:focus,:root[data-theme="dark"] .search input:focus{box-shadow:0 0 0 3px rgba(254,198,0,.28)}
:root[data-theme="dark"] .cal-day.other{background:#16150F}:root[data-theme="dark"] .cal-day.weekend{background:#1A1914}
:root[data-theme="dark"] .cal-ev{background:color-mix(in srgb,var(--c,#3B82C4) 28%,var(--surface))}
:root[data-theme="dark"] .cal-ev.shared{color:var(--info)}
:root[data-theme="dark"] .swatch span{box-shadow:inset 0 0 0 2px var(--surface),0 0 0 1px var(--line)}
:root[data-theme="dark"] .bar{background:#2E2D25}
:root[data-theme="dark"] .ai-text mark{background:#1D4A2A}:root[data-theme="dark"] .ai-text del{background:#5A2620}
:root[data-theme="dark"] .budget-list .budget-pending,:root[data-theme="dark"] .rec-item.is-pending{background:#25241D}
:root[data-theme="dark"] .budget-list .budget-pending .file-ico{background:#34332A}
:root[data-theme="dark"] .pdf-frame{background:#0F0E0B}
:root[data-theme="dark"] .sig-current,:root[data-theme="dark"] .sig-preview{background:repeating-conic-gradient(#d8d5c9 0 25%,#fff 0 50%) 0 0/16px 16px}
:root[data-theme="dark"] .case-main{background:linear-gradient(90deg,rgba(254,198,0,.14),transparent 60%)}
:root[data-theme="dark"] img.invert-dark{filter:invert(1) hue-rotate(180deg)}
/* Hell bleibende Flächen: E-Mail-Inhalt, Dokument-Vorschauen und Unterschriftsfeld */
:root[data-theme="dark"] .mail-frame,:root[data-theme="dark"] .file-thumb,:root[data-theme="dark"] .sig-box{color-scheme:light}

/* ---------- Dokumentansicht in der App ---------- */
.viewer{display:flex;flex-direction:column;gap:10px}
.viewer-bar{position:sticky;top:0;z-index:15;display:flex;align-items:center;gap:6px;padding:8px 10px;padding-top:calc(8px + env(safe-area-inset-top,0px));background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow)}
.viewer-title{font-size:.95rem}
.viewer-zoom{display:inline-flex;gap:2px}.viewer-zoom .btn-icon{font-size:1.3rem;font-weight:600}
.viewer-body{min-height:40vh}
.viewer-img{display:block;max-width:100%;height:auto;margin:0 auto;border-radius:var(--radius-sm);background:var(--surface)}
.pdfv-pages{--zoom:1;display:flex;flex-direction:column;gap:10px;align-items:flex-start;overflow-x:auto;-webkit-overflow-scrolling:touch}
.pdfv-page{width:calc(100% * var(--zoom));flex:none;background:#fff;border:1px solid var(--line-strong);border-radius:6px;box-shadow:var(--shadow);overflow:hidden}
.pdfv-page canvas{display:block;width:100%;height:100%}
@media (max-width:860px){.viewer-bar{top:0}}

/* Datei in andere Mappe verschieben */
.file-move{flex-basis:100%}.file-move>summary{list-style:none;cursor:pointer;display:inline-flex}.file-move>summary::-webkit-details-marker{display:none}
.file-move-form{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:6px}.file-move-form select{flex:1 1 220px;min-width:0}
:root[data-theme="dark"] .nav a.active,:root[data-theme="dark"] .cal-ev.own,:root[data-theme="dark"] .steps-list li::marker,:root[data-theme="dark"] .checkbox{color:var(--accent-text)}
:root[data-theme="dark"] .chip-on,:root[data-theme="dark"] .chip.chip-on{background:var(--accent);color:var(--accent-ink)}
:root[data-theme="dark"] .tabbar a.active{color:var(--accent-text)}:root[data-theme="dark"] .tabbar a.active .icon{color:var(--accent-ink)}

/* ---------- Dialogfenster (Modal) ---------- */
.modal{padding:0;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--text);width:min(680px,calc(100vw - 24px));max-height:calc(100dvh - 24px);box-shadow:0 24px 64px rgba(0,0,0,.35);overflow:hidden}
.modal::backdrop{background:rgba(20,19,16,.55);backdrop-filter:blur(2px)}
.modal[open]{display:flex;flex-direction:column;animation:modal-in .18s ease-out}
@keyframes modal-in{from{opacity:0;transform:translateY(12px) scale(.98)}}
.modal-head{display:flex;align-items:center;gap:8px;padding:10px 12px 10px 18px;border-bottom:1px solid var(--line);flex:none}
.modal-head strong{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1rem}
.modal-frame{display:block;width:100%;height:min(78dvh,760px);border:0;background:var(--surface)}
.modal-load{padding:40px;text-align:center}
body.embed{background:var(--surface);min-height:0}
.content-embed{padding:16px 18px 24px!important;max-width:none!important;margin:0!important}
.embed .page-head>div>p.small:first-child,.embed .page-head h1{display:none}.embed .page-head{margin-bottom:12px}.embed h1{font-size:1.25rem}
.embed .card{box-shadow:none;border:0;padding:0;background:transparent}.embed .form-narrow{max-width:none}
@media (max-width:600px){.modal{width:100vw;max-height:100dvh;height:100dvh;border-radius:0;border:0}.modal-frame{height:calc(100dvh - 53px)}}

/* ---------- Glocke, Theme-Schalter, Schalter, Tour ---------- */
.bell-wrap{position:relative}
.notif-pop{position:absolute;right:0;top:calc(100% + 8px);z-index:60;width:min(400px,calc(100vw - 24px));max-height:min(70dvh,560px);overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 18px 48px rgba(31,29,23,.22)}
.notif-head{position:sticky;top:0;z-index:1;display:flex;align-items:center;gap:6px;padding:10px 10px 10px 16px;background:var(--surface);border-bottom:1px solid var(--line)}
.notif-list{list-style:none;margin:0;padding:0}.notif-list li+li{border-top:1px solid var(--line)}
.notif-list a{display:flex;gap:12px;padding:12px 16px;color:var(--text);text-decoration:none}.notif-list a:hover{background:var(--surface-2)}
.notif-list li.unread{background:var(--accent-soft)}.notif-list li.unread strong::after{content:"";display:inline-block;width:8px;height:8px;margin-left:6px;border-radius:50%;background:var(--accent);vertical-align:middle}
.notif-ico{display:grid;place-items:center;flex:none;width:34px;height:34px;border-radius:50%;background:var(--surface-2);border:1px solid var(--line);color:var(--accent-text)}
.notif-pop .empty{padding:28px 16px}
@media (max-width:860px){.bell-wrap{position:static}.notif-pop{position:fixed;left:8px;right:8px;top:calc(56px + env(safe-area-inset-top,0px));width:auto}}
[data-theme-toggle] .ico-sun{display:none}:root[data-theme="dark"] [data-theme-toggle] .ico-sun{display:inline}:root[data-theme="dark"] [data-theme-toggle] .ico-moon{display:none}
.tab-badge{position:absolute;top:4px;margin-left:16px;min-width:17px;height:17px;padding:0 4px;border-radius:999px;background:var(--danger);color:#fff;font-size:.62rem;line-height:17px;text-align:center;font-weight:700}
.tabbar a{position:relative}
.modal-body{overflow:auto;padding:16px 18px 22px;max-height:calc(100dvh - 90px)}
.pref-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.switch{display:flex;align-items:center;gap:12px;padding:10px 0;cursor:pointer}.switch input{position:absolute;opacity:0;width:0;height:0}
.switch-ui{position:relative;flex:none;width:44px;height:26px;border-radius:999px;background:var(--line-strong);transition:background .15s}
.switch-ui::after{content:"";position:absolute;left:3px;top:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.3);transition:transform .15s}
.switch input:checked+.switch-ui{background:var(--accent)}.switch input:checked+.switch-ui::after{transform:translateX(18px)}
.switch input:focus-visible+.switch-ui{outline:2px solid var(--accent);outline-offset:2px}
.tour{width:min(520px,calc(100vw - 24px));text-align:center}
.tour[open]{display:flex;flex-direction:column}
.tour-top{display:flex;justify-content:space-between;align-items:center;padding:12px 12px 0 18px}
.tour-slides{padding:8px 28px 6px;min-height:290px;display:grid;align-content:center}
.tour-emoji{font-size:3.6rem;line-height:1;margin-bottom:10px;animation:tour-pop .4s cubic-bezier(.3,1.6,.5,1)}
@keyframes tour-pop{from{transform:scale(.6);opacity:0}}
.tour-slide h2{font-size:1.3rem;margin-bottom:8px}.tour-slide p{color:var(--muted);line-height:1.55}
.tour-foot{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;padding:14px 18px 18px}
.tour-foot [data-tour-prev]{justify-self:start}.tour-foot [data-tour-next]{justify-self:end}
.tour-dots{display:inline-flex;gap:6px;grid-column:2}.tour-dots i{width:8px;height:8px;border-radius:50%;background:var(--line-strong);transition:all .2s}.tour-dots i.on{width:22px;border-radius:99px;background:var(--accent)}
@media (prefers-reduced-motion:reduce){.tour-emoji{animation:none}}

/* Bubblenas bekommt im dunklen Modus einen hellen Grund, damit Körper und Strohhalm gut zu sehen sind */
:root[data-theme="dark"] .brand .logo-anim,:root[data-theme="dark"] .logo-anim{background:#FFFBEF;border-radius:12px;box-shadow:0 0 0 3px #FFFBEF}
:root[data-theme="dark"] .mascot{background:#FFFBEF;border-radius:28px;padding:14px 18px;box-sizing:content-box}

/* 1.19 – Kalender neu: Kacheln, KW-Spalte, Wochen-Tageskarten, Agenda */
.cal-head h2 small{font-weight:500;color:var(--muted);font-size:.78em;margin-left:4px}
.cal-grid-kw{grid-template-columns:34px repeat(7,minmax(0,1fr));gap:6px;border:0}
.cal-grid-kw .cal-wd{border:0;background:transparent;padding:2px 0 4px;text-transform:uppercase;letter-spacing:.06em;font-size:.68rem}
.cal-grid-kw .cal-wd-kw{text-align:center}
.cal-kw{display:grid;place-items:center;align-self:stretch;border-radius:10px;background:var(--surface-2);color:var(--muted);font-size:.72rem;font-weight:700;font-variant-numeric:tabular-nums}
.cal-kw:hover{text-decoration:none;background:var(--accent-soft);color:var(--accent-text)}
.cal-grid-kw .cal-day{border:1px solid var(--line);border-radius:12px;min-height:104px;padding:6px;background:var(--surface);transition:border-color .12s,box-shadow .12s,transform .12s}
.cal-grid-kw .cal-day:hover{border-color:var(--accent);background:var(--surface);transform:translateY(-1px)}
.cal-grid-kw .cal-day.other{background:transparent;border-color:transparent;opacity:.55}
.cal-grid-kw .cal-day.weekend:not(.other){background:var(--surface-2)}
.cal-grid-kw .cal-day.today{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}
.cal-grid-kw .cal-day.selected{box-shadow:0 0 0 2px var(--accent)}
.cal-grid-kw .cal-day.today.selected{box-shadow:0 0 0 2px var(--accent)}
.cal-grid-kw .cal-ev{border-left:0;border-radius:6px;padding:2px 6px;background:color-mix(in srgb,var(--c) 18%,var(--surface));box-shadow:inset 3px 0 0 var(--c)}
.cal-grid-kw .cal-ev b{font-weight:700;font-variant-numeric:tabular-nums;opacity:.75}

.week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;outline:none}
.wk-day{display:flex;flex-direction:column;gap:8px;min-width:0;min-height:220px;padding:10px;background:var(--surface);border:1px solid var(--line);border-radius:16px}
.wk-day.weekend{background:var(--surface-2)}
.wk-day.today{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}
.wk-head{display:flex;align-items:baseline;gap:8px}
.wk-wd{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.wk-num{font-size:1.5rem;font-weight:750;letter-spacing:-.02em;line-height:1}
.wk-day.today .wk-num{color:var(--accent-text)}
.wk-add{margin-left:auto;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;color:var(--muted);align-self:center}
.wk-add:hover{text-decoration:none;background:var(--accent);color:var(--accent-ink)}.wk-add .icon{width:15px;height:15px}
.wk-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.wk-ev{display:flex;flex-direction:column;gap:1px;padding:7px 9px;border-radius:10px;background:color-mix(in srgb,var(--c) 15%,var(--surface));box-shadow:inset 3px 0 0 var(--c);color:var(--text);min-width:0}
.wk-ev:hover{text-decoration:none;background:color-mix(in srgb,var(--c) 26%,var(--surface))}
.wk-ev strong{font-size:.84rem;line-height:1.25;overflow-wrap:break-word;hyphens:auto}
.wk-time{font-size:.7rem;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums}
.wk-loc{display:flex;align-items:center;gap:3px;font-size:.72rem;color:var(--muted)}.wk-loc .icon{width:12px;height:12px;flex:none}
.wk-empty{margin:auto 0;text-align:center;color:var(--faint);font-size:.8rem}

.agenda{display:flex;flex-direction:column;gap:14px}
.ag-day{display:grid;grid-template-columns:56px 1fr;gap:12px;align-items:start}
.ag-date{display:flex;flex-direction:column;align-items:center;padding:8px 0;border-radius:14px;background:var(--surface);border:1px solid var(--line);line-height:1.1}
.ag-date strong{font-size:1.45rem;letter-spacing:-.02em}.ag-date span{font-size:.72rem;font-weight:700;color:var(--muted);text-transform:uppercase}.ag-date small{font-size:.68rem;color:var(--faint)}
.ag-day.today .ag-date{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.ag-day.today .ag-date span,.ag-day.today .ag-date small{color:inherit;opacity:.8}
.ag-card{margin:0;position:relative}.ag-today{position:absolute;top:10px;right:12px}

@media (max-width:900px){
  .week{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:10px;padding:2px 2px 10px;margin:0 -2px;-webkit-overflow-scrolling:touch}
  .wk-day{flex:0 0 78%;scroll-snap-align:center;min-height:180px}
}
@media (max-width:640px){
  .cal-grid-kw{grid-template-columns:24px repeat(7,minmax(0,1fr));gap:3px}
  .cal-grid-kw .cal-day{min-height:58px;padding:3px;border-radius:9px;align-items:center}
  .cal-grid-kw .cal-evs{display:none}.cal-grid-kw .cal-dots{display:flex}
  .cal-kw{font-size:.62rem;border-radius:7px}
  .ag-day{grid-template-columns:46px 1fr;gap:8px}
  .seg>a span{display:inline}
}
:root[data-theme="dark"] .cal-grid-kw .cal-day.other{background:transparent}
:root[data-theme="dark"] .cal-grid-kw .cal-day.weekend:not(.other),:root[data-theme="dark"] .wk-day.weekend{background:var(--surface-2)}
:root[data-theme="dark"] .cal-grid-kw .cal-ev{background:color-mix(in srgb,var(--c) 28%,var(--surface))}
