:root{--ink:#17322b;--muted:#6c7c77;--pine:#16382f;--pine-2:#23584a;--cream:#f7f4ec;--paper:#fffefa;--gold:#f3bb52;--line:#dde4df;--danger:#a33d38;--shadow:0 20px 60px rgba(20,55,46,.12);font-family:Inter,ui-rounded,"Segoe UI",system-ui,sans-serif;color:var(--ink);background:var(--cream);font-size:16px}
*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;min-height:100vh;background:radial-gradient(circle at 90% 0,#dfece6 0,transparent 34rem),var(--cream)}button,input,select{font:inherit}button{cursor:pointer}.login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(300px,1.1fr) minmax(360px,.9fr);width:min(100% - 40px,980px);margin:auto;padding:40px 0;align-items:stretch}.welcome-panel{border-radius:32px 0 0 32px;background:linear-gradient(145deg,#16382f,#0e2922);color:white;padding:52px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:var(--shadow);overflow:hidden;position:relative}.welcome-panel:after{content:"";position:absolute;width:320px;height:320px;border:70px solid rgba(243,187,82,.08);border-radius:50%;right:-160px;bottom:-150px}.welcome-panel h1{font-size:clamp(2.4rem,5vw,4.5rem);max-width:650px;margin:18px 0 22px}.welcome-copy{max-width:470px;color:#d6e4df;font-size:1.08rem;line-height:1.65}.brand-mark{width:54px;height:54px;border-radius:17px;background:var(--gold);color:var(--pine);display:grid;place-items:center;font-size:29px;font-weight:900;margin-bottom:55px}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.75rem;font-weight:800;color:var(--pine-2);margin:0 0 5px}.eyebrow.light{color:var(--gold)}.people{display:flex;align-items:center;margin-top:50px;position:relative;z-index:1}.person{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;border:3px solid var(--pine);font-weight:900;margin-right:-8px}.person.anita{background:#f3bb52;color:#392900}.person.helmut{background:#e7f1ed;color:var(--pine)}.person.stefan{background:#d07b68;color:white}.people small{margin-left:20px;color:#d6e4df;font-size:.85rem}.login-card{background:var(--paper);padding:56px 48px;border-radius:0 32px 32px 0;box-shadow:var(--shadow);border:1px solid rgba(22,56,47,.08);display:flex;align-items:center}.login-card>div{width:100%}.login-card h2{font-size:2.25rem;margin:8px 0}.card-copy{color:var(--muted);margin-bottom:28px;line-height:1.55}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(2rem,7vw,3rem);line-height:1.05;letter-spacing:-.04em;margin-bottom:30px}h2{font-size:1.65rem;letter-spacing:-.025em}h3{margin-bottom:6px}label,legend{font-weight:700;font-size:.9rem}input,select{width:100%;border:1.5px solid var(--line);background:white;border-radius:13px;padding:14px 15px;margin:8px 0 18px;color:var(--ink);outline:none}input:focus,select:focus{border-color:var(--pine-2);box-shadow:0 0 0 4px rgba(35,88,74,.1)}.primary{border:0;background:var(--pine);color:white;font-weight:800;border-radius:13px;padding:13px 18px;box-shadow:0 6px 16px rgba(22,56,47,.15)}.primary:hover{background:var(--pine-2)}.wide{width:100%}.form-error{color:var(--danger);min-height:1.4em;font-size:.9rem}.app-shell{max-width:1040px;margin:auto;padding:34px 24px 80px}.topbar,.section-heading,.detail-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.topbar{margin-bottom:46px}.topbar h1{margin:0;font-size:2rem}.icon-button{border:1px solid var(--line);background:var(--paper);width:44px;height:44px;border-radius:14px;font-size:1.35rem;color:var(--ink)}.section-heading{margin-bottom:18px}.section-heading h2{margin:0}.list-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}.list-card{position:relative;border:1px solid rgba(22,56,47,.1);background:var(--paper);border-radius:20px;padding:22px;text-align:left;color:var(--ink);min-height:150px;box-shadow:0 8px 24px rgba(22,56,47,.06);transition:.18s transform,.18s box-shadow}.list-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.list-card h3{font-size:1.2rem;margin:24px 0 9px}.list-card .count{font-size:.9rem;color:var(--muted)}.badge{display:inline-flex;padding:5px 9px;border-radius:999px;background:#e4eee9;color:var(--pine-2);font-size:.75rem;font-weight:800}.badge.private{background:#f0eadc;color:#795d27}.owner-dot{position:absolute;right:20px;top:20px;width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:var(--pine);color:white;font-size:.75rem;font-weight:800}.empty-state{text-align:center;padding:70px 20px;color:var(--muted)}.empty-state span{font-size:2rem;display:block;margin-bottom:14px}.empty-state h3{color:var(--ink)}.empty-state.compact{padding:45px 20px}.text-button,.danger-link{border:0;background:none;padding:8px 0;color:var(--pine-2);font-weight:800}.danger-link{color:var(--danger)}#back{margin-bottom:26px}.detail-heading{align-items:flex-end;margin-bottom:22px}.detail-heading h2{font-size:2.25rem;margin:10px 0 3px}.muted{color:var(--muted);font-size:.9rem}.quick-add{display:flex;gap:10px;background:var(--paper);padding:10px;border-radius:18px;border:1px solid var(--line);box-shadow:0 10px 28px rgba(22,56,47,.06);margin-bottom:22px}.quick-add input{border:0;margin:0;box-shadow:none}.items{display:grid;gap:9px}.item{display:flex;align-items:center;gap:13px;background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:13px 15px}.item-check{appearance:none;margin:0;width:25px;height:25px;min-width:25px;padding:0;border:2px solid #9baaa5;border-radius:8px;display:grid;place-items:center}.item-check:checked{background:var(--pine);border-color:var(--pine)}.item-check:checked:after{content:"✓";color:white;font-weight:900}.item-text{flex:1;font-weight:650}.item.done .item-text{text-decoration:line-through;color:#899590}.item-meta{font-size:.75rem;color:var(--muted)}.item-delete{border:0;background:none;color:var(--muted);font-size:1.2rem;padding:6px}dialog{width:min(calc(100% - 28px),460px);border:0;border-radius:24px;padding:0;box-shadow:var(--shadow);color:var(--ink)}dialog::backdrop{background:rgba(11,30,25,.55);backdrop-filter:blur(3px)}dialog form{padding:26px}.dialog-head{display:flex;justify-content:space-between;align-items:center}.dialog-head h2{margin:0 0 18px}fieldset{border:0;padding:0;margin:3px 0 18px}.choice{display:flex;align-items:center;gap:12px;border:1.5px solid var(--line);border-radius:14px;padding:13px;margin-top:9px}.choice:has(input:checked){border-color:var(--pine-2);background:#f0f6f2}.choice input{width:20px;margin:0}.choice span{display:grid}.choice small{font-weight:400;color:var(--muted);margin-top:2px}.toast{position:fixed;left:50%;bottom:25px;transform:translate(-50%,20px);background:var(--ink);color:white;padding:12px 18px;border-radius:12px;opacity:0;pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:760px){.login-shell{display:block;width:100%;padding:0}.welcome-panel{border-radius:0;padding:28px 24px 34px;min-height:275px}.welcome-panel .brand-mark{margin-bottom:35px}.welcome-panel h1{font-size:2.25rem;margin:12px 0}.welcome-copy{font-size:.95rem;margin-bottom:0}.people{margin-top:28px}.login-card{border-radius:28px 28px 0 0;padding:34px 24px;box-shadow:0 -15px 45px rgba(9,34,27,.12);margin-top:-22px;position:relative;min-height:480px}.login-card h2{font-size:2rem}.app-shell{padding:24px 16px 70px}.topbar{margin-bottom:35px}.section-heading{align-items:flex-end}.section-heading .primary{padding:11px 13px}.list-grid{grid-template-columns:1fr}.detail-heading{align-items:flex-start}.detail-heading h2{font-size:1.9rem}.quick-add{position:sticky;top:8px;z-index:3}.quick-add .primary{padding:12px}.item-meta{display:none}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

.forgot-link{display:block;border:0;background:none;color:var(--pine-2);font-weight:800;font-size:.88rem;padding:0;margin:-8px 0 18px auto}.forgot-link:hover{text-decoration:underline}.reset-back{margin-bottom:24px}.recovery-box{background:#f0f6f2;border:1px solid #d8e6de;border-radius:16px;padding:15px;margin:3px 0 18px}.recovery-box input{margin-bottom:8px}.recovery-box small{display:block;color:var(--muted);line-height:1.45}.login-card:has(#setup-content:not([hidden])){align-items:flex-start;overflow:auto}
.account-actions{display:flex;align-items:center;gap:9px}.account-button{border:1px solid var(--line);background:var(--paper);color:var(--pine-2);font-weight:800;border-radius:13px;padding:11px 14px}#password-dialog form{padding:26px}
@media(max-width:520px){.account-button{font-size:0;width:44px;height:44px;padding:0}.account-button:after{content:"•••";font-size:1rem;letter-spacing:.08em}.welcome-panel{min-height:215px}.welcome-panel .brand-mark{margin-bottom:30px}}
