/* Every theme defines colors and shapes for the entire interface. */
:root{color-scheme:dark;--bg:#07080a;--panel:#101216;--surface:#191c22;--hover:#20242b;--text:#f4f4f6;--muted:#a4a7b1;--border:#30343e;--accent:#ff586b;--primary:#c62f43;--on-primary:#fff;--tint:#301b23;--tint-border:#63303e;--glow:#ff40521f;--radius:18px;--app-radius:28px}
:root[data-theme=bordeaux]{--bg:#160c14;--panel:#22151f;--surface:#30202b;--hover:#3a2734;--text:#fff0f5;--muted:#c5abb9;--border:#503544;--accent:#ffadbf;--primary:#92364f;--tint:#422331;--tint-border:#784557;--glow:#d5557726;--radius:26px;--app-radius:36px}
:root[data-theme=gold]{--bg:#0e0e0c;--panel:#191915;--surface:#24241d;--hover:#2d2c23;--text:#f9f3e6;--muted:#b9b19e;--border:#454234;--accent:#e7c17d;--primary:#dfbb7b;--on-primary:#211a0d;--tint:#30291b;--tint-border:#6a5737;--glow:#d3a65f1c;--radius:11px;--app-radius:18px}
:root[data-theme=light]{color-scheme:light;--bg:#f5f3ef;--panel:#fffefa;--surface:#f2efea;--hover:#eae6e0;--text:#292327;--muted:#70666b;--border:#d9d2cc;--accent:#a8223a;--primary:#b72b43;--on-primary:#fff;--tint:#fce8e9;--tint-border:#dcadb5;--glow:#c9395114;--radius:19px;--app-radius:28px}
*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;min-width:320px;min-height:100vh;padding:52px 20px 72px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);background:radial-gradient(ellipse at 15% 0,var(--glow),transparent 50%),var(--bg);line-height:1.5}button,input,textarea,select{font:inherit}button,summary,select{cursor:pointer}button{color:var(--text);font-size:13px;font-weight:650;line-height:1.35;border:1px solid var(--border);border-radius:12px;background:var(--surface);min-height:44px;padding:11px 16px;transition:background .18s,border-color .18s,transform .18s,box-shadow .18s}button:hover:not(:disabled){background:var(--hover);border-color:var(--accent);transform:translateY(-1px)}button:active:not(:disabled){transform:translateY(0) scale(.98)}button:disabled{cursor:not-allowed;opacity:.5}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:4px}[hidden]{display:none!important}
.todo-app{max-width:850px;margin:auto;padding:38px;background:var(--panel);border:1px solid var(--border);border-radius:var(--app-radius);box-shadow:0 28px 90px #0003,inset 0 1px 0 #ffffff06}.app-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:30px}.brand{display:flex;align-items:center;gap:14px;min-width:0}.brand-mark{display:grid;place-items:center;flex-shrink:0;width:53px;height:58px;border:1px solid var(--tint-border);border-radius:16px;background:linear-gradient(145deg,var(--tint),var(--bg));color:var(--accent);font-size:21px;font-weight:850;letter-spacing:-1.5px;box-shadow:0 8px 25px var(--glow)}.brand-caption{display:block;color:var(--muted);font-size:10px;letter-spacing:2px;font-weight:750;margin-bottom:3px}h1{margin:0;font-size:34px;font-weight:750;letter-spacing:-1.3px;line-height:1.15}.settings-button{display:flex;align-items:center;gap:9px;background:transparent;border-radius:999px;flex-shrink:0}.settings-button svg{color:var(--accent)}
.modus-auswahl{display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:5px;background:var(--bg);border:1px solid var(--border);border-radius:16px;margin-bottom:18px}.modus-karte{display:flex;align-items:center;justify-content:center;gap:9px;min-height:47px;border:1px solid transparent;border-radius:11px;font-size:14px;font-weight:650;color:var(--muted);cursor:pointer;user-select:none;transition:.18s}.modus-karte:hover{color:var(--text)}.modus-karte.aktiv{background:var(--tint);border-color:var(--tint-border);color:var(--accent);box-shadow:0 3px 12px #0001}.modus-karte input{accent-color:var(--accent);width:16px;height:16px;margin:0}
.sprach-bereich{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;width:100%;min-height:150px;padding:25px;border:1px solid var(--tint-border);border-radius:var(--radius);background:linear-gradient(135deg,var(--tint),var(--surface));color:var(--text);touch-action:none;user-select:none;font-size:14px;box-shadow:inset 0 1px 0 #ffffff04}.sprach-symbol{display:grid;place-items:center;width:56px;height:56px;border:1px solid var(--tint-border);border-radius:50%;background:var(--panel);font-size:27px;box-shadow:0 5px 20px var(--glow)}.sprach-bereich.aktiv{box-shadow:0 0 0 4px var(--glow);border-color:var(--accent)}.eingabe-bereich{display:flex;gap:10px}.eingabe-bereich input,dialog input[type=date],dialog input[type=time],dialog textarea,dialog select{padding:12px 14px;min-height:48px;border:1px solid var(--border);border-radius:12px;background:var(--bg);color:var(--text);font-size:16px;max-width:100%;min-width:0}.eingabe-bereich input{flex:1}.eingabe-bereich input::placeholder{color:var(--muted)}.hinzufuegen-button,.dialog-actions .hinzufuegen-button{background:var(--primary);border-color:var(--primary);color:var(--on-primary);box-shadow:0 5px 16px var(--glow)}.hinzufuegen-button:hover:not(:disabled),.dialog-actions .hinzufuegen-button:hover:not(:disabled){background:var(--primary);filter:brightness(1.1);box-shadow:0 8px 25px var(--glow)}.aktuelle-eingabe{font-size:12px;color:var(--muted);margin:12px 1px 24px;line-height:1.65}
.push-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin:18px 0 30px;position:relative;overflow:hidden}.push-panel:before{content:"";position:absolute;inset:18px auto 18px 0;width:3px;border-radius:4px;background:var(--accent)}.push-panel strong{font-size:14px;font-weight:700}.push-panel p{margin:7px 0 13px;font-size:12px;color:var(--muted);line-height:1.65}.push-panel #push-status{margin-bottom:0;font-size:11px}.push-actions{display:flex;flex-wrap:wrap;gap:8px}.push-actions button{background:var(--panel);font-size:12px;min-height:40px}.push-actions #enable-push{color:var(--accent);border-color:var(--tint-border);background:var(--tint)}
.datum{font-size:12px;font-weight:650;letter-spacing:.5px;text-transform:capitalize;color:var(--muted);margin:26px 0 13px;display:flex;align-items:center;gap:12px}.datum:after{content:"";height:1px;background:var(--border);flex:1}.todo-zeile{display:grid;grid-template-columns:22px minmax(0,1fr);gap:12px 14px;align-items:start;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:19px 20px;margin:0 0 12px;box-shadow:0 4px 12px #0001;transition:background .18s,border-color .18s}.todo-zeile:hover{border-color:var(--tint-border);background:var(--hover)}.todo-checkbox{appearance:none;-webkit-appearance:none;width:21px;height:21px;border-radius:7px;border:1.5px solid var(--muted);background:var(--panel);margin:3px 0 0;cursor:pointer;display:grid;place-items:center}.todo-checkbox:checked{border-color:var(--primary);background:var(--primary)}.todo-checkbox:checked:after{content:"✓";font-size:15px;font-weight:800;color:var(--on-primary);line-height:1}.todo-inhalt{min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:5px}.todo-uhrzeit{font-size:10px;color:var(--muted);font-weight:600;letter-spacing:.7px}.todo-aufgabe{font-weight:600;font-size:15px;line-height:1.55;overflow-wrap:anywhere}.appointment{font-size:12px;color:var(--accent);font-weight:650;display:inline-block;margin-top:3px;padding:4px 9px;border-radius:7px;background:var(--tint)}.row-actions{grid-column:2;display:flex;gap:7px;flex-wrap:wrap;align-items:center}.row-actions button{min-height:38px;padding:8px 12px;font-size:11px;background:var(--panel);border-radius:10px}.row-actions .bell{font-size:17px;min-width:39px;line-height:1}.row-actions .bell.on{background:var(--tint);border-color:var(--tint-border);box-shadow:0 0 12px var(--glow)}.row-actions .loeschen-button{margin-left:auto;color:var(--accent)}.reminder-note{font-size:11px;font-weight:650;color:var(--accent)}.recognition-warning{font-size:12px;color:var(--accent)}.todo-zeile.upcoming{border-color:var(--tint-border);box-shadow:inset 3px 0 var(--accent),0 4px 16px var(--glow)}.todo-zeile.erledigt{background:var(--panel)}.erledigt .todo-aufgabe{color:var(--muted);text-decoration:line-through}.erledigt-text{font-size:10px;color:var(--muted);border:1px solid var(--border);border-radius:99px;padding:2px 8px}.geloeschte-bereich{border-top:1px solid var(--border);margin-top:34px;padding-top:24px}.geloeschte-bereich h2{font-size:14px;color:var(--muted);font-weight:650;margin:0 0 12px}.geloeschte-bereich>button{font-size:11px;min-height:37px;color:var(--accent);background:transparent}.geloeschte-liste{list-style:none;padding:0;margin:14px 0 0}.geloeschte-liste li{font-size:12px;padding:8px 0;color:var(--muted);text-decoration:line-through;overflow-wrap:anywhere}.leere-liste{text-align:center;padding:28px 16px;font-size:13px;color:var(--muted);border:1px dashed var(--border);border-radius:var(--radius)}.footnote{font-size:11px;line-height:1.7;color:var(--muted);overflow-wrap:anywhere}#storage-status{margin-bottom:0;margin-top:24px}
dialog{width:calc(100% - 28px);max-width:540px;max-height:calc(100dvh - 32px);overflow:auto;overscroll-behavior:contain;border:1px solid var(--border);border-radius:24px;background:var(--panel);color:var(--text);padding:27px;box-shadow:0 30px 100px #0007}dialog::backdrop{background:#000a;backdrop-filter:blur(8px)}dialog h2{font-size:25px;letter-spacing:-.8px;margin:0 0 18px}dialog label{display:flex;flex-direction:column;gap:8px;margin:17px 0;font-size:13px;font-weight:650}dialog textarea{resize:vertical;width:100%}dialog input[type=date],dialog input[type=time]{width:100%}.date-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.check-label{flex-direction:row;align-items:center}.check-label input{width:20px;height:20px;accent-color:var(--accent)}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.secondary{color:var(--accent);background:var(--tint);border-color:var(--tint-border)}.settings-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.settings-heading h2{margin:0;font-size:29px}.icon-button{display:grid;place-items:center;padding:0;min-width:42px;font-size:25px;border-radius:50%;font-weight:400}.settings-section{border-top:1px solid var(--border);padding-top:21px;margin-top:24px}.settings-section h3{font-size:14px;margin:0 0 6px;font-weight:700}.settings-copy{font-size:12px;line-height:1.7;color:var(--muted);margin:0 0 16px}.theme-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.theme-card{padding:10px;text-align:left;border-radius:16px;min-width:0;background:var(--surface)}.theme-card strong{display:block;font-size:12px;margin:9px 2px 3px}.theme-card small{display:block;color:var(--muted);font-size:10px;font-weight:450;line-height:1.5;margin:0 2px 3px}.theme-card[aria-pressed=true]{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.theme-swatch{display:grid;grid-template-columns:1fr;gap:6px;padding:13px;min-height:83px;border-radius:10px;background:#0a0b0e;border:1px solid #ffffff12}.theme-swatch i{display:block;height:8px;border-radius:4px;background:#292b32;width:72%}.theme-swatch i:first-child{background:#ef5065;width:35%;height:13px}.theme-swatch i:last-child{width:88%}.swatch-bordeaux{background:#251420;border-radius:18px}.swatch-bordeaux i{background:#563447;border-radius:8px}.swatch-bordeaux i:first-child{background:#e392ac}.swatch-gold{background:#191913;border-radius:4px}.swatch-gold i{background:#454030;border-radius:2px}.swatch-gold i:first-child{background:#deba79}.swatch-light{background:#f4f0eb;border-color:#e5dbd1}.swatch-light i{background:#d9d1c9}.swatch-light i:first-child{background:#b92d47}.settings-section input[type=time]{max-width:180px;font-size:21px;font-weight:650;letter-spacing:1px}.settings-section details{border:1px solid var(--border);border-radius:13px;padding:14px;background:var(--surface);font-size:12px}.settings-section summary{color:var(--accent);font-weight:650}.settings-section ol{padding-left:18px;color:var(--muted)}.settings-section li{margin:10px 0;line-height:1.65}.settings-section select{width:100%}
[data-theme=bordeaux] .sprach-bereich{background:radial-gradient(ellipse at top left,#64304455,transparent 80%),var(--surface);border-radius:28px}[data-theme=bordeaux] .brand-mark{border-radius:50%}[data-theme=bordeaux] button:not(.theme-card):not(.icon-button){border-radius:999px}[data-theme=bordeaux] .todo-zeile{padding:22px}[data-theme=gold] h1,[data-theme=gold] dialog h2{font-family:Georgia,serif;font-weight:500;letter-spacing:-.8px}[data-theme=gold] .brand-mark{border-radius:8px}[data-theme=gold] .sprach-bereich{background:linear-gradient(125deg,#40331d33,transparent),var(--surface)}[data-theme=gold] .todo-zeile{box-shadow:none;border-left:2px solid var(--tint-border)}[data-theme=gold] .brand-caption{letter-spacing:2.7px}[data-theme=light] .todo-app{box-shadow:0 20px 65px #492c3012}[data-theme=light] .todo-zeile{box-shadow:0 4px 13px #41263408}[data-theme=light] .sprach-bereich{background:linear-gradient(135deg,#fff4f1,var(--surface))}
@media(min-width:720px){.todo-zeile{grid-template-columns:22px minmax(0,1fr) auto}.row-actions{grid-column:3;grid-row:1;flex-wrap:nowrap;align-self:center}.row-actions .loeschen-button{margin-left:0}.todo-app{padding:38px 36px}}
@media(max-width:520px){body{padding:14px 10px 36px}.todo-app{padding:23px 17px;border-radius:22px}.app-header{gap:10px;margin-bottom:25px}.brand{gap:10px}.brand-mark{width:41px;height:46px;font-size:18px;border-radius:13px}.brand-caption{font-size:8px;letter-spacing:1.4px}h1{font-size:27px;letter-spacing:-1px}.settings-button{min-height:44px;width:44px;padding:10px;justify-content:center}.settings-button span{display:none}.modus-karte{font-size:13px;min-height:44px}.sprach-bereich{min-height:143px;padding:21px 14px;font-size:12px}.push-panel{padding:16px;margin-bottom:25px}.push-actions button{flex-grow:1}.todo-zeile{padding:15px 13px;gap:10px}.todo-aufgabe{font-size:14px}.row-actions button{padding:8px 10px}.row-actions .edit-button{flex-grow:1}.eingabe-bereich{flex-direction:column}.eingabe-bereich input{width:100%}dialog{padding:23px 17px;border-radius:22px}.theme-grid{gap:9px}.theme-card{padding:8px}.theme-card small{font-size:9px}.theme-swatch{min-height:76px;padding:11px}.dialog-actions button{flex:1}.date-fields{gap:8px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

.sprach-symbol svg{width:27px;height:27px;color:var(--accent)}.push-title{display:flex;align-items:center;gap:8px}.push-title svg{color:var(--accent);flex-shrink:0}.row-actions button{display:inline-flex;align-items:center;justify-content:center;gap:6px}.row-actions svg{width:15px;height:15px;flex-shrink:0}.row-actions .bell svg{width:18px;height:18px;color:var(--accent)}.appointment{display:inline-flex;align-items:center;gap:6px}.appointment svg{width:13px;height:13px;flex-shrink:0}.geloeschte-liste .trash-empty{text-decoration:none}

.fullscreen-banner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;padding:12px 14px;margin:0 0 18px;background:var(--tint);border:1px solid var(--tint-border);border-radius:var(--radius);font-size:12px;color:var(--muted)}.fullscreen-banner button{color:var(--accent);background:var(--panel)}dialog label.fullscreen-option{flex-direction:row;align-items:center;gap:12px;cursor:pointer}html:fullscreen{overflow-y:auto;background:var(--bg)}body{min-height:100dvh;padding-top:max(24px,env(safe-area-inset-top));padding-bottom:max(32px,env(safe-area-inset-bottom));padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right))}

:root[data-theme=red-flow]{--bg:#13080c;--panel:#1b1017;--surface:#2b1722;--hover:#381d2b;--border:#59303d;--accent:#ff8d9e;--primary:#bc304d;--muted:#c4a8b2;--tint:#3a1a29;--tint-border:#774153;--glow:#c6244b33;--page-gradient:linear-gradient(180deg,#08090d 0%,#200f1b 45%,#63192d 100%)}
:root[data-theme=blue-flow]{--bg:#080e23;--panel:#101c35;--surface:#192b49;--hover:#223b60;--border:#344e74;--accent:#a8d6ff;--primary:#306ebd;--muted:#b0bfd4;--tint:#182f50;--tint-border:#476b94;--glow:#3988e733;--page-gradient:linear-gradient(180deg,#080d1b 0%,#122a4d 50%,#497ba8 100%)}
:root[data-theme=silver-flow]{--bg:#11141a;--panel:#191e29;--surface:#252d3c;--hover:#303b4d;--border:#49566c;--accent:#c8dcfa;--primary:#526d94;--muted:#b9c5d5;--tint:#29354a;--tint-border:#62799c;--glow:#acbddb22;--page-gradient:linear-gradient(180deg,#11141a 0%,#586475 58%,#f2f3f5 100%)}
:root[data-theme$="-flow"] body{background:var(--page-gradient);background-attachment:fixed}
:root[data-theme$="-flow"] .todo-app{background:var(--panel);box-shadow:0 24px 80px #0004,inset 0 1px 0 #ffffff0b}
.swatch-red-flow{background:linear-gradient(180deg,#08090d,#792038)}.swatch-red-flow i:first-child{background:#ff9baf}.swatch-red-flow i{background:#9a566b}
.swatch-blue-flow{background:linear-gradient(180deg,#080e23,#5489b8)}.swatch-blue-flow i:first-child{background:#afdfff}.swatch-blue-flow i{background:#6793bb}
.swatch-silver-flow{background:linear-gradient(180deg,#151921,#f2f3f5)}.swatch-silver-flow i:first-child{background:#bad3fa}.swatch-silver-flow i{background:#667a95}
#settings-dialog .push-panel{margin:12px 0 0}.push-panel .push-title{font-size:13px}

.todo-zeile.upcoming{--urgency-halo:color-mix(in srgb,var(--accent) 18%,transparent);--urgency-fill:color-mix(in srgb,var(--accent) 8%,var(--surface));border:1.5px solid color-mix(in srgb,var(--accent) 70%,var(--border));background:var(--urgency-fill);box-shadow:inset 4px 0 0 var(--accent),0 0 15px var(--urgency-halo)}
.todo-zeile.urgency-1{--urgency-halo:color-mix(in srgb,var(--accent) 28%,transparent);--urgency-fill:color-mix(in srgb,var(--accent) 11%,var(--surface));box-shadow:inset 4px 0 0 var(--accent),0 0 21px var(--urgency-halo)}
.todo-zeile.urgency-2{--urgency-halo:color-mix(in srgb,var(--accent) 38%,transparent);--urgency-fill:color-mix(in srgb,var(--accent) 15%,var(--surface));border-color:var(--accent);box-shadow:inset 5px 0 0 var(--accent),0 0 26px var(--urgency-halo)}
.todo-zeile.urgency-3{--urgency-halo:color-mix(in srgb,var(--accent) 48%,transparent);--urgency-fill:color-mix(in srgb,var(--accent) 19%,var(--surface));border:2px solid var(--accent);box-shadow:inset 5px 0 0 var(--accent),0 0 32px var(--urgency-halo)}
.upcoming .appointment{background:var(--primary);color:var(--on-primary);font-weight:750}.upcoming .reminder-note{font-weight:800}.urgency-3 .reminder-note,.urgency-2 .reminder-note{font-size:12px}

@keyframes appointment-breathe{0%,100%{box-shadow:inset 5px 0 0 var(--accent),0 0 14px var(--urgency-halo)}50%{box-shadow:inset 5px 0 0 var(--accent),0 0 32px var(--urgency-halo),0 0 6px var(--urgency-halo)}}
.todo-zeile.urgency-2{animation:appointment-breathe 4s ease-in-out infinite}.todo-zeile.urgency-3{animation:appointment-breathe 3.2s ease-in-out infinite}
@media(prefers-reduced-motion:reduce){.todo-zeile.urgency-2,.todo-zeile.urgency-3{animation:none}}

.header-actions{display:flex;align-items:center;gap:7px;flex-shrink:0}.exit-header{justify-content:center;width:44px;height:44px;padding:10px;min-width:44px}.exit-header svg{color:var(--accent)}@media(max-width:600px){.header-actions .settings-button{width:44px;height:44px;min-width:44px;padding:10px;justify-content:center}.header-actions .settings-button span{display:none}.header-actions{gap:4px}}@media(max-width:360px){.brand{gap:7px}.brand h1{font-size:23px}.brand-mark{width:35px}.todo-app{padding-left:12px;padding-right:12px}}

.sprach-bereich{-webkit-touch-callout:none;-webkit-user-select:none}.sprach-bereich.aktiv{border-color:var(--accent);box-shadow:0 0 0 3px var(--glow),0 0 24px var(--glow)}
