.task-modal__overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:flex-end;justify-content:center;z-index:1000}.task-modal{width:100%;max-width:480px;max-height:90vh;overflow-y:auto;background:var(--color-surface);border-radius:var(--radius-md) var(--radius-md) 0 0;padding:1rem;padding-bottom:calc(1rem + env(safe-area-inset-bottom))}@media (min-width: 640px){.task-modal__overlay{align-items:center}.task-modal{border-radius:var(--radius-md)}}.task-modal__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.task-modal__close{border:none;background:transparent;font-size:1.1rem;cursor:pointer;color:var(--color-text-muted)}.task-modal__error{color:var(--color-danger);font-size:.85rem;margin-bottom:.75rem}.task-modal__hint{font-size:.78rem;color:var(--color-text-muted);margin-bottom:.75rem}.task-modal__danger-zone{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--color-border);display:flex;flex-direction:column;gap:.5rem}.task-modal__danger-actions{display:flex;gap:.5rem}.task-modal__danger-actions .btn-secondary,.task-modal__danger-actions .btn-danger{flex:1}.fab{position:fixed;right:1rem;bottom:calc(4.5rem + env(safe-area-inset-bottom));width:3.2rem;height:3.2rem;border-radius:50%;border:none;background:var(--color-primary);color:#fff;font-size:1.6rem;line-height:1;box-shadow:var(--shadow-card);cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:50}.layout{min-height:100%;display:flex;flex-direction:column;padding-bottom:env(safe-area-inset-bottom)}.layout__header{display:flex;align-items:center;gap:.75rem;padding:.9rem 1rem;padding-top:calc(.9rem + env(safe-area-inset-top));background:var(--color-surface);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:10}.layout__brand{font-weight:800;font-size:1.1rem;color:var(--color-primary)}.layout__household-select{margin-left:auto;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-alt);color:var(--color-text);padding:.4rem .6rem;max-width:45vw}.layout__theme-toggle{border:none;background:transparent;font-size:1.2rem;cursor:pointer}.layout__content{flex:1;padding:1rem;max-width:720px;width:100%;margin:0 auto}.layout__nav{display:flex;justify-content:space-around;align-items:center;gap:.25rem;padding:.6rem .4rem;padding-bottom:calc(.6rem + env(safe-area-inset-bottom));background:var(--color-surface);border-top:1px solid var(--color-border);position:sticky;bottom:0;overflow-x:auto}.layout__nav a{display:flex;align-items:center;justify-content:center;text-decoration:none;font-size:1.35rem;line-height:1;padding:.5rem;border-radius:var(--radius-sm);filter:grayscale(1) opacity(.6)}.layout__nav a.active{background:var(--color-surface-alt);filter:none}.layout__logout{display:flex;align-items:center;justify-content:center;border:none;background:transparent;font-size:1.35rem;line-height:1;padding:.5rem;cursor:pointer}.page h1{margin-top:0;color:var(--color-primary)}.card{background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:1rem;margin-bottom:.75rem}.task-card{display:flex;align-items:center;gap:.75rem}.task-card--overdue{border-left:3px solid var(--color-danger)}.task-card--done{opacity:.6}.task-card--done .task-card__title{text-decoration:line-through}.task-card--skipped{opacity:.55}.task-card--skipped .task-card__title{font-style:italic}.task-card__skipped-badge{flex-shrink:0;width:2.2rem;height:2.2rem;border:none;border-radius:50%;background:var(--color-text-muted);color:#fff;font-size:1.1rem;font-weight:700;display:flex;align-items:center;justify-content:center}button.task-card__skipped-badge{cursor:pointer}.task-card__actions{display:flex;gap:.4rem;flex-shrink:0}.task-card__skip{flex-shrink:0;width:2.2rem;height:2.2rem;border:none;border-radius:50%;background:var(--color-surface-alt);color:var(--color-text-muted);font-size:1.1rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center}.task-card__done-badge{flex-shrink:0;width:2.2rem;height:2.2rem;border:none;border-radius:50%;background:var(--color-success);color:#fff;font-size:1.1rem;font-weight:700;display:flex;align-items:center;justify-content:center}button.task-card__done-badge{cursor:pointer}.task-bulk-bar{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.75rem}.task-card__select{flex-shrink:0;width:1.4rem;height:1.4rem;cursor:pointer}.task-group{margin-bottom:1rem}.task-group__date{display:flex;align-items:center;gap:.5rem;font-size:.8rem;font-weight:700;color:var(--color-text-muted);text-transform:capitalize;margin:.5rem 0 .4rem}.task-group__date--overdue{color:var(--color-danger)}.task-group__overdue-badge{text-transform:none;font-size:.68rem;font-weight:700;color:#fff;background:var(--color-danger);padding:.1rem .45rem;border-radius:999px}.task-card__info-button{flex:1;display:flex;align-items:center;gap:.75rem;min-width:0;border:none;background:none;font:inherit;color:inherit;text-align:left;cursor:pointer;padding:0}.task-card__validate{flex-shrink:0;width:2.2rem;height:2.2rem;border:none;border-radius:50%;background:var(--color-success);color:#fff;font-size:1.1rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center}.task-card__info{flex:1}.task-card__title{font-weight:700}.task-card__meta{font-size:.8rem;color:var(--color-text-muted)}.member-color-dot{width:.75rem;height:.75rem;border-radius:50%;flex-shrink:0}.member-color-input{width:2rem;height:2rem;padding:0;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:none;cursor:pointer}.badge{display:inline-block;padding:.15rem .5rem;border-radius:999px;font-size:.72rem;font-weight:700;background:var(--color-surface-alt);color:var(--color-accent)}.form-error{color:var(--color-danger);font-size:.85rem;margin-bottom:.75rem}.empty-state{color:var(--color-text-muted);text-align:center;padding:2rem 1rem}.form-row{display:flex;flex-direction:column;gap:.4rem;margin-bottom:.75rem}.form-row label{font-size:.8rem;color:var(--color-text-muted)}.form-row input,.form-row select,.form-row textarea{padding:.6rem .75rem;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface-alt);color:var(--color-text)}.btn-primary{padding:.65rem 1rem;border:none;border-radius:var(--radius-sm);background:var(--color-primary);color:#fff;font-weight:700;cursor:pointer}.btn-secondary{padding:.65rem 1rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:transparent;color:var(--color-text);cursor:pointer}.btn-danger{padding:.65rem 1rem;border:none;border-radius:var(--radius-sm);background:var(--color-danger);color:#fff;font-weight:700;cursor:pointer}.calendar-view-switch{display:flex;gap:.5rem;margin-bottom:.75rem}.calendar-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.35rem}.calendar-day{min-height:4.5rem;border-radius:var(--radius-sm);background:var(--color-surface);box-shadow:var(--shadow-card);padding:.3rem;font-size:.75rem;display:flex;flex-direction:column;gap:.15rem;overflow:hidden}.calendar-day--has-tasks{border:2px solid var(--color-primary)}.calendar-day__tasks{display:flex;flex-direction:column;gap:.1rem}.calendar-day__task{display:flex;align-items:center;gap:.25rem;font-size:.62rem;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--color-text-muted)}.calendar-day__task-dot{display:inline-block;width:.45rem;height:.45rem;border-radius:50%;flex-shrink:0}.calendar-day__more{font-size:.62rem;color:var(--color-primary);font-weight:700}.calendar-week{display:flex;flex-direction:column;gap:.6rem}.calendar-week__day{display:flex;flex-direction:column;gap:.4rem}.calendar-week__day strong{text-transform:capitalize}.calendar-week__list{margin:0;padding-left:1.1rem;font-size:.85rem}.reward-total{font-size:2rem;font-weight:800;color:var(--color-accent)}.reward-total--sm{font-size:1.35rem}.rewards-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem;margin-bottom:.75rem}.rewards-stats__tile{margin-bottom:0;text-align:center}.checkbox-dropdown{position:relative}.checkbox-dropdown__trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.6rem .75rem;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface-alt);color:var(--color-text);cursor:pointer;text-align:left}.checkbox-dropdown__summary{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.checkbox-dropdown__panel{position:absolute;top:calc(100% + .25rem);left:0;right:0;z-index:20;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-card);padding:.4rem;max-height:12rem;overflow-y:auto}.checkbox-dropdown__option{display:flex;align-items:center;gap:.5rem;padding:.4rem .3rem;font-size:.9rem;cursor:pointer;border-radius:var(--radius-sm)}.checkbox-dropdown__option:hover{background:var(--color-surface-alt)}.auth-page{min-height:100%;display:flex;align-items:center;justify-content:center;padding:1.5rem}.auth-card{width:100%;max-width:380px;background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:1.75rem}.auth-card h1{margin-top:0;color:var(--color-primary)}.auth-card form{display:flex;flex-direction:column;gap:.75rem}.auth-card input{padding:.7rem .85rem;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface-alt);color:var(--color-text);font-size:1rem}.auth-card button[type=submit]{margin-top:.5rem;padding:.75rem;border:none;border-radius:var(--radius-sm);background:var(--color-primary);color:#fff;font-weight:700;font-size:1rem;cursor:pointer}.auth-card button[type=submit]:hover{background:var(--color-primary-hover)}.auth-card .error{color:var(--color-danger);font-size:.85rem}.auth-card .switch-link{margin-top:1rem;font-size:.85rem;text-align:center;color:var(--color-text-muted)}.rewards-chart{width:100%}.rewards-chart__svg{width:100%;height:auto;display:block;overflow:visible}.rewards-chart__baseline{stroke:var(--color-border);stroke-width:1}.rewards-chart__bar{fill:var(--color-accent);transition:opacity .15s ease}.rewards-chart__bar--in-progress{fill:var(--color-accent);opacity:.45}.rewards-chart__bar--hovered{opacity:.8}.rewards-chart__bar-group{cursor:pointer}.rewards-chart__value{font-size:9px;fill:var(--color-text);font-weight:700}.rewards-chart__axis{display:flex;justify-content:space-between;margin-top:.3rem;font-size:.62rem;color:var(--color-text-muted)}.rewards-chart__axis span{flex:1;text-align:center;white-space:nowrap}.rewards-chart__axis-label--current{color:var(--color-primary);font-weight:700}.update-prompt{position:fixed;bottom:calc(1rem + env(safe-area-inset-bottom));left:1rem;right:1rem;z-index:2000;display:flex;align-items:center;justify-content:space-between;gap:.75rem;background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:.75rem 1rem;max-width:420px;margin:0 auto}.update-prompt button{flex-shrink:0;padding:.5rem .9rem;border:none;border-radius:var(--radius-sm);background:var(--color-primary);color:#fff;font-weight:700;cursor:pointer}:root{--color-bg: #fbf3ea;--color-surface: #ffffff;--color-surface-alt: #fdece0;--color-text: #3a2c22;--color-text-muted: #7a6a5c;--color-primary: #e8734a;--color-primary-hover: #d55f38;--color-accent: #4a8f7f;--color-border: #ecd9c8;--color-danger: #c0392b;--color-success: #4a8f7f;--radius-sm: 8px;--radius-md: 14px;--radius-lg: 20px;--shadow-card: 0 2px 10px rgba(58, 44, 34, .08);color-scheme:light}[data-theme=dark]{--color-bg: #211a15;--color-surface: #2b221c;--color-surface-alt: #362a22;--color-text: #f3e9dd;--color-text-muted: #b8a996;--color-primary: #f08a5e;--color-primary-hover: #f6a077;--color-accent: #6cb3a1;--color-border: #453629;--color-danger: #e07a6b;--color-success: #6cb3a1;color-scheme:dark}[data-theme=green]{--color-bg: #f1f7f0;--color-surface: #ffffff;--color-surface-alt: #e3f0e0;--color-text: #1f2e1c;--color-text-muted: #5c715a;--color-primary: #3f8f4f;--color-primary-hover: #357a43;--color-accent: #2f7a5f;--color-border: #d3e6cd;--color-danger: #c0392b;--color-success: #3f8f4f;color-scheme:light}[data-theme=blue]{--color-bg: #eef4fb;--color-surface: #ffffff;--color-surface-alt: #e1ecf9;--color-text: #1b2a3d;--color-text-muted: #5b7089;--color-primary: #2f6fb0;--color-primary-hover: #265d95;--color-accent: #2f8fa0;--color-border: #cfe0f2;--color-danger: #c0392b;--color-success: #2f8fa0;color-scheme:light}[data-theme=grey]{--color-bg: #121212;--color-surface: #1c1c1c;--color-surface-alt: #262626;--color-text: #ededed;--color-text-muted: #a3a3a3;--color-primary: #565b60;--color-primary-hover: #6c7176;--color-accent: #5c8a76;--color-border: #333333;--color-danger: #e07a6b;--color-success: #5c8a76;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:Nunito,Segoe UI,system-ui,sans-serif;-webkit-font-smoothing:antialiased}button,input,select{font-family:inherit}a{color:var(--color-primary)}
