.dashboard.svelte-1t8ifwf{max-width:640px;margin:0 auto;padding:2rem 1rem}.dashboard-header.svelte-1t8ifwf{margin-bottom:2rem}h1.svelte-1t8ifwf{font-family:var(--font-display);font-size:2rem;font-weight:500;color:var(--color-text-primary);margin:0 0 .25rem}.subtitle.svelte-1t8ifwf{color:var(--color-text-secondary);font-size:.9375rem;margin:0}.tool-grid.svelte-1t8ifwf{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem;margin-bottom:2rem}.tool-card.svelte-1t8ifwf{display:flex;flex-direction:column;gap:.375rem;padding:1.25rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);text-decoration:none;transition:border-color .15s,box-shadow .15s}.tool-card.svelte-1t8ifwf:hover{border-color:var(--color-accent);box-shadow:0 2px 8px #0000000f}.tool-label.svelte-1t8ifwf{font-family:var(--font-display);font-size:1.125rem;color:var(--color-text-primary)}.tool-desc.svelte-1t8ifwf{font-size:.8125rem;color:var(--color-text-secondary);line-height:1.4}.dashboard-footer.svelte-1t8ifwf{padding-top:1rem;border-top:1px solid var(--color-border)}.external-link.svelte-1t8ifwf{font-size:.875rem;color:var(--color-text-secondary)}.external-link.svelte-1t8ifwf:hover{color:var(--color-accent)}.page.svelte-z0172p.svelte-z0172p{max-width:640px;margin:0 auto;padding:2rem 1rem}h1.svelte-z0172p.svelte-z0172p{font-family:var(--font-display);font-size:1.75rem;font-weight:500;margin:0 0 1.25rem}.back-link.svelte-z0172p.svelte-z0172p{display:inline-block;margin-bottom:1rem;font-size:.875rem;color:var(--color-text-secondary);text-decoration:none}.back-link.svelte-z0172p.svelte-z0172p:hover{color:var(--color-accent)}.loading.svelte-z0172p.svelte-z0172p{padding:3rem 0;text-align:center;color:var(--color-text-secondary)}.error.svelte-z0172p.svelte-z0172p{padding:1.5rem;border:1px solid var(--color-danger-light);border-radius:var(--radius-md)}.error.svelte-z0172p p.svelte-z0172p{margin:0 0 .75rem;color:var(--color-danger)}.error.svelte-z0172p button.svelte-z0172p{padding:.375rem .875rem;background:var(--color-danger);color:var(--color-surface);border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:.875rem}.summary.svelte-z0172p.svelte-z0172p{display:flex;gap:.5rem;margin-bottom:1.5rem;flex-wrap:wrap}.chip.svelte-z0172p.svelte-z0172p{padding:.25rem .75rem;border-radius:999px;font-size:.8125rem;background:var(--color-border);color:var(--color-text-secondary)}.chip--active.svelte-z0172p.svelte-z0172p{background:var(--color-accent-light);color:var(--color-accent)}.chip--done.svelte-z0172p.svelte-z0172p{background:var(--color-success-light);color:var(--color-success)}.task-list.svelte-z0172p.svelte-z0172p{display:flex;flex-direction:column;gap:.75rem}.task-card.svelte-z0172p.svelte-z0172p{padding:1rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.task-card.done.svelte-z0172p.svelte-z0172p{opacity:.65}.task-head.svelte-z0172p.svelte-z0172p{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem}.icon.svelte-z0172p.svelte-z0172p{font-size:1.5rem}.task-name.svelte-z0172p.svelte-z0172p{font-weight:500;margin:0;color:var(--color-text-primary)}.cadence.svelte-z0172p.svelte-z0172p{font-size:.8125rem;color:var(--color-text-secondary);margin:.125rem 0 0}.badge.svelte-z0172p.svelte-z0172p{margin-left:auto;font-size:.75rem;padding:.125rem .5rem;border-radius:999px;background:var(--color-border);color:var(--color-text-secondary)}.badge--done.svelte-z0172p.svelte-z0172p{background:var(--color-success-light);color:var(--color-success)}.badge--active.svelte-z0172p.svelte-z0172p{background:var(--color-accent-light);color:var(--color-accent)}.step.svelte-z0172p.svelte-z0172p{font-size:.875rem;color:var(--color-text-secondary);margin:0}.timer.svelte-z0172p.svelte-z0172p{font-size:.8125rem;color:var(--color-accent);font-variant-numeric:tabular-nums;margin:.25rem 0 0}.empty.svelte-z0172p.svelte-z0172p{color:var(--color-text-tertiary);text-align:center;padding:2rem 0}.page.svelte-8dk9j2.svelte-8dk9j2{max-width:640px;margin:0 auto;padding:2rem 1rem}h1.svelte-8dk9j2.svelte-8dk9j2{font-family:var(--font-display);font-size:1.75rem;font-weight:500;margin:0 0 1rem}.back-link.svelte-8dk9j2.svelte-8dk9j2{display:inline-block;margin-bottom:1rem;font-size:.875rem;color:var(--color-text-secondary);text-decoration:none}.back-link.svelte-8dk9j2.svelte-8dk9j2:hover{color:var(--color-accent)}.loading.svelte-8dk9j2.svelte-8dk9j2{padding:3rem 0;text-align:center;color:var(--color-text-secondary)}.error.svelte-8dk9j2.svelte-8dk9j2{padding:1.5rem;border:1px solid var(--color-danger-light);border-radius:var(--radius-md)}.error.svelte-8dk9j2 p.svelte-8dk9j2{margin:0 0 .75rem;color:var(--color-danger)}.error.svelte-8dk9j2 button.svelte-8dk9j2{padding:.375rem .875rem;background:var(--color-danger);color:var(--color-surface);border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:.875rem}.count.svelte-8dk9j2.svelte-8dk9j2{color:var(--color-text-secondary);font-size:.875rem;margin:0 0 1rem}.purchase-list.svelte-8dk9j2.svelte-8dk9j2{display:flex;flex-direction:column;gap:.75rem}.purchase-card.svelte-8dk9j2.svelte-8dk9j2{padding:1rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.purchase-card.below-target.svelte-8dk9j2.svelte-8dk9j2{border-color:var(--color-success)}.card-head.svelte-8dk9j2.svelte-8dk9j2{display:flex;align-items:flex-start;gap:.5rem;margin-bottom:.75rem}.title.svelte-8dk9j2.svelte-8dk9j2{font-weight:500;color:var(--color-text-primary);flex:1;word-break:break-word}.ready-badge.svelte-8dk9j2.svelte-8dk9j2{font-size:.75rem;padding:.125rem .5rem;border-radius:999px;background:var(--color-success-light);color:var(--color-success);white-space:nowrap}.price-row.svelte-8dk9j2.svelte-8dk9j2{display:flex;gap:1.5rem;flex-wrap:wrap}.price-block.svelte-8dk9j2.svelte-8dk9j2{display:flex;flex-direction:column;gap:.125rem}.price-label.svelte-8dk9j2.svelte-8dk9j2{font-size:.75rem;color:var(--color-text-secondary)}.price-value.svelte-8dk9j2.svelte-8dk9j2{font-size:.9375rem;font-variant-numeric:tabular-nums;color:var(--color-text-primary)}.price-value.price-good.svelte-8dk9j2.svelte-8dk9j2{color:var(--color-success);font-weight:500}.price-delta.svelte-8dk9j2.svelte-8dk9j2{font-size:.75rem;color:var(--color-text-secondary)}.budget-date.svelte-8dk9j2.svelte-8dk9j2{font-size:.8125rem;color:var(--color-text-secondary);margin:.5rem 0 0}.empty.svelte-8dk9j2.svelte-8dk9j2{color:var(--color-text-tertiary);text-align:center;padding:2rem 0}.page.svelte-nzj8dj.svelte-nzj8dj{max-width:640px;margin:0 auto;padding:2rem 1rem}h1.svelte-nzj8dj.svelte-nzj8dj{font-family:var(--font-display);font-size:1.75rem;font-weight:500;margin:0 0 1.25rem}h2.svelte-nzj8dj.svelte-nzj8dj{font-family:var(--font-display);font-size:1.125rem;font-weight:500;margin:1.5rem 0 .75rem;color:var(--color-text-primary)}.back-link.svelte-nzj8dj.svelte-nzj8dj{display:inline-block;margin-bottom:1rem;font-size:.875rem;color:var(--color-text-secondary);text-decoration:none}.back-link.svelte-nzj8dj.svelte-nzj8dj:hover{color:var(--color-accent)}.loading.svelte-nzj8dj.svelte-nzj8dj{padding:3rem 0;text-align:center;color:var(--color-text-secondary)}.error.svelte-nzj8dj.svelte-nzj8dj{padding:1.5rem;border:1px solid var(--color-danger-light);border-radius:var(--radius-md)}.error.svelte-nzj8dj p.svelte-nzj8dj{margin:0 0 .75rem;color:var(--color-danger)}.error.svelte-nzj8dj button.svelte-nzj8dj{padding:.375rem .875rem;background:var(--color-danger);color:var(--color-surface);border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:.875rem}.outbox-card.svelte-nzj8dj.svelte-nzj8dj{padding:.875rem;background:var(--color-accent-light);border:1px solid var(--color-accent);border-radius:var(--radius-md);margin-bottom:.5rem}.outbox-name.svelte-nzj8dj.svelte-nzj8dj{font-weight:500;color:var(--color-text-primary)}.outbox-msg.svelte-nzj8dj.svelte-nzj8dj{font-size:.875rem;color:var(--color-text-secondary);margin:.25rem 0}.outbox-date.svelte-nzj8dj.svelte-nzj8dj{font-size:.75rem;color:var(--color-text-tertiary)}.contact-card.svelte-nzj8dj.svelte-nzj8dj{display:flex;flex-direction:column;padding:.75rem 1rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:.5rem}.contact-card--upcoming.svelte-nzj8dj.svelte-nzj8dj{border-color:var(--color-accent)}.contact-head.svelte-nzj8dj.svelte-nzj8dj{display:flex;align-items:center;justify-content:space-between}.contact-name.svelte-nzj8dj.svelte-nzj8dj{font-weight:500;color:var(--color-text-primary)}.days-badge.svelte-nzj8dj.svelte-nzj8dj{font-size:.75rem;padding:.125rem .5rem;border-radius:999px;background:var(--color-accent-light);color:var(--color-accent)}.days-muted.svelte-nzj8dj.svelte-nzj8dj{font-size:.75rem;color:var(--color-text-tertiary)}.birthday-date.svelte-nzj8dj.svelte-nzj8dj{font-size:.8125rem;color:var(--color-text-secondary);margin:.25rem 0 0}.empty.svelte-nzj8dj.svelte-nzj8dj{color:var(--color-text-tertiary);text-align:center;padding:2rem 0}.unauthorized.svelte-ixbmlh{max-width:360px;margin:6rem auto 0;padding:0 1rem;text-align:center}h1.svelte-ixbmlh{font-family:var(--font-display);font-size:1.5rem;font-weight:500;color:var(--color-text-primary);margin:0 0 2rem}.auth-form.svelte-ixbmlh{display:flex;flex-direction:column;gap:.75rem;text-align:left}label.svelte-ixbmlh{font-size:.875rem;font-weight:500;color:var(--color-text-primary)}input.svelte-ixbmlh{width:100%;padding:.625rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:.9375rem;background:var(--color-surface);color:var(--color-text-primary);box-sizing:border-box}input.svelte-ixbmlh:focus{outline:2px solid var(--color-accent);outline-offset:1px;border-color:transparent}.input-error.svelte-ixbmlh{border-color:var(--color-danger)}.error-msg.svelte-ixbmlh{font-size:.8125rem;color:var(--color-danger);margin:0}.btn-submit.svelte-ixbmlh{padding:.625rem 1.25rem;background:var(--color-accent);color:var(--color-surface);border:none;border-radius:var(--radius-sm);font-size:.9375rem;font-weight:500;cursor:pointer;transition:background .15s}.btn-submit.svelte-ixbmlh:hover{background:var(--color-accent-hover)}:root{--color-bg: #FAFAF8;--color-surface: #FFFFFF;--color-border: #E8E8E4;--color-border-strong: #D0D0CB;--color-text-primary: #1C1C1A;--color-text-secondary: #737370;--color-text-tertiary: #A8A8A4;--color-accent: #D97706;--color-accent-hover: #B45309;--color-accent-light: #FEF3C7;--color-danger: #DC2626;--color-danger-light: #FEE2E2;--color-success: #16A34A;--color-success-light: #DCFCE7;--color-skeleton: #EFEFED;--color-skeleton-hi: #F7F7F4;--font-display: "Playfair Display", Georgia, serif;--font-body: "Outfit", "Segoe UI", system-ui, sans-serif;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(0,0,0,.04), 0 1px 1px rgba(0,0,0,.03);--shadow-md: 0 4px 8px rgba(0,0,0,.06), 0 2px 4px rgba(0,0,0,.04);--shadow-lg: 0 8px 24px rgba(0,0,0,.08), 0 4px 8px rgba(0,0,0,.04);--shadow-hover: 0 12px 32px rgba(0,0,0,.1), 0 4px 12px rgba(0,0,0,.06);--transition-fast: .12s ease;--transition-base: .2s ease;--transition-slow: .3s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--font-body);color:var(--color-text-primary);background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;line-height:1.5}body{min-height:100vh}h1,h2,h3,h4{font-family:var(--font-display);line-height:1.2}a{color:inherit;text-decoration:none}button,input,textarea,select{font-family:var(--font-body)}img{max-width:100%;height:auto;display:block}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-tertiary)}.skeleton{display:block;background:linear-gradient(90deg,var(--color-skeleton) 0%,var(--color-skeleton-hi) 50%,var(--color-skeleton) 100%);background-size:200% 100%;animation:shimmer 1.2s ease-in-out infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion: reduce){.skeleton{animation:none}}
