:root{--ink: #1c2622;--ink-soft: #56615b;--paper: #f1f4f1;--surface: #ffffff;--line: #e0e5e0;--primary: #137a63;--primary-dark: #0e5d4b;--todo: #64748b;--pending: #c2740a;--done: #15803d;--danger: #b4402f;--radius: 14px;--radius-sm: 9px;--shadow: 0 1px 2px rgba(20, 40, 30, .06), 0 6px 16px rgba(20, 40, 30, .05);--font: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;line-height:1.45}.centered{min-height:100%;display:grid;place-items:center}.muted{color:var(--ink-soft)}.error{color:var(--danger);font-size:.9rem;margin:.5rem 0}.ok{color:var(--done);font-size:.9rem}.empty{color:var(--ink-soft);text-align:center;padding:2.5rem 1rem;border:1px dashed var(--line);border-radius:var(--radius);background:var(--surface)}.btn{font:inherit;font-weight:600;border:1px solid transparent;border-radius:var(--radius-sm);padding:.6rem 1rem;cursor:pointer;background:transparent;color:var(--ink);min-height:44px}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-dark)}.btn-ghost{border-color:var(--line);background:var(--surface);color:var(--ink-soft)}.btn-ghost:hover:not(:disabled){color:var(--ink)}.btn-block{width:100%}.btn-sm{min-height:38px;padding:.45rem .8rem;font-size:.9rem}.login{min-height:100%;display:grid;place-items:center;padding:1.5rem}.login-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:2rem 1.6rem;width:100%;max-width:380px;text-align:center}.brandmark{width:56px;height:56px;margin:0 auto .8rem;display:grid;place-items:center;background:var(--primary);color:#fff;border-radius:16px;font-size:1.9rem;line-height:1}.login-title{margin:0;font-size:1.5rem;letter-spacing:-.02em}.login-sub{margin:.2rem 0 1.4rem}.field{display:block;text-align:left;margin-bottom:.9rem}.field span{display:block;font-size:.82rem;color:var(--ink-soft);margin-bottom:.3rem}input,select,textarea{font:inherit;width:100%;padding:.6rem .7rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink)}input:focus,select:focus,textarea:focus{outline:2px solid var(--primary);outline-offset:1px;border-color:var(--primary)}.app{max-width:680px;margin:0 auto;min-height:100%}.header{position:sticky;top:0;background:var(--paper);border-bottom:1px solid var(--line);padding:env(safe-area-inset-top) 1rem 0;z-index:5}.header-top{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.8rem 0}.household-name{font-weight:700;font-size:1.15rem;letter-spacing:-.01em}.household-select{width:auto;font-weight:700;border-color:transparent;background:transparent;padding-left:0}.header-user{display:flex;align-items:center;gap:.5rem}.user-name{font-size:.9rem;color:var(--ink-soft)}.role-pill{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--primary-dark);background:#137a631f;padding:.15rem .45rem;border-radius:999px}.tabs{display:flex;gap:.25rem}.tab{font:inherit;font-weight:600;background:none;border:none;border-bottom:2px solid transparent;color:var(--ink-soft);padding:.55rem .4rem;margin-bottom:-1px;cursor:pointer}.tab.active{color:var(--ink);border-bottom-color:var(--primary)}.content{padding:1rem}.bucket{margin-bottom:1.6rem}.bucket-title{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);margin:0 0 .6rem}.bucket-title.overdue{color:var(--danger)}.card{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:.9rem 1rem;margin-bottom:.7rem;display:flex;flex-direction:column;gap:.7rem}.card.status-todo{border-left-color:var(--todo)}.card.status-pending{border-left-color:var(--pending)}.card.status-done{border-left-color:var(--done)}.card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.6rem}.card-title{margin:0;font-size:1.05rem;font-weight:650;letter-spacing:-.01em}.card-desc{margin:0;color:var(--ink-soft);font-size:.92rem}.card-meta{display:flex;flex-wrap:wrap;gap:.4rem}.card-actions{display:flex;gap:.5rem}.card-actions:empty{display:none}.pill{flex-shrink:0;font-size:.74rem;font-weight:700;padding:.18rem .5rem;border-radius:999px;white-space:nowrap}.pill-todo{color:var(--todo);background:#64748b1f}.pill-pending{color:var(--pending);background:#c2740a21}.pill-done{color:var(--done);background:#15803d21}.chip{font-size:.78rem;font-weight:600;color:var(--primary-dark);background:#137a631a;padding:.15rem .5rem;border-radius:999px}.chip-quiet{color:var(--ink-soft);background:#56615b1a}.manage{display:flex;flex-direction:column;gap:1.2rem}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem 1.1rem 1.2rem}.panel-title{margin:0 0 .8rem;font-size:1rem;letter-spacing:-.01em}.rows{list-style:none;margin:0 0 .9rem;padding:0}.row{display:flex;align-items:center;gap:.5rem;padding:.55rem 0;border-bottom:1px solid var(--line)}.row:last-child{border-bottom:none}.row-main{flex:1;font-weight:600;display:flex;flex-direction:column}.row-sub{font-weight:400;font-size:.8rem;color:var(--ink-soft)}.inline-select{width:auto}.add-form{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.add-form.stacked{flex-direction:column;align-items:stretch}.add-form input,.add-form select{flex:1;min-width:0}.form-row{display:flex;gap:.5rem}.form-row>*{flex:1}.check{display:flex;align-items:center;gap:.5rem;font-size:.9rem;color:var(--ink-soft)}.check input{width:auto}@media (prefers-reduced-motion: no-preference){.card{transition:border-color .15s ease}.btn{transition:background .15s ease,color .15s ease}}
