.login-form{display:flex;flex-direction:column;align-items:center;gap:var(--space-6);max-width:320px;margin:var(--space-8) auto;padding:0 var(--space-4)}.login-form__mark{width:112px;height:112px;border-radius:28px;object-fit:cover;box-shadow:0 8px 20px #6f5b9e59}.login-form__heading{text-align:center}.login-form__heading h1{font-size:23px;font-weight:700;letter-spacing:-.3px;margin:0}.login-form__tagline{font-size:14px;color:var(--color-text-secondary);margin:6px 0 0}.login-form__field{width:100%;display:flex;flex-direction:column;gap:6px;font-size:12.5px;font-weight:600;color:var(--color-text-secondary)}.login-form__field input{height:48px;border-radius:14px;border:1px solid var(--color-border);background:var(--color-surface);padding:0 var(--space-3);font-size:var(--font-size-input-min);color:var(--color-text)}.login-form__error{color:var(--color-danger);font-size:13px;margin:0}.login-form button[type=submit]{width:100%;height:50px;border-radius:14px;border:none;background:var(--color-accent);color:var(--color-accent-text);font-size:15.5px;font-weight:600;box-shadow:0 6px 16px #6f5b9e4d}.login-form button[type=submit]:hover{background:var(--color-accent-hover)}.loading-dots{display:flex;align-items:center;justify-content:center;gap:10px;min-height:100vh}.loading-dots__dot{width:14px;height:14px;border-radius:50%;background:var(--color-accent);animation:loading-dots-bounce 1.2s infinite ease-in-out}.loading-dots__dot:nth-child(1){animation-delay:-.32s}.loading-dots__dot:nth-child(2){animation-delay:-.16s}@keyframes loading-dots-bounce{0%,80%,to{transform:scale(.6);opacity:.4}40%{transform:scale(1);opacity:1}}.avatar{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;border-radius:50%;color:#fff;font-size:.7rem;font-weight:700}.month-grid__weekdays,.month-grid__week{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.month-grid__week+.month-grid__week{margin-top:4px}.month-grid__weekday{text-align:center;font-size:.75rem;font-weight:700;color:var(--color-text-muted);padding:var(--space-2) 0}.month-grid__day{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:none;border-radius:11px;background:transparent;color:var(--color-text);font-size:.85rem}.month-grid__day:not(:disabled):hover{background:var(--color-chip-bg)}.month-grid__day--padding{opacity:.35}.month-grid__day--today{background:var(--color-accent-tint);font-weight:700;color:var(--color-accent)}.month-grid__dots{display:flex;gap:2px;height:5px}.month-grid__dot{width:4px;height:4px;border-radius:50%;display:inline-block}.package-block__top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.package-block__vendor{margin:0;font-size:.90625rem;font-weight:600;color:var(--color-text);line-height:1.3}.package-block__tracking{margin:6px 0 0;display:flex;align-items:center;gap:6px}.package-block__badge{font-size:11px;font-weight:700;color:#fff;padding:5px 9px;border-radius:var(--radius-control-sm);flex-shrink:0;white-space:nowrap}.package-block__progress{height:4px;border-radius:2px;background:var(--color-chip-bg);margin-top:var(--space-3);overflow:hidden}.package-block__progress-fill{height:100%;border-radius:2px}.package-block .package-block__body{flex-direction:column;align-items:stretch;flex:1}body{margin:0}.app-shell{display:flex;flex-direction:column;height:100vh;height:100dvh;box-sizing:border-box;padding-top:env(safe-area-inset-top);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);background:var(--color-bg)}.app-shell__content{flex:1;overflow-y:auto;padding:var(--space-6) var(--space-5) var(--space-5)}.tab-bar{display:flex;border-top:1px solid var(--color-border-subtle);padding-bottom:env(safe-area-inset-bottom);background:var(--color-bg)}.tab-bar__item{flex:1;padding:.75rem 0;border:none;background:none;font-size:.7rem;font-weight:600;min-height:var(--tap-target-min);color:var(--color-icon-muted);display:flex;flex-direction:column;align-items:center;gap:4px}.tab-bar__item--active{color:var(--color-accent)}:root{--color-bg: #F7F3EC;--color-page-bg: #EAE6DD;--color-surface: #FFFFFF;--color-border: rgba(43, 39, 36, .12);--color-border-subtle: rgba(43, 39, 36, .08);--color-text: #2B2724;--color-text-secondary: #706558;--color-text-muted: #756C5F;--color-text-faint: #D8D2C4;--color-icon-muted: #B5AEA0;--color-accent: #6F5B9E;--color-accent-hover: #5C4A82;--color-accent-tint: rgba(111, 91, 158, .14);--color-accent-text: #FFFFFF;--color-danger: #B5453A;--color-danger-tint: rgba(181, 69, 58, .1);--color-success: #2F8558;--color-success-tint: rgba(47, 133, 88, .12);--color-chip-bg: #EFEAE0;--color-chip-text: #8C8377;--card-shadow: 0 1px 2px rgba(43, 39, 36, .04), 0 4px 12px rgba(43, 39, 36, .06);--radius-card: 14px;--radius-card-sm: 13px;--radius-control: 9px;--radius-control-sm: 8px;--radius-icon-btn: 12px;--radius-pill: 999px;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--tap-target-min: 44px;--font-size-input-min: 16px}.add-todo-form button,.add-subtask-form button,.add-event-form button,.add-subevent-form button,.add-purchase-item-form button,.add-purchase-project-form button,.add-option-form button{min-height:var(--tap-target-min);padding:var(--space-2) var(--space-3);border-radius:var(--radius-control);border:none;background:var(--color-chip-bg);color:var(--color-chip-text);font-size:.9rem;font-weight:600}.add-todo-form,.add-event-form,.add-purchase-item-form,.add-purchase-project-form{background:var(--color-surface);border-radius:var(--radius-card);box-shadow:var(--card-shadow);padding:var(--space-3);margin-bottom:var(--space-2);display:flex;flex-direction:column;gap:var(--space-2)}.add-form__title-row{display:flex;align-items:center;gap:var(--space-2)}.add-form__title-row .text-input{flex:1;margin-bottom:0}.add-todo-form .add-form__expand,.add-event-form .add-form__expand,.add-purchase-item-form .add-form__expand,.add-purchase-project-form .add-form__expand{border:none;background:none;min-height:auto;padding:3px;flex-shrink:0;color:var(--color-icon-muted);display:inline-flex}.add-form__actions{display:flex;gap:var(--space-2);justify-content:flex-end}.add-trigger{display:inline-flex;align-items:center;gap:6px;border:none;background:none;min-height:auto;padding:var(--space-1) 0;margin-left:33px;color:var(--color-accent);font-size:.8rem;font-weight:600}.add-subtask-form,.add-subevent-form,.add-option-form{padding-left:33px}.add-todo-form button[type=submit],.add-subtask-form button[type=submit],.add-event-form button[type=submit],.add-subevent-form button[type=submit],.add-purchase-item-form button[type=submit],.add-purchase-project-form button[type=submit],.add-option-form button[type=submit]{background:var(--color-accent);color:var(--color-accent-text)}.add-todo-form button[type=submit]:hover,.add-subtask-form button[type=submit]:hover,.add-event-form button[type=submit]:hover,.add-subevent-form button[type=submit]:hover,.add-purchase-item-form button[type=submit]:hover,.add-purchase-project-form button[type=submit]:hover,.add-option-form button[type=submit]:hover{background:var(--color-accent-hover)}.add-todo-form input,.add-todo-form select,.add-subtask-form input,.add-subtask-form select,.add-event-form input,.add-event-form select,.add-subevent-form input,.add-subevent-form select,.add-purchase-item-form input,.add-purchase-project-form input,.add-option-form input,.event-details-fields input,.event-details-fields select,.event-details-fields textarea,.subevent-details-fields input,.subevent-details-fields select,.subevent-details-fields textarea,.todo-details-fields input,.todo-details-fields select,.todo-details-fields textarea,.purchase-item-fields input,.purchase-item-fields textarea,.option-fields input,.option-fields textarea{font-size:var(--font-size-input-min);min-height:var(--tap-target-min);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-control);box-sizing:border-box;width:100%;margin-bottom:var(--space-2);background:var(--color-surface);color:var(--color-text)}.todos-tab>button,.todos-tab__header>button,.calendar-tab>button,.calendar-tab__header>button,.purchases-tab>button,.purchases-tab__header>button,.purchases-tab__add-buttons>button{width:36px;height:36px;min-width:36px;min-height:36px;border-radius:var(--radius-icon-btn);border:none;background:var(--color-chip-bg);color:var(--color-text);display:inline-flex;align-items:center;justify-content:center}.todos-tab>button.icon-btn--active,.todos-tab__header>button.icon-btn--active,.calendar-tab>button.icon-btn--active,.calendar-tab__header>button.icon-btn--active,.purchases-tab>button.icon-btn--active,.purchases-tab__header>button.icon-btn--active,.purchases-tab__add-buttons>button.icon-btn--active{background:var(--color-accent-tint);color:var(--color-accent)}.segmented{display:inline-flex;gap:2px;padding:3px;background:var(--color-chip-bg);border-radius:var(--radius-pill)}.segmented--full{display:flex}.segmented__option{flex:1;min-height:32px;padding:var(--space-1) var(--space-4);border:none;border-radius:var(--radius-pill);background:transparent;color:var(--color-text-secondary);font-size:.85rem;font-weight:600;white-space:nowrap}.segmented__option--active{background:var(--color-surface);color:var(--color-text);box-shadow:0 1px 2px #2b27241a}.cat-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2);margin-top:var(--space-3);margin-bottom:var(--space-3)}.cat-chip{display:flex;align-items:center;justify-content:center;gap:6px;padding:7px 8px;border-radius:var(--radius-pill);border:1px solid transparent;font-size:.75rem;font-weight:600;white-space:nowrap}.cat-chip__dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.checkbox{padding:0;border-radius:50%;border:1.6px solid var(--color-text-muted);background:var(--color-surface);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.checkbox--checked{border-color:var(--color-accent);background:var(--color-accent)}.row-icon-btn{border:none;background:none;min-width:32px;min-height:32px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--color-icon-muted)}.todos-tab__list,.calendar-tab__list,.purchases-tab__list,.packages-tab__list,.todo-item__expanded>ul,.event-item__expanded>ul,.purchase-item-row__expanded>ul{list-style:none;margin:0 0 var(--space-4) 0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.todos-tab__list,.purchases-tab__list{margin-top:var(--space-3)}.todo-item,.event-item,.purchase-item-row,.purchase-project-row,.package-block{background:var(--color-surface);border-radius:var(--radius-card-sm);box-shadow:var(--card-shadow);padding:var(--space-3)}.todo-item,.purchase-item-row,.purchase-project-row{transition:opacity .4s ease}.todo-item--fading,.purchase-item-row--fading,.purchase-project-row--fading{opacity:0}.subtask-item,.subevent-item,.option-item{padding-left:33px}.subtask-item__row,.subevent-item__row,.event-item__row{align-items:center}.subtask-item__meta,.subevent-item__meta{flex-shrink:0}.todo-item__row,.subtask-item__row,.event-item__row,.subevent-item__row,.purchase-item-row__row,.option-item__row,.purchase-project-row__row,.package-block__body{display:flex;gap:11px}.todo-item__row,.purchase-item-row__row,.option-item__row,.purchase-project-row__row,.package-block__body{align-items:flex-start}.todo-item__expanded,.event-item__expanded,.purchase-item-row__expanded{margin-top:var(--space-3)}.todo-item__notes,.event-item__notes,.purchase-item-row__notes{color:var(--color-text-secondary);margin:var(--space-2) 0 0;padding-left:33px}.event-item__date,.subevent-item__date,.purchase-item-row__price,.package-block__tracking{color:var(--color-text-secondary);font-size:.85rem}.todo-item__due,.subtask-item__due{color:var(--color-chip-text);background:#f2eee5;font-size:.75rem;font-weight:600;padding:3px 8px;border-radius:7px}.todo-item__due--overdue,.subtask-item__due--overdue{color:var(--color-danger);background:var(--color-danger-tint)}.purchase-item-row__badge{background:var(--color-success-tint);color:var(--color-success);border-radius:var(--radius-control-sm);padding:5px 10px;font-size:.75rem;font-weight:700}.option-item__status{border:none;background:var(--color-chip-bg);color:var(--color-chip-text);border-radius:var(--radius-control-sm);padding:5px 10px;font-size:.72rem;font-weight:700;white-space:nowrap}.option-item__status--purchased{background:var(--color-success-tint);color:var(--color-success)}.calendar-tab__month-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}.calendar-tab__month-label{min-width:160px;text-align:center;font-size:.9375rem;font-weight:700;color:var(--color-text)}.calendar-tab__month-nav>button{width:30px;height:30px;min-width:30px;min-height:30px;border-radius:var(--radius-control-sm);border:none;background:var(--color-surface);box-shadow:0 1px 2px #2b27240f;color:var(--color-text);display:inline-flex;align-items:center;justify-content:center}.calendar-tab__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}.calendar-tab__header h2{margin-bottom:0}.todos-tab__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-2)}.todos-tab__header h2{margin-bottom:0}.purchases-tab__header{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2)}.purchases-tab__header h2{margin-bottom:0;flex:1}.purchases-tab__add-buttons{display:flex;gap:var(--space-2)}.row-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:7px}.row-meta{display:flex;align-items:center;gap:var(--space-2)}.row-actions{display:flex;align-items:center;gap:11px;flex-shrink:0}.row-edit-card{display:flex;flex-direction:column;gap:var(--space-2);margin-top:var(--space-2)}.row-edit-actions{display:flex;justify-content:space-between;align-items:center}.btn-delete{background:var(--color-danger-tint);color:var(--color-danger);border:none;min-height:var(--tap-target-min);padding:var(--space-2) var(--space-3);border-radius:var(--radius-control);font-size:.9rem;font-weight:600}.btn-save{background:var(--color-accent);color:var(--color-accent-text);border:none;min-height:var(--tap-target-min);padding:var(--space-2) var(--space-3);border-radius:var(--radius-control);font-size:.9rem;font-weight:600}.btn-save:hover{background:var(--color-accent-hover)}.text-input{font-size:var(--font-size-input-min);min-height:var(--tap-target-min);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-control);box-sizing:border-box;width:100%;background:var(--color-surface);color:var(--color-text)}.todo-details-fields label,.event-details-fields label,.subevent-details-fields label,.purchase-item-fields label,.option-fields label{display:flex;flex-direction:column;gap:4px;font-size:12.5px;font-weight:600;color:var(--color-text-secondary);margin-bottom:var(--space-2)}.date-field{margin-bottom:var(--space-2)}.date-field__label{display:block;font-size:12.5px;font-weight:600;color:var(--color-text-secondary);margin-bottom:4px}.date-field__row{display:flex;align-items:center;gap:var(--space-2)}.date-field__row input[type=date]{flex:1;min-width:0;margin-bottom:0}.date-field__clear{border:none;background:none;min-width:32px;min-height:var(--tap-target-min);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--color-icon-muted)}.pill-select{border:none;margin:0 0 var(--space-2) 0;padding:0}.pill-select legend{font-size:12.5px;font-weight:600;color:var(--color-text-secondary);padding:0;margin-bottom:4px}.pill-select__options{display:flex;flex-wrap:wrap;gap:var(--space-2)}.pill-select__option{min-height:var(--tap-target-min);padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);border:1px solid transparent;background:var(--color-chip-bg);color:var(--color-chip-text);font-size:.8rem;font-weight:600}.pill-select__option--active{background:var(--color-accent-tint);color:var(--color-accent);border-color:var(--color-accent)}.todo-details-fields input[type=date],.event-details-fields input[type=date],.event-details-fields input[type=datetime-local],.subevent-details-fields input[type=date],.subevent-details-fields input[type=time],.add-subtask-form input[type=date]{width:auto}input[type=date]::-webkit-calendar-picker-indicator{filter:invert(.5)}.purchase-project-row__open{flex:1;min-width:0;text-align:left;background:none;border:none;padding:0;font:inherit;color:inherit;min-height:var(--tap-target-min);display:flex;align-items:center;gap:13px}.purchase-project-row__icon{width:42px;height:42px;border-radius:var(--radius-icon-btn);background:var(--color-accent-tint);display:flex;align-items:center;justify-content:center;flex-shrink:0}.checkbox-field{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);font-size:.9rem;color:var(--color-text)}.checkbox-field .checkbox{min-height:0;padding:0;border-radius:50%;border:1.6px solid var(--color-text-muted);background:var(--color-surface);font-size:0;font-weight:400}.checkbox-field .checkbox.checkbox--checked{border-color:var(--color-accent);background:var(--color-accent)}.event-item__category-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}body{margin:0;font-family:system-ui,-apple-system,sans-serif;font-size:1rem;color:var(--color-text);background:var(--color-bg)}button,a{-webkit-tap-highlight-color:transparent}h2{font-size:1.25rem;font-weight:700;margin:0 0 var(--space-3) 0}h3{font-size:1rem;font-weight:600;margin:var(--space-4) 0 var(--space-2) 0}
