:root{--font-ui:"Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-display:"Fraunces", Georgia, serif;--font-mono:"JetBrains Mono", ui-monospace, "SFMono-Regular", "SF Mono", Consolas, "Liberation Mono", monospace;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--radius-sm:10px;--radius-md:14px;--radius-lg:20px;--radius-xl:28px;--sidebar-width:229px;--sidebar-collapsed:70px;--ease-out-expo:cubic-bezier(.16, 1, .3, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1)}:root,[data-theme]{--void:var(--color-bg);--void-deep:var(--color-bg-deep);--void-surface:var(--color-surface);--void-elevated:var(--color-surface-raised);--void-hover:var(--color-surface-hover);--surface-paper:var(--color-surface);--surface-raised:var(--color-surface-raised);--surface-soft:var(--color-surface-soft);--border-subtle:var(--color-line);--glass:var(--color-glass);--glass-border:var(--border-subtle);--glass-shine:#ffffff06;--amethyst:var(--color-accent);--amethyst-glow:color-mix(in srgb, var(--color-accent-fill) 16%, transparent);--sapphire:var(--color-sky);--sapphire-glow:color-mix(in srgb, var(--color-sky) 14%, transparent);--accent-sage:var(--color-sage);--accent-sky:var(--color-sky);--accent-amber:var(--color-amber);--accent-rose:var(--color-rose);--grad-primary:linear-gradient(135deg, var(--color-accent-fill) 0%, var(--color-accent-fill-end) 100%);--grad-warm:linear-gradient(135deg, var(--color-amber) 0%, var(--color-rose) 100%);--grad-cool:linear-gradient(135deg, var(--color-sky) 0%, var(--color-accent-fill) 100%);--grad-life:linear-gradient(135deg, var(--color-sage) 0%, var(--color-sky) 100%);--grad-rose:linear-gradient(135deg, var(--color-rose) 0%, color-mix(in srgb, var(--color-rose) 70%, #000) 100%);--text-primary:var(--color-text);--text-secondary:var(--color-text-secondary);--text-muted:var(--color-text-muted);--text-on-primary:var(--color-text-on-accent);--success:var(--color-success);--warning:var(--color-warning);--danger:var(--color-danger);--info:var(--color-info);--bg-muted:color-mix(in srgb, var(--color-text) 8%, transparent);--shadow-soft:var(--shadow-md)}[data-theme=light] .mesh-bg:before{background:radial-gradient(circle,#edc2a859 0%,#0000 70%)}[data-theme=light] .mesh-bg:after{background:radial-gradient(circle,#c4b5e44d 0%,#0000 70%)}[data-theme=light] .grain{opacity:.01}[data-theme=light] .glass{background:var(--glass);-webkit-backdrop-filter:blur(4px)saturate(1.05);border:1px solid var(--glass-border);box-shadow:var(--shadow-md)}[data-theme=light] .glass:before{display:none}[data-theme=light] .glass-sm{background:var(--glass);-webkit-backdrop-filter:blur(3px);border:1px solid var(--glass-border);box-shadow:var(--shadow-sm)}[data-theme=light] .glow-purple{box-shadow:0 1px 3px #0000000a,0 8px 32px -8px #7c3aed1a}[data-theme=light] .glow-blue{box-shadow:0 1px 3px #0000000a,0 8px 32px -8px #2563eb14}[data-theme=light] .glow-rose{box-shadow:0 1px 3px #0000000a,0 8px 32px -8px #f43f5e14}[data-theme=light] .glow-amber{box-shadow:0 1px 3px #0000000a,0 8px 32px -8px #f59e0b14}[data-theme=light] .glow-emerald{box-shadow:0 1px 3px #0000000a,0 8px 32px -8px #10b98114}[data-theme=light] .sidebar{background:var(--glass);-webkit-backdrop-filter:blur(12px);border-right:1px solid var(--glass-border)}[data-theme=light] .nav-item:hover{color:var(--text-primary);background:#7b568a14}[data-theme=light] .nav-item.active{color:var(--text-primary);background:#7b568a1f}[data-theme=light] .auth-tabs{background:#00000008}[data-theme=light] .auth-tab{color:var(--text-secondary)}[data-theme=light] .auth-tab.active{background:var(--color-accent-fill);color:var(--text-on-primary)}[data-theme=light] .form-input{color:var(--text-primary);background:#fff;border:1px solid #0000001a}[data-theme=light] .form-input::placeholder{color:var(--text-muted)}[data-theme=light] .form-input:focus-visible{border-color:var(--amethyst);background:#fff;box-shadow:0 0 0 3px #7c3aed1a}[data-theme=light] .quick-add-input{color:var(--text-primary);background:#fff;border:1px solid #0000001a}[data-theme=light] .quick-add-input::placeholder{color:var(--text-muted)}[data-theme=light] .quick-add-input:focus-visible{border-color:var(--amethyst);box-shadow:0 0 0 3px #7c3aed1a}[data-theme=light] .btn-ghost{color:var(--text-primary);background:#00000008;border:1px solid #00000014}[data-theme=light] .btn-ghost:hover{background:#0000000f;border-color:#0000001f}[data-theme=light] .btn-primary:hover{box-shadow:0 8px 24px -4px #7c3aed40}[data-theme=light] .view-date{color:var(--text-secondary);background:#00000008;border:1px solid #0000000f}[data-theme=light] .stat-item{background:#00000005}[data-theme=light] .stat-item:hover{background:#0000000a;border-color:#0000000f}[data-theme=light] .bento-card{background:var(--void-surface);border-color:#0000000f}[data-theme=light] .bento-card:hover{border-color:#0000001a;box-shadow:0 2px 6px #0000000a,0 12px 32px -6px #00000014}[data-theme=light] .bento-more:hover{color:var(--text-primary);background:#0000000a}[data-theme=light] .task-check{border:2px solid #00000026}[data-theme=light] .task-check:hover{border-color:var(--amethyst)}[data-theme=light] .task-card{background:#00000004}[data-theme=light] .task-card:hover{background:#00000008;border-color:#00000014}[data-theme=light] .task-checkbox{border:2px solid #00000026}[data-theme=light] .task-checkbox:hover{border-color:var(--amethyst)}[data-theme=light] .badge-high{color:#b91c1c;background:#dc262614;border:1px solid #dc262626}[data-theme=light] .badge-normal{color:#6d28d9;background:#7c3aed0f;border:1px solid #7c3aed1f}[data-theme=light] .badge-low{color:#1d4ed8;background:#2563eb0f;border:1px solid #2563eb1f}[data-theme=light] .badge-overdue{color:#991b1b;background:#dc26261a;border:1px solid #dc26262e}[data-theme=light] .badge-recurring{color:#0e7490;background:#0e749014;border:1px solid #0e749026}[data-theme=light] .calendar-nav-btn{color:var(--text-primary);background:#00000008;border:1px solid #00000014}[data-theme=light] .calendar-nav-btn:hover{background:#0000000f}[data-theme=light] .calendar-view-toggle{background:#00000008}[data-theme=light] .calendar-view-btn.active{color:var(--text-primary);background:#fff;box-shadow:0 1px 3px #0000000f}[data-theme=light] .today-btn{border:1px solid var(--amethyst);color:var(--amethyst);background:#7c3aed0f}[data-theme=light] .today-btn:hover{background:#7c3aed1f}[data-theme=light] .calendar-day:hover:not(.empty){background:#00000008;border-color:#00000014}[data-theme=light] .calendar-day.today{border-color:var(--amethyst);background:#7c3aed14}[data-theme=light] .day-event-card{background:#00000005}[data-theme=light] .day-event-card:hover{background:#0000000a}[data-theme=light] .week-day-header{background:#00000005}[data-theme=light] .week-day-header:hover{background:#0000000a}[data-theme=light] .week-day-header.week-day-selected{background:#7c3aed0f}[data-theme=light] .calendar-grid-wrapper,[data-theme=light] .day-detail-panel,[data-theme=light] .cal-form-panel{background:var(--void-surface);border-color:#0000000f}[data-theme=light] .cal-edit-form{background:#00000005}[data-theme=light] .cal-dialog{background:var(--void-surface);border-color:#0000000f}[data-theme=light] .event-card-action:hover{background:#0000000a}[data-theme=light] .cal-onboard{background:#7c3aed0a;border-color:#7c3aed14}[data-theme=light] .tasks-filter-tabs{background:#00000008}[data-theme=light] .tasks-filter-btn.active{color:var(--text-primary);background:#fff;box-shadow:0 1px 3px #0000000f}[data-theme=light] .bottom-nav{border:1px solid var(--glass-border);box-shadow:var(--shadow-lg);background:#fffaf3f2}[data-theme=light] ::-webkit-scrollbar-thumb{background:#0000001f}[data-theme=light] ::-webkit-scrollbar-thumb:hover{background:#0003}[data-theme=light] .auth-divider:before,[data-theme=light] .auth-divider:after{background:#00000014}[data-theme=light] .contact-add-cta-avatar{background:#00000008;border:2px dashed #0000001f}[data-theme=light] .contacts-empty,[data-theme=light] .contact-modal-panel{background:var(--void-surface);border-color:#0000000f}[data-theme=light] .theme-item-inactive{background:#00000005;border-color:#0000000f}[data-theme=light] .theme-item-inactive:hover{background:#0000000a;border-color:#0000001a}[data-theme=light] .auth-logo:after{opacity:.2;filter:blur(20px)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}button{color:inherit;font-family:inherit}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font-ui);background:var(--void);color:var(--text-primary);min-height:100vh;overflow-x:hidden}:focus-visible{outline:2px solid var(--amethyst);outline-offset:2px}:focus:not(:focus-visible){outline:none}.skip-link{top:-100px;left:var(--space-md);z-index:10000;background:var(--color-accent-fill);color:#fff;border-radius:var(--radius-sm);padding:12px 24px;font-size:.9rem;font-weight:600;text-decoration:none;transition:top .2s;position:absolute}.skip-link:focus{top:var(--space-md)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.mesh-bg{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.mesh-bg:before{content:"";background:radial-gradient(circle,#7c3aed14 0%,#0000 70%);width:800px;height:800px;animation:25s ease-in-out infinite alternate meshDrift1;position:absolute;top:-200px;right:-200px}.mesh-bg:after{content:"";background:radial-gradient(circle,#3b82f60f 0%,#0000 70%);width:600px;height:600px;animation:30s ease-in-out infinite alternate meshDrift2;position:absolute;bottom:-100px;left:-100px}@keyframes meshDrift1{0%{transform:translate(0)scale(1)}to{transform:translate(-80px,60px)scale(1.15)}}@keyframes meshDrift2{0%{transform:translate(0)scale(1)}to{transform:translate(60px,-40px)scale(1.1)}}.grain{z-index:1;pointer-events:none;opacity:.025;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:256px;position:fixed;inset:0}:root[data-display-mode=standalone] .mesh-bg:before,:root[data-display-mode=standalone] .mesh-bg:after{animation:none}:root[data-display-mode=standalone] .grain{display:none}.glass{background:var(--glass);-webkit-backdrop-filter:blur(10px)saturate(1.08);border:1px solid var(--glass-border);border-radius:var(--radius-lg);position:relative;overflow:hidden}.glass:before{content:"";border-radius:inherit;background:linear-gradient(135deg, var(--glass-shine), transparent 50%);pointer-events:none;position:absolute;inset:0}.glass-sm{background:var(--glass);-webkit-backdrop-filter:blur(6px);border:1px solid var(--glass-border);border-radius:var(--radius-md)}.glow-purple{box-shadow:0 0 0 1px #8b5e9f1f,0 8px 28px -18px #8b5e9f47}.glow-blue{box-shadow:0 0 0 1px #6aa6d81f,0 8px 28px -18px #6aa6d83d}.glow-rose{box-shadow:0 0 0 1px #c9828f1f,0 8px 28px -18px #c9828f3d}.glow-amber{box-shadow:0 0 0 1px #d4a24f1f,0 8px 28px -18px #d4a24f3d}.glow-emerald{box-shadow:0 0 0 1px #85a8871f,0 8px 28px -18px #85a8873d}.auth-page{z-index:2;min-height:100vh;padding:var(--space-lg);justify-content:center;align-items:center;display:flex;position:relative}.auth-container{width:100%;max-width:440px;animation:authEnter .8s var(--ease-out-expo) both}.auth-brand{text-align:center;margin-bottom:var(--space-2xl)}.auth-brand h1{letter-spacing:-.02em;background:var(--grad-primary);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:2rem;font-weight:700}.auth-brand p{color:var(--text-secondary);margin-top:var(--space-xs);font-size:.95rem;font-weight:300}.auth-footer{text-align:center;margin-top:var(--space-lg);color:var(--text-muted);justify-content:center;align-items:center;gap:4px;font-size:.82rem;display:flex}@keyframes authEnter{0%{opacity:0;transform:translateY(24px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.auth-logo{background:var(--grad-primary);width:72px;height:72px;margin-bottom:var(--space-md);box-shadow:0 8px 40px -8px var(--amethyst-glow);border-radius:22px;justify-content:center;align-items:center;display:inline-flex;position:relative}.auth-logo:after{content:"";background:var(--grad-primary);opacity:.4;filter:blur(16px);z-index:-1;border-radius:24px;position:absolute;inset:-2px}.auth-card{padding:var(--space-xl)}.auth-tabs{gap:var(--space-xs);border-radius:var(--radius-sm);margin-bottom:var(--space-lg);background:#ffffff08;padding:3px;display:flex}.auth-tab{color:var(--text-secondary);cursor:pointer;transition:all .25s var(--ease-out-expo);background:0 0;border:none;border-radius:8px;flex:1;padding:10px;font-family:inherit;font-size:.9rem;font-weight:500}.auth-tab.active{background:var(--color-accent-fill);color:var(--text-on-primary);box-shadow:0 2px 12px -2px var(--amethyst-glow)}.auth-form{gap:var(--space-md);display:grid}.form-field{gap:6px;display:grid}.form-field label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;font-size:.8rem;font-weight:500}.form-field .form-input{width:100%}.form-input{border:1px solid var(--glass-border);border-radius:var(--radius-sm);color:var(--text-primary);background:#ffffff0a;min-height:44px;padding:14px 16px;font-family:inherit;font-size:.95rem;transition:all .2s}.form-input::placeholder{color:var(--text-muted)}.form-input:focus-visible{border-color:var(--amethyst);box-shadow:0 0 0 3px var(--amethyst-glow);outline:2px solid var(--amethyst);outline-offset:2px;background:#7c3aed0a}.form-input option{background:var(--void-surface);color:var(--text-primary)}[data-theme=light] .form-input option{color:var(--text-primary);background:#fff}.auth-divider{align-items:center;gap:var(--space-md);color:var(--text-muted);margin-top:20px;font-size:.8rem;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--glass-border);flex:1;height:1px}.btn-demo{width:100%;color:var(--amethyst);border-radius:var(--radius-sm);cursor:pointer;transition:all .25s var(--ease-out-expo);background:#7c3aed14;border:1px dashed #7c3aed4d;justify-content:center;align-items:center;gap:8px;margin-top:16px;padding:13px;font-family:inherit;font-size:.9rem;font-weight:600;display:flex}.btn-demo:hover{border-color:var(--amethyst);background:#7c3aed26}.sso-login-box{margin-top:16px}.sso-login-btn{justify-content:center;align-items:center;gap:8px;width:100%;text-decoration:none;display:inline-flex}.sso-section{gap:12px;display:grid}.sso-section .adm-form-desc{color:var(--text-muted);max-width:72ch;margin:0;font-size:.85rem;line-height:1.55}.sso-section .sso-grid{gap:var(--space-lg,20px) var(--space-md,14px);grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;display:grid}.sso-section .sso-field-span-2{grid-column:1/-1}.sso-section .form-field{flex-direction:column;gap:8px;margin:0;display:flex}.sso-section .form-field>label{font-size:.9rem;font-weight:500}.sso-section .sso-hint{color:var(--text-muted);font-size:.78rem;line-height:1.5;display:block}.sso-section .sso-hint-warning{color:var(--warning,#c05621)}.sso-section .sso-option-stack{gap:12px;display:grid}.sso-section .sso-checkbox-field{border:1px solid var(--border-subtle);background:color-mix(in srgb, var(--surface-soft) 54%, var(--surface-paper));border-radius:12px;flex-direction:column;gap:8px;padding:12px 14px;display:flex}.sso-section .sso-checkbox-field .set-checkbox-label{margin:0}.sso-section .sso-secret-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.sso-section .sso-callback-box{border:1px dashed var(--border-subtle);background:color-mix(in srgb, var(--amethyst) 7%, var(--surface-paper));border-radius:12px;padding:12px 14px}.sso-section .set-btn-row{margin:0}.sso-action-row{gap:8px}.sso-test-banner{margin-top:0}.sso-test-banner-error{background:var(--danger-bg,#fee);color:var(--danger);border-color:color-mix(in srgb, var(--danger) 28%, var(--border-subtle))}@media (max-width:900px){.sso-section .sso-grid{grid-template-columns:1fr}.sso-section .sso-field-span-2{grid-column:auto}}.btn-primary{background:var(--grad-primary);color:var(--text-on-primary);border-radius:var(--radius-sm);cursor:pointer;transition:all .25s var(--ease-out-expo);border:none;padding:15px;font-family:inherit;font-size:.95rem;font-weight:600;position:relative;overflow:hidden}.btn-primary:hover{box-shadow:0 8px 24px -4px var(--amethyst-glow);transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)scale(.98)}:is(.btn-primary,.btn-secondary):has(>svg){justify-content:center;align-items:center;gap:var(--space-2);display:inline-flex}.btn-ghost{border:1px solid var(--glass-border);color:var(--text-primary);border-radius:var(--radius-sm);cursor:pointer;background:#ffffff0a;align-items:center;gap:6px;min-height:44px;padding:9px 16px;font-family:inherit;font-size:.82rem;font-weight:500;transition:all .2s;display:inline-flex}.btn-ghost:hover{background:#ffffff12}.btn-sm{background:var(--grad-primary);color:#fff;cursor:pointer;border:none;border-radius:8px;align-items:center;gap:6px;min-height:44px;padding:10px 16px;font-family:inherit;font-size:.82rem;font-weight:600;transition:all .2s;display:inline-flex}.btn-sm:hover{box-shadow:0 4px 16px -4px var(--amethyst-glow)}.demo-banner{z-index:100;background:linear-gradient(90deg, var(--amethyst), #3b82f6);color:#fff;text-align:center;letter-spacing:.04em;padding:6px 0;padding-top:calc(6px + env(safe-area-inset-top));font-size:.78rem;font-weight:600;position:fixed;top:0;left:0;right:0}.pwa-banner{z-index:101;padding:8px 16px;padding-top:calc(8px + env(safe-area-inset-top));justify-content:center;align-items:center;gap:8px;font-size:.78rem;font-weight:500;animation:.3s pwa-slide-in;display:flex;position:fixed;top:0;left:0;right:0}.pwa-banner--offline{background:var(--danger,#ef4444);color:#fff}.pwa-banner--online{background:var(--success,#10b981);color:#fff}.pwa-banner--update{background:linear-gradient(90deg, var(--amethyst), #3b82f6);color:#fff}.pwa-banner--install{background:var(--void-elevated);color:var(--text-primary);border-bottom:1px solid var(--glass-border)}.pwa-banner__action{color:#fff;cursor:pointer;background:#fff3;border:none;border-radius:6px;padding:4px 12px;font-size:.75rem;font-weight:600}.pwa-banner--install .pwa-banner__action{background:var(--color-accent-fill)}.pwa-banner__dismiss{color:var(--text-muted);cursor:pointer;background:0 0;border:none;margin-left:4px;padding:0 4px;font-size:1.1rem}@keyframes pwa-slide-in{0%{transform:translateY(-100%)}to{transform:translateY(0)}}.search-overlay{z-index:200;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;justify-content:center;align-items:flex-start;padding-top:10vh;animation:.15s fade-in;display:flex;position:fixed;inset:0}.search-panel{background:var(--void-surface);border-radius:12px;flex-direction:column;width:min(520px,100vw - 32px);max-height:70vh;display:flex;overflow:hidden;box-shadow:0 8px 32px #0000004d}.search-header{border-bottom:1px solid var(--glass-border);align-items:center;gap:8px;padding:12px 16px;display:flex}.search-input{color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;font-size:1rem}.search-input::placeholder{color:var(--text-muted)}.search-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:4px}.search-results{padding:8px 0;overflow-y:auto}.search-loading,.search-empty{text-align:center;color:var(--text-muted);padding:24px 16px;font-size:.88rem}.search-group{padding:4px 0}.search-group-header{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);align-items:center;gap:6px;padding:8px 16px 4px;font-size:.72rem;font-weight:600;display:flex}.search-result-item{width:100%;color:var(--text-primary);text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;padding:8px 16px;font-size:.88rem;display:flex}.search-result-item:hover{background:var(--glass-border)}.search-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.member-group-header{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:var(--space-md) 0 var(--space-xs);font-size:.72rem;font-weight:600}.app-shell{z-index:2;background:var(--void);min-height:100vh;display:flex;position:relative}.page-shell,.ui-page-shell{gap:var(--space-lg);width:100%;max-width:1440px;margin:0 auto;display:grid}.page-header,.ui-page-header{justify-content:space-between;align-items:flex-start;gap:var(--space-md);margin-bottom:var(--space-lg);display:flex}.page-header-copy,.ui-page-header-copy{gap:4px;min-width:0;display:grid}.ui-card{background:var(--surface-paper);border:1px solid var(--glass-border);box-shadow:var(--shadow-sm);color:var(--text-primary);border-radius:8px}.ui-bento-module{background:var(--surface-paper);border:1px solid var(--glass-border);box-shadow:var(--shadow-sm);padding:var(--space-lg);border-radius:8px;min-width:0}.ui-icon-btn{border:1px solid var(--glass-border);background:var(--surface-raised);width:44px;min-width:44px;height:44px;color:var(--text-secondary);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;transition:background .18s,border-color .18s,color .18s;display:inline-flex}.ui-icon-btn:hover{background:var(--void-hover);color:var(--text-primary);border-color:color-mix(in srgb, var(--amethyst) 28%, var(--glass-border))}.ui-badge{border-radius:var(--radius-pill);min-width:22px;min-height:22px;color:var(--amethyst);background:#7b568a1f;border:1px solid #7b568a2e;justify-content:center;align-items:center;padding:2px 8px;font-size:.72rem;font-weight:700;display:inline-flex}.ui-pill,.ui-filter-chip,.filter-chip{border-radius:var(--radius-pill);border:1px solid var(--glass-border);background:var(--surface-soft);min-height:36px;color:var(--text-secondary);font:inherit;cursor:pointer;align-items:center;gap:7px;padding:7px 12px;font-size:.84rem;font-weight:600;display:inline-flex}.filter-chip.active,.ui-filter-chip.active{color:var(--text-primary);background:#7b568a24;border-color:#7b568a47}.ui-tabs{border:1px solid var(--glass-border);background:var(--surface-soft);border-radius:10px;gap:3px;padding:3px;display:inline-flex}.ui-tab{min-height:38px;color:var(--text-secondary);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;padding:8px 12px;font-weight:600}.ui-tab.active{background:var(--surface-paper);color:var(--text-primary);box-shadow:var(--shadow-sm)}.ui-input{border:1px solid var(--glass-border);background:var(--surface-paper);width:100%;min-height:44px;color:var(--text-primary);font:inherit;border-radius:8px;padding:10px 12px}.ui-input::placeholder{color:var(--text-muted)}.ui-input:focus-visible{border-color:var(--amethyst);box-shadow:0 0 0 3px var(--amethyst-glow)}.ui-empty-state{place-items:center;gap:var(--space-sm);min-height:140px;padding:var(--space-lg);border:1px dashed var(--glass-border);background:var(--surface-soft);color:var(--text-secondary);text-align:center;border-radius:8px;display:grid}.ui-list-row{align-items:center;gap:var(--space-md);min-height:52px;color:var(--text-primary);background:0 0;border:1px solid #0000;border-radius:8px;padding:10px 12px;display:flex}.ui-list-row:hover{background:var(--surface-soft);border-color:var(--glass-border)}.ui-bottom-sheet,.compact-mobile-panel{border:1px solid var(--glass-border);background:var(--surface-paper);box-shadow:var(--shadow-lg);padding:var(--space-md);border-radius:16px 16px 0 0}.sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);z-index:30;-webkit-backdrop-filter:blur(14px);border-right:1px solid var(--glass-border);background:#161b2bf0;flex-direction:column;height:100vh;transition:width .25s,min-width .25s;display:flex;position:fixed;top:0;left:0;overflow:visible}.sidebar-header{padding:var(--space-lg) var(--space-md);white-space:nowrap;justify-content:space-between;align-items:center;display:flex}.sidebar-brand{align-items:center;gap:var(--space-md);display:flex}.sidebar-logo{background:var(--grad-primary);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.sidebar-brand-text h2{letter-spacing:0;margin:0;font-size:1.15rem;font-weight:700}.sidebar-brand-text span{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;font-weight:400}.sidebar-toggle{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px;font-size:1.2em;transition:color .2s;display:flex}.sidebar-toggle:hover{color:var(--text-primary)}.sidebar-content{min-height:0;padding:0 var(--space-md) var(--space-sm);flex-direction:column;flex:auto;display:flex;overflow-y:auto}.nav-groups{gap:var(--space-sm);flex-direction:column;flex:1;min-height:0;display:flex}.nav-section{gap:3px;display:grid}.nav-section-system{margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--glass-border)}.nav-section-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;padding:var(--space-sm) var(--space-sm) 3px;pointer-events:none;min-height:24px;font-size:.6875rem;font-weight:700}.nav-item{min-height:44px;color:var(--text-secondary);cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:11px;width:100%;margin-bottom:1px;padding:9px 10px;font-family:inherit;font-size:.9rem;font-weight:650;transition:background .18s,border-color .18s,color .18s;display:flex;position:relative}.nav-item:hover{background:var(--surface-soft);color:var(--text-primary);border-color:var(--glass-border)}.nav-item.active{color:var(--text-primary);box-shadow:none;background:#8b5e9f21;border-color:#8b5e9f38}.nav-item.active:before{content:none}.nav-icon{border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;display:flex}.nav-item.active .nav-icon{color:var(--amethyst);background:#8b5e9f1f}.nav-label{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.nav-badge{color:var(--danger);border-radius:var(--radius-pill);font-size:.68rem;font-weight:700;font-family:var(--font-mono);background:#b94d551f;border:1px solid #b94d5533;margin-left:auto;padding:2px 7px}@media (max-height:1040px) and (min-width:769px){.sidebar-content{padding-bottom:var(--space-sm)}}.sidebar.collapsed{width:var(--sidebar-collapsed);min-width:var(--sidebar-collapsed)}.sidebar.collapsed .sidebar-header{padding:var(--space-lg) var(--space-sm);justify-content:center}.sidebar.collapsed .sidebar-content{padding:0 var(--space-sm) var(--space-sm);overflow:visible}.sidebar.collapsed .nav-item{padding:10px var(--space-sm);justify-content:center}.sidebar.collapsed .nav-icon{transition:transform .2s}.sidebar.collapsed .nav-item:hover .nav-icon{transform:scale(1.1)}.sidebar.collapsed .nav-item:hover:after{content:attr(data-tooltip);background:var(--void-surface);color:var(--text-primary);white-space:nowrap;z-index:1000;pointer-events:none;border:1px solid var(--glass-border);border-radius:6px;padding:6px 12px;font-size:.875rem;display:block;position:absolute;top:50%;left:calc(100% + 8px);transform:translateY(-50%);box-shadow:0 4px 12px #00000040}.mobile-hamburger{color:var(--text-primary);cursor:pointer;background:0 0;border:none;padding:4px;display:flex}.main-content{margin-left:var(--sidebar-width);min-height:100vh;width:calc(100% - var(--sidebar-width));z-index:2;padding:clamp(18px,2.2vw,28px);transition:margin-left .25s,width .25s;position:relative}.view-header{margin-bottom:var(--space-xl);justify-content:space-between;align-items:center;gap:var(--space-md);display:flex}.dashboard-today-page{gap:var(--space-lg);display:grid}.view-title{letter-spacing:-.02em;font-size:1.65rem;font-weight:700}.view-subtitle{color:var(--text-secondary);margin-top:2px;font-size:.88rem}.view-date{font-family:var(--font-mono);color:var(--text-secondary);border-radius:var(--radius-sm);border:1px solid var(--glass-border);background:#ffffff08;padding:8px 14px;font-size:.82rem}.view-enter{animation:viewEnter .4s var(--ease-out-expo) backwards}@keyframes viewEnter{0%{opacity:0}to{opacity:1}}.bento-card{background:var(--surface-paper);border:1px solid var(--glass-border);box-shadow:var(--shadow-soft);border-radius:16px;padding:clamp(14px,1.25vw,18px);transition:border-color .2s,box-shadow .2s,transform .2s;position:relative;overflow:hidden}.bento-card:hover{border-color:#7882b433}.bento-card-visual{width:52px;height:52px;color:var(--amethyst);pointer-events:none;background:#8b5e9f1a;border:1px solid #8b5e9f1f;border-radius:17px;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:14px;right:14px}.bento-card-visual-events{color:#6f5fa7;background:#6f5fa71c}.bento-card-visual-tasks{color:#5f8a4c;background:#5f8a4c21}.bento-card-visual-birthdays{color:#c46d3b;background:#c46d3b1f}.bento-card-visual-rewards{color:#b97826;background:#b978261f}.activity-page{gap:12px;width:min(100%,980px);margin:0 auto;display:grid}.activity-history-layout{min-width:0}.activity-history-layout .bento-activity{background:var(--surface-paper);border-color:var(--border-subtle);width:100%;box-shadow:var(--shadow-soft)}.activity-history-layout .activity-feed-list{max-width:none}.bento-card-header{justify-content:space-between;align-items:center;gap:var(--space-sm);margin-bottom:10px;display:flex}.bento-card-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;align-items:center;gap:8px;font-size:.78rem;font-weight:600;display:flex}.bento-more{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-pill);background:0 0;border:none;padding:4px 10px;font-family:inherit;font-size:.78rem;transition:all .2s}.bento-more:hover{color:var(--text-primary);background:#ffffff0d}.activity-feed-list{gap:var(--space-sm);flex-direction:column;display:flex}.activity-feed-item{gap:var(--space-sm);border-bottom:1px solid #7882b414;grid-template-columns:auto 1fr;align-items:flex-start;padding:10px 0;display:grid}.activity-feed-item:last-child{border-bottom:0}.activity-feed-dot{border-radius:var(--radius-pill);background:linear-gradient(135deg, var(--amethyst), var(--sapphire));width:10px;height:10px;margin-top:6px;box-shadow:0 0 0 4px #8b5cf614}.activity-feed-copy{min-width:0}.activity-feed-summary{color:var(--text-primary);overflow-wrap:anywhere;font-size:.9rem;line-height:1.35}.activity-feed-meta{color:var(--text-muted);flex-wrap:wrap;gap:6px 10px;margin-top:4px;font-size:.75rem;display:flex}.bento-empty{color:var(--text-muted);padding:var(--space-md) 0;align-items:center;gap:var(--space-sm);font-size:.85rem;display:flex}.bento-empty-action{color:var(--amethyst);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;align-items:center;min-height:44px;padding:8px 12px;font-family:inherit;font-size:.85rem;font-weight:500;transition:opacity .2s;display:inline-flex}.bento-empty-action:hover{opacity:.7}.daily-loop-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.daily-loop-action{min-height:104px;color:var(--text-primary);font:inherit;text-align:left;cursor:pointer;background:#7882b40e;border:1px solid #7882b41f;border-radius:15px;grid-template-rows:1fr auto;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px 12px;padding:12px;transition:background .18s,border-color .18s,transform .18s;display:grid}.daily-loop-action:hover{background:#8b5e9f11;border-color:#8b5e9f29;transform:translateY(-1px)}.daily-loop-action:focus-visible{outline:2px solid var(--amethyst);outline-offset:3px}.daily-loop-action-art{width:50px;height:50px;color:var(--amethyst);background:#8b5e9f1c;border-radius:15px;grid-row:1/3;justify-content:center;align-items:center;display:inline-flex}.daily-loop-action-shopping .daily-loop-action-art{color:#b97826;background:#b9782621}.daily-loop-action-routines .daily-loop-action-art{color:#5f8a4c;background:#5f8a4c21}.daily-loop-action-copy{gap:3px;min-width:0;display:grid}.daily-loop-action-value{color:var(--text-primary);font-family:var(--font-mono);font-size:1.4rem;font-weight:850;line-height:1}.daily-loop-action-label{color:var(--text-secondary);font-size:.84rem;font-weight:700;line-height:1.2}.daily-loop-action-link{color:var(--text-muted);grid-column:2;font-size:.74rem;font-weight:700}.admin-error{color:var(--danger);margin-bottom:var(--space-md)}.admin-actions{gap:var(--space-sm);margin-top:var(--space-md);flex-wrap:wrap;display:flex}.admin-time-toggle{align-items:center;gap:var(--space-md);margin-bottom:var(--space-md);display:flex}.admin-time-label{font-size:.88rem;font-weight:500}.admin-subpage{gap:12px;min-width:0;display:grid}.admin-subpage-header{min-height:58px;margin:0;padding:0}.admin-subpage-title-block{align-items:center;gap:12px;min-width:0;display:flex}.admin-subpage-icon{background:color-mix(in srgb, var(--amethyst) 10%, var(--surface-paper));width:40px;height:40px;color:color-mix(in srgb, var(--amethyst) 76%, var(--text-primary));border:1px solid var(--border-subtle);border-radius:12px;flex:none;justify-content:center;align-items:center;display:inline-flex}.admin-subpage .invite-intro{color:var(--text-secondary);max-width:76ch;margin:0;font-size:.86rem;line-height:1.5}.admin-subpage .settings-section,.admin-subpage.settings-section{background:var(--surface-paper);border:1px solid var(--border-subtle);box-shadow:var(--shadow-soft);border-radius:14px}.adm-success-banner{background:color-mix(in srgb, var(--success) 11%, var(--surface-paper));border:1px solid color-mix(in srgb, var(--success) 26%, var(--border-subtle));border-radius:13px;margin-bottom:0;padding:12px}.adm-banner-header{margin-bottom:var(--space-sm);align-items:center;gap:8px;display:flex}.adm-banner-title{font-size:.88rem;font-weight:600}.adm-banner-warning{color:var(--warning);margin-bottom:var(--space-sm);font-size:.82rem}.adm-banner-row{gap:var(--space-sm);align-items:center;display:flex}.adm-banner-no-shrink{flex-shrink:0}.display-pairing{gap:var(--space-md);margin-top:var(--space-sm);align-items:center;display:flex}.display-pairing-qr{border-radius:8px;flex-shrink:0;width:148px;height:148px}.display-pairing-hint{color:var(--text-secondary);margin:0;font-size:.85rem}.adm-banner-dismiss{color:var(--text-muted);cursor:pointer;margin-top:var(--space-sm);background:0 0;border:none;font-size:.78rem}.adm-icon-success{color:var(--success)}.adm-icon-middle{vertical-align:middle}.adm-icon-shield{color:var(--amethyst)}.adm-add-wrapper{margin-top:var(--space-md)}.adm-form-grid{gap:12px;padding:14px;display:grid}.adm-form-desc{color:var(--text-secondary);font-size:.85rem;line-height:1.5}.adm-profile-name{align-items:center;gap:6px;display:flex}.adm-age{color:var(--text-muted);margin-left:8px;font-size:.75rem}.adm-self-hint{color:var(--text-muted);font-size:.82rem;font-style:italic}.adm-birthdate-input{width:auto;min-width:140px;padding:4px 8px;font-size:.78rem}.adm-section-header{margin-top:0}.adm-section-gap{margin-bottom:0}.adm-col-layout{flex-direction:column;gap:8px;display:flex}.adm-col-layout-lg{flex-direction:column;gap:10px;display:flex}.adm-field-title{color:var(--text-primary);font-weight:800}.adm-field-hint{color:var(--text-muted);font-size:.8rem}.adm-field-hint-sm{color:var(--text-muted);font-size:.78rem}.adm-self-start{align-self:flex-start}.adm-empty{border:1px dashed var(--border-subtle);background:color-mix(in srgb, var(--surface-soft) 50%, var(--surface-paper));color:var(--text-muted);border-radius:12px;margin:0;padding:12px;font-size:.86rem}.adm-input-narrow{width:5rem}.adm-select-block{margin-top:.25rem;display:block}.adm-input-block{width:5rem;margin-top:.25rem;display:block}.adm-list-item{border:1px solid var(--border-subtle);background:color-mix(in srgb, var(--surface-soft) 50%, var(--surface-paper));border-radius:12px;justify-content:space-between;align-items:center;gap:12px;min-height:56px;padding:10px 12px;display:flex}.adm-list-item+.adm-list-item{margin-top:8px}.adm-list-item-header{align-items:center;gap:.5rem;display:flex}.adm-list-item-icon{opacity:.78;color:var(--amethyst)}.adm-list-item-role{color:var(--text-primary);font-size:.88rem;font-weight:820}.adm-list-item-status{font-size:.78rem;font-weight:600}.adm-list-item-meta{color:var(--text-muted);margin-top:3px;font-size:.78rem}.adm-revoke-btn{color:var(--danger)}.adm-backup-header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:10px;display:flex}.adm-backup-filename{color:var(--text-primary);overflow-wrap:anywhere;font-size:.9rem;font-weight:820}.adm-backup-meta{color:var(--text-muted);font-size:.8rem}.adm-backup-last{color:var(--text-secondary);font-size:.85rem}.adm-backup-volume,.adm-retention-hint{color:var(--text-muted);font-size:.8rem}.adm-btn-row{flex-wrap:wrap;gap:.5rem;display:flex}.backup-confidence-panel{gap:var(--space-md);display:grid}.backup-confidence-header{justify-content:space-between;align-items:flex-start;gap:var(--space-md);display:flex}.backup-confidence-warning{color:var(--warning,#d97706);margin:.35rem 0 0;font-size:.9rem}.backup-docs-link{white-space:nowrap}.backup-confidence-grid{gap:var(--space-sm);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.backup-confidence-card{border:1px solid var(--border-subtle);background:color-mix(in srgb, var(--surface-soft) 56%, var(--surface-paper));border-radius:12px;gap:.35rem;min-width:0;padding:12px;display:grid}.system-card-alert{border-color:color-mix(in srgb, var(--danger) 45%, var(--border-subtle));background:color-mix(in srgb, var(--danger) 8%, var(--surface-paper))}.system-meter{background:var(--border-subtle);border-radius:999px;height:6px;display:block;overflow:hidden}.system-meter span{background:var(--success);height:100%;display:block}.system-meter span.high{background:var(--danger)}.system-crash-list{margin:var(--space-sm) 0 0;color:var(--text-secondary);gap:.2rem;padding-left:1.2rem;font-size:.85rem;display:grid}.backup-confidence-card span{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;font-size:.78rem}.backup-confidence-card strong{color:var(--text-primary);overflow-wrap:anywhere;font-size:.95rem}.backup-confidence-card small{color:var(--text-muted);overflow-wrap:anywhere}.backup-confidence-list-card,.backup-restore-card{grid-column:span 2}.backup-domain-list{flex-wrap:wrap;gap:.4rem;display:flex}.backup-domain-list em{color:var(--text-primary);background:#7c3aed1a;border-radius:999px;padding:.25rem .55rem;font-size:.82rem;font-style:normal}.backup-domain-list.muted em{color:var(--text-secondary);background:#7882b414}@media (max-width:720px){.backup-confidence-header{display:grid}.backup-docs-link{width:fit-content}.backup-confidence-grid{grid-template-columns:1fr}.backup-confidence-list-card,.backup-restore-card{grid-column:auto}}.adm-load-more{margin-top:var(--space-sm)}.event-time{font-family:var(--font-mono);color:var(--text-muted);flex-shrink:0;width:48px;padding-top:2px;font-size:.78rem}.event-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:6px}.task-check{border:2px solid var(--glass-border);cursor:pointer;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;transition:all .2s;display:flex}.task-check:hover{border-color:var(--amethyst)}.task-check.done{background:var(--color-accent-fill);border-color:var(--color-accent-fill)}.task-priority-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.task-assignee-mini{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:.6rem;font-weight:600;display:flex}.rewards-widget-card{min-height:100%}.rewards-widget-header{padding-right:66px}.rewards-widget-visual{background:color-mix(in srgb, var(--accent-amber) 14%, var(--surface-soft));color:color-mix(in srgb, var(--accent-amber) 78%, var(--text-primary))}.rewards-widget-skeleton{gap:8px;padding-top:4px;display:grid}.rewards-widget-skeleton-line{width:62%;height:14px}.rewards-widget-skeleton-line.short{width:42%}.rewards-widget-empty{border:1px solid var(--border-subtle);background:color-mix(in srgb, var(--surface-soft) 64%, transparent);min-height:74px;color:var(--text-secondary);border-radius:12px;align-items:center;gap:10px;padding:12px;font-size:.82rem;font-weight:650;display:flex}.rewards-widget-empty-icon{background:color-mix(in srgb, var(--accent-amber) 12%, var(--surface-paper));width:34px;height:34px;color:var(--accent-amber);border-radius:10px;flex:none;justify-content:center;align-items:center;display:inline-flex}.rewards-widget-summary{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.rewards-widget-total{gap:2px;display:grid}.rewards-widget-total-value,.rewards-widget-balance-value{color:var(--text-primary);align-items:center;gap:7px;font-size:1.55rem;font-weight:880;line-height:1;display:inline-flex}.rewards-widget-total-label,.rewards-widget-balance-label{color:var(--text-muted);font-size:.74rem;font-weight:700}.rewards-widget-pending{border:1px solid color-mix(in srgb, var(--accent-amber) 24%, var(--border-subtle));border-radius:var(--radius-pill);background:color-mix(in srgb, var(--accent-amber) 9%, var(--surface-paper));min-height:34px;color:color-mix(in srgb, var(--accent-amber) 76%, var(--text-primary));font:inherit;cursor:pointer;align-items:center;gap:6px;padding:6px 10px;font-size:.74rem;font-weight:800;display:inline-flex}.rewards-child-list{gap:7px;display:grid}.rewards-child-row{border:1px solid var(--border-subtle);background:color-mix(in srgb, var(--surface-soft) 58%, var(--surface-paper));border-radius:11px;align-items:center;gap:10px;min-height:42px;padding:8px 10px;font-size:.82rem;display:flex}.rewards-child-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-primary);flex:1;font-weight:760;overflow:hidden}.rewards-child-balance{color:var(--text-primary);align-items:center;gap:5px;font-weight:850;display:inline-flex}.rewards-widget-balance{justify-items:start;gap:4px;margin-bottom:12px;display:grid}.rewards-widget-goal{border:1px solid var(--border-subtle);background:color-mix(in srgb, var(--surface-soft) 58%, var(--surface-paper));border-radius:12px;gap:8px;padding:10px;display:grid}.rewards-widget-goal-copy{justify-content:space-between;align-items:center;gap:12px;display:flex}.rewards-widget-goal-label{color:var(--text-secondary);font-size:.75rem;font-weight:750}.rewards-widget-goal-cost{color:var(--text-primary);align-items:center;gap:5px;font-size:.76rem;font-weight:850;display:inline-flex}.calendar-layout{gap:var(--space-md);grid-template-columns:1fr 360px;max-width:1400px;display:grid}.calendar-controls{align-items:center;gap:var(--space-sm);margin-bottom:var(--space-lg);display:flex}.calendar-nav{align-items:center;gap:var(--space-xs);pointer-events:none;min-width:0;display:flex}.calendar-nav-btn{border:1px solid var(--glass-border);color:var(--text-primary);cursor:pointer;z-index:1;pointer-events:auto;background:#ffffff0a;border-radius:10px;flex:0 0 44px;justify-content:center;align-items:center;width:44px;height:44px;transition:all .2s;display:flex;position:relative}.calendar-nav-btn:hover{background:#ffffff12}.calendar-month-label{text-align:center;pointer-events:none;min-width:160px;font-size:1.1rem;font-weight:600}.calendar-view-toggle{background:#ffffff08;border-radius:8px;margin-left:auto;padding:3px;display:flex}.calendar-view-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:7px 14px;font-family:inherit;font-size:.82rem;font-weight:500;transition:all .2s}.calendar-view-btn.active{background:var(--void-elevated);color:var(--text-primary)}.today-btn{border:1px solid var(--amethyst);color:var(--amethyst);cursor:pointer;margin-left:var(--space-sm);background:#7c3aed1a;border-radius:8px;min-height:44px;padding:7px 14px;font-family:inherit;font-size:.82rem;font-weight:500;transition:all .2s}.today-btn:hover{background:#7c3aed33}.calendar-grid-wrapper{padding:var(--space-lg);background:var(--void-surface);border:1px solid var(--glass-border);border-radius:var(--radius-lg)}.calendar-weekdays{margin-bottom:var(--space-sm);grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.calendar-weekday{text-align:center;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;padding:8px 0;font-size:.72rem;font-weight:600}.calendar-week-num{font-family:var(--font-mono);color:var(--text-muted);opacity:.5;justify-content:center;align-items:center;font-size:.68rem;display:flex}.calendar-days{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.calendar-day{cursor:pointer;min-height:80px;color:var(--text-primary);background:0 0;border:1px solid #0000;border-radius:12px;grid-template-rows:24px minmax(16px,1fr) 18px;place-items:start center;gap:4px;font-family:inherit;transition:all .2s;display:grid;position:relative}.calendar-day:hover:not(.empty){border-color:var(--glass-border);background:#ffffff0a}.calendar-day.today{border-color:var(--amethyst);background:#7c3aed1f}.calendar-day.today .calendar-day-num{color:var(--amethyst);font-weight:700}.calendar-day.selected{background:var(--color-accent-fill);border-color:var(--color-accent-fill)}.calendar-day.selected .calendar-day-num{color:#fff}.calendar-day.empty{opacity:.25;cursor:default}.calendar-day.other-month{opacity:.3}.calendar-day-num{min-width:24px;min-height:24px;font-size:.88rem;font-weight:500;font-family:var(--font-mono);border-radius:var(--radius-pill);grid-row:1;justify-content:center;align-items:center;display:inline-flex}.calendar-day-dots{grid-row:3;justify-content:center;align-items:center;gap:3px;width:100%;min-height:16px;display:flex;overflow:hidden}.calendar-day-dot{border-radius:50%;width:5px;height:5px}.calendar-day-icon-indicator{background:var(--bg-muted);border-radius:999px;flex:none;justify-content:center;align-items:center;width:14px;height:14px;font-size:10px;line-height:1;display:inline-flex}.calendar-day-birthday-indicator{color:#f43f5e;background:#f43f5e1f;border-radius:999px;flex:none;justify-content:center;align-items:center;width:13px;height:13px;display:inline-flex}.day-detail-panel{padding:var(--space-lg);background:var(--void-surface);border:1px solid var(--glass-border);border-radius:var(--radius-lg);align-self:start}.day-detail-date{margin-bottom:var(--space-xs);font-size:1.1rem;font-weight:600}.day-detail-events{gap:var(--space-sm);margin-bottom:var(--space-lg);display:grid}.day-event-card{border-radius:var(--radius-sm);background:#ffffff08;border-left:3px solid;gap:10px;padding:12px;transition:all .2s;display:flex}.day-event-card:hover{background:#ffffff0d}.quick-add-form{gap:var(--space-sm);display:grid}.quick-add-form .form-input,.quick-add-form select,.cal-edit-form .form-input{width:100%;min-width:0}.cal-form-panel{padding:var(--space-lg);background:var(--void-surface);border:1px solid var(--glass-border);border-radius:var(--radius-lg)}.calendar-days-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.week-view{gap:var(--space-sm);display:grid}.week-day{border-radius:var(--radius-sm);background:var(--void-surface);border:1px solid var(--glass-border);overflow:hidden}.week-day-today{border-left:3px solid var(--amethyst)}.week-day-header{align-items:center;gap:var(--space-sm);width:100%;padding:12px var(--space-md);border:none;border-bottom:1px solid var(--glass-border);color:var(--text-primary);cursor:pointer;text-align:left;background:#ffffff08;font-family:inherit;font-size:.88rem;font-weight:600;transition:all .2s;display:flex}.week-day-header:hover{background:#ffffff0f}.week-day-header.week-day-selected{background:#7c3aed14}.week-day-today .week-day-header{color:var(--amethyst)}.week-day-today-badge{border-radius:var(--radius-pill);color:var(--amethyst);text-transform:uppercase;letter-spacing:.04em;background:#7c3aed1f;padding:2px 8px;font-size:.68rem;font-weight:500}.week-day-events{padding:var(--space-sm) var(--space-md);gap:var(--space-xs);display:grid}.week-day-empty{color:var(--text-muted);padding:var(--space-xs) 0;font-size:.82rem}.cal-dialog-backdrop{z-index:1000;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.cal-dialog{padding:var(--space-xl);gap:var(--space-md);background:var(--void-surface);border:1px solid var(--glass-border);border-radius:var(--radius-lg);flex-direction:column;width:90%;max-width:380px;display:flex}.cal-dialog-title{font-size:1rem;font-weight:600}.cal-dialog-subtitle{color:var(--text-secondary);font-size:.88rem}.cal-dialog-actions{gap:var(--space-sm);flex-direction:column;display:flex}.cal-dialog-actions .btn-sm{width:100%}.cal-dialog-delete-all{background:var(--danger);color:#fff}.cal-dialog-cancel{border:1px solid var(--glass-border);color:var(--text-secondary);background:0 0}.cal-dialog-cancel:hover{color:var(--text-primary);box-shadow:none;background:#7882b414}.assign-chips{flex-wrap:wrap;gap:6px;display:flex}.assign-chip{cursor:pointer;border:1.5px solid var(--glass-border);color:var(--text-secondary);background:0 0;border-radius:999px;min-height:32px;padding:4px 10px;font-family:inherit;font-size:.78rem;transition:all .2s}.assign-chip-active{background:var(--color-accent-fill);border-color:var(--color-accent-fill);color:#fff}.assigned-badges{gap:3px;margin-top:2px;display:flex}.assigned-badge{color:#fff;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:.6rem;font-weight:600;display:inline-flex}.event-card-title{align-items:center;gap:6px;font-size:.9rem;font-weight:500;display:flex}.event-card-icon{flex-shrink:0;line-height:1}.event-card-meta{color:var(--text-muted);margin-top:2px;font-size:.78rem}.event-card-location{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:5px;margin-top:4px;font-size:.78rem;display:flex}.event-card-map-links{gap:8px;margin-left:2px;display:inline-flex}.event-card-map-links a{color:var(--amethyst-light);font-weight:500;text-decoration:none}.event-card-map-links a:hover{text-decoration:underline}.event-card-action{cursor:pointer;color:var(--text-muted);border-radius:var(--radius-sm);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:8px;transition:all .2s;display:inline-flex}.event-card-action:hover{color:var(--text-primary);background:#ffffff0a}.color-picker{flex-wrap:wrap;gap:4px;display:flex}.color-swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;width:32px;height:32px;padding:0;transition:all .15s}.color-swatch-active{border-color:var(--text-primary)}.color-swatch-none{background:var(--void-surface);border-color:var(--glass-border)}.color-swatch-none.color-swatch-active{border-color:var(--text-primary)}.cal-form-label{color:var(--text-muted);margin-bottom:4px;font-size:.75rem}.cal-form-section-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--space-md);font-size:.78rem;font-weight:600}.cal-form-row{gap:var(--space-sm);grid-template-columns:1fr 1fr;display:grid}.day-detail-panel .cal-form-row{grid-template-columns:1fr}.cal-form-actions{gap:var(--space-sm);display:flex}.cal-empty-day{color:var(--text-muted);font-size:.88rem}.cal-onboard{margin-top:var(--space-md);padding:var(--space-md);border-radius:var(--radius-sm);background:#7c3aed0f;border:1px solid #7c3aed1f}.cal-onboard-text{color:var(--text-secondary);margin-bottom:var(--space-sm);font-size:.85rem}.cal-edit-form{border-radius:var(--radius-sm);gap:var(--space-sm);border:1px solid var(--glass-border);background:#ffffff05;margin-bottom:12px;padding:12px;display:grid}.cal-edit-recurring-hint{color:var(--text-secondary);border-radius:var(--radius-sm);background:#7c3aed14;border:1px solid #7c3aed33;padding:8px 10px;font-size:.78rem}.cal-form-datetime{font-size:.82rem}.cal-form-input-lg{padding:12px 14px;font-size:.88rem}.notifications-page{gap:12px;width:min(100%,980px);margin:0 auto;display:grid}.notifications-panel-content{gap:var(--space-sm);display:grid}.notif-list{gap:8px;display:grid}.notif-item{cursor:pointer;background:var(--surface-paper);border:1px solid var(--border-subtle);min-height:64px;box-shadow:var(--shadow-soft);border-radius:14px;align-items:flex-start;gap:12px;padding:12px;transition:background .18s,border-color .18s,transform .18s;display:flex}.notif-item:hover{background:color-mix(in srgb, var(--surface-soft) 42%, var(--surface-paper));border-color:color-mix(in srgb, var(--amethyst) 18%, var(--border-subtle));transform:translateY(-1px)}.notif-item:focus-visible{outline:2px solid var(--amethyst);outline-offset:2px}.notif-item-unread{border-left:4px solid var(--amethyst)}.notif-item-read{opacity:.7}.notif-icon{width:38px;height:38px;color:var(--text-muted);background:color-mix(in srgb, var(--surface-soft) 72%, transparent);border:1px solid var(--border-subtle);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;margin-top:1px;display:inline-flex}.notif-icon-unread{color:var(--amethyst)}.notif-content{flex:1;min-width:0}.notif-header{justify-content:space-between;align-items:flex-start;gap:var(--space-sm);display:flex}.notif-title{color:var(--text-primary);font-size:.92rem;font-weight:720}.notif-title-unread{font-weight:850}.notif-time{color:var(--text-muted);flex-shrink:0;font-size:.75rem}.notif-body{color:var(--text-secondary);margin-top:2px;font-size:.85rem}.notif-delete{border-radius:var(--radius-sm);flex-shrink:0;justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:8px;display:inline-flex}.notif-empty{padding:var(--space-xl);text-align:center;color:var(--text-muted);background:var(--surface-paper);border:1px dashed var(--border-subtle);box-shadow:var(--shadow-soft);border-radius:14px}.notif-empty-icon{margin-bottom:var(--space-sm);opacity:.4}.notif-group-header{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;padding:var(--space-sm) 0;margin-top:var(--space-sm);font-size:.75rem;font-weight:600}.notif-group-header:first-child{margin-top:0}[data-theme=light] .notif-item,[data-theme=light] .notif-empty{background:var(--surface-paper);border-color:var(--border-subtle)}.notif-panel-backdrop{z-index:100;background:#0000004d;position:fixed;inset:0}.notif-panel{background:var(--void-deep);border-left:1px solid var(--border-subtle);z-index:101;width:380px;max-width:100vw;padding:var(--space-lg);gap:var(--space-sm);animation:notifSlideIn .25s var(--ease-out-expo);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0;overflow-y:auto}@keyframes notifSlideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.notif-panel-header{align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md);display:flex}.notif-panel-title{flex:1;font-size:1.1rem;font-weight:600}[data-theme=light] .notif-panel{background:var(--void);border-color:var(--border-subtle)}.tasks-layout{gap:var(--space-md);display:grid}.tasks-toolbar{align-items:center;gap:var(--space-md);padding:0 var(--space-md);flex-wrap:wrap;display:flex}.tasks-refine-controls{align-items:center;gap:var(--space-xs);flex-wrap:wrap;width:100%;display:flex}.tasks-refine-input{flex:150px;min-width:150px;padding:9px 10px;font-size:.8rem}.tasks-filter-tabs{background:var(--surface-soft);border:1px solid var(--glass-border);border-radius:var(--radius-md);flex-wrap:wrap;gap:4px;padding:4px;display:flex}.tasks-filter-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:10px;min-height:38px;padding:8px 14px;font-family:inherit;font-size:.82rem;font-weight:650;transition:all .2s}.tasks-filter-btn.active{background:var(--surface-paper);color:var(--text-primary);box-shadow:var(--shadow-sm)}.tasks-count{font-family:var(--font-mono);color:var(--text-muted);margin-left:auto;font-size:.78rem}.quick-add-bar{gap:var(--space-sm);padding:var(--space-md);align-items:center;display:flex}.shopping-item-suggest-field{flex:1;min-width:0;position:relative}.shopping-item-suggest-field .quick-add-input{width:100%}.shopping-item-suggestions{z-index:30;background:var(--void-surface);border:1px solid var(--glass-border-strong,var(--glass-border));border-radius:var(--radius-sm);max-height:min(240px,45vh);box-shadow:var(--shadow-lg);opacity:1;gap:2px;padding:6px;display:grid;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto}.shopping-item-suggestion{border-radius:calc(var(--radius-sm) - 4px);width:100%;color:var(--text-primary);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:12px 14px}.shopping-item-suggestion:hover,.shopping-item-suggestion.active{background:var(--void-hover)}.shopping-item-suggestion:focus-visible{background:var(--void-hover);outline:2px solid var(--amethyst);outline-offset:-2px}.quick-add-input{border:1px solid var(--glass-border);border-radius:var(--radius-sm);color:var(--text-primary);background:#ffffff0a;flex:1;min-height:44px;padding:14px 16px;font-family:inherit;font-size:.95rem;transition:all .2s}.quick-add-input::placeholder{color:var(--text-muted)}.quick-add-input:focus-visible{border-color:var(--amethyst);box-shadow:0 0 0 3px var(--amethyst-glow);outline:2px solid var(--amethyst);outline-offset:2px}.quick-add-btn{background:var(--grad-primary);border-radius:var(--radius-sm);color:#fff;cursor:pointer;border:none;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;transition:all .2s;display:flex}.quick-add-btn:hover{box-shadow:0 4px 16px -4px var(--amethyst-glow);transform:translateY(-1px)}.tasks-list{gap:var(--space-sm);padding:0 var(--space-md) var(--space-md);margin-top:var(--space-md);display:grid}.task-card{border:1px solid var(--glass-border);transition:all .25s var(--ease-out-expo);background:#ffffff05;border-radius:14px;align-items:flex-start;gap:14px;padding:14px 16px;display:flex}.task-card:hover{border-color:var(--glass-border);background:#ffffff0a}.task-card.overdue{border-left:3px solid var(--danger)}.task-checkbox{border:2px solid var(--glass-border);cursor:pointer;width:32px;height:32px;transition:all .25s var(--ease-spring);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;margin-top:1px;display:flex}.task-checkbox:hover{border-color:var(--amethyst);transform:scale(1.1)}.task-checkbox.checked{background:var(--color-accent-fill);border-color:var(--color-accent-fill)}.task-content{flex:1;min-width:0}.task-title-row{align-items:center;gap:8px;display:flex}.task-title{font-size:.95rem;font-weight:500}.task-title.done{color:var(--text-muted);text-decoration:line-through}.task-description{color:var(--text-secondary);white-space:pre-wrap;word-break:break-word;margin-top:4px;font-size:.82rem}.task-meta{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.task-badge{border-radius:var(--radius-pill);font-size:.72rem;font-weight:500;font-family:var(--font-mono);letter-spacing:.02em;padding:3px 10px}.badge-high{color:#f87171;background:#ef44441f;border:1px solid #ef444433}.badge-normal{color:#a78bfa;background:#7c3aed1a;border:1px solid #7c3aed33}.badge-low{color:#60a5fa;background:#3b82f61a;border:1px solid #3b82f633}.badge-overdue{color:#fca5a5;background:#ef444426;border:1px solid #ef444440}.badge-recurring{color:#22d3ee;background:#06b6d41a;border:1px solid #06b6d433}.task-due{font-family:var(--font-mono);color:var(--text-muted);align-items:center;gap:4px;font-size:.72rem;display:flex}.task-due.overdue{color:var(--danger)}.task-assignee{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;margin-left:auto;font-size:.65rem;font-weight:600;display:flex}.tasks-wrapper{background:var(--void-surface);border:1px solid var(--glass-border);border-radius:var(--radius-lg);overflow:hidden}.task-form-fields{padding:0 var(--space-md) var(--space-sm);gap:var(--space-sm);display:grid}.task-form-desc{resize:vertical;min-height:60px;padding:10px 14px;font-size:.88rem}.task-form-grid{gap:var(--space-sm);grid-template-columns:repeat(4,1fr);display:grid}.task-form-input{padding:10px 12px;font-size:.82rem}.task-delete-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:8px;transition:all .2s;display:flex}.task-delete-btn:hover{color:var(--danger);background:#ef44441a}.task-edit-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:8px;transition:all .2s;display:flex}.task-edit-btn:hover{color:var(--text-primary);background:#ffffff0f}.tasks-empty{color:var(--text-muted);padding:0 var(--space-md);align-items:center;gap:var(--space-sm);font-size:.88rem;display:flex}.task-form-toggle{align-items:center;gap:var(--space-xs);color:var(--text-muted);cursor:pointer;padding:4px var(--space-md) var(--space-sm);background:0 0;border:none;font-family:inherit;font-size:.78rem;transition:color .2s;display:flex}.task-form-toggle:hover{color:var(--text-primary)}.task-form-toggle-open{transition:transform .2s;transform:rotate(180deg)}[data-theme=light] .tasks-wrapper{background:var(--void-surface);border-color:#0000000f}.shopping-layout{gap:var(--space-md);grid-template-columns:260px minmax(240px,320px) 1fr;align-items:start;display:grid}.shopping-layout-readonly{grid-template-columns:260px 1fr}.shopping-lists-panel{gap:var(--space-sm);flex-direction:column;display:flex}.shopping-templates-panel{background:var(--void-surface);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-md);gap:var(--space-md);flex-direction:column;min-width:0;display:flex}.shopping-templates-header{justify-content:space-between;align-items:center;gap:var(--space-sm);display:flex}.shopping-templates-actions{justify-content:flex-end;align-items:center;gap:var(--space-xs);flex-wrap:wrap;display:flex}.shopping-template-toggle{min-height:44px}.shopping-templates-header h2{margin:0;font-size:.9rem;font-weight:600}.shopping-template-list{gap:var(--space-sm);flex-direction:column;display:flex}.shopping-template-card{border:1px solid var(--glass-border);border-radius:var(--radius-md);padding:var(--space-sm);gap:var(--space-sm);background:#ffffff08;flex-direction:column;display:flex}.shopping-template-card-header{justify-content:space-between;gap:var(--space-sm);align-items:flex-start;display:flex}.shopping-template-title{margin:0;font-size:.9rem;font-weight:600}.shopping-template-count{font-family:var(--font-mono);color:var(--text-muted);margin-top:2px;font-size:.72rem}.shopping-template-card-actions{gap:2px;display:flex}.shopping-template-items{gap:6px;display:grid}.shopping-template-item{align-items:center;gap:var(--space-xs);flex-wrap:wrap;font-size:.82rem;display:flex}.shopping-template-item-name{font-weight:500}.shopping-category-pill{color:var(--text-secondary);border:1px solid var(--glass-border);border-radius:999px;padding:2px 8px;font-size:.72rem}.shopping-template-apply{justify-content:center}.shopping-template-form{gap:var(--space-sm);flex-direction:column;display:flex}.shopping-template-items-editor{gap:var(--space-xs);flex-direction:column;display:flex}.shopping-template-item-row{gap:var(--space-xs);grid-template-columns:1fr .8fr .8fr auto;align-items:center;display:grid}.shopping-template-item-row .form-input{min-width:0;padding:9px 10px;font-size:.82rem}.shopping-template-remove-item{min-width:36px;min-height:36px;padding:6px}.shopping-template-form-actions{gap:var(--space-xs);flex-wrap:wrap;justify-content:flex-end;display:flex}.shopping-lists-panel.mobile{padding-bottom:var(--space-sm);flex-direction:row;overflow-x:auto}.shopping-lists-panel.mobile .shopping-list-card{flex-shrink:0;min-width:140px}.shopping-list-card{cursor:pointer;align-items:center;gap:var(--space-sm);background:var(--surface-paper);border:1px solid var(--glass-border);border-radius:14px;padding:14px 16px;transition:all .2s;display:flex;position:relative}.shopping-list-card.active{background:color-mix(in srgb, var(--amethyst) 8%, var(--surface-paper));border-color:#8b5e9f6b;box-shadow:inset 0 0 0 1px #8b5e9f1f}.shopping-list-name{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:.9rem;font-weight:500;overflow:hidden}.shopping-list-meta{font-family:var(--font-mono);color:var(--text-muted);flex-shrink:0;font-size:.72rem}.shopping-list-actions{flex-shrink:0;align-items:center;gap:2px;display:inline-flex}.shopping-list-action{color:var(--text-muted);cursor:pointer;opacity:0;pointer-events:none;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:8px;transition:all .2s;display:inline-flex}.shopping-list-card:hover .shopping-list-action,.shopping-list-card.active .shopping-list-action,.shopping-list-card:focus-within .shopping-list-action,.shopping-list-card:focus .shopping-list-action{opacity:1;pointer-events:auto}.shopping-list-action:hover{color:var(--amethyst);background:#7c3aed1a}.shopping-list-delete:hover{color:var(--danger);background:#ef44441a}.shopping-list-card.editing{cursor:default;align-items:stretch}.shopping-list-rename-form{gap:var(--space-xs);grid-template-columns:minmax(0,1fr) auto auto;align-items:center;width:100%;display:grid}.shopping-list-rename-input{width:100%;min-width:0}.shopping-inline-icon-btn{justify-content:center;align-items:center;min-width:40px;min-height:40px;padding:8px;display:inline-flex}.shopping-new-list-form{gap:var(--space-sm);flex-direction:column;display:flex}.shopping-add-list-btn{align-items:center;gap:var(--space-sm);border:1px dashed var(--glass-border);border-radius:var(--radius-md);color:var(--text-muted);cursor:pointer;background:0 0;padding:10px 14px;font-family:inherit;font-size:.85rem;transition:all .2s;display:flex}.shopping-add-list-btn:hover{border-color:var(--amethyst);color:var(--amethyst);background:#7c3aed0d}.shopping-items-panel{min-width:0}.shopping-spec-input,.shopping-category-input{flex:0 180px!important}.shopping-items-list{gap:var(--space-xs);padding-bottom:var(--space-sm);display:grid}.shopping-category-group{gap:0;display:grid}.shopping-category-header{background:var(--surface-soft);width:100%;color:var(--text-secondary);align-items:center;gap:var(--space-xs);padding:9px var(--space-md);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;border:0;font-family:inherit;font-size:.76rem;font-weight:700;display:flex}.shopping-category-header:hover{color:var(--text-primary);background:#ffffff0d}.shopping-category-count{font-family:var(--font-mono);color:var(--text-muted);margin-left:auto}.shopping-category-items{gap:0;display:grid}.shopping-item-row{align-items:center;gap:var(--space-xs);min-height:58px;transition:background .15s;display:flex}.shopping-item-row:hover{background:#ffffff08}.shopping-item{min-width:0;padding:4px 0 4px var(--space-md);cursor:pointer;flex:1;align-items:center;gap:14px;min-height:58px;transition:opacity .15s;display:flex;position:relative}.shopping-item.checked{opacity:.58}.shopping-item.checked .shopping-item-name{color:var(--text-muted);text-decoration:line-through;transition:all .2s}.shopping-item-info{align-items:baseline;gap:var(--space-sm);flex:1;min-width:0;display:flex}.shopping-item-name{font-size:.95rem;font-weight:500}.shopping-spec{color:var(--text-muted);font-size:.82rem;font-family:var(--font-mono)}.shopping-check{border:2px solid var(--glass-border);width:34px;height:34px;transition:all .25s var(--ease-spring);background:var(--surface-paper);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.shopping-check:hover{border-color:var(--amethyst);transform:scale(1.1)}.shopping-check.done{background:var(--color-accent-fill);border-color:var(--color-accent-fill);animation:checkBounce .3s var(--ease-spring)}@keyframes checkBounce{0%{transform:scale(.8)}50%{transform:scale(1.15)}to{transform:scale(1)}}.shopping-added-by{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:.6rem;font-weight:600;display:flex}.shopping-item-actions{padding-right:var(--space-sm);align-items:center;gap:2px;display:inline-flex}.shopping-item-action{color:var(--text-muted);cursor:pointer;opacity:0;pointer-events:none;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:8px;transition:all .2s;display:inline-flex}.shopping-item-row:hover .shopping-item-action,.shopping-item-row:focus-within .shopping-item-action{opacity:1;pointer-events:auto}.shopping-item-action:hover,.shopping-item-search:hover{color:var(--amethyst);background:#7c3aed1a}.shopping-item-delete:hover{color:var(--danger);background:#ef44441a}a.store-search-option{text-align:left;flex-direction:column;align-items:flex-start;gap:2px;width:100%;text-decoration:none;display:flex}.store-search-option-host{color:var(--text-muted);word-break:break-all;font-size:.8rem}.store-link-preview{overflow-wrap:anywhere}.shopping-item-edit-form{gap:var(--space-xs);padding:var(--space-sm) var(--space-md);border-top:1px solid var(--glass-border);border-bottom:1px solid var(--glass-border);background:#ffffff08;grid-template-columns:minmax(0,1.2fr) minmax(120px,.7fr) minmax(120px,.7fr) minmax(150px,.8fr) auto;align-items:center;display:grid}.shopping-item-edit-form .quick-add-input,.shopping-item-edit-form .form-input{width:100%;min-width:0}.shopping-item-move-select{min-height:44px}.shopping-item-edit-actions{gap:var(--space-xs);justify-content:flex-end;align-items:center;display:inline-flex}.shopping-divider{align-items:center;gap:var(--space-sm);padding:var(--space-md);color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:.72rem;font-weight:600;display:flex}.shopping-divider:before,.shopping-divider:after{content:"";background:var(--glass-border);flex:1;height:1px}.shopping-items-wrapper{background:var(--void-surface);border:1px solid var(--glass-border);border-radius:var(--radius-lg);overflow:hidden}.shopping-empty{color:var(--text-muted);padding:var(--space-md);align-items:center;gap:var(--space-sm);font-size:.88rem;display:flex}.shopping-clear-wrapper{padding:0 var(--space-md) var(--space-md)}.shopping-clear-btn{justify-content:center;width:100%}.shopping-no-lists{padding:var(--space-xl);text-align:center;color:var(--text-muted);background:var(--void-surface);border:1px solid var(--glass-border);border-radius:var(--radius-lg)}.shopping-no-lists-icon{color:var(--text-muted);margin-bottom:var(--space-md)}.shopping-new-list-input{padding:10px 14px;font-size:.88rem}.shopping-new-list-actions{gap:var(--space-xs);display:flex}.shopping-list-progress{border-radius:0 0 var(--radius-md) var(--radius-md);background:#ffffff0a;height:3px;position:absolute;bottom:0;left:0;right:0;overflow:hidden}.shopping-list-progress-fill{background:var(--color-accent-fill);border-radius:0 0 var(--radius-md) var(--radius-md);height:100%;transition:width .3s var(--ease-out-expo)}[data-theme=light] .shopping-list-card{background:var(--void-surface);border-color:#0000000f}[data-theme=light] .shopping-list-card:hover{background:#ffffffb3}[data-theme=light] .shopping-item-row:hover{background:#00000005}[data-theme=light] .shopping-check{border-color:#00000026}[data-theme=light] .shopping-check:hover{border-color:var(--amethyst)}[data-theme=light] .shopping-add-list-btn:hover{background:#7c3aed0f}[data-theme=light] .shopping-list-progress{background:#0000000a}[data-theme=light] .shopping-items-wrapper,[data-theme=light] .shopping-no-lists{background:var(--void-surface);border-color:#0000000f}.contacts-page{gap:12px;width:min(100%,1040px);margin:0 auto;display:grid}.contacts-add-btn{font-size:.85rem}.contact-modal-overlay{z-index:1000;background:#0000004d;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.contact-modal-panel{padding:var(--space-xl);background:var(--void-surface);border:1px solid var(--glass-border);border-radius:var(--radius-lg);width:90%;max-width:440px}.modal-header{margin-bottom:var(--space-lg);justify-content:space-between;align-items:center;display:flex}.modal-title{margin:0;font-size:1.1rem;font-weight:600}.modal-close{min-height:auto;padding:6px}.modal-form{gap:var(--space-md);flex-direction:column;display:flex}.modal-actions{gap:var(--space-sm);margin-top:var(--space-sm);justify-content:flex-end;display:flex}.modal-date-row{gap:var(--space-sm);display:flex}.modal-date-row .form-input{flex:1}.modal-delete-confirm{gap:var(--space-xs);margin-right:auto;display:flex}.modal-delete-danger{color:var(--danger);border-color:var(--danger)}.modal-delete-trigger{margin-right:auto}.contact-delete-btn{color:var(--text-muted)}.contact-delete-btn:hover{color:var(--danger);border-color:var(--danger)}.contacts-page{width:min(100%,1120px)}.contacts-page>*{min-width:0}.contacts-section-title{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin:0 0 8px;font-size:.78rem;font-weight:800}.contacts-upcoming-list{scrollbar-width:none;grid-auto-columns:minmax(168px,1fr);grid-auto-flow:column;gap:10px;margin:0;padding:0 0 4px;list-style:none;display:grid;overflow-x:auto}.contacts-upcoming-list::-webkit-scrollbar{display:none}.contacts-upcoming-card{border:1px solid var(--border-subtle);background:var(--surface-paper);width:100%;height:100%;box-shadow:var(--shadow-soft);color:var(--text-primary);font:inherit;text-align:left;cursor:pointer;border-radius:14px;grid-template-columns:auto 1fr;align-items:start;gap:8px 10px;padding:12px;display:grid}.contacts-upcoming-card.member{cursor:default}button.contacts-upcoming-card:hover{border-color:color-mix(in srgb, var(--amethyst) 24%, var(--border-subtle))}.contacts-upcoming-text{grid-column:1/-1;gap:2px;min-width:0;display:grid}.contacts-upcoming-name{text-overflow:ellipsis;white-space:nowrap;font-weight:780;overflow:hidden}.contacts-upcoming-date{color:var(--text-secondary);font-size:.8rem}.contacts-upcoming-when{border-radius:var(--radius-pill);background:color-mix(in srgb, var(--amethyst) 10%, transparent);color:var(--text-secondary);white-space:nowrap;grid-area:1/2;place-self:center end;padding:3px 9px;font-size:.76rem;font-weight:700}.contacts-upcoming-when.today{background:color-mix(in srgb, var(--success) 16%, transparent);color:var(--success-text,var(--success))}.contacts-duplicates-banner{background:color-mix(in srgb, var(--warning) 12%, var(--surface-paper));border:1px solid color-mix(in srgb, var(--warning) 30%, var(--border-subtle));color:var(--text-primary);border-radius:14px;align-items:center;gap:10px;padding:10px 12px;font-weight:650;display:flex}.contacts-duplicates-banner span{flex:1}.contacts-layout{align-items:start;gap:16px;display:grid}@media (min-width:1000px){.contacts-layout{grid-template-columns:minmax(300px,380px) 1fr}.contacts-detail-pane-wrap{position:sticky;top:16px}.contact-detail-back{display:none}}@media (max-width:999px){.contacts-page.has-selection .contacts-list-pane,.contacts-page.has-selection .contacts-upcoming,.contacts-page.has-selection .contacts-duplicates-banner,.contacts-page:not(.has-selection) .contacts-detail-pane-wrap{display:none}}.contacts-list-pane{gap:10px;min-width:0;display:grid}.contacts-toolbar{gap:8px;display:grid}.contacts-search{border:1px solid var(--border-subtle);background:var(--surface-paper);min-height:44px;color:var(--text-muted);border-radius:12px;align-items:center;gap:8px;padding:0 12px;display:flex}.contacts-search input{min-width:0;color:var(--text-primary);font:inherit;background:0 0;border:0;outline:none;flex:1}.contacts-search:focus-within{border-color:var(--amethyst);box-shadow:0 0 0 3px color-mix(in srgb, var(--amethyst) 18%, transparent)}.contacts-filter{gap:6px;display:flex}.contacts-filter-chip{border:1px solid var(--border-subtle);border-radius:var(--radius-pill);background:var(--surface-paper);min-height:36px;color:var(--text-secondary);font:inherit;cursor:pointer;align-items:center;gap:6px;padding:0 14px;font-size:.85rem;font-weight:700;display:inline-flex}.contacts-filter-chip.active{background:color-mix(in srgb, var(--amethyst) 14%, var(--surface-paper));border-color:color-mix(in srgb, var(--amethyst) 40%, var(--border-subtle));color:var(--text-primary)}.contacts-section-letter{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;margin:4px;font-size:.74rem;font-weight:800}.contacts-list{border:1px solid var(--border-subtle);background:var(--surface-paper);box-shadow:var(--shadow-soft);border-radius:14px;gap:2px;margin:0;padding:4px;list-style:none;display:grid}.contact-row{width:100%;min-height:52px;color:var(--text-primary);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;align-items:center;gap:10px;padding:6px 8px;display:flex}.contact-row.member{cursor:default}button.contact-row:hover{background:var(--surface-soft)}.contact-row.selected{background:color-mix(in srgb, var(--amethyst) 12%, var(--surface-paper))}.contact-row:focus-visible{outline:2px solid var(--amethyst);outline-offset:1px}.contact-list-avatar{color:#fff;border-radius:50%;flex:none;place-items:center;width:36px;height:36px;font-size:.85rem;font-weight:750;display:grid}.contact-row-text{flex:1;gap:1px;min-width:0;display:grid}.contact-row-name{text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.contact-row-sub{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;overflow:hidden}.contact-row-tag{color:var(--amethyst);font-size:.72rem;font-weight:700}.contact-row-icon{color:var(--text-muted);flex:none}.contacts-no-match,.contacts-select-hint{text-align:center;color:var(--text-muted);margin:0;padding:24px 12px}.contacts-select-hint{border:1px dashed var(--border-subtle);border-radius:16px}.contact-detail-pane{border:1px solid var(--border-subtle);background:var(--surface-paper);box-shadow:var(--shadow-soft);border-radius:18px;gap:16px;padding:20px;display:grid}.contact-detail-back{justify-self:start}.contact-detail-head{align-items:center;gap:14px;display:flex}.contact-detail-avatar{color:#fff;border-radius:50%;flex:none;place-items:center;width:64px;height:64px;font-size:1.35rem;font-weight:780;display:grid}.contact-detail-title{gap:3px;min-width:0;display:grid}.contact-detail-title h2{color:var(--text-primary);overflow-wrap:anywhere;margin:0;font-size:1.35rem;line-height:1.2}.contact-detail-org{color:var(--text-secondary);margin:0}.contact-detail-source{color:var(--text-muted);align-items:center;gap:5px;font-size:.76rem;display:inline-flex}.contact-detail-actions{flex-wrap:wrap;gap:8px;display:flex}.contact-detail-actions .btn-secondary{min-height:40px;color:var(--text-primary);align-items:center;gap:6px;padding:8px 14px;font-size:.88rem;font-weight:650;text-decoration:none;display:inline-flex}.contacts-duplicates-banner .btn-secondary{padding:6px 14px;font-size:.85rem}.contact-detail-fields{gap:14px;margin:0;display:grid}.contact-detail-field{border-top:1px solid var(--border-subtle);gap:4px;padding-top:12px;display:grid}.contact-detail-field dt{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);align-items:center;gap:6px;font-size:.76rem;font-weight:800;display:flex}.contact-detail-field dd{overflow-wrap:anywhere;margin:0}.contact-detail-field a{color:var(--text-primary);text-decoration:none}.contact-detail-field a:hover{text-decoration:underline}.contact-detail-note{color:var(--text-secondary)}.contact-detail-multiline{white-space:pre-line}.contact-birthday-row{gap:var(--space-sm);grid-template-columns:.8fr 1.4fr 1fr;display:grid}.contact-duplicates-panel{max-width:560px}.contact-duplicates-hint{color:var(--text-secondary);margin:0 0 10px}.contact-duplicates-reasons{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.contact-duplicates-reason{border-radius:var(--radius-pill);background:var(--surface-soft);padding:3px 10px;font-size:.78rem;font-weight:700}.contact-duplicates-list{gap:8px;margin-bottom:12px;display:grid}.contact-duplicate-option{border:1px solid var(--border-subtle);cursor:pointer;border-radius:14px;align-items:flex-start;gap:10px;padding:12px;display:flex}.contact-duplicate-option.selected{border-color:var(--amethyst);background:color-mix(in srgb, var(--amethyst) 8%, var(--surface-paper))}.contact-duplicate-option input{accent-color:var(--amethyst);margin-top:10px}.contact-duplicate-text{min-width:0;color:var(--text-secondary);overflow-wrap:anywhere;flex:1;gap:2px;font-size:.86rem;display:grid}.contact-duplicate-text strong{color:var(--text-primary);font-size:.95rem}.contact-duplicate-source{color:var(--text-muted);font-size:.76rem}.contact-duplicate-keep{color:var(--amethyst);flex:none;font-size:.74rem;font-weight:800}.contact-member-pair{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:stretch;gap:8px;margin-bottom:12px;display:grid}.contact-member-card{border:1px solid var(--border-subtle);border-radius:14px;align-items:flex-start;gap:10px;min-width:0;padding:12px;display:flex}.contact-member-card.family{border-color:color-mix(in srgb, var(--amethyst) 35%, var(--border-subtle));background:color-mix(in srgb, var(--amethyst) 6%, var(--surface-paper))}.contact-member-link{background:var(--surface-soft);width:32px;height:32px;color:var(--text-secondary);border-radius:50%;align-self:center;place-items:center;display:grid}.contact-member-kind{color:var(--amethyst);align-items:center;gap:4px;font-size:.74rem;font-weight:700;display:inline-flex}.contact-detail-member{color:var(--amethyst);flex-wrap:wrap;align-items:center;gap:6px;font-size:.78rem;font-weight:700;display:inline-flex}.contact-detail-unlink{min-height:28px;color:var(--text-secondary);align-items:center;gap:4px;padding:2px 8px;font-size:.74rem;display:inline-flex}@media (max-width:560px){.contact-member-pair{grid-template-columns:1fr}.contact-member-link{justify-self:center;transform:rotate(90deg)}}.contacts-empty-hint{margin-top:var(--space-md);color:var(--text-muted);max-width:440px;font-size:.82rem;line-height:1.5}.contacts-empty{padding:var(--space-xl);text-align:center;color:var(--text-muted);background:var(--surface-paper);border:1px dashed var(--border-subtle);box-shadow:var(--shadow-soft);border-radius:14px;grid-column:1/-1}.contacts-empty-text{font-size:.95rem}.contacts-empty-actions{gap:var(--space-sm);margin-top:var(--space-md);justify-content:center;display:flex}.settings-page{gap:12px;width:min(100%,1120px);margin:0 auto;display:grid}.settings-page-header{margin-bottom:0}.settings-title-block{align-items:center;gap:13px;min-width:0;display:flex}.settings-page-icon{background:color-mix(in srgb, var(--amethyst) 10%, var(--surface-paper));width:44px;height:44px;color:color-mix(in srgb, var(--amethyst) 72%, var(--text-primary));border:1px solid var(--border-subtle);border-radius:13px;flex:none;justify-content:center;align-items:center;display:inline-flex}.settings-layout{grid-template-columns:minmax(180px,220px) minmax(0,1fr);gap:12px;min-width:0;max-width:min(1040px,100%);display:grid}.settings-sidebar{top:var(--space-md);flex-direction:column;align-self:start;gap:2px;min-width:0;display:flex;position:sticky}.settings-sidebar-group{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;padding:12px 12px 4px;font-size:.68rem;font-weight:600}.settings-sidebar-item{min-height:42px;color:var(--text-secondary);cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:11px;align-items:center;gap:10px;width:100%;padding:10px 12px;font-family:inherit;font-size:.88rem;font-weight:700;transition:all .15s;display:flex}.settings-sidebar-item:hover{background:color-mix(in srgb, var(--surface-soft) 60%, transparent);color:var(--text-primary);border-color:var(--border-subtle)}.settings-sidebar-item.active{background:var(--surface-paper);border-color:var(--border-subtle);color:var(--text-primary);box-shadow:var(--shadow-soft);font-weight:820}.settings-content{min-width:0}.settings-mobile-list{gap:8px;display:grid}.settings-mobile-item{border:1px solid var(--border-subtle);background:var(--surface-paper);min-height:54px;color:var(--text-primary);cursor:pointer;text-align:left;width:100%;box-shadow:var(--shadow-soft);border-radius:13px;align-items:center;gap:12px;padding:12px 14px;font-family:inherit;font-size:.95rem;font-weight:760;transition:all .15s;display:flex}.settings-mobile-item:hover{background:color-mix(in srgb, var(--surface-soft) 50%, var(--surface-paper))}.settings-mobile-item svg:last-child{color:var(--text-muted);margin-left:auto}.settings-mobile-back{border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;margin-bottom:var(--space-md);background:0 0;border:none;align-items:center;gap:6px;padding:8px 12px;font-family:inherit;font-size:.85rem;font-weight:500;display:inline-flex}.settings-mobile-back:hover{color:var(--text-primary)}@media (max-width:768px){.settings-layout{grid-template-columns:1fr}.settings-sidebar{display:none}}.admin-page{gap:12px;width:min(100%,1120px);margin:0 auto;display:grid}.admin-page-header{margin-bottom:0}.admin-title-block{align-items:center;gap:13px;min-width:0;display:flex}.admin-page-icon{background:color-mix(in srgb, var(--accent-amber) 12%, var(--surface-paper));width:44px;height:44px;color:color-mix(in srgb, var(--accent-amber) 78%, var(--text-primary));border:1px solid var(--border-subtle);border-radius:13px;flex:none;justify-content:center;align-items:center;display:inline-flex}.admin-layout{max-width:1040px}.admin-sidebar{gap:4px}.admin-content{min-width:0}@media (max-width:768px){.admin-layout{gap:var(--space-md)}.admin-sidebar{flex-flow:wrap;gap:6px;display:flex;position:static}.admin-sidebar .settings-sidebar-item{width:auto}}.settings-grid{gap:10px;min-width:0;max-width:min(760px,100%);display:grid}.settings-section{border-radius:14px;min-width:0;max-width:100%;padding:14px}.settings-section:not(.glass):not(.glass-sm){background:var(--surface-paper);border:1px solid var(--border-subtle);box-shadow:var(--shadow-soft)}.settings-section-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--space-md);align-items:center;gap:8px;font-size:.78rem;font-weight:600;display:flex}.settings-divider{background:var(--border-subtle);height:1px;margin:var(--space-sm) 0}.settings-mobile-group{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;padding:12px 16px 4px;font-size:.68rem;font-weight:600}.settings-subsection{background:color-mix(in srgb, var(--surface-soft) 52%, var(--surface-paper));border:1px solid var(--border-subtle);padding:var(--space-md);border-radius:12px}[data-theme=light] .settings-section:not(.glass):not(.glass-sm){background:var(--surface-paper);border-color:var(--border-subtle)}[data-theme=light] .settings-subsection{background:color-mix(in srgb, var(--surface-soft) 52%, var(--surface-paper));border-color:var(--border-subtle)}.profile-row{align-items:center;gap:var(--space-md);display:flex}.profile-avatar{background:var(--grad-primary);color:#fff;border-radius:16px;flex-shrink:0;justify-content:center;align-items:center;width:56px;height:56px;font-size:1.3rem;font-weight:700;display:flex}.profile-info{flex:1}.profile-name{font-size:1.05rem;font-weight:600}.profile-email{color:var(--text-secondary);font-size:.82rem}.profile-role{border-radius:var(--radius-pill);color:var(--amethyst);font-size:.72rem;font-weight:500;font-family:var(--font-mono);background:#7c3aed1a;margin-top:4px;padding:3px 10px;display:inline-block}.theme-grid{gap:var(--space-sm);display:grid}.theme-item{align-items:center;gap:var(--space-md);border-radius:var(--radius-md);cursor:pointer;width:100%;color:inherit;font:inherit;text-align:left;background:0 0;border:2px solid #0000;padding:14px;transition:all .2s;display:flex}.theme-item.active{border-color:var(--amethyst);background:#7c3aed14}.theme-item-inactive{border-color:var(--glass-border);background:#ffffff05}.theme-item-inactive:hover{background:#ffffff0a;border-color:#7882b433}.theme-preview{border:1px solid var(--glass-border);border-radius:6px;flex-shrink:0;width:40px;height:28px}.theme-item-info{flex:1;gap:2px;min-width:0;display:grid}.theme-item-name{overflow-wrap:anywhere;font-size:.9rem;font-weight:500;display:block}.theme-item-desc{color:var(--text-muted);overflow-wrap:anywhere;font-size:.75rem;display:block}.lang-toggle,.week-start-toggle{gap:var(--space-sm);grid-template-columns:repeat(auto-fit,minmax(min(9rem,100%),1fr));min-width:0;max-width:100%;display:grid}.lang-btn{border-radius:var(--radius-sm);border:1px solid var(--glass-border);width:100%;min-width:0;min-height:40px;color:var(--text-secondary);cursor:pointer;white-space:normal;overflow-wrap:anywhere;background:0 0;padding:8px 12px;font-family:inherit;font-size:.84rem;font-weight:500;line-height:1.2;transition:all .2s}.lang-btn.active{background:var(--color-accent-fill);color:#fff;border-color:var(--color-accent-fill)}.token-display{font-family:var(--font-mono);border-radius:var(--radius-sm);word-break:break-all;background:#0003;flex:1;padding:8px 12px;font-size:.78rem;display:block}.adm-avatar-label{cursor:pointer;align-items:center;gap:4px;display:inline-flex}.adm-avatar-input{display:none}.profile-avatar-img{object-fit:cover}.set-field-group{margin-top:var(--space-md)}.set-label{color:var(--text-secondary);margin-bottom:var(--space-sm);font-size:.82rem;display:block}.set-file-input{font-size:.88rem}.set-input-narrow{max-width:200px}.set-color-grid{flex-wrap:wrap;gap:8px;display:flex}.set-color-swatch{border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;padding:0;display:flex;position:relative}.set-color-taken-label{color:#fff;font-size:.65rem;font-weight:700}.set-section-desc{color:var(--text-secondary);margin:var(--space-sm) 0 var(--space-md);font-size:.82rem;line-height:1.5}.set-field-hint{color:var(--text-muted);margin-top:4px;font-size:.75rem;display:block}.set-password-form{gap:var(--space-md);max-width:420px;display:grid}.set-password-form .btn-primary{justify-self:start}.set-password-error{color:var(--danger);border-radius:var(--radius-sm);background:#ef44441a;border:1px solid #ef444440;padding:8px 10px;font-size:.82rem}.set-danger-section{border-color:var(--error,#ef4444)}.set-danger-title{color:var(--error,#ef4444)}.set-danger-block{margin-bottom:var(--space-lg)}.set-danger-heading{font-size:.88rem;font-weight:600}.set-danger-desc{color:var(--text-secondary);margin-bottom:var(--space-sm);font-size:.82rem}.set-danger-confirm{color:var(--error,#ef4444);margin-bottom:var(--space-sm);font-size:.85rem}.set-btn-row{gap:var(--space-sm);display:flex}.btn-outline-danger{color:var(--error,#ef4444);border-color:var(--error,#ef4444)}.set-danger-section .btn{border:1px solid var(--glass-border);border-radius:var(--radius-sm);min-height:40px;color:var(--text-secondary);font:inherit;cursor:pointer;background:0 0;align-items:center;gap:8px;padding:0 14px;font-size:.85rem;font-weight:600;display:inline-flex}.set-danger-section .btn-outline-danger{color:var(--error,#ef4444);border-color:var(--error,#ef4444)}.set-danger-section .btn-danger{background:var(--error,#ef4444);border-color:var(--error,#ef4444);color:#fff}.set-danger-section .btn:disabled{opacity:.5;cursor:not-allowed}.set-nav-desc+.set-nav-group{margin-top:var(--space-md)}.set-delete-input{margin-bottom:var(--space-sm);max-width:200px}.set-notif-grid{gap:var(--space-md);display:grid}.set-checkbox-label{cursor:pointer;align-items:center;gap:8px;font-size:.88rem;display:flex}.set-input-time{max-width:140px}.set-time-row{gap:var(--space-sm);align-items:center;display:flex}.set-separator{color:var(--text-muted)}.set-save-btn{justify-self:start}.set-push-section{border-top:1px solid var(--glass-border);padding-top:var(--space-md);margin-top:var(--space-sm)}.set-push-header{margin-bottom:var(--space-sm);align-items:center;gap:8px;display:flex}.set-push-title{font-size:.88rem;font-weight:600}.set-push-status{align-items:center;gap:var(--space-sm);flex-wrap:wrap;display:flex}.set-push-enabled{color:var(--success);font-size:.85rem}.set-push-disable{font-size:.82rem}.set-push-blocked{color:var(--warning);margin-top:var(--space-sm);font-size:.78rem}.set-push-diagnostic{border:1px solid var(--glass-border);border-radius:var(--radius-md);padding:var(--space-sm);margin-bottom:var(--space-sm);background:var(--glass-bg)}.set-push-diagnostic strong{margin-bottom:2px;font-size:.86rem;display:block}.set-push-diagnostic p{color:var(--text-muted);margin:0;font-size:.78rem;line-height:1.45}.set-push-diagnostic-warning{border-color:color-mix(in srgb, var(--warning) 38%, var(--glass-border))}.set-push-diagnostic-success{border-color:color-mix(in srgb, var(--success) 38%, var(--glass-border))}.set-push-category-section{gap:var(--space-sm);margin-bottom:var(--space-md);padding:var(--space-md);border:1px solid var(--glass-border);border-radius:var(--radius-lg);background:color-mix(in srgb, var(--void-surface) 70%, transparent);display:grid}.set-push-category-title{font-size:.9rem;font-weight:700}.set-push-category-help{color:var(--text-muted);margin:-2px 0 2px;font-size:.8rem;line-height:1.5}.set-push-category-groups{gap:var(--space-md);display:grid}.set-push-category-group{gap:8px;display:grid}.set-push-category-group-title{color:var(--text-secondary);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.74rem;font-weight:700}.set-push-category-list{gap:8px;display:grid}.set-push-category-row{justify-content:space-between;align-items:center;gap:var(--space-md);border:1px solid var(--glass-border);border-radius:var(--radius-md);background:var(--glass-bg);cursor:pointer;min-height:52px;padding:10px 12px;transition:border-color .15s,background .15s,transform .15s;display:flex}.set-push-category-row:hover{border-color:color-mix(in srgb, var(--amethyst) 42%, var(--glass-border));background:color-mix(in srgb, var(--amethyst) 8%, var(--glass-bg))}.set-push-category-row:focus-within{outline:2px solid color-mix(in srgb, var(--amethyst) 72%, transparent);outline-offset:2px}.set-push-category-copy{gap:3px;min-width:0;display:grid}.set-push-category-copy strong{font-size:.86rem;line-height:1.25}.set-push-category-copy small{color:var(--text-muted);font-size:.76rem;line-height:1.4}.set-push-category-control{flex:none;width:18px;height:18px;margin:0}@media (max-width:520px){.set-push-category-section{padding:var(--space-sm)}.set-push-category-row{align-items:flex-start;gap:var(--space-sm);min-height:56px;padding:12px}.set-push-category-control{margin-top:2px}}.set-nav-desc{color:var(--text-secondary);margin-bottom:var(--space-md);font-size:.85rem;line-height:1.5}.set-nav-list{gap:2px;display:grid}.set-nav-group+.set-nav-group{margin-top:var(--space-md)}.set-nav-group-title{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);padding:0 12px 4px;font-size:.72rem;font-weight:650}.set-nav-item{border-radius:var(--radius-sm);align-items:center;gap:12px;padding:8px 12px;transition:all .15s;display:flex}.set-nav-item-icon{color:var(--text-muted);flex-shrink:0}.set-nav-item-label{flex:1;font-size:.9rem;font-weight:500}.set-nav-item-badge{color:var(--text-muted);font-size:.68rem;font-family:var(--font-mono);flex-shrink:0}.set-nav-btn{background:0 0;border:none;min-height:32px;padding:4px 6px}.set-nav-actions{gap:var(--space-sm);margin-top:var(--space-md);display:flex}.set-about-desc{color:var(--text-secondary);font-size:.88rem;line-height:1.6}.set-about-desc-mb{color:var(--text-secondary);margin-bottom:var(--space-md);font-size:.88rem;line-height:1.6}.set-about-version{margin-top:var(--space-md);padding-top:var(--space-sm);border-top:1px solid var(--glass-border);color:var(--text-secondary);font-size:.82rem}.set-about-uptodate{margin-left:var(--space-sm);color:var(--amethyst)}.set-about-update{margin-left:var(--space-sm)}.set-about-link{color:var(--amethyst)}.set-about-support-links{gap:var(--space-sm);flex-wrap:wrap;display:flex}.set-about-support-btn{align-items:center;gap:.4rem;text-decoration:none;display:inline-flex}.bottom-nav{bottom:max(12px, env(safe-area-inset-bottom));z-index:50;-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);box-shadow:var(--shadow-lg);background:#161b2bf0;border-radius:18px;padding:7px 10px;display:none;position:fixed;left:12px;right:12px}@keyframes pulse-glow{0%,to{box-shadow:0 0 #7c3aed4d}50%{box-shadow:0 0 0 6px #7c3aed00}}.pulse{animation:2.5s ease-in-out infinite pulse-glow}.stagger>*{animation:staggerIn .5s var(--ease-out-expo) both}.stagger>:first-child{animation-delay:50ms}.stagger>:nth-child(2){animation-delay:.1s}.stagger>:nth-child(3){animation-delay:.15s}.stagger>:nth-child(4){animation-delay:.2s}.stagger>:nth-child(5){animation-delay:.25s}.stagger>:nth-child(6){animation-delay:.3s}.stagger>:nth-child(7){animation-delay:.35s}.stagger>:nth-child(8){animation-delay:.4s}@keyframes staggerIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.skeleton{background:linear-gradient(90deg, var(--void-surface) 25%, var(--void-elevated) 50%, var(--void-surface) 75%);border-radius:var(--radius-md);background-size:800px 100%;animation:1.8s ease-in-out infinite shimmer}.skeleton-text{border-radius:6px;height:14px;margin-bottom:8px}.skeleton-text.lg{width:60%;height:20px}.skeleton-text.sm{width:40%;height:12px}.skeleton-avatar{border-radius:14px;flex-shrink:0;width:48px;height:48px}.skeleton-card{min-height:120px}.loading-spinner{border:3px solid var(--glass-border);border-top-color:var(--amethyst);border-radius:50%;width:36px;height:36px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading-center{justify-content:center;align-items:center;min-height:200px;display:flex}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--void-elevated);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--void-hover)}.sidebar-toggle:focus-visible,.calendar-nav-btn:focus-visible,.today-btn:focus-visible,.calendar-view-btn:focus-visible,.tasks-filter-btn:focus-visible,.shopping-add-list-btn:focus-visible,.auth-tab:focus-visible,.btn-demo:focus-visible,.btn-primary:focus-visible,.btn-ghost:focus-visible,.btn-sm:focus-visible,.nav-item:focus-visible,.lang-btn:focus-visible,.bento-more:focus-visible,.task-checkbox:focus-visible,.task-delete-btn:focus-visible,.task-edit-btn:focus-visible,.task-form-toggle:focus-visible,.shopping-check:focus-visible,.mobile-hamburger:focus-visible,.shopping-list-card:focus-visible,.shopping-item:focus-visible,.shopping-list-action:focus-visible,.shopping-item-action:focus-visible,.shopping-item-search:focus-visible,.store-search-option:focus-visible,.shopping-template-toggle:focus-visible,.shopping-list-delete:focus-visible,.shopping-item-delete:focus-visible,.theme-item:focus-visible,.quick-add-btn:focus-visible,.week-day-header:focus-visible,.calendar-day:focus-visible:not(.empty){outline:2px solid var(--amethyst);outline-offset:2px}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}:root[data-display-mode=standalone] .view-enter{animation:none!important}:root[data-display-mode=standalone] .glass,:root[data-display-mode=standalone] .glass-sm,:root[data-display-mode=standalone] .sidebar,:root[data-display-mode=standalone] .bottom-nav,:root[data-display-mode=standalone] .search-overlay{-webkit-backdrop-filter:none!important}:root[data-display-mode=standalone] .sidebar,:root[data-display-mode=standalone] .bottom-nav,:root[data-display-mode=standalone] .search-overlay,:root[data-display-mode=standalone][data-theme=light] .sidebar,:root[data-display-mode=standalone][data-theme=light] .bottom-nav,:root[data-display-mode=standalone][data-theme=light] .search-overlay{background:var(--void-surface)}.audit-entry{align-items:center;gap:var(--space-sm);border:1px solid var(--border-subtle);background:color-mix(in srgb, var(--surface-soft) 50%, var(--surface-paper));border-radius:12px;flex-wrap:wrap;padding:10px 12px;font-size:.85rem;display:flex}.audit-entry+.audit-entry{margin-top:8px}.audit-time{font-family:var(--font-mono);color:var(--text-muted);flex-shrink:0;font-size:.75rem}.audit-action-badge{border-radius:var(--radius-pill);background:color-mix(in srgb, var(--amethyst) 10%, var(--surface-paper));color:color-mix(in srgb, var(--amethyst) 80%, var(--text-primary));font-size:.75rem;font-weight:800;font-family:var(--font-mono);padding:4px 10px}.audit-target{color:var(--text-primary);font-weight:500}.audit-details{font-family:var(--font-mono);color:var(--text-secondary);background:var(--surface-paper);border:1px solid var(--border-subtle);border-radius:8px;padding:4px 8px;font-size:.75rem}.audit-admin{color:var(--text-muted);margin-left:auto;font-size:.75rem}[data-theme=light] .audit-action-badge{background:color-mix(in srgb, var(--amethyst) 10%, var(--surface-paper));color:color-mix(in srgb, var(--amethyst) 80%, var(--text-primary))}[data-theme=light] .audit-details{background:var(--surface-paper)}@media (max-width:1100px){.calendar-layout{grid-template-columns:1fr}}@media (max-width:768px){.sidebar{width:260px;min-width:260px;transition:transform .3s var(--ease-out-expo);z-index:60;padding-top:env(safe-area-inset-top);position:fixed;top:0;left:0;transform:translate(-100%)}.main-content{width:100%;padding:12px;padding-bottom:calc(112px + env(safe-area-inset-bottom));margin-left:0}.bottom-nav{display:block}.bento-card-title{letter-spacing:.07em;font-size:.7rem}.bento-card-visual{display:none}.daily-loop-actions{grid-template-columns:1fr;gap:8px}.daily-loop-action{grid-template-rows:1fr;grid-template-columns:auto minmax(0,1fr) auto;min-height:72px;padding:10px}.daily-loop-action-art{border-radius:13px;grid-row:auto;width:42px;height:42px}.daily-loop-action-value{font-size:1.08rem}.daily-loop-action-link{grid-column:auto;font-size:.68rem}.view-header,.tasks-toolbar{flex-direction:column;align-items:flex-start}.tasks-count{margin-left:0}.task-form-grid{grid-template-columns:1fr}.calendar-controls{flex-wrap:wrap}.calendar-view-toggle{margin-left:0}.shopping-layout{gap:var(--space-sm);grid-template-columns:1fr}.shopping-lists-panel{padding-bottom:var(--space-sm);scrollbar-width:none;flex-direction:row;order:1;overflow-x:auto}.shopping-items-panel{order:2}.shopping-templates-panel{padding:var(--space-sm);gap:var(--space-sm);order:3}.shopping-lists-panel::-webkit-scrollbar{display:none}.shopping-lists-panel .shopping-list-card{flex-shrink:0;min-width:140px}.shopping-template-item-row{grid-template-columns:1fr}.shopping-item-action,.shopping-list-action{opacity:1;pointer-events:auto}.shopping-list-rename-form{grid-template-columns:minmax(0,1fr) auto auto}.shopping-item-edit-form{grid-template-columns:1fr;align-items:stretch}.shopping-item-edit-actions{justify-content:stretch}.shopping-item-edit-actions>button{flex:1}.view-title{font-size:1.3rem}.calendar-month-label{min-width:auto}.quick-add-bar{gap:var(--space-xs);padding:var(--space-sm);grid-template-columns:minmax(0,1fr) minmax(0,1fr) 48px;align-items:stretch;display:grid}.quick-add-bar .shopping-item-suggest-field{grid-area:1/1/auto/3;width:100%;min-width:0}.quick-add-bar .quick-add-input:first-of-type{width:100%;min-width:0}.quick-add-bar .shopping-spec-input{grid-area:2/1/auto/2;width:100%;min-width:0;flex:none!important}.quick-add-bar .shopping-category-input{grid-area:2/2/auto/4;width:100%;min-width:0;flex:none!important}.quick-add-btn{grid-area:1/3;width:48px;min-width:48px;min-height:48px}.shopping-items-list{padding-bottom:calc(96px + env(safe-area-inset-bottom))}.shopping-item .shopping-category-pill{display:none}.calendar-day{aspect-ratio:1;min-height:44px}.cal-form-row{grid-template-columns:1fr}.notif-panel{border-left:none;border-top:1px solid var(--glass-border);border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100vw;max-height:80vh;padding-bottom:calc(var(--space-lg) + env(safe-area-inset-bottom));animation-name:notifSlideUp;top:auto;bottom:0}@keyframes notifSlideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}}.setup-steps{justify-content:center;gap:8px;margin-bottom:20px;display:flex}.setup-dot{background:var(--glass-border);border-radius:50%;width:8px;height:8px;transition:all .3s}.setup-dot.active{background:var(--color-accent-fill);box-shadow:0 0 8px var(--amethyst-glow);transform:scale(1.3)}.setup-dot.done{background:var(--success)}.onboarding-feature-card{border-radius:var(--radius-sm);background:var(--glass);border:1px solid var(--glass-border);align-items:center;gap:14px;padding:14px 16px;display:flex}.onboarding-feature-icon{border-radius:var(--radius-sm);background:var(--grad-primary);color:#fff;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.onboarding-color-picker{flex-wrap:wrap;gap:10px;margin-top:8px;display:flex}.onboarding-color-chip{cursor:pointer;border:3px solid #0000;border-radius:50%;width:36px;height:36px;transition:all .2s;position:relative}.onboarding-color-chip:hover:not(:disabled){transform:scale(1.15)}.onboarding-color-chip.active{border-color:var(--text-primary);box-shadow:0 0 0 2px var(--void), 0 0 0 4px var(--text-primary)}.onboarding-color-chip.taken{opacity:.3;cursor:not-allowed}.onboarding-avatar-wrapper{cursor:pointer;border-radius:50%;width:80px;height:80px;position:relative;overflow:hidden}.onboarding-avatar-img{object-fit:cover;border-radius:50%;width:100%;height:100%}.onboarding-avatar-placeholder{width:100%;height:100%;color:var(--text-secondary);background:var(--glass);border:2px solid var(--glass-border);border-radius:50%;justify-content:center;align-items:center;font-size:2rem;font-weight:700;display:flex}.onboarding-avatar-overlay{color:#fff;opacity:0;background:#0006;border-radius:50%;justify-content:center;align-items:center;transition:opacity .2s;display:flex;position:absolute;inset:0}.onboarding-avatar-wrapper:hover .onboarding-avatar-overlay,.onboarding-avatar-wrapper:focus-visible .onboarding-avatar-overlay{opacity:1}.onboarding-tour-carousel{border-radius:var(--radius-sm);margin-bottom:4px;overflow:hidden}.onboarding-tour-track{transition:transform .3s;display:flex}.onboarding-tour-slide{text-align:center;min-width:100%;padding:20px 16px}.onboarding-tour-dot{background:var(--glass-border);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:12px;min-width:44px;height:12px;min-height:44px;padding:0;transition:all .2s;display:flex}.onboarding-tour-dot:after{content:"";background:inherit;border-radius:50%;width:8px;height:8px;transition:all .2s}.onboarding-tour-dot.active:after{background:var(--color-accent-fill);transform:scale(1.3)}.setup-upload-zone{border:2px dashed var(--glass-border);border-radius:var(--radius-md);padding:var(--space-xl) var(--space-lg);text-align:center;cursor:pointer;transition:all .2s}.setup-upload-zone:hover,.setup-upload-zone.drag-over{border-color:var(--amethyst);background:#7c3aed0a}.setup-theme-grid{grid-template-columns:repeat(2,1fr);gap:10px;margin-top:8px;display:grid}.setup-theme-card{border-radius:var(--radius-sm);border:2px solid var(--glass-border);color:var(--text-secondary);cursor:pointer;background:0 0;flex-direction:column;align-items:center;gap:6px;padding:10px 6px;font-family:inherit;font-size:.78rem;transition:all .2s;display:flex}.setup-theme-card.active{border-color:var(--amethyst);color:var(--text-primary)}.setup-theme-card:hover{border-color:var(--amethyst)}.setup-theme-preview{border:1px solid var(--glass-border);border-radius:6px;width:100%;height:28px}.setup-lang-toggle{z-index:10;color:var(--text-muted);align-items:center;gap:4px;font-size:.8rem;display:flex;position:fixed;top:16px;right:16px}.setup-lang-toggle select{border:1px solid var(--glass-border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:6px;padding:4px 8px;font-family:inherit;font-size:.8rem}.btn-secondary{border:1px solid var(--glass-border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;background:0 0;padding:15px;font-family:inherit;font-size:.95rem;font-weight:500;transition:all .2s}.btn-secondary:hover{border-color:var(--amethyst);color:var(--text-primary);background:#7c3aed0f}.btn-link{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:8px;font-family:inherit;font-size:.85rem;transition:color .2s}.btn-link:hover{color:var(--text-primary)}.toast-container{bottom:var(--space-lg);right:var(--space-lg);z-index:9999;gap:var(--space-sm);pointer-events:none;flex-direction:column;display:flex;position:fixed}.toast{pointer-events:auto;align-items:center;gap:var(--space-sm);min-width:280px;max-width:420px;padding:var(--space-md);border-radius:var(--radius-sm);background:var(--void-elevated);border:1px solid var(--glass-border);border-left:3px solid var(--info);color:var(--text-primary);animation:toastEnter .35s var(--ease-out-expo) both;font-size:.88rem;display:flex;box-shadow:0 8px 32px #00000040}.toast--success{border-left-color:var(--success)}.toast--error{border-left-color:var(--danger)}.toast--info{border-left-color:var(--info)}.toast--exiting{animation:toastExit .3s var(--ease-out-expo) both}.toast__message{flex:1;line-height:1.4}.toast__action{color:var(--amethyst);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:4px;padding:2px 6px;font-family:inherit;font-size:.85rem;font-weight:600;transition:background .15s}.toast__action:hover{background:var(--amethyst-glow)}.toast__dismiss{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;padding:4px;transition:color .15s,background .15s;display:flex}.toast__dismiss:hover{color:var(--text-primary);background:#ffffff0f}@keyframes toastEnter{0%{opacity:0;transform:translateY(16px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes toastExit{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(8px)scale(.96)}}[data-theme=light] .toast{background:var(--void-surface);box-shadow:0 4px 20px #0000001a}[data-theme=light] .toast__dismiss:hover{background:#0000000a}@media (max-width:768px){.toast-container{bottom:calc(88px + env(safe-area-inset-bottom));right:var(--space-md);left:var(--space-md)}.toast{min-width:0;max-width:100%}}.set-data-section-desc{color:var(--text-secondary);margin-bottom:var(--space-md);font-size:.85rem;line-height:1.5}.set-data-block{margin-bottom:var(--space-lg)}.set-data-sub-heading{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--space-sm);font-size:.82rem;font-weight:600}.set-data-sub-heading--block{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--space-sm);font-size:.82rem;font-weight:600;display:block}.set-data-btn-row{gap:var(--space-sm);margin-bottom:var(--space-sm);display:flex}.set-data-msg{margin-bottom:var(--space-sm);font-size:.88rem}.set-data-warning{margin-bottom:var(--space-sm);color:var(--warning,#f6ad55);font-size:.82rem}.set-data-warning-list{margin:4px 0 0 16px;padding:0}.set-data-form-hint{color:var(--text-muted);font-size:.82rem}.set-data-file-input{padding:10px 12px}.set-data-textarea-ics{min-height:100px}.set-data-textarea-csv{min-height:120px}.set-data-sub-grid{gap:var(--space-md);display:grid}.set-data-flex-row{gap:var(--space-sm);align-items:center;display:flex}.set-data-flex-grow{flex:1}.set-data-no-shrink{flex-shrink:0}.set-data-hints-btn{font-size:.85rem}.set-data-hints-content{margin-top:var(--space-sm);gap:var(--space-md);color:var(--text-secondary);font-size:.85rem;line-height:1.6;display:grid}.set-data-hint-para{margin:4px 0 0}.set-data-hint-para--flush{margin:0}.set-data-muted-info{color:var(--text-muted);margin-bottom:var(--space-sm);font-size:.85rem}.set-token-section-desc{color:var(--text-secondary);margin-bottom:var(--space-md);font-size:.85rem;line-height:1.5}.set-token-banner{border-radius:var(--radius-sm);padding:var(--space-md);margin-bottom:var(--space-md);background:#10b9811a;border:1px solid #10b9814d}.set-token-banner-header{margin-bottom:var(--space-sm);align-items:center;gap:8px;display:flex}.set-token-banner-title{font-size:.88rem;font-weight:600}.set-token-banner-warning{color:var(--warning);margin-bottom:var(--space-sm);font-size:.82rem}.set-token-banner-row{gap:var(--space-sm);align-items:center;display:flex}.set-token-no-shrink{flex-shrink:0}.set-token-dismiss{color:var(--text-muted);cursor:pointer;margin-top:var(--space-sm);background:0 0;border:none;font-size:.78rem}.set-token-empty{color:var(--text-muted);font-size:.85rem;font-style:italic}.set-token-item{margin-bottom:var(--space-sm)}.set-token-item-row{justify-content:space-between;align-items:flex-start;display:flex}.set-token-name{font-size:.92rem;font-weight:600}.set-token-scopes{color:var(--text-muted);margin-top:4px;font-size:.78rem}.set-token-meta{gap:var(--space-md);color:var(--text-muted);margin-top:6px;font-size:.75rem;display:flex}.set-token-revoke{color:var(--danger);flex-shrink:0}.set-token-create-form{margin-top:var(--space-md)}.set-token-form-grid{gap:var(--space-md);display:grid}.set-token-scope-check{cursor:pointer;align-items:center;gap:8px;margin-bottom:8px;font-size:.88rem;display:flex}.set-token-scope-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:6px;display:grid}.set-token-scope-module{font-size:.82rem}.set-token-scope-label{color:var(--text-secondary);margin-bottom:4px;font-weight:500}.set-token-scope-action{cursor:pointer;align-items:center;gap:6px;margin-bottom:2px;display:flex}.set-token-expiry-row{gap:var(--space-sm);align-items:center;display:flex}.set-token-expiry-input{flex:1}.set-token-actions{gap:var(--space-sm);display:flex}.set-token-add-btn{margin-top:var(--space-sm)}.set-token-banner-icon{color:var(--success)}.set-token-dismiss-icon{vertical-align:middle}.meal-header-actions{gap:var(--space-sm);flex-wrap:wrap;align-items:center;display:flex}.meal-week-nav{align-items:center;gap:4px;display:inline-flex}.meal-week-nav-btn{min-height:36px;padding:6px 10px}.meal-week-nav-label{font-variant-numeric:tabular-nums;align-items:center;gap:8px;min-height:36px;padding:6px 14px;display:inline-flex}.meal-loading{color:var(--text-muted);padding:var(--space-md) 0;font-size:.88rem}.meal-grid{margin-top:var(--space-lg);grid-template-columns:minmax(90px,120px) repeat(7,minmax(0,1fr));gap:6px;display:grid;overflow-x:auto}.meal-grid-corner{background:0 0}.meal-grid-day-header{color:var(--text-secondary);border-bottom:1px solid var(--glass-border);text-transform:uppercase;letter-spacing:.04em;flex-direction:column;justify-content:center;align-items:flex-start;gap:2px;padding:8px 10px;font-size:.82rem;font-weight:600;display:flex}.meal-grid-day-today{color:var(--amethyst);border-bottom-color:var(--amethyst)}.meal-grid-day-name{font-size:.72rem}.meal-grid-day-date{font-size:.88rem;font-weight:500;font-family:var(--font-mono);color:var(--text-muted);text-transform:none;letter-spacing:0}.meal-grid-day-today .meal-grid-day-date{color:var(--amethyst)}.meal-grid-row{display:contents}.meal-grid-slot-label{color:var(--text-secondary);align-items:center;padding:10px 12px;font-size:.85rem;font-weight:600;display:flex}.meal-grid-cell{background:var(--glass);border:1px solid var(--glass-border);border-radius:var(--radius-sm);text-align:left;cursor:pointer;color:var(--text-primary);min-height:72px;transition:transform .15s var(--ease-out-expo), border-color .15s, background .15s;flex-direction:column;align-items:flex-start;gap:4px;padding:10px 12px;font-family:inherit;display:flex;position:relative}.meal-grid-cell:hover{border-color:#7c3aed59;transform:translateY(-1px)}.meal-grid-cell:focus-visible{outline:2px solid var(--amethyst);outline-offset:2px}.meal-grid-cell-empty{color:var(--text-muted);background:0 0;border-style:dashed;justify-content:center;align-items:center}.meal-grid-cell-empty:hover{color:var(--amethyst);background:#7c3aed0d}.meal-grid-cell-filled:before{content:"";background:var(--meal-accent,var(--amethyst));border-top-left-radius:var(--radius-sm);border-bottom-left-radius:var(--radius-sm);width:3px;position:absolute;top:0;bottom:0;left:0}.meal-grid-slot-morning{--meal-accent:var(--warning)}.meal-grid-slot-noon{--meal-accent:var(--sapphire)}.meal-grid-slot-evening{--meal-accent:var(--amethyst)}.meal-cell-title{text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.92rem;font-weight:600;line-height:1.3;display:-webkit-box;overflow:hidden}.meal-cell-meta{color:var(--text-muted);font-size:.75rem}.meal-cell-edit-icon{color:var(--text-muted);opacity:0;transition:opacity .15s;position:absolute;top:8px;right:8px}.meal-grid-cell-filled:hover .meal-cell-edit-icon{opacity:1}.meal-dialog{padding:var(--space-xl);gap:var(--space-md);background:var(--void-surface);border:1px solid var(--glass-border);border-radius:var(--radius-lg);flex-direction:column;width:92%;max-width:640px;max-height:92vh;display:flex;overflow-y:auto}[data-theme=light] .meal-dialog{border-color:#0000000f}.meal-dialog-header{justify-content:space-between;align-items:center;gap:var(--space-sm);display:flex}.meal-dialog-title{margin:0;font-size:1.1rem;font-weight:600}.meal-dialog-close{color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;min-height:auto;padding:6px;display:inline-flex}.meal-dialog-close:hover{color:var(--text-primary);background:#7882b414}.meal-dialog-close:focus-visible{outline:2px solid var(--amethyst);outline-offset:2px}.meal-form{gap:var(--space-md);flex-direction:column;display:flex}.meal-form-grid{gap:var(--space-sm);grid-template-columns:2fr 1fr 1fr;display:grid}.meal-form-grid .form-input{width:100%}.meal-form-notes{resize:vertical;min-height:70px;font-family:inherit}.meal-ingredients{gap:var(--space-sm);flex-direction:column;display:flex}.meal-ingredients-header{justify-content:space-between;align-items:center;gap:var(--space-sm);display:flex}.meal-ingredients-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;font-size:.85rem;font-weight:600}.meal-ingredient-empty{color:var(--text-muted);margin:0;font-size:.82rem;font-style:italic}.meal-ingredient-add{min-height:auto;padding:4px 10px;font-size:.8rem}.meal-ingredient-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.meal-ingredient-row{grid-template-columns:2fr 1fr 1fr auto;align-items:center;gap:6px;display:grid}.meal-ingredient-row .form-input{width:100%;padding:10px 12px}.meal-ingredient-remove{color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;min-height:auto;padding:6px;display:inline-flex}.meal-ingredient-remove:hover{color:var(--danger);background:#ef444414;border-color:#ef44444d}.meal-form-actions{justify-content:space-between;align-items:center;gap:var(--space-sm);margin-top:var(--space-sm);display:flex}.meal-form-actions-right{gap:var(--space-sm);margin-left:auto;display:flex}.meal-dialog-delete{color:var(--danger);border-color:#ef44444d}.meal-dialog-delete:hover{background:#ef444414}@media (max-width:780px){.meal-grid{grid-template-columns:minmax(70px,90px) repeat(7,minmax(60px,1fr))}.meal-grid-day-header{padding:6px}.meal-grid-day-name{display:none}.meal-grid-cell{min-height:54px;padding:6px 8px}.meal-cell-title{font-size:.82rem}.meal-cell-meta{font-size:.68rem}.meal-form-grid{grid-template-columns:1fr}.meal-ingredient-row{grid-template-columns:1fr 80px 60px auto}}.meal-grid-cell-filled{padding:0}.meal-cell-edit-btn{color:inherit;text-align:left;cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;flex-direction:column;align-items:flex-start;gap:4px;width:100%;height:100%;padding:10px 32px 10px 12px;font-family:inherit;display:flex;position:relative}.meal-cell-edit-btn:focus-visible{outline:2px solid var(--amethyst);outline-offset:-2px}.meal-cell-grip-btn{color:var(--text-muted);cursor:grab;opacity:0;touch-action:manipulation;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;min-height:auto;padding:4px;transition:opacity .15s;display:inline-flex;position:absolute;top:4px;right:4px}.meal-grid-cell-filled:hover .meal-cell-grip-btn,.meal-cell-grip-btn[aria-expanded=true],.meal-cell-grip-btn:focus-visible{opacity:1}.meal-cell-grip-btn:hover{color:var(--text-primary);background:#7882b41f}.meal-cell-grip-btn:focus-visible{outline:2px solid var(--amethyst);outline-offset:2px}.meal-cell-grip-btn:active{cursor:grabbing}.meal-grid-cell-dragging{opacity:.3}.meal-grid-cell-drop-over{border-color:var(--amethyst);background:#7c3aed14}.meal-cell-move-panel{z-index:4;border:1px solid var(--glass-border);background:var(--void-elevated);box-shadow:var(--shadow-soft);border-radius:8px;padding:6px;position:absolute;bottom:8px;left:8px;right:8px}.meal-cell-move-select{width:100%;min-height:34px;padding:6px 8px;font-size:.78rem}.meal-push{padding:var(--space-sm);border:1px dashed var(--glass-border);border-radius:var(--radius-sm);background:#7c3aed0a;flex-direction:column;gap:6px;display:flex}.meal-push-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;align-items:center;gap:6px;font-size:.78rem;font-weight:600;display:inline-flex}.meal-push-row{align-items:center;gap:6px;display:flex}.meal-push-list{flex:1;min-width:0}.meal-push-btn{white-space:nowrap}.meal-recipe-picker{gap:var(--space-sm);padding:var(--space-sm);border:1px dashed var(--glass-border);border-radius:var(--radius-sm);background:#2563eb0a;grid-template-columns:120px 1fr;align-items:center;display:grid}.meal-recipe-picker-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;align-items:center;gap:6px;font-size:.82rem;font-weight:600;display:inline-flex}.meal-recipe-picker-select{width:100%;min-width:0}.meal-plans-page{box-sizing:border-box;gap:12px;width:min(100%,1120px);margin:0 auto;padding-inline:clamp(8px,1.6vw,14px);display:grid}.meal-plans-page .meal-plan-header{border:1px solid var(--border-subtle);background:var(--surface-paper);min-height:66px;box-shadow:var(--shadow-soft);border-radius:14px;align-items:center;gap:12px;margin-bottom:0;padding:12px 16px}.meal-plan-title-block{align-items:center;gap:13px;min-width:0;display:flex}.meal-plan-page-icon{background:color-mix(in srgb, var(--accent-amber) 12%, var(--surface-paper));width:44px;height:44px;color:color-mix(in srgb, var(--accent-amber) 80%, var(--text-primary));border:1px solid var(--border-subtle);border-radius:13px;flex:none;justify-content:center;align-items:center;display:inline-flex}.meal-plans-page .view-title{color:var(--text-primary);letter-spacing:0;margin:0;font-size:1.1rem;font-weight:850}.meal-plans-page .view-subtitle{color:var(--text-secondary);margin-top:2px;font-size:.8rem;font-weight:650}.meal-plans-page .meal-header-actions{justify-content:flex-end;gap:8px}.meal-plans-page .meal-week-nav{gap:6px}.meal-plans-page .meal-week-nav-btn,.meal-plans-page .meal-week-nav-label,.meal-plans-page .meal-week-shopping .btn,.meal-plans-page .btn-primary{min-height:38px;box-shadow:none;border-radius:10px}.meal-plans-page .meal-week-nav-btn,.meal-plans-page .meal-week-nav-label,.meal-plans-page .meal-week-shopping .btn{border-color:var(--border-subtle);background:color-mix(in srgb, var(--surface-soft) 64%, var(--surface-paper));color:var(--text-primary)}.meal-plans-page .meal-week-nav-label{font-family:var(--font-ui);font-size:.8rem;font-weight:760}.meal-plan-week-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.meal-plan-summary-card{border:1px solid var(--border-subtle);background:var(--surface-paper);min-height:66px;box-shadow:var(--shadow-soft);border-radius:14px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.meal-plan-summary-card:before{content:"";background:color-mix(in srgb, var(--meal-accent,var(--amethyst)) 14%, var(--surface-soft));border:1px solid color-mix(in srgb, var(--meal-accent,var(--amethyst)) 20%, var(--border-subtle));border-radius:11px;width:34px;height:34px}.meal-plan-summary-morning{--meal-accent:var(--warning)}.meal-plan-summary-noon{--meal-accent:var(--sapphire)}.meal-plan-summary-evening{--meal-accent:var(--amethyst)}.meal-plan-summary-label{min-width:0;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;flex:1;font-size:.78rem;font-weight:800}.meal-plan-summary-value{color:var(--text-primary);font-family:var(--font-mono);font-size:1.35rem;font-weight:880;line-height:1}.meal-plans-page .meal-week-shopping{align-items:center;gap:7px;display:inline-flex}.meal-plans-page .meal-week-shopping-list{border-color:var(--border-subtle);background:var(--surface-paper);min-width:150px;min-height:38px;color:var(--text-primary);border-radius:10px;padding:7px 34px 7px 12px;font-size:.82rem}.meal-plans-page .meal-loading{border:1px solid var(--border-subtle);background:color-mix(in srgb, var(--surface-soft) 62%, var(--surface-paper));border-radius:12px;margin:0;padding:12px 16px}.meal-plans-page .meal-grid{border:1px solid var(--border-subtle);background:var(--surface-paper);box-shadow:var(--shadow-soft);border-radius:14px;grid-template-columns:minmax(78px,92px) repeat(7,minmax(86px,1fr));gap:8px;margin-top:0;padding:12px}.meal-plans-page .meal-grid-day-header,.meal-plans-page .meal-grid-slot-label{border:1px solid var(--border-subtle);background:color-mix(in srgb, var(--surface-soft) 68%, var(--surface-paper));border-radius:11px;min-height:50px}.meal-plans-page .meal-grid-day-header{text-align:center;letter-spacing:0;align-items:center;padding:8px 6px}.meal-plans-page .meal-grid-day-today{color:var(--amethyst);border-color:color-mix(in srgb, var(--amethyst) 28%, var(--border-subtle));background:color-mix(in srgb, var(--amethyst) 8%, var(--surface-paper))}.meal-plans-page .meal-grid-day-name{color:var(--text-secondary);font-size:.7rem;font-weight:800}.meal-plans-page .meal-grid-day-date{color:var(--text-primary);font-family:var(--font-ui);font-size:.82rem;font-weight:820}.meal-plans-page .meal-grid-slot-label{color:var(--text-primary);text-transform:uppercase;letter-spacing:.06em;justify-content:center;padding:8px;font-size:.78rem;font-weight:850}.meal-plans-page .meal-grid-cell{border-color:var(--border-subtle);background:color-mix(in srgb, var(--surface-soft) 54%, var(--surface-paper));min-height:74px;box-shadow:none;border-radius:11px}.meal-plans-page .meal-grid-cell:hover{border-color:color-mix(in srgb, var(--amethyst) 22%, var(--border-subtle));background:var(--surface-paper);transform:none}.meal-plans-page .meal-grid-cell-empty{color:var(--text-muted);border-style:solid}.meal-plans-page .meal-grid-cell-empty svg{width:18px;height:18px}.meal-plans-page .meal-grid-cell-filled{background:linear-gradient(135deg, color-mix(in srgb, var(--meal-accent,var(--amethyst)) 8%, var(--surface-paper)), var(--surface-paper))}.meal-plans-page .meal-grid-cell-filled:before{border-radius:var(--radius-pill);width:3px;top:8px;bottom:8px;left:8px}.meal-plans-page .meal-cell-edit-btn{padding:10px 12px 10px 18px}.meal-plans-page .meal-cell-title{color:var(--text-primary);font-size:.88rem;font-weight:820}.meal-plans-page .meal-cell-meta{color:var(--text-secondary);font-size:.72rem;font-weight:650}.meal-plans-page .meal-cell-grip-btn{opacity:1;color:var(--text-muted)}.meal-plans-page .meal-grid-cell-drop-over{border-color:var(--amethyst);background:color-mix(in srgb, var(--amethyst) 10%, var(--surface-paper))}.meal-plans-page .meal-cell-move-panel{border-color:var(--border-subtle);background:var(--surface-paper)}@media (max-width:780px){.meal-plans-page{width:100%}.meal-plans-page .meal-plan-header{align-items:stretch;padding:12px}.meal-plan-week-summary{grid-template-columns:1fr;gap:8px}.meal-plan-summary-card{min-height:52px}.meal-plans-page .meal-header-actions,.meal-plans-page .meal-week-shopping{justify-content:flex-start}.meal-plans-page .meal-grid{grid-template-columns:minmax(72px,86px) repeat(7,minmax(68px,1fr));padding:10px}.meal-plans-page .meal-grid-day-header,.meal-plans-page .meal-grid-slot-label{min-height:42px}}.recipes-page{gap:12px;width:min(100%,1120px);margin:0 auto;display:grid}.recipe-search{background:var(--surface-paper);border:1px solid var(--border-subtle);min-width:min(320px,100%);min-height:40px;color:var(--text-muted);box-shadow:var(--shadow-soft);border-radius:12px;align-items:center;gap:8px;padding:0 12px;display:inline-flex}.recipe-search input{color:var(--text-primary);background:0 0;border:none;outline:none;width:100%;min-width:0;font-family:inherit;font-size:.9rem}.recipe-search input::placeholder{color:var(--text-muted)}.recipe-search:focus-within{border-color:var(--amethyst);box-shadow:0 0 0 3px var(--amethyst-glow)}.recipe-loading{color:var(--text-muted);padding:var(--space-md) 0;font-size:.88rem}.recipe-grid{grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:10px;display:grid}.recipe-card{background:var(--surface-paper);border:1px solid var(--border-subtle);padding:14px;min-height:236px;box-shadow:var(--shadow-soft);transition:transform .2s var(--ease-out-expo), box-shadow .2s var(--ease-out-expo), border-color .2s var(--ease-out-expo);border-radius:14px;flex-direction:column;gap:10px;padding-right:68px;display:flex;position:relative;overflow:hidden}.recipe-card:hover{border-color:color-mix(in srgb, var(--accent-sage) 22%, var(--border-subtle));transform:translateY(-1px);box-shadow:0 14px 34px -24px #2a231c61}.recipe-card-visual{background:color-mix(in srgb, var(--accent-sage) 13%, var(--surface-soft));width:48px;height:48px;color:color-mix(in srgb, var(--accent-sage) 76%, var(--text-primary));border:1px solid var(--border-subtle);border-radius:14px;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:14px;right:14px}.recipe-card-header{justify-content:space-between;align-items:flex-start;gap:var(--space-sm);min-height:38px;display:flex}.recipe-card-title-row{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.recipe-card-icon{color:var(--sapphire);flex-shrink:0}.recipe-card-title{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:1rem;font-weight:850;overflow:hidden}.recipe-card-action{color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;min-height:auto;padding:6px;transition:all .15s;display:inline-flex}.recipe-card-action:hover{color:var(--text-primary);border-color:var(--glass-border);background:#7882b41a}.recipe-card-actions{align-items:center;gap:4px;display:flex}.recipe-card-action-active{color:var(--warning);background:#f59e0b1f}.recipe-card-favorite{color:var(--warning)}.recipe-card-action:focus-visible{outline:2px solid var(--amethyst);outline-offset:2px}.recipe-card-meta{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:6px;font-size:.8rem;display:flex}.recipe-card-meta-item{border-radius:var(--radius-pill);background:color-mix(in srgb, var(--surface-soft) 74%, transparent);border:1px solid var(--border-subtle);align-items:center;gap:5px;padding:4px 8px;display:inline-flex}.recipe-card-description{color:var(--text-secondary);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;font-size:.88rem;line-height:1.45;display:-webkit-box;overflow:hidden}.recipe-tags{flex-wrap:wrap;gap:6px;display:flex}.recipe-tag{border-radius:var(--radius-pill);background:color-mix(in srgb, var(--accent-sky) 12%, var(--surface-paper));color:color-mix(in srgb, var(--accent-sky) 78%, var(--text-primary));border:1px solid var(--border-subtle);padding:3px 8px;font-size:.74rem;font-weight:760}.recipe-ingredient-preview{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.recipe-ingredient-preview li{justify-content:space-between;align-items:baseline;gap:var(--space-sm);color:var(--text-secondary);border-bottom:1px dashed #7882b42e;padding-bottom:4px;font-size:.84rem;display:flex}.recipe-ingredient-preview li:last-child{border-bottom:none;padding-bottom:0}.recipe-ingredient-preview-amount{color:var(--text-muted);font-family:var(--font-mono);white-space:nowrap;font-size:.76rem}.recipe-card-footer{padding-top:var(--space-sm);border-top:1px dashed var(--glass-border);margin-top:auto}.recipe-card-link{color:var(--sapphire);align-items:center;gap:6px;font-size:.82rem;text-decoration:none;display:inline-flex}.recipe-card-link:hover{text-decoration:underline}.recipe-card-clickable{cursor:pointer}.recipe-card-clickable:hover{border-color:color-mix(in srgb, var(--color-accent-fill) 35%, var(--border-subtle))}.recipe-card-open{all:unset;cursor:pointer}.recipe-card-open:focus-visible{outline:2px solid var(--color-accent-fill);outline-offset:2px;border-radius:4px}.recipe-detail{gap:16px;max-width:1080px;display:grid}.recipe-detail-top{justify-content:space-between;align-items:center;gap:10px;display:flex}.recipe-back{border-radius:var(--radius-pill);color:var(--text-secondary);font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;min-height:44px;padding:8px 12px 8px 8px;font-size:.88rem;font-weight:650;display:inline-flex}.recipe-back:hover{background:var(--surface-raised);color:var(--text-primary)}.recipe-detail-actions{align-items:center;gap:8px;display:flex}.recipe-detail-head{background:var(--surface-paper);border:1px solid var(--border-subtle);box-shadow:var(--shadow-soft);border-radius:16px;gap:8px;padding:18px 20px;display:grid}.recipe-detail-head h2{letter-spacing:-.02em;color:var(--text-primary);margin:0;font-size:1.6rem;font-weight:850}.recipe-detail-description{color:var(--text-secondary);margin:0;line-height:1.55}.recipe-detail-meta{flex-wrap:wrap;align-items:center;gap:6px 8px;display:flex}.recipe-tabs{border-radius:var(--radius-pill);background:var(--surface-raised);border:1px solid var(--border-subtle);gap:4px;padding:4px;display:none}.recipe-tab{border-radius:var(--radius-pill);min-height:42px;color:var(--text-secondary);font:inherit;cursor:pointer;background:0 0;border:0;flex:1;font-size:.9rem;font-weight:700}.recipe-tab.active{background:var(--surface-paper);color:var(--text-primary);box-shadow:var(--shadow-soft)}.recipe-detail-body{grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr);align-items:start;gap:16px;display:grid}.recipe-panel{background:var(--surface-paper);border:1px solid var(--border-subtle);box-shadow:var(--shadow-soft);border-radius:16px;gap:12px;padding:18px 20px;display:grid}.recipe-panel-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.recipe-panel-head h3{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin:0;font-size:.78rem;font-weight:800}.recipe-panel-empty{color:var(--text-muted);justify-items:start;gap:10px;margin:0;font-size:.9rem;display:grid}.recipe-panel-empty p{margin:0}.recipe-servings{border-radius:var(--radius-pill);background:var(--surface-raised);border:1px solid var(--border-subtle);align-items:center;gap:4px;padding:3px;display:inline-flex}.recipe-servings span{color:var(--text-primary);align-items:center;gap:5px;padding:0 6px;font-size:.84rem;font-weight:700;display:inline-flex}.recipe-servings button{background:var(--surface-paper);width:32px;height:32px;color:var(--text-primary);cursor:pointer;border:0;border-radius:50%;place-items:center;display:inline-grid}.recipe-servings button:disabled{opacity:.4;cursor:default}.recipe-check-list,.recipe-steps{gap:2px;margin:0;padding:0;list-style:none;display:grid}.recipe-check,.recipe-step{width:100%;color:var(--text-primary);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;align-items:flex-start;gap:12px;padding:10px 6px;display:flex}.recipe-check{border-bottom:1px dashed var(--border-subtle);border-radius:0;align-items:center}.recipe-check:hover,.recipe-step:hover{background:var(--surface-raised)}.recipe-check-box{border:1.5px solid var(--border-strong,var(--text-muted));color:#fff;border-radius:6px;flex:none;place-items:center;width:20px;height:20px;display:inline-grid}.recipe-check.done .recipe-check-box{background:var(--color-accent-fill);border-color:var(--color-accent-fill)}.recipe-check-name{flex:1;font-size:.95rem}.recipe-check-amount{color:var(--text-secondary);white-space:nowrap;font-size:.86rem;font-weight:700}.recipe-check.done .recipe-check-name,.recipe-check.done .recipe-check-amount{color:var(--text-muted);text-decoration:line-through}.recipe-step-number{background:color-mix(in srgb, var(--color-accent-fill) 14%, var(--surface-paper));width:30px;height:30px;color:var(--color-accent-fill);border-radius:50%;flex:none;place-items:center;font-size:.9rem;font-weight:800;display:inline-grid}.recipe-step-text{white-space:pre-wrap;flex:1;padding-top:4px;font-size:1rem;line-height:1.6}.recipe-step.done .recipe-step-number{background:var(--color-accent-fill);color:#fff}.recipe-step.done .recipe-step-text{color:var(--text-muted)}.recipe-detail-push{flex-wrap:wrap;gap:8px;padding-top:4px;display:flex}.recipe-detail-push select{flex:160px;min-width:0}.recipe-detail-push .btn{flex:auto;justify-content:center}.recipe-detail-hint{color:var(--text-muted);margin:0;font-size:.8rem}.recipe-step-heading{letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary);padding:12px 6px 2px;font-size:.8rem;font-weight:800}.recipe-import{background:color-mix(in srgb, var(--color-accent-fill) 7%, var(--surface-paper));border:1px dashed color-mix(in srgb, var(--color-accent-fill) 35%, var(--border-subtle));border-radius:12px;gap:6px;margin-bottom:14px;padding:12px 14px;display:grid}.recipe-import-label{color:var(--text-primary);align-items:center;gap:6px;font-size:.86rem;font-weight:750;display:inline-flex}.recipe-import-row{gap:8px;display:flex}.recipe-import-row .form-input{flex:1;min-width:0}.recipe-import-row .btn{flex:none}.recipe-import-hint{color:var(--text-muted);margin:0;font-size:.76rem}@media (max-width:860px){.recipe-tabs{display:flex}.recipe-detail-body{grid-template-columns:1fr}.recipe-panel{display:none}.recipe-panel.active{display:grid}.recipe-panel-head h3{display:none}.recipe-detail-head{padding:16px}.recipe-detail-head h2{font-size:1.35rem}.recipe-panel{padding:14px 16px}}.recipe-card-muted{color:var(--text-muted);font-size:.82rem}.recipe-empty-rich{align-items:center;gap:var(--space-md);padding:var(--space-2xl) var(--space-md);text-align:center;color:var(--text-secondary);background:var(--surface-paper);border:1px dashed var(--border-subtle);box-shadow:var(--shadow-soft);border-radius:14px;flex-direction:column;display:flex}.recipe-empty-icon-wrap{background:color-mix(in srgb, var(--accent-sage) 13%, var(--surface-soft));width:72px;height:72px;color:color-mix(in srgb, var(--accent-sage) 76%, var(--text-primary));border:1px solid var(--border-subtle);border-radius:18px;justify-content:center;align-items:center;display:inline-flex}.recipe-empty-title{color:var(--text-primary);margin:0;font-size:1.2rem;font-weight:600}.recipe-empty-body{max-width:440px;margin:0;font-size:.92rem;line-height:1.5}.recipe-empty-cta{margin-top:var(--space-sm)}.recipe-empty-filtered{align-items:center;gap:var(--space-sm);padding:var(--space-xl) var(--space-md);text-align:center;color:var(--text-secondary);flex-direction:column;display:flex}.recipe-empty-filtered-btn{border:1px solid var(--glass-border);color:var(--text-secondary);border-radius:var(--radius-pill);cursor:pointer;background:0 0;padding:6px 14px;font-family:inherit;font-size:.85rem;transition:all .15s}.recipe-empty-filtered-btn:hover{color:var(--text-primary);background:#7882b414}.recipe-dialog{padding:var(--space-xl);gap:var(--space-md);background:var(--void-surface);border:1px solid var(--glass-border);border-radius:var(--radius-lg);flex-direction:column;width:92%;max-width:720px;max-height:92vh;display:flex;overflow-y:auto}[data-theme=light] .recipe-dialog{border-color:#0000000f}.recipe-dialog-header{justify-content:space-between;align-items:center;gap:var(--space-sm);display:flex}.recipe-dialog-title{margin:0;font-size:1.1rem;font-weight:600}.recipe-dialog-close{color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;min-height:auto;padding:6px;display:inline-flex}.recipe-dialog-close:hover{color:var(--text-primary);background:#7882b414}.recipe-dialog-close:focus-visible{outline:2px solid var(--amethyst);outline-offset:2px}.recipe-dialog-delete{color:var(--danger);border-color:#ef44444d}.recipe-dialog-delete:hover{background:#ef444414}.recipe-form{gap:var(--space-md);flex-direction:column;display:flex}.recipe-form-grid{gap:var(--space-sm);grid-template-columns:2fr 140px;display:grid}.recipe-form-grid .form-input{width:100%}.recipe-form-wide{grid-column:1/-1}.recipe-form-instructions{resize:vertical;min-height:110px;font-family:inherit}.recipe-section-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;font-size:.85rem;font-weight:600}.recipe-ingredients{gap:var(--space-sm);flex-direction:column;display:flex}.recipe-ingredients-header{justify-content:space-between;align-items:center;gap:var(--space-sm);display:flex}.recipe-ingredient-empty{color:var(--text-muted);margin:0;font-size:.82rem;font-style:italic}.recipe-ingredient-add{min-height:auto;padding:4px 10px;font-size:.8rem}.recipe-ingredient-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.recipe-ingredient-row{grid-template-columns:2fr 1fr 1fr auto;align-items:center;gap:6px;display:grid}.recipe-ingredient-row .form-input{width:100%;padding:10px 12px}.recipe-ingredient-remove{color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;min-height:auto;padding:6px;display:inline-flex}.recipe-ingredient-remove:hover{color:var(--danger);background:#ef444414;border-color:#ef44444d}.recipe-form-actions{justify-content:space-between;align-items:center;gap:var(--space-sm);margin-top:var(--space-sm);display:flex}.recipe-form-actions-right{gap:var(--space-sm);margin-left:auto;display:flex}.recipe-push{padding:var(--space-sm);border:1px dashed var(--glass-border);border-radius:var(--radius-sm);background:#2563eb0d;flex-direction:column;gap:8px;display:flex}.recipe-push-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;align-items:center;gap:6px;font-size:.78rem;font-weight:600;display:inline-flex}.recipe-push-picker{flex-wrap:wrap;gap:6px;display:flex}.recipe-push-chip{border:1px solid var(--glass-border);border-radius:var(--radius-pill);color:var(--text-secondary);background:var(--void-elevated);cursor:pointer;align-items:center;gap:6px;padding:5px 9px;font-size:.8rem;display:inline-flex}.recipe-push-chip input{accent-color:var(--sapphire)}.recipe-push-row{align-items:center;gap:6px;display:flex}.recipe-push-list{flex:1;min-width:0}.recipe-push-btn{white-space:nowrap}.recipe-scale{padding:var(--space-sm);border:1px dashed var(--glass-border);border-radius:var(--radius-sm);background:#f59e0b0d;flex-direction:column;gap:8px;display:flex}.recipe-scale-label{color:var(--text-secondary);align-items:center;gap:8px;font-size:.85rem;display:flex}.recipe-scale-input{max-width:120px}.recipe-scale-preview ul{gap:4px;margin:8px 0 0;padding:0;list-style:none;display:grid}.recipe-scale-preview li{color:var(--text-secondary);justify-content:space-between;gap:12px;font-size:.82rem;display:flex}@media (max-width:780px){.recipe-form-grid{grid-template-columns:1fr}.recipe-form-title{grid-column:auto}.recipe-ingredient-row{grid-template-columns:1fr 80px 60px auto}.recipe-push-row,.recipe-form-actions{flex-direction:column;align-items:stretch}.recipe-form-actions-right{justify-content:flex-end;width:100%;margin-left:0}.meal-recipe-picker{grid-template-columns:1fr}}.sync-section-heading{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin:var(--space-lg) 0 var(--space-sm);font-size:.82rem;font-weight:600;display:block}.sync-family-block{border:1px solid var(--glass-border);border-radius:var(--radius-sm);padding:var(--space-sm) var(--space-md);margin-bottom:var(--space-sm);background:#7882b40a}.sync-family-title{margin-bottom:6px;font-weight:600}.sync-url-row{flex-wrap:wrap;align-items:center;gap:8px;margin:6px 0;display:flex}.sync-url-label{color:var(--text-muted);flex-shrink:0;width:160px;font-size:.78rem}.sync-url-value{min-width:0;font-family:var(--font-mono);border-radius:var(--radius-sm);white-space:nowrap;background:#7882b414;flex:1;padding:6px 10px;font-size:.78rem;overflow:auto}.sync-url-copy{flex-shrink:0}.sync-steps{padding-left:var(--space-lg);color:var(--text-secondary);font-size:.88rem;line-height:1.6}.sync-steps li{margin-bottom:4px}.sync-limits{color:var(--text-muted)}.sync-external-link{color:var(--amethyst);align-items:center;gap:4px;text-decoration:none;display:inline-flex}.sync-external-link:hover{text-decoration:underline}.sync-health-panel{margin:var(--space-md) 0 var(--space-lg)}.sync-health-list{gap:var(--space-sm);display:grid}.sync-health-card{gap:var(--space-md);border:1px solid var(--glass-border);border-radius:var(--radius-md);padding:var(--space-md);background:#7882b40d;grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid}.sync-health-card-warning{background:#f59e0b12;border-color:#f59e0b59}.sync-health-card-main{gap:5px;min-width:0;display:grid}.sync-health-card-title-row{color:var(--text-primary);align-items:center;gap:8px;display:flex}.sync-health-card-warning .sync-health-card-title-row{color:var(--warning,#d97706)}.sync-health-card-title{overflow-wrap:anywhere;font-weight:600}.sync-health-scope{color:var(--text-muted);overflow-wrap:anywhere;font-size:.78rem}.sync-health-meta{color:var(--text-secondary);gap:3px;font-size:.82rem;line-height:1.4;display:grid}.sync-health-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.sync-health-action{align-items:center;gap:6px;min-height:36px;display:inline-flex}.sync-health-danger{color:var(--danger,#dc2626)}.sync-health-empty,.sync-health-error{border:1px dashed var(--glass-border);border-radius:var(--radius-md);padding:var(--space-md);color:var(--text-secondary);background:#7882b40a}.sync-health-error{color:var(--danger,#dc2626);background:#dc26260f;border-color:#dc262647}.sync-health-token-banner{margin-bottom:var(--space-md)}@media (max-width:720px){.sync-health-card{grid-template-columns:1fr}.sync-health-actions{justify-content:flex-start}}.weekly-plan-page{--weekly-plan-surface:#fffdf8;--weekly-plan-surface-soft:#f8f4ed;--weekly-plan-text-primary:var(--text-primary);--weekly-plan-text-secondary:var(--text-secondary);--weekly-plan-border:var(--border-subtle);--weekly-plan-shadow:var(--shadow-soft);width:min(100%,1080px);color:var(--weekly-plan-text-primary);gap:12px;margin:0 auto;display:grid}[data-theme=dark] .weekly-plan-page{--weekly-plan-surface:#211f1a;--weekly-plan-surface-soft:#2b2822}[data-theme=midnight-glass] .weekly-plan-page{--weekly-plan-surface:#161b2b;--weekly-plan-surface-soft:#1f2538}.weekly-plan-week-pill{border-radius:var(--radius-pill);border:1px solid var(--weekly-plan-border);background:var(--weekly-plan-surface-soft);min-height:38px;color:var(--weekly-plan-text-primary);white-space:nowrap;justify-self:end;align-items:center;padding:8px 13px;font-size:.84rem;font-weight:780;display:inline-flex}.weekly-plan-toolbar{border:1px solid var(--weekly-plan-border);background:var(--weekly-plan-surface);box-shadow:var(--weekly-plan-shadow);border-radius:14px;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:10px;padding:10px;display:grid}.weekly-plan-nav{justify-content:center;align-items:center;gap:7px;display:inline-flex}.weekly-plan-toolbar button{min-height:38px;box-shadow:none;border-radius:11px;justify-content:center;align-items:center;gap:7px;display:inline-flex}.weekly-plan-back-btn{justify-self:start}.weekly-plan-print-btn{justify-self:end}.weekly-plan-icon-btn{width:38px;min-width:38px;padding:0}.weekly-plan-today-btn{padding-inline:14px}.weekly-plan-filters{border:1px solid var(--weekly-plan-border);background:var(--weekly-plan-surface);box-shadow:var(--weekly-plan-shadow);color:var(--weekly-plan-text-primary);border-radius:14px;grid-template-columns:minmax(190px,260px) minmax(0,1fr);align-items:center;gap:12px;padding:10px;display:grid}.weekly-plan-member-filter{color:var(--weekly-plan-text-secondary);text-transform:uppercase;letter-spacing:.06em;gap:5px;font-size:.76rem;font-weight:800;display:grid}.weekly-plan-member-filter select{border:1px solid var(--weekly-plan-border);background:var(--weekly-plan-surface-soft);width:100%;min-height:38px;color:var(--weekly-plan-text-primary);font:inherit;border-radius:11px;padding:8px 34px 8px 11px;font-size:.86rem;font-weight:680}.weekly-plan-member-filter select option{background:var(--weekly-plan-surface);color:var(--weekly-plan-text-primary)}.weekly-plan-section-filters{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:7px;display:flex}.weekly-plan-section-filters label{border-radius:var(--radius-pill);background:var(--weekly-plan-surface-soft);min-height:36px;color:var(--weekly-plan-text-secondary);cursor:pointer;border:1px solid var(--weekly-plan-border);align-items:center;gap:7px;padding:7px 11px;font-size:.82rem;font-weight:720;display:inline-flex}.weekly-plan-section-filters input{accent-color:var(--amethyst)}.weekly-plan-summary{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;display:grid}.weekly-plan-summary-card{border:1px solid var(--weekly-plan-border);background:var(--weekly-plan-surface);min-width:0;min-height:86px;color:var(--weekly-plan-text-primary);font:inherit;text-align:left;cursor:pointer;box-shadow:var(--weekly-plan-shadow);border-radius:14px;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:9px;padding:12px;display:grid}.weekly-plan-summary-card:not(.active){background:var(--weekly-plan-surface-soft);border-style:dashed}.weekly-plan-summary-card:not(.active) .weekly-plan-summary-icon,.weekly-plan-summary-card:not(.active) .weekly-plan-summary-label,.weekly-plan-summary-card:not(.active) strong{opacity:.62}.weekly-plan-summary-icon{background:color-mix(in srgb, var(--amethyst) 10%, var(--surface-paper));width:36px;height:36px;color:var(--amethyst);border-radius:12px;justify-content:center;align-items:center;display:inline-flex}.weekly-plan-summary-label{min-width:0;color:var(--weekly-plan-text-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;font-weight:760;overflow:hidden}.weekly-plan-summary-card strong{color:var(--weekly-plan-text-primary);font-variant-numeric:tabular-nums;font-size:1.2rem;font-weight:860}.weekly-plan-summary-card-events .weekly-plan-summary-icon,.weekly-plan-section-visual-events{color:#6f5fa7;background:#6f5fa71c}.weekly-plan-summary-card-tasks .weekly-plan-summary-icon,.weekly-plan-section-visual-tasks{color:#5f8a4c;background:#5f8a4c21}.weekly-plan-summary-card-meals .weekly-plan-summary-icon,.weekly-plan-section-visual-meals{color:#b97826;background:#b978261f}.weekly-plan-summary-card-birthdays .weekly-plan-summary-icon,.weekly-plan-section-visual-birthdays{color:#c46d3b;background:#c46d3b1f}.weekly-plan-summary-card-shopping .weekly-plan-summary-icon,.weekly-plan-section-visual-shopping{color:#4d91bd;background:#4d91bd1f}.weekly-plan-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:12px;display:grid}.weekly-plan-section{padding:15px;border:1px solid var(--weekly-plan-border);background:var(--weekly-plan-surface);min-height:210px;color:var(--weekly-plan-text-primary);box-shadow:var(--weekly-plan-shadow);break-inside:avoid;border-radius:16px;padding-right:82px;position:relative;overflow:hidden}.weekly-plan-section-visual{border:1px solid color-mix(in srgb, currentColor 14%, transparent);pointer-events:none;border-radius:17px;justify-content:center;align-items:center;width:52px;height:52px;display:inline-flex;position:absolute;top:14px;right:14px}.weekly-plan-section-header{justify-content:space-between;align-items:flex-start;gap:10px;min-height:52px;margin-bottom:8px;display:flex}.weekly-plan-section h2{color:var(--weekly-plan-text-primary);text-transform:uppercase;letter-spacing:.08em;margin:0;font-size:.83rem;font-weight:830}.weekly-plan-section-count{border-radius:var(--radius-pill);background:var(--weekly-plan-surface-soft);min-width:28px;min-height:28px;color:var(--weekly-plan-text-secondary);font-variant-numeric:tabular-nums;justify-content:center;align-items:center;font-size:.78rem;font-weight:820;display:inline-flex}.weekly-plan-section ul{gap:7px;margin:0;padding:0;list-style:none;display:grid}.weekly-plan-section li{background:var(--weekly-plan-surface-soft);border:1px solid color-mix(in srgb, var(--weekly-plan-border) 74%, transparent);border-radius:12px;gap:3px;padding:10px 11px 10px 14px;display:grid}.weekly-plan-item{position:relative}.weekly-plan-item:before{content:"";border-radius:var(--radius-pill);background:var(--color-accent-fill);opacity:.72;width:3px;position:absolute;top:11px;bottom:11px;left:6px}.weekly-plan-item-events:before{background:#6f5fa7}.weekly-plan-item-tasks:before{background:#5f8a4c}.weekly-plan-item-meals:before{background:#b97826}.weekly-plan-item-birthdays:before{background:#c46d3b}.weekly-plan-item-shopping:before{background:#4d91bd}.weekly-plan-section li span{color:var(--weekly-plan-text-secondary);font-size:.76rem;font-weight:680}.weekly-plan-section li strong{color:var(--weekly-plan-text-primary);font-size:.91rem;font-weight:820;line-height:1.25}.weekly-plan-section-header h2{flex:1}.weekly-plan-add{border:1px dashed color-mix(in srgb, var(--weekly-plan-text-secondary) 45%, transparent);border-radius:var(--radius-pill);width:28px;height:28px;color:var(--weekly-plan-text-secondary);cursor:pointer;background:0 0;place-items:center;padding:0;display:inline-grid}.weekly-plan-add:hover{color:var(--weekly-plan-text-primary);background:var(--weekly-plan-surface-soft);border-style:solid}.weekly-plan-item-open{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;gap:3px;padding:0;display:grid}.weekly-plan-section li:has(.weekly-plan-item-open):hover{border-color:color-mix(in srgb, var(--color-accent-fill) 40%, var(--weekly-plan-border))}.weekly-plan-item-open:focus-visible{outline:2px solid var(--color-accent-fill);outline-offset:4px;border-radius:6px}.weekly-plan-recipe-link{border:1px solid var(--weekly-plan-border);border-radius:var(--radius-pill);background:var(--weekly-plan-surface);color:var(--weekly-plan-text-secondary);font:inherit;cursor:pointer;justify-self:start;align-items:center;gap:5px;margin-top:4px;padding:4px 10px;font-size:.76rem;font-weight:700;display:inline-flex}.weekly-plan-recipe-link:hover{color:var(--weekly-plan-text-primary)}.weekly-plan-empty{border:1px dashed var(--weekly-plan-border);background:var(--weekly-plan-surface-soft);color:var(--weekly-plan-text-secondary);border-radius:12px;margin:0;padding:12px;font-size:.86rem}@media (max-width:980px){.weekly-plan-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.weekly-plan-grid{grid-template-columns:1fr}}@media (max-width:760px){.weekly-plan-page{width:100%;padding-bottom:calc(104px + env(safe-area-inset-bottom));gap:10px}.weekly-plan-header{flex-wrap:wrap}.weekly-plan-toolbar{grid-template-columns:auto 1fr auto;padding:8px}.weekly-plan-back-btn{gap:0;width:38px;min-width:38px;padding:0;font-size:0}.weekly-plan-nav{justify-content:flex-start}.weekly-plan-print-btn{min-width:44px;padding-inline:12px}.weekly-plan-filters{grid-template-columns:1fr;gap:10px}.weekly-plan-section-filters{scrollbar-width:none;flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto}.weekly-plan-section-filters::-webkit-scrollbar{display:none}.weekly-plan-summary{scrollbar-width:none;padding-bottom:2px;display:flex;overflow-x:auto}.weekly-plan-summary::-webkit-scrollbar{display:none}.weekly-plan-summary-card{min-width:168px}.weekly-plan-section{min-height:0;padding:14px 70px 14px 14px}.weekly-plan-section-visual{border-radius:14px;width:44px;height:44px}}@media print{body{background:#fff!important}.no-print,.pwa-banner,.sidebar,.bottom-nav,.app-sidebar,.app-header{display:none!important}.app-layout,.main-content,.weekly-plan-page{background:#fff!important;width:100%!important;max-width:none!important;margin:0!important;padding:0!important;display:block!important}:root .weekly-plan-page{--weekly-plan-surface:#fff;--weekly-plan-surface-soft:#f8f7f4;--weekly-plan-text-primary:#1a1520;--weekly-plan-text-secondary:#5e5673;--weekly-plan-border:#d4d4d8;--weekly-plan-shadow:none}.weekly-plan-section{box-shadow:none!important;border-color:#d4d4d8!important}.weekly-plan-header{margin-bottom:12px}.weekly-plan-page .weekly-plan-header h1{color:#1a1520}.weekly-plan-section-visual{display:none!important}.weekly-plan-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.weekly-plan-section{min-height:0;padding-right:15px}}.week-glance-nav{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.week-glance-nav .weekly-plan-nav{align-items:center;gap:6px;display:flex}.week-glance-nav .btn-secondary{min-height:40px}.week-glance-nav .weekly-plan-icon-btn{place-items:center;min-width:40px;padding:0;display:inline-grid}.week-glance-filters{gap:10px;margin-bottom:14px;display:grid}.week-glance-kinds{flex-wrap:wrap;gap:8px;display:flex}.week-glance[data-density=compact] .week-glance-kinds{scrollbar-width:none;flex-wrap:nowrap;padding-bottom:2px;overflow-x:auto}.week-glance[data-density=compact] .week-glance-kinds::-webkit-scrollbar{display:none}.week-glance[data-density=compact] .week-kind-chip{flex:none}.week-kind-chip{border:1px solid var(--weekly-plan-border);border-radius:var(--radius-pill);background:var(--weekly-plan-surface);min-height:40px;color:var(--weekly-plan-text-secondary);font:inherit;cursor:pointer;align-items:center;gap:6px;padding:0 12px;font-size:.84rem;font-weight:650;display:inline-flex}.week-kind-chip strong{color:var(--weekly-plan-text-primary);font-variant-numeric:tabular-nums}.week-kind-chip.active{border-color:var(--color-accent-fill);background:var(--color-accent-soft,var(--weekly-plan-surface-soft));color:var(--weekly-plan-text-primary)}.week-kind-chip:not(.active){opacity:.72}.week-board{grid-template-columns:repeat(7,minmax(0,1fr));align-items:stretch;gap:8px;display:grid}.week-day{border:1px solid var(--weekly-plan-border);background:var(--weekly-plan-surface);min-height:240px;box-shadow:var(--weekly-plan-shadow);border-radius:14px;flex-direction:column;gap:8px;padding:10px;display:flex}.week-day.is-today{border-color:var(--color-accent-fill);box-shadow:0 0 0 2px color-mix(in srgb, var(--color-accent-fill) 22%, transparent)}.week-day.is-wide{min-height:0}.week-glance .week-day{overflow:visible}.week-day-head{align-items:center;gap:5px;min-height:30px;display:flex}.week-day.is-wide .week-day-head{flex-wrap:wrap}.week-day-name{letter-spacing:.06em;text-transform:uppercase;color:var(--weekly-plan-text-secondary);font-size:.72rem;font-weight:800}.week-day-date{color:var(--weekly-plan-text-primary);font-size:1rem;font-weight:800}.week-day.is-today .week-day-name{color:var(--weekly-plan-text-primary)}.week-day-today{border-radius:var(--radius-pill);background:var(--color-accent-fill);color:#fff;align-self:center;padding:2px 7px;font-size:.66rem;font-weight:800}.week-day-add{flex:none;align-self:center;margin-left:auto;position:relative}.week-day-add summary{cursor:pointer;border:1px dashed color-mix(in srgb, var(--weekly-plan-text-secondary) 45%, transparent);border-radius:var(--radius-pill);width:30px;height:30px;color:var(--weekly-plan-text-secondary);place-items:center;list-style:none;display:grid}.week-day-add summary::-webkit-details-marker{display:none}.week-day-add[open] summary,.week-day-add summary:hover{color:var(--weekly-plan-text-primary);background:var(--weekly-plan-surface-soft);border-style:solid}.week-day-add-menu{z-index:30;border:1px solid var(--weekly-plan-border);background:var(--weekly-plan-surface);border-radius:12px;min-width:170px;padding:6px;display:grid;position:absolute;top:36px;right:0;box-shadow:0 14px 34px -18px #1e14288c}.week-day-add-menu button{min-height:40px;color:var(--weekly-plan-text-primary);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:8px;padding:0 10px;font-size:.86rem;display:flex}.week-day-add-menu button:hover{background:var(--weekly-plan-surface-soft)}.week-board .week-day:nth-child(n+5) .week-day-add-menu{right:0}.week-board .week-day:nth-child(-n+2) .week-day-add-menu{left:0;right:auto}.week-day-items{gap:6px;margin:0;padding:0;list-style:none;display:grid}.week-entry{--week-kind:var(--color-accent-fill);gap:4px;display:grid}.week-entry-events{--week-kind:#6f5fa7}.week-entry-tasks{--week-kind:#5f8a4c}.week-entry-meals{--week-kind:#b97826}.week-entry-birthdays{--week-kind:#c46d3b}.week-entry-open{border:0;border-left:3px solid var(--week-kind);background:color-mix(in srgb, var(--week-kind) 9%, var(--weekly-plan-surface));width:100%;color:var(--weekly-plan-text-primary);font:inherit;text-align:left;cursor:pointer;border-radius:8px;align-items:flex-start;gap:7px;padding:7px 8px;display:flex}.week-entry-open:hover{background:color-mix(in srgb, var(--week-kind) 16%, var(--weekly-plan-surface))}.week-entry-open:focus-visible{outline:2px solid var(--color-accent-fill);outline-offset:2px}.week-entry-open svg{color:var(--week-kind);flex:none;margin-top:2px}.week-entry-text{gap:1px;min-width:0;display:grid}.week-entry-meta{color:var(--weekly-plan-text-secondary);font-size:.7rem;font-weight:700}.week-entry-title{overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;font-size:.84rem;font-weight:750;line-height:1.25}.week-board .week-entry-open>svg{display:none}.week-board .week-entry-open{padding:7px 8px 7px 9px}.week-entry .weekly-plan-recipe-link{margin:0 0 0 11px}.week-day-free{color:var(--weekly-plan-text-secondary);margin:0;font-size:.8rem}.week-glance-days{gap:10px;display:grid}.week-glance-shopping{border:1px solid var(--weekly-plan-border);background:var(--weekly-plan-surface);border-radius:14px;flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px;padding:12px 14px;display:flex}.week-glance-shopping-label{letter-spacing:.06em;text-transform:uppercase;color:var(--weekly-plan-text-secondary);align-items:center;gap:6px;margin-right:4px;font-size:.76rem;font-weight:800;display:inline-flex}.week-list-chip{border:1px solid var(--weekly-plan-border);border-radius:var(--radius-pill);background:var(--weekly-plan-surface-soft);min-height:40px;color:var(--weekly-plan-text-primary);font:inherit;cursor:pointer;align-items:center;gap:8px;padding:0 14px;font-weight:700;display:inline-flex}.week-list-chip span{color:var(--weekly-plan-text-secondary);font-size:.8rem;font-weight:600}.activation-panel{background:var(--glass);-webkit-backdrop-filter:blur(8px)saturate(1.2);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-lg);position:relative;overflow:hidden}.activation-panel:before{content:"";background:var(--grad-primary);opacity:.08;pointer-events:none;position:absolute;inset:0}.activation-panel-header{margin-bottom:var(--space-md);justify-content:space-between;align-items:flex-start;gap:var(--space-md);display:flex;position:relative}.activation-panel-title{color:var(--text-primary);margin:0 0 4px;font-size:1.1rem;font-weight:600}.activation-panel-subtitle{color:var(--text-secondary);margin:0;font-size:.88rem;line-height:1.45}.activation-step-list{gap:var(--space-sm);margin:0;padding:0;list-style:none;display:grid;position:relative}.activation-step{gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border:1px solid var(--glass-border);border-radius:var(--radius-md);background:#7882b40d;grid-template-columns:28px 1fr auto;align-items:center;display:grid}.activation-step-done{background:#10b9810f;border-color:#10b98140}.activation-step-icon{border-radius:var(--radius-pill);width:28px;height:28px;color:var(--text-muted);background:#7882b41a;justify-content:center;align-items:center;display:inline-flex}.activation-step-done .activation-step-icon{color:var(--success);background:#10b98126}.activation-step-body{flex-direction:column;gap:2px;min-width:0;display:flex}.activation-step-title{color:var(--text-primary);font-size:.94rem;font-weight:600}.activation-step-desc{color:var(--text-secondary);font-size:.82rem;line-height:1.4}.activation-step-done .activation-step-title{color:var(--text-secondary)}.activation-step-cta{border:1px solid var(--glass-border);color:var(--text-primary);border-radius:var(--radius-pill);cursor:pointer;white-space:nowrap;background:0 0;padding:6px 12px;font-family:inherit;font-size:.82rem;transition:all .15s}.activation-step-cta:hover{border-color:var(--amethyst);color:var(--amethyst);background:#7882b41a}.activation-step-cta:focus-visible{outline:2px solid var(--amethyst);outline-offset:2px}.activation-step-status{color:var(--success);white-space:nowrap;font-size:.82rem;font-weight:500}.setup-checklist-progress{min-width:58px;height:58px;color:var(--amethyst);background:#7c3aed1a;border:1px solid #7c3aed38;border-radius:999px;flex:none;justify-content:center;align-items:center;font-weight:700;display:inline-flex;position:relative}.setup-checklist-footer{margin-top:var(--space-md);justify-content:flex-end;display:flex;position:relative}.setup-checklist-dismiss{color:var(--text-secondary);font:inherit;cursor:pointer;background:0 0;border:0;padding:4px 0;font-size:.84rem}.setup-checklist-dismiss:hover{color:var(--amethyst)}.setup-checklist-dismiss:focus-visible{outline:2px solid var(--amethyst);outline-offset:3px;border-radius:var(--radius-sm)}@media (max-width:560px){.activation-step{grid-template-columns:28px 1fr}.activation-step-cta,.activation-step-status{grid-column:2;justify-self:start}}.invite-intro{color:var(--text-secondary);margin:0 0 var(--space-md);max-width:720px;font-size:.9rem;line-height:1.5}.invite-helper-text{color:var(--text-muted);margin-top:4px;font-size:.8rem;line-height:1.45;display:block}.invite-next-card{border-radius:var(--radius-md);padding:var(--space-md);margin-bottom:var(--space-md);background:#7c3aed0f;border:1px solid #7c3aed2e}.invite-next-title{margin:0 0 var(--space-sm);color:var(--text-primary);align-items:center;gap:6px;font-size:.92rem;font-weight:600;display:flex}.invite-next-list{color:var(--text-secondary);flex-direction:column;gap:8px;margin:0;padding:0;font-size:.86rem;line-height:1.45;list-style:none;display:flex}.invite-next-list li{grid-template-columns:22px 1fr;align-items:start;gap:8px;display:grid}.invite-next-step-num{border-radius:var(--radius-pill);width:22px;height:22px;color:var(--amethyst);background:#7c3aed2e;justify-content:center;align-items:center;font-size:.78rem;font-weight:600;display:inline-flex}.invite-role-pill{margin-top:var(--space-sm);border:1px solid var(--glass-border);border-radius:var(--radius-pill);color:var(--text-secondary);background:#7882b41a;padding:4px 10px;font-size:.8rem;display:inline-block}.invite-role-pill strong{color:var(--text-primary);font-weight:600}.templates-view{gap:12px;width:min(100%,1120px);margin:0 auto;display:grid}.templates-apply-panel{gap:var(--space-md);border:1px solid var(--border-subtle);background:var(--surface-paper);box-shadow:var(--shadow-soft);border-radius:14px;grid-template-columns:minmax(180px,240px) minmax(220px,1fr);padding:14px;display:grid}.templates-apply-panel label,.template-editor label{color:var(--text-secondary);gap:6px;font-size:.85rem;font-weight:600;display:grid}.input-with-icon{display:block;position:relative}.input-with-icon svg{color:var(--text-muted);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.input-with-icon .form-input{padding-left:38px}.templates-section{gap:10px;display:grid}.section-title h2{letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);font-size:.78rem}.templates-grid{grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:10px;display:grid}.template-card{border:1px solid var(--border-subtle);background:var(--surface-paper);box-shadow:var(--shadow-soft);border-radius:14px;gap:12px;min-height:236px;padding:14px 72px 14px 14px;transition:transform .18s,border-color .18s,box-shadow .18s;display:grid;position:relative;overflow:hidden}.template-card:hover{border-color:color-mix(in srgb, var(--accent-sky) 18%, var(--border-subtle));transform:translateY(-1px);box-shadow:0 14px 34px -24px #2a231c61}.template-card-visual{border:1px solid var(--border-subtle);border-radius:14px;justify-content:center;align-items:center;width:48px;height:48px;display:inline-flex;position:absolute;top:14px;right:14px}.template-card-visual-builtin{background:color-mix(in srgb, var(--amethyst) 10%, var(--surface-soft));color:color-mix(in srgb, var(--amethyst) 74%, var(--text-primary))}.template-card-visual-custom{background:color-mix(in srgb, var(--accent-sage) 13%, var(--surface-soft));color:color-mix(in srgb, var(--accent-sage) 76%, var(--text-primary))}.template-card-title-row{align-items:center;gap:var(--space-sm);flex-wrap:wrap;display:flex}.template-card h3{color:var(--text-primary);margin:0;font-size:1rem;font-weight:850}.template-card p{color:var(--text-secondary);margin:6px 0 0;line-height:1.45}.template-badge{border-radius:var(--radius-pill);padding:3px 8px;font-size:.72rem;font-weight:700}.template-badge.builtin{color:var(--amethyst);background:#7c3aed24}.template-badge.custom{color:var(--success);background:#10b98124}.template-stats{gap:var(--space-sm);display:flex}.template-stats span{border-radius:var(--radius-pill);background:color-mix(in srgb, var(--surface-soft) 74%, transparent);border:1px solid var(--border-subtle);color:var(--text-secondary);align-items:center;gap:5px;padding:5px 9px;font-size:.82rem;display:inline-flex}.template-preview-grid{gap:var(--space-md);grid-template-columns:1fr 1fr;display:grid}.template-preview-grid h4,.template-editor-section h3{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;margin:0 0 8px;font-size:.8rem}.template-preview-grid ul,.template-editor-section ul{color:var(--text-secondary);margin:0;padding-left:18px;line-height:1.6}.template-actions{gap:var(--space-sm);flex-wrap:wrap;align-items:center;margin-top:auto;display:flex}.btn-primary.small,.btn-ghost.small{padding:7px 10px;font-size:.82rem}.btn-ghost.danger{color:var(--danger)}.template-editor{gap:var(--space-md);padding:var(--space-lg);border:1px solid var(--border-subtle);background:var(--surface-paper);box-shadow:var(--shadow-soft);border-radius:14px;display:grid}.template-editor-grid{gap:var(--space-md);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.template-editor-section{gap:var(--space-sm);padding:var(--space-md);border:1px solid var(--border-subtle);background:color-mix(in srgb, var(--surface-soft) 48%, var(--surface-paper));border-radius:12px;display:grid}.status-banner{border-radius:var(--radius-md);color:var(--success);background:#10b9811f;padding:10px 14px}.status-banner.error{color:var(--danger);background:#ef44441f}.loading-card{padding:var(--space-lg);border-radius:var(--radius-lg);color:var(--text-secondary)}.template-empty{border:1px dashed var(--border-subtle);background:var(--surface-paper);box-shadow:var(--shadow-soft)}@media (max-width:780px){.templates-apply-panel,.template-editor-grid,.template-preview-grid{grid-template-columns:1fr}}.settings-help{color:var(--text-muted);margin:0 0 var(--space-md);font-size:.9rem;line-height:1.5}.settings-form{gap:var(--space-md);display:grid}.settings-checklist{gap:var(--space-xs);padding:var(--space-sm);border:1px solid var(--glass-border);border-radius:var(--radius-md);display:grid}.settings-list{gap:var(--space-sm);display:grid}.settings-list-item{justify-content:space-between;align-items:flex-start;gap:var(--space-md);padding:var(--space-md);border:1px solid var(--glass-border);border-radius:var(--radius-md);display:flex}.settings-row-actions{gap:var(--space-xs);flex-wrap:wrap;justify-content:flex-end;display:flex}.muted-text{color:var(--text-muted);margin-top:2px;font-size:.82rem}@media (max-width:768px){.settings-list-item{flex-direction:column}.settings-row-actions{justify-content:flex-start}}.muted{color:var(--text-muted);font-size:.85rem}.form-status{color:var(--text-secondary);font-size:.88rem}.school-timetables-view{gap:12px;width:min(100%,1180px);margin:0 auto;display:grid}.school-timetables-view .btn-danger{color:var(--danger);border-radius:var(--radius-sm);cursor:pointer;background:#ef444414;border:1px solid #ef444452;align-items:center;gap:8px;padding:12px 16px;font-family:inherit;font-size:.92rem;font-weight:600;transition:all .18s;display:inline-flex}.school-timetables-view .btn-danger:hover{border-color:var(--danger);background:#ef444424}[data-theme=light] .school-timetables-view .btn-danger{color:#b91c1c;background:#fee2e2;border-color:#fecaca}.school-empty-rich{align-items:center;gap:var(--space-md);padding:var(--space-2xl) var(--space-md);text-align:center;color:var(--text-secondary);border:1px dashed var(--border-subtle);background:var(--surface-paper);box-shadow:var(--shadow-soft);border-radius:14px;flex-direction:column;display:flex}.school-empty-icon-wrap{background:color-mix(in srgb, var(--accent-sky) 12%, var(--surface-soft));width:80px;height:80px;color:color-mix(in srgb, var(--accent-sky) 76%, var(--text-primary));border:1px solid var(--border-subtle);border-radius:20px;justify-content:center;align-items:center;display:inline-flex}.school-empty-title{color:var(--text-primary);margin:0;font-size:1.25rem;font-weight:600}.school-empty-body{max-width:460px;margin:0;font-size:.95rem;line-height:1.55}.school-empty-cta{margin-top:var(--space-sm);align-items:center;gap:8px;display:inline-flex}.school-layout{gap:var(--space-md);grid-template-columns:minmax(220px,280px) minmax(0,1fr);align-items:start;display:grid}.school-list-card,.school-editor-card{background:var(--surface-paper);border:1px solid var(--border-subtle);box-shadow:var(--shadow-soft);border-radius:14px;padding:14px}[data-theme=light] .school-list-card,[data-theme=light] .school-editor-card{background:var(--surface-paper);box-shadow:var(--shadow-soft)}.school-editor-card{gap:var(--space-lg);flex-direction:column;display:flex}.school-editor-section{gap:var(--space-md);flex-direction:column;display:flex}.school-section-head{flex-direction:column;gap:2px;display:flex}.school-section-title{letter-spacing:-.01em;color:var(--text-primary);margin:0;font-size:1rem;font-weight:600}.school-section-hint{color:var(--text-muted);margin:0;font-size:.82rem}.school-list-header{margin-bottom:var(--space-md);justify-content:space-between;align-items:baseline;display:flex}.school-list-title{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-size:.78rem;font-weight:700}.school-list-count{color:var(--text-secondary);background:color-mix(in srgb, var(--surface-soft) 80%, transparent);border:1px solid var(--border-subtle);border-radius:var(--radius-pill);text-align:center;min-width:28px;padding:2px 10px;font-size:.78rem;font-weight:600}.school-list-empty{margin:0 0 var(--space-sm)}.school-list-items{flex-direction:column;gap:4px;display:flex}.school-list-item{border-radius:var(--radius-md);cursor:pointer;text-align:left;color:var(--text-primary);background:0 0;border:1px solid #0000;flex-direction:column;gap:6px;padding:12px;font-family:inherit;transition:background .15s,border-color .15s;display:flex}.school-list-item:hover{background:color-mix(in srgb, var(--surface-soft) 58%, var(--surface-paper));border-color:color-mix(in srgb, var(--amethyst) 18%, var(--border-subtle))}.school-list-item.active{background:color-mix(in srgb, var(--amethyst) 10%, var(--surface-paper));border-color:color-mix(in srgb, var(--amethyst) 34%, var(--border-subtle));box-shadow:0 4px 16px -12px var(--amethyst-glow)}.school-list-item-name{font-size:.95rem;font-weight:600}.school-list-item-meta{justify-content:space-between;align-items:center;gap:var(--space-sm);color:var(--text-secondary);font-size:.8rem;display:flex}.school-list-item-class{font-weight:500}.school-list-item-children{align-items:center;display:inline-flex}.school-list-item-children>*+*{margin-left:-6px}.school-meta-grid{gap:var(--space-md);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.school-field{flex-direction:column;gap:6px;display:flex}.school-field>span{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;font-size:.78rem;font-weight:600}.school-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;align-self:flex-start;align-items:center;gap:12px;display:inline-flex}.school-toggle input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.school-toggle-track{border-radius:var(--radius-pill);background:#7882b447;flex-shrink:0;width:42px;height:24px;transition:background .2s;display:inline-block;position:relative}.school-toggle-thumb{width:20px;height:20px;transition:transform .2s var(--ease-spring);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px;box-shadow:0 2px 6px #0003}.school-toggle input:checked+.school-toggle-track{background:var(--color-accent-fill)}.school-toggle input:checked+.school-toggle-track .school-toggle-thumb{transform:translate(18px)}.school-toggle input:focus-visible+.school-toggle-track{outline:2px solid var(--amethyst);outline-offset:2px}.school-toggle-label{color:var(--text-primary);font-size:.92rem}.school-children-row{gap:var(--space-sm);flex-wrap:wrap;display:flex}.school-child-chip{border:1px solid var(--border-subtle);border-radius:var(--radius-pill);background:var(--surface-paper);color:var(--text-primary);cursor:pointer;align-items:center;gap:8px;padding:5px 14px 5px 5px;font-family:inherit;font-size:.9rem;transition:all .18s;display:inline-flex}.school-child-chip:hover{background:#7c3aed14;border-color:#7c3aed66}.school-child-chip.active{border-color:color-mix(in srgb, var(--amethyst) 36%, var(--border-subtle));background:color-mix(in srgb, var(--amethyst) 10%, var(--surface-paper));box-shadow:0 4px 14px -8px var(--amethyst-glow)}.school-child-chip-name{font-weight:500}.school-child-chip-check{background:var(--color-accent-fill);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;display:inline-flex}[data-theme=light] .school-child-chip{background:#ffffffb3}.school-day-pager{background:color-mix(in srgb, var(--surface-soft) 70%, transparent);border:1px solid var(--border-subtle);border-radius:var(--radius-md);flex-wrap:nowrap;gap:4px;padding:4px;display:none;overflow-x:auto}.school-day-tab{border-radius:var(--radius-sm);min-width:48px;min-height:44px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;flex:1 1 0;padding:10px 12px;font-family:inherit;font-size:.92rem;font-weight:600;transition:all .15s}.school-day-tab:hover{color:var(--text-primary)}.school-day-tab.active{background:var(--surface-paper);border:1px solid var(--border-subtle);color:var(--text-primary);box-shadow:var(--shadow-soft)}.school-grid{grid-template-columns:120px repeat(var(--school-columns,5), minmax(110px, 1fr));background:color-mix(in srgb, var(--surface-soft) 72%, var(--surface-paper));border:1px solid var(--border-subtle);border-radius:12px;gap:0;padding:0;display:grid;overflow:auto hidden}.school-grid-corner{background:0 0}.school-grid-day-head{border-right:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);background:var(--surface-paper);text-align:center;border-radius:0;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:10px 8px;display:flex}.school-grid-day-short{color:var(--text-primary);font-size:1rem;font-weight:700}.school-grid-day-full{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-size:.7rem;font-weight:500}.school-grid-row,.school-grid-row--break{display:contents}.school-grid-time{background:var(--surface-paper);border-right:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);z-index:1;flex-direction:column;justify-content:center;align-items:flex-start;gap:2px;padding:10px 14px;display:flex;position:sticky;left:0}.school-grid-time-num{color:var(--text-primary);font-size:1rem;font-weight:700}.school-grid-time-range{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:.72rem}.school-grid-time--break{background:color-mix(in srgb, var(--accent-amber) 10%, var(--surface-paper))}.school-grid-break-bar{background:color-mix(in srgb, var(--accent-amber) 10%, var(--surface-paper));color:color-mix(in srgb, var(--accent-amber) 76%, var(--text-primary));letter-spacing:.02em;border:0;border-bottom:1px solid color-mix(in srgb, var(--accent-amber) 24%, var(--border-subtle));border-radius:0;grid-column:2/-1;justify-content:center;align-items:center;gap:8px;padding:10px 14px;font-size:.85rem;font-weight:600;display:flex}.school-cell{--st-bg:#ffffff05;--st-fg:var(--text-primary);background:var(--st-bg);border:1px solid #7882b429;border-top:0;border-left:0;border-radius:0;min-height:56px;transition:border-color .15s,transform .15s;display:flex}[data-theme=light] .school-cell{background:#ffffffa6}.school-cell:hover{border-color:#7c3aed52}.school-cell--filled{background:var(--st-bg);border-color:#0000;box-shadow:inset 0 0 0 1px #ffffff0a}.school-cell-input{width:100%;min-width:0;color:var(--st-fg);text-align:center;background:0 0;border:none;flex:1;padding:10px 12px;font-family:inherit;font-size:.92rem;font-weight:600}.school-cell-input::placeholder{color:var(--text-muted);font-weight:400}.school-cell-input:focus-visible{outline:2px solid var(--amethyst);outline-offset:-2px;border-radius:var(--radius-sm)}.school-day-list{display:none}.school-day-list-item{--st-bg:#ffffff08;--st-fg:var(--text-primary);border:1px solid var(--glass-border);border-radius:var(--radius-md);background:var(--st-bg);grid-template-columns:84px 1fr;align-items:center;gap:12px;padding:10px 12px;display:grid}[data-theme=light] .school-day-list-item{background:#ffffffb3}.school-day-list-item--filled{background:var(--st-bg);border-color:#0000}.school-day-list-item--break{color:var(--warning);background:linear-gradient(135deg,#f59e0b1f,#f43f5e0f);border-color:#f59e0b47}.school-day-list-time{font-variant-numeric:tabular-nums;flex-direction:column;display:flex}.school-day-list-num{color:var(--text-primary);font-size:1rem;font-weight:700}.school-day-list-range{color:var(--text-muted);font-size:.72rem}.school-day-list-input{text-align:left;color:var(--st-fg);min-height:44px;padding:12px;font-size:1rem;font-weight:600}.school-periods-config{border:1px solid var(--glass-border);border-radius:var(--radius-md);background:#7882b40a;padding:0}.school-periods-config>summary{justify-content:space-between;align-items:center;gap:var(--space-sm);cursor:pointer;padding:14px 16px;font-weight:600;list-style:none;display:flex}.school-periods-config>summary::-webkit-details-marker{display:none}.school-periods-chevron{color:var(--text-muted);transition:transform .2s}.school-periods-config[open] .school-periods-chevron{transform:rotate(180deg)}.school-periods-config[open]>summary{border-bottom:1px solid var(--glass-border)}.school-periods{gap:8px;padding:14px 16px;display:grid}.school-period-row{grid-template-columns:minmax(0,1.4fr) 110px 110px 110px 40px;align-items:center;gap:8px;display:grid}.school-period-row--break .school-period-label{color:var(--warning);font-style:italic}.school-period-remove{border-radius:var(--radius-sm);border:1px solid var(--glass-border);width:40px;height:40px;color:var(--text-muted);cursor:pointer;background:0 0;justify-content:center;align-items:center;transition:all .15s;display:inline-flex}.school-period-remove:hover{color:var(--danger);background:#ef444414;border-color:#ef444466}.school-periods-actions{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.school-form-status{border-radius:var(--radius-sm);border:1px solid var(--glass-border);background:#7882b414;margin:0;padding:10px 14px}.school-action-bar{padding-top:var(--space-md);border-top:1px solid var(--glass-border);flex-wrap:wrap;gap:12px;display:flex}.display-school-today{background:#ffffff14;border:1px solid #94a3b847;border-radius:20px;margin-bottom:1rem;padding:.8rem}.display-school-today-title{align-items:center;gap:.45rem;margin-bottom:.65rem;font-weight:800;display:flex}.display-school-groups{gap:.65rem;display:grid}.display-school-group{background:#0f172a14;border-radius:16px;padding:.65rem}.display-school-group-head{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.display-school-children{flex-wrap:wrap;gap:.35rem;margin:.45rem 0;display:flex}.display-school-child{border-left:4px solid var(--child-color,#8b5cf6);background:#ffffff1f;border-radius:999px;padding:.15rem .45rem;font-size:.82rem}.display-school-lessons{gap:.3rem;margin:0;padding:0;list-style:none;display:grid}.display-school-lesson{grid-template-columns:95px 1fr;gap:.45rem;font-size:.9rem;display:grid}.display-school-lesson-time,.display-school-lesson--break{opacity:.78}.school-header-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.school-edit-button{align-items:center;gap:var(--space-2);min-height:44px;padding:0 var(--space-4);border:1px solid var(--color-line);border-radius:var(--radius-control);background:var(--color-surface);color:var(--color-text);font:inherit;font-size:var(--type-body-small-size);cursor:pointer;font-weight:650;display:inline-flex}.school-edit-button:hover{border-color:var(--color-accent-fill)}.school-plan-picker{margin-bottom:var(--space-3)}.school-view{gap:var(--space-3);display:grid}.school-view-meta{align-items:center;gap:var(--space-2);color:var(--color-text-secondary);font-size:var(--type-body-small-size);flex-wrap:wrap;display:flex}.school-view-people{gap:2px;display:inline-flex}.school-view-name{color:var(--color-text);font-weight:650}.school-view-class{border-radius:var(--radius-pill);background:var(--color-surface-raised);color:var(--color-text-secondary);padding:2px 8px;font-weight:600}.school-grid--view .school-cell{cursor:default;justify-content:center;align-items:center;padding:10px 12px;position:relative}.school-grid--view .school-cell:hover{border-color:#7882b429}.school-cell-text{color:var(--st-fg);text-align:center;overflow-wrap:anywhere;font-size:.92rem;font-weight:600}.school-cell:not(.school-cell--filled) .school-cell-text{color:var(--color-text-muted);font-weight:400}.school-grid-day-head.today{background:var(--color-accent-soft);box-shadow:inset 0 -2px 0 var(--color-accent-fill)}.school-grid-day-head.today .school-grid-day-full{color:var(--color-accent-fill);font-weight:700}.school-grid--view .school-cell.today:not(.school-cell--filled){background:color-mix(in srgb, var(--color-accent-soft) 45%, transparent)}.school-grid--view .school-cell.now{box-shadow:inset 0 0 0 2px var(--color-accent-fill)}.school-grid-row.now .school-grid-time{box-shadow:inset 3px 0 0 var(--color-accent-fill)}.school-now-pill{border-radius:var(--radius-pill);background:var(--color-accent-fill);color:var(--text-on-primary);font-size:var(--type-label-size);flex:none;padding:1px 8px;font-weight:700}.school-grid--view .school-cell .school-now-pill{position:absolute;top:4px;right:4px}.school-day-list--view{margin:0;padding:0;list-style:none}.school-day-list--view .school-day-list-item{grid-template-columns:84px 1fr auto;min-height:56px}.school-day-list--view .school-day-list-item--break{grid-template-columns:84px 1fr}.school-day-list-subject{color:var(--st-fg);font-size:1rem;font-weight:600}.school-day-list-item:not(.school-day-list-item--filled) .school-day-list-subject{color:var(--color-text-muted);font-weight:400}.school-day-list-item.now{box-shadow:inset 0 0 0 2px var(--color-accent-fill)}.school-day-tab.today:not(.active){color:var(--color-accent-fill)}.school-editor-head{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.school-editor-head h2{font-size:var(--type-title-size,1.25rem);margin:0}.school-day-list--view .school-grid-break-bar{background:0 0;border:0;justify-content:flex-start;padding:0}@media (max-width:760px){.school-timetables-view .list-header{flex-wrap:nowrap;align-items:center}.school-header-actions{flex-wrap:nowrap}.school-add-button{justify-content:center;width:44px;padding:0}.school-add-label{display:none}.school-layout{gap:var(--space-md);grid-template-columns:1fr}.school-list-card,.school-editor-card{padding:var(--space-md)}.school-editor-card{margin-bottom:calc(88px + env(safe-area-inset-bottom))}.school-meta-grid{grid-template-columns:1fr}.school-grid{display:none}.school-day-pager{display:flex}.school-day-list{flex-direction:column;gap:8px;display:flex}.school-period-row{grid-template-columns:1fr 1fr;gap:8px}.school-period-label{grid-column:1/-1}.school-period-remove{grid-column:1/-1;width:100%}.school-action-bar>*{flex:100%;justify-content:center}}.calendar-page,.tasks-page,.shopping-page{gap:var(--space-lg);display:grid}.family-view-header{padding:var(--space-lg);border:1px solid var(--glass-border);border-radius:var(--radius-xl);background:linear-gradient(135deg, var(--surface-raised), var(--void-surface));box-shadow:var(--shadow-soft);margin-bottom:0}.view-kicker{color:var(--amethyst);letter-spacing:.08em;text-transform:uppercase;margin-bottom:5px;font-size:.72rem;font-weight:800}.calendar-controls-surface{padding:var(--space-sm);border:1px solid var(--glass-border);border-radius:var(--radius-lg);background:var(--void-surface);box-shadow:var(--shadow-soft);margin-bottom:0}.calendar-grid-wrapper{border-radius:var(--radius-xl);box-shadow:var(--shadow-soft)}.calendar-day{background:#ffffff04;justify-content:flex-start;align-items:flex-start;min-height:92px;padding:10px}.calendar-day-num{align-self:flex-start}.calendar-day-dots{justify-content:flex-start;align-self:stretch;margin-top:auto}.calendar-day.today{background:#8b5e9f1a;border-color:#8b5e9f52}.calendar-day.selected{border-color:var(--amethyst);background:#8b5e9f29;box-shadow:inset 0 0 0 1px #8b5e9f42}.calendar-day.selected .calendar-day-num{color:var(--text-primary);font-weight:800}.day-detail-panel{border-radius:var(--radius-xl);box-shadow:var(--shadow-soft)}.day-event-card{border-radius:var(--radius-md);background:var(--surface-soft)}.tasks-wrapper,.shopping-items-wrapper,.shopping-templates-panel,.shopping-list-card{box-shadow:var(--shadow-soft)}.tasks-toolbar{padding-top:var(--space-md)}.task-card{border-color:var(--glass-border);background:var(--surface-soft);min-height:68px}.task-card.done{opacity:.68}.shopping-active-header{justify-content:space-between;align-items:center;gap:var(--space-md);padding:var(--space-lg) var(--space-lg) var(--space-md);display:flex}.shopping-active-header h2{margin:0;font-size:1.15rem}.shopping-category-overview{gap:var(--space-xs);padding:0 var(--space-lg) var(--space-sm);scrollbar-width:none;display:flex;overflow-x:auto}.shopping-category-overview::-webkit-scrollbar{display:none}.shopping-category-overview-chip{border:1px solid var(--glass-border);border-radius:var(--radius-pill);background:var(--surface-soft);min-height:40px;color:var(--text-secondary);font:inherit;white-space:nowrap;align-items:center;gap:8px;padding:8px 12px;display:inline-flex}.shopping-category-overview-chip:hover,.shopping-category-overview-chip:focus-visible{color:var(--text-primary);box-shadow:0 0 0 3px var(--amethyst-glow);border-color:#8b5e9f52;outline:none}.shopping-category-overview-chip strong{color:var(--amethyst);font-size:.8rem}.shopping-category-header{border-radius:var(--radius-sm)}.shopping-item{min-height:60px}.shopping-check,.task-checkbox{background:var(--void-surface)}@media (max-width:900px){.shopping-layout{grid-template-columns:1fr}}@media (max-width:768px){.calendar-page,.tasks-page,.shopping-page{gap:var(--space-md)}.family-view-header{padding:var(--space-md);border-radius:var(--radius-lg)}.calendar-controls-surface{align-items:stretch}.calendar-nav{flex:100%;justify-content:space-between}.calendar-month-label{flex:1;min-width:0}.calendar-day{grid-template-rows:20px 8px 14px;min-height:56px;padding:7px}.calendar-day-dots{gap:2px;height:12px}.day-detail-panel{scroll-margin-top:88px;scroll-margin-bottom:calc(128px + env(safe-area-inset-bottom))}.day-detail-panel .quick-add-form>button[type=submit]{margin-top:var(--space-sm);scroll-margin-bottom:calc(128px + env(safe-area-inset-bottom))}.day-detail-panel .event-card-action{scroll-margin-bottom:calc(128px + env(safe-area-inset-bottom))}.tasks-refine-controls{grid-template-columns:1fr;display:grid}.task-card{align-items:center;gap:10px;padding:12px}.task-edit-btn,.task-delete-btn{opacity:1}.shopping-active-header{padding:var(--space-md) var(--space-md) var(--space-sm);align-items:flex-start}.shopping-category-overview{padding-left:var(--space-md);padding-right:var(--space-md)}.shopping-item{min-height:60px;padding:6px var(--space-md)}.shopping-item-info{align-items:center;gap:2px;display:grid}}@media (max-width:1280px) and (min-width:769px){.shopping-layout{grid-template-columns:minmax(220px,260px) minmax(0,1fr);align-items:start}.shopping-lists-panel{grid-area:1/1}.shopping-templates-panel{grid-area:2/1}.shopping-items-panel{grid-area:1/2/span 2}}.shopping-items-wrapper>.quick-add-bar{grid-template-columns:minmax(0,1.3fr) minmax(128px,.75fr) minmax(128px,.75fr) 48px;align-items:stretch;display:grid}.shopping-items-wrapper>.quick-add-bar .shopping-item-suggest-field,.shopping-items-wrapper>.quick-add-bar .quick-add-input{min-width:0}.shopping-items-wrapper>.quick-add-bar .shopping-spec-input,.shopping-items-wrapper>.quick-add-bar .shopping-category-input{width:100%;flex:none!important}@media (max-width:1280px) and (min-width:769px){.shopping-items-wrapper>.quick-add-bar{grid-template-columns:minmax(0,1fr) 48px}.shopping-items-wrapper>.quick-add-bar .shopping-item-suggest-field{grid-area:1/1}.shopping-items-wrapper>.quick-add-bar .quick-add-btn{grid-area:1/2}.shopping-items-wrapper>.quick-add-bar .shopping-spec-input{grid-area:2/1/auto/3}.shopping-items-wrapper>.quick-add-bar .shopping-category-input{grid-area:3/1/auto/3;min-width:0}}.tasks-page{gap:12px;width:min(100%,760px);margin:0 auto}.tasks-page .tasks-layout{min-width:0;max-width:100%;display:block}.tasks-page .tasks-wrapper{border-color:var(--border-subtle);background:var(--surface-paper);min-width:0;max-width:100%;box-shadow:var(--shadow-soft);border-radius:14px}.tasks-card-header,.shopping-active-header{min-height:54px;padding:12px 16px 8px}.tasks-card-header{justify-content:space-between;align-items:center;gap:var(--space-md);display:flex}.tasks-card-header h1,.shopping-active-header h1{color:var(--text-primary);margin:0;font-size:1.05rem;font-weight:850;line-height:1.2}.tasks-card-actions,.shopping-active-actions{align-items:center;gap:8px;min-width:0;display:flex}.tasks-new-btn,.shopping-add-item-btn{background:var(--color-accent-fill);min-height:36px;color:var(--text-on-primary);font:inherit;cursor:pointer;border:1px solid #0000;border-radius:9px;padding:8px 13px;font-size:.78rem;font-weight:800}.shopping-add-item-btn{background:color-mix(in srgb, var(--success) 82%, #1b5f24);align-items:center;gap:6px;display:inline-flex}.tasks-page .tasks-toolbar{justify-content:space-between;align-items:center;gap:10px;padding:0 16px 8px;display:flex}.tasks-page .tasks-filter-tabs{background:0 0;border:0;flex:auto;gap:8px;min-width:0;padding:0}.tasks-page .tasks-filter-btn{border:1px solid var(--border-subtle);border-radius:var(--radius-pill);background:var(--surface-paper);min-height:34px;color:var(--text-secondary);box-shadow:none;align-items:center;gap:7px;padding:6px 11px;display:inline-flex}.tasks-page .tasks-filter-btn.active{background:color-mix(in srgb, var(--amethyst) 9%, var(--surface-paper));border-color:color-mix(in srgb, var(--amethyst) 28%, var(--border-subtle));color:var(--amethyst);box-shadow:none}.tasks-page .tasks-filter-btn strong{border-radius:var(--radius-pill);background:color-mix(in srgb, currentColor 12%, transparent);color:currentColor;justify-content:center;align-items:center;min-width:20px;height:20px;padding:0 6px;font-size:.68rem;line-height:1;display:inline-flex}.tasks-refine-toggle{min-height:34px;color:var(--text-secondary);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:9px;align-items:center;gap:6px;font-size:.78rem;font-weight:750;display:inline-flex}.tasks-refine-toggle:hover,.tasks-refine-toggle.active{color:var(--text-primary);background:var(--surface-soft)}.tasks-page .quick-add-bar{border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);background:color-mix(in srgb, var(--surface-soft) 58%, transparent);grid-template-columns:minmax(0,1fr) auto 48px;align-items:stretch;gap:8px;padding:8px 16px 12px;display:grid}.tasks-page .quick-add-bar.quick-add-expanded{border-bottom:0;padding-bottom:8px}.tasks-page .quick-add-bar.quick-add-expanded+.task-form-fields{border-bottom:1px solid var(--border-subtle);background:color-mix(in srgb, var(--surface-soft) 58%, transparent);padding:0 16px 12px}.tasks-page .quick-add-input,.shopping-items-wrapper .quick-add-input{border-color:var(--border-subtle);background:var(--surface-paper);color:var(--text-primary);box-shadow:none;border-radius:9px}.tasks-page .quick-add-btn,.shopping-items-wrapper .quick-add-btn{background:var(--surface-paper);color:var(--amethyst);border:1px solid var(--border-subtle);box-shadow:none;border-radius:9px}.tasks-page .task-form-toggle{white-space:nowrap;border:1px solid #0000;border-radius:9px;justify-content:center;align-self:stretch;min-height:48px;padding:0 10px}.tasks-page .task-form-toggle:hover{background:var(--surface-paper);border-color:var(--border-subtle)}.tasks-page .tasks-refine-controls{border:1px solid var(--border-subtle);background:var(--surface-soft);border-radius:12px;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:8px;width:auto;margin:0 16px 10px;padding:10px;display:grid}.tasks-page .tasks-refine-controls .tasks-state-tabs{grid-column:1/-1}.tasks-page .tasks-refine-input{width:100%;min-width:0}.tasks-state-tabs{flex-wrap:wrap;gap:6px;width:100%;display:flex}.tasks-state-btn{border:1px solid var(--border-subtle);border-radius:var(--radius-pill);background:var(--surface-paper);min-height:34px;color:var(--text-secondary);font:inherit;cursor:pointer;padding:6px 11px;font-size:.76rem;font-weight:750}.tasks-state-btn.active{color:var(--text-primary);background:color-mix(in srgb, var(--accent-sage) 14%, var(--surface-paper))}.tasks-page .tasks-list{gap:8px;margin-top:0;padding:10px 12px 16px}.tasks-page .task-card{border-color:var(--border-subtle);background:color-mix(in srgb, var(--surface-soft) 54%, var(--surface-paper));min-height:58px;box-shadow:none;border-radius:10px;align-items:center;gap:10px;padding:10px 12px}.tasks-page .task-card:hover{background:var(--surface-paper);border-color:color-mix(in srgb, var(--amethyst) 18%, var(--border-subtle))}.tasks-page .task-checkbox{background:var(--surface-paper);border-width:1.5px;border-radius:6px;width:24px;min-width:24px;height:24px;margin-top:0}.tasks-page .task-title{color:var(--text-primary);font-size:.9rem;font-weight:760}.tasks-page .task-description{margin-top:2px;font-size:.78rem}.tasks-page .task-meta{gap:6px;margin-top:4px}.task-due-label,.tasks-page .task-badge,.tasks-page .task-due{font-family:inherit;font-size:.7rem;font-weight:760}.task-due-today{color:var(--accent-amber)}.tasks-page .badge-overdue,.tasks-page .task-due.overdue{color:var(--danger)}.task-priority-label{border-radius:var(--radius-pill);background:var(--surface-paper);align-items:center;min-height:20px;padding:2px 8px;font-size:.68rem;font-weight:780;display:inline-flex}.task-priority-low{color:color-mix(in srgb, var(--accent-sage) 72%, var(--text-primary));background:color-mix(in srgb, var(--accent-sage) 12%, var(--surface-paper))}.task-priority-normal{color:color-mix(in srgb, var(--accent-amber) 82%, var(--text-primary));background:color-mix(in srgb, var(--accent-amber) 12%, var(--surface-paper))}.task-priority-high{color:var(--danger);background:color-mix(in srgb, var(--danger) 10%, var(--surface-paper))}.tasks-page .task-edit-btn,.tasks-page .task-delete-btn{width:34px;min-width:34px;height:34px;min-height:34px;padding:6px}.shopping-page{gap:12px;width:min(100%,940px);margin:0 auto}.shopping-page .shopping-layout,.shopping-page .shopping-layout-readonly{grid-template-columns:1fr;gap:12px}.shopping-page .shopping-items-panel{order:1}.shopping-page .shopping-lists-panel{scrollbar-width:none;flex-direction:row;order:2;gap:8px;padding:0 0 4px;overflow-x:auto}.shopping-page .shopping-lists-panel::-webkit-scrollbar{display:none}.shopping-page .shopping-templates-panel{order:3}.shopping-page .shopping-list-card{border-color:var(--border-subtle);background:color-mix(in srgb, var(--surface-soft) 62%, var(--surface-paper));min-width:148px;min-height:58px;box-shadow:none;border-radius:12px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:10px 12px;display:grid}.shopping-page .shopping-list-card.active{border-color:color-mix(in srgb, var(--amethyst) 24%, var(--border-subtle));background:var(--surface-paper);box-shadow:none}.shopping-page .shopping-list-name{color:var(--text-primary);font-weight:800}.shopping-page .shopping-list-meta{color:var(--text-secondary);font-family:var(--font-ui);font-size:.74rem;font-weight:650}.shopping-page .shopping-list-delete{opacity:1;width:32px;min-width:32px;height:32px;min-height:32px;padding:6px}.shopping-page .shopping-list-progress{background:0 0;height:2px}.shopping-page .shopping-list-progress-fill{background:var(--color-accent-fill)}.shopping-page .shopping-add-list-btn{border:1px solid var(--border-subtle);background:color-mix(in srgb, var(--surface-soft) 62%, var(--surface-paper));min-height:58px;color:var(--text-secondary);border-radius:12px;padding:10px 13px;font-weight:700}.shopping-page .shopping-add-list-btn:hover{border-color:color-mix(in srgb, var(--amethyst) 22%, var(--border-subtle));background:var(--surface-paper);color:var(--amethyst)}.shopping-items-wrapper{border-color:var(--border-subtle);background:var(--surface-paper);box-shadow:var(--shadow-soft);border-radius:14px}.shopping-active-header{border-bottom:0;justify-content:space-between;align-items:center;display:flex}.shopping-active-select{background:var(--surface-paper);border-radius:9px;min-width:150px;min-height:38px;padding:7px 34px 7px 12px;font-size:.78rem}.shopping-items-wrapper>.quick-add-bar{grid-template-columns:minmax(0,1.25fr) minmax(120px,.75fr) minmax(120px,.75fr) 44px;padding:4px 16px 12px}.shopping-market-layout{grid-template-columns:minmax(0,1fr) minmax(160px,210px);align-items:start;gap:16px;padding:0 12px 16px 16px;display:grid}.shopping-page .shopping-items-list{gap:10px;padding:0}.shopping-page .shopping-category-group{gap:8px}.shopping-page .shopping-category-header{min-height:32px;color:var(--text-primary);letter-spacing:0;text-transform:none;background:0 0;border-radius:0;justify-content:flex-start;padding:5px 0;font-size:.78rem}.shopping-page .shopping-category-count{color:var(--text-muted);margin-left:8px}.shopping-page .shopping-category-items{gap:7px}.shopping-page .shopping-item{border:1px solid var(--border-subtle);background:color-mix(in srgb, var(--surface-soft) 48%, var(--surface-paper));border-radius:9px;min-height:46px;padding:8px 10px}.shopping-page .shopping-item:hover{background:var(--surface-paper)}.shopping-page .shopping-check{background:var(--surface-paper);border-width:1.5px;border-radius:6px;width:24px;height:24px}.shopping-page .shopping-item-name{color:var(--text-primary);font-size:.9rem;font-weight:760}.shopping-page .shopping-item-info{gap:8px}.shopping-page .shopping-category-pill{display:none}.shopping-page .shopping-item-delete{width:34px;min-width:34px;height:34px;min-height:34px;padding:6px}.shopping-page .shopping-category-overview{gap:8px;padding:2px 0 0;display:grid;overflow:visible}.shopping-category-summary{min-height:28px;color:var(--text-secondary);justify-content:flex-end;align-items:center;gap:7px;font-size:.78rem;display:inline-flex}.shopping-category-summary svg{color:color-mix(in srgb, var(--accent-sage) 70%, var(--text-muted))}.shopping-category-summary strong{color:var(--text-primary);font-weight:800}.shopping-category-overview-chip{border:1px solid var(--border-subtle);background:color-mix(in srgb, var(--surface-soft) 72%, var(--surface-paper));width:100%;min-height:38px;color:var(--text-primary);box-shadow:none;cursor:pointer;font:inherit;border-radius:12px;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;font-size:.79rem;font-weight:760;display:flex}.shopping-category-overview-chip:nth-child(3n+1){--shopping-category-accent:var(--accent-sky)}.shopping-category-overview-chip:nth-child(3n+2){--shopping-category-accent:var(--accent-amber)}.shopping-category-overview-chip:nth-child(3n+3){--shopping-category-accent:var(--accent-rose)}.shopping-category-overview-label{align-items:center;gap:8px;min-width:0;display:inline-flex}.shopping-category-overview-marker{background:color-mix(in srgb, var(--shopping-category-accent,var(--accent-sage)) 16%, var(--surface-paper));border:1px solid color-mix(in srgb, var(--shopping-category-accent,var(--accent-sage)) 24%, var(--border-subtle));border-radius:7px;flex:none;width:18px;height:18px}.shopping-category-overview-chip strong{color:var(--text-primary);font-size:.82rem;font-weight:850}.shopping-category-overview-chip.muted{opacity:.58}.shopping-page .shopping-templates-panel{border-color:var(--border-subtle);background:color-mix(in srgb, var(--surface-soft) 58%, var(--surface-paper));box-shadow:none;border-radius:14px;padding:14px 16px}.shopping-page .shopping-templates-header h2{color:var(--text-primary);font-size:.95rem;font-weight:850}.shopping-page .shopping-templates-panel .shopping-add-list-btn{border-radius:var(--radius-pill);background:var(--surface-paper);min-height:40px}@media (max-width:768px){.tasks-page,.shopping-page{width:100%}.tasks-card-header,.shopping-active-header{padding:12px 12px 8px}.tasks-page .tasks-toolbar{align-items:flex-start;padding:0 12px 8px}.tasks-page .tasks-filter-tabs{scrollbar-width:none;flex-wrap:nowrap;overflow-x:auto}.tasks-page .tasks-filter-tabs::-webkit-scrollbar{display:none}.tasks-page .quick-add-bar{grid-template-columns:minmax(0,1fr) 44px;padding:8px 12px 12px}.tasks-page .quick-add-bar.quick-add-expanded{padding-bottom:8px}.tasks-page .quick-add-bar.quick-add-expanded+.task-form-fields{padding:0 12px 12px}.tasks-page .quick-add-input{grid-column:1/-1}.tasks-page .task-form-toggle{grid-area:2/1;justify-content:flex-start;min-height:44px}.tasks-page .quick-add-btn{grid-area:2/2;width:44px;min-width:44px;min-height:44px}.tasks-page .tasks-refine-controls{grid-template-columns:1fr;margin:0 12px 10px}.tasks-page .tasks-list{padding:10px 10px 16px}.shopping-active-header{align-items:flex-start}.shopping-active-actions{grid-template-columns:minmax(0,1fr) 44px;width:100%;display:grid}.shopping-active-select{grid-column:1;width:100%;min-width:0}.shopping-add-item-btn{grid-column:1/3;justify-content:center}.shopping-items-wrapper>.quick-add-bar{grid-template-columns:minmax(0,1fr) 44px;padding:4px 12px 12px}.shopping-market-layout{grid-template-columns:1fr;gap:12px;padding:0 12px 16px}.shopping-page .shopping-category-overview{order:-1;grid-template-columns:repeat(2,minmax(0,1fr));padding-top:0}.shopping-category-summary{grid-column:1/-1;justify-content:flex-start}.shopping-category-overview-chip{min-height:38px;padding:8px 10px}}.landing-page{background:radial-gradient(900px 520px at 50% 0%, color-mix(in srgb, var(--accent-amber) 12%, transparent), transparent 68%), linear-gradient(180deg, var(--void) 0%, var(--void-deep) 100%)}[data-theme=light] .landing-page{background:radial-gradient(760px 460px at 50% 0,#d4a24f29,#0000 70%),linear-gradient(#fff8ef 0%,#f4eadc 100%)}.auth-card--warm{background:var(--surface-paper);border:1px solid var(--border-subtle);box-shadow:var(--shadow-sm);-webkit-backdrop-filter:none;border-radius:var(--radius-xl);padding:clamp(1rem,1.35vw,1.45rem)}.auth-card--warm .auth-tabs{background:var(--surface-soft);border:1px solid var(--border-subtle)}.auth-card--warm .auth-tab.active{background:var(--color-accent-fill);box-shadow:none}.auth-card--warm .auth-divider{color:var(--text-muted)}.calendar-page{gap:12px;width:min(100%,760px);margin:0 auto}.calendar-board{border:1px solid var(--border-subtle);background:var(--surface-paper);box-shadow:var(--shadow-soft);border-radius:16px;gap:14px;padding:18px;display:grid}.calendar-board-header{justify-content:space-between;align-items:flex-start;gap:var(--space-md);display:flex}.calendar-board-title{color:var(--text-primary);letter-spacing:0;margin:0;font-size:clamp(1.25rem,1.8vw,1.45rem);font-weight:850}.calendar-board-family{color:var(--text-muted);margin-top:3px;font-size:.78rem;font-weight:650}.calendar-board .calendar-controls{align-items:center;gap:10px;margin:0}.calendar-board .calendar-controls-surface{box-shadow:none;background:0 0;border:0;border-radius:0;padding:0}.calendar-board .calendar-nav{pointer-events:auto;flex:240px;justify-content:flex-start;gap:6px}.calendar-board .calendar-month-label{text-align:left;min-width:min(42vw,160px);color:var(--text-primary);letter-spacing:0;font-size:1rem;font-weight:750}.calendar-board .calendar-nav-btn{border-radius:var(--radius-pill);width:32px;min-width:32px;height:32px;min-height:32px;color:var(--text-secondary);background:0 0;border:0;flex-basis:32px}.calendar-board .calendar-nav-btn:hover{background:var(--surface-soft);color:var(--text-primary)}.calendar-board .today-btn{border-color:var(--border-subtle);background:var(--surface-paper);min-height:34px;color:var(--text-primary);border-radius:10px;margin-left:0;padding:6px 13px;font-size:.74rem;font-weight:750}.calendar-board .today-btn:hover{background:var(--surface-soft);border-color:#8b5e9f52}.calendar-board .calendar-view-toggle{border:1px solid var(--border-subtle);background:var(--surface-soft);border-radius:10px;margin-left:0;padding:3px}.calendar-board .calendar-view-btn{border-radius:8px;min-height:28px;padding:5px 11px;font-size:.72rem;font-weight:750}.calendar-board .calendar-view-btn.active{background:var(--surface-paper);box-shadow:var(--shadow-sm)}.calendar-month-flow{gap:14px;display:grid}.calendar-board .calendar-grid-wrapper{border-color:var(--border-subtle);background:var(--surface-paper);box-shadow:none;border-radius:12px;padding:0;overflow:hidden}.calendar-board .calendar-weekdays{border-bottom:1px solid var(--border-subtle);background:var(--surface-paper);gap:0;margin:0}.calendar-board .calendar-weekday{min-width:0;min-height:34px;color:var(--text-muted);letter-spacing:.04em;justify-content:center;align-items:center;padding:0;font-size:.66rem;font-weight:800;display:flex}.calendar-board .calendar-days-grid{background:var(--border-subtle);gap:0;min-width:0}.calendar-board .calendar-day{box-sizing:border-box;background:var(--surface-paper);width:100%;min-width:0;min-height:clamp(54px,8vw,72px);color:var(--text-primary);border:0;border-radius:0;grid-template-rows:24px minmax(8px,1fr) 18px;justify-content:stretch;place-items:start center;gap:2px;padding:8px}.calendar-board .calendar-day:hover:not(.empty){background:color-mix(in srgb, var(--accent-sky) 9%, var(--surface-paper));border-color:#0000}.calendar-board .calendar-day.empty{opacity:1;cursor:default}.calendar-board .calendar-day.empty:disabled{opacity:1}.calendar-board .calendar-day-num{place-self:start center;min-width:28px;min-height:28px;font-family:inherit;font-size:.84rem;font-weight:700;transition:background .18s,color .18s,transform .18s}.calendar-board .calendar-day-num-muted{color:color-mix(in srgb, var(--text-muted) 62%, transparent);font-weight:600}.calendar-board .calendar-day.today{background:color-mix(in srgb, var(--amethyst) 7%, var(--surface-paper))}.calendar-board .calendar-day.today .calendar-day-num{color:var(--amethyst);background:color-mix(in srgb, var(--amethyst) 12%, transparent)}.calendar-board .calendar-day.selected{background:var(--surface-paper);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--amethyst) 18%, transparent)}.calendar-board .calendar-day.selected .calendar-day-num{color:#fff;background:var(--color-accent-fill);width:42px;height:42px;margin-top:4px;transform:translateY(2px);box-shadow:0 10px 24px #472d5f38}.calendar-board .calendar-day.selected .calendar-day-dots{border-radius:var(--radius-pill);background:color-mix(in srgb, var(--surface-paper) 86%, transparent);justify-content:center;width:auto;padding:2px 4px;position:absolute;bottom:6px;left:6px;right:6px}.calendar-board .calendar-day.selected .calendar-day-dots:empty{display:none}.calendar-board .calendar-day-dots{justify-content:center;align-self:end;min-height:18px;margin-top:0}.calendar-board .calendar-day-dot{width:5px;height:5px}.calendar-board .calendar-day-icon-indicator,.calendar-board .calendar-day-birthday-indicator{background:var(--surface-soft);width:16px;height:16px;box-shadow:0 1px 4px #2f233e14}.calendar-page>.day-detail-panel,.calendar-month-flow>.day-detail-panel{border-color:var(--border-subtle);background:var(--surface-paper);box-shadow:var(--shadow-soft);border-radius:14px;padding:16px;margin-top:0!important}.day-detail-date{color:var(--text-primary);margin-bottom:2px;font-size:1rem;font-weight:850}.day-detail-weekday{color:var(--text-secondary);margin-bottom:14px;font-size:.82rem}.day-detail-events{gap:10px;margin-bottom:14px}.day-event-card{border:1px solid var(--border-subtle);background:var(--surface-soft);min-height:70px;box-shadow:none;border-left:4px solid;border-radius:12px;align-items:stretch;padding:12px}.day-event-card:hover{background:var(--surface-paper);border-color:color-mix(in srgb, var(--amethyst) 20%, var(--border-subtle))}.event-card-title{color:var(--text-primary);font-weight:800}.event-card-meta,.event-card-location{color:var(--text-secondary)}.cal-empty-day{border:1px dashed var(--border-subtle);background:var(--surface-soft);border-radius:12px;padding:12px}.calendar-board .week-view{margin-top:2px}@media (min-width:1100px){.calendar-page{width:min(100%,820px)}}@media (max-width:768px){.calendar-page{gap:10px;width:100%}.calendar-board{border-radius:14px;padding:14px}.calendar-board-header{margin-bottom:2px}.calendar-board-family{display:none}.calendar-board .calendar-controls{grid-template-columns:minmax(0,1fr) auto auto;gap:8px;display:grid}.calendar-board .calendar-nav{flex:auto;grid-column:1;grid-template-columns:minmax(0,1fr) 28px 28px;gap:2px;min-width:0;display:grid}.calendar-board .calendar-month-label{min-width:0;font-size:.94rem}.calendar-board .calendar-nav-btn{flex-basis:28px;width:28px;min-width:28px;height:28px;min-height:28px}.calendar-board .today-btn{grid-column:2;min-height:32px;padding:5px 10px;font-size:.68rem}.calendar-board .calendar-view-toggle{grid-column:3}.calendar-board .calendar-view-btn{min-height:26px;padding:4px 7px;font-size:.68rem}.calendar-board .calendar-day{grid-template-rows:21px minmax(5px,1fr) 16px;min-height:56px;padding:5px}.calendar-board .calendar-day-num{min-width:24px;min-height:24px;font-size:.78rem}.calendar-board .calendar-day.selected .calendar-day-num{width:38px;height:38px;margin-top:2px}.calendar-board .calendar-day-icon-indicator,.calendar-board .calendar-day-birthday-indicator{width:14px;height:14px}.calendar-page>.day-detail-panel,.calendar-month-flow>.day-detail-panel{border-radius:14px;padding:14px}}@media (max-width:360px){.calendar-board .calendar-controls{grid-template-columns:minmax(0,1fr) auto}.calendar-board .calendar-nav,.calendar-board .today-btn{grid-column:auto}.calendar-board .calendar-view-toggle{grid-column:1/-1;justify-self:end}}.shopping-category-combobox{flex:1;min-width:0;position:relative}.shopping-category-combobox>input{width:100%}.shopping-category-options{z-index:30;background:var(--surface-paper);border:1px solid var(--glass-border);border-radius:10px;max-height:220px;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #0000002e}.shopping-category-options [role=option]{background:var(--surface-paper);width:100%;min-height:44px;color:var(--text-primary);text-align:left;font:inherit;border:0;padding:10px 12px;display:block}.shopping-category-options [aria-selected=true],.shopping-category-options [role=option]:hover{background:var(--surface-soft)}.shopping-page .shopping-item{cursor:default}.shopping-page .shopping-check{cursor:pointer;width:44px;min-width:44px;height:44px}.shopping-page .shopping-check.done{background:var(--color-accent-fill)}.shopping-page .shopping-check:disabled{cursor:wait;opacity:.65}.shopping-page .shopping-item.checked .shopping-category-pill{display:inline-flex}.shopping-page .shopping-item-action{opacity:1;pointer-events:auto}.shopping-overview-toggle{min-height:44px;margin:0 12px 8px}.shopping-market-layout.overview-hidden{grid-template-columns:minmax(0,1fr)}.shopping-undo{justify-content:space-between;align-items:center;gap:12px;padding:4px 12px;display:flex}@media (max-width:1024px){.shopping-page .shopping-category-overview{flex-wrap:nowrap;align-items:center;padding-bottom:4px;display:flex;overflow-x:auto}.shopping-category-summary,.shopping-category-overview-chip{white-space:nowrap;flex:none;width:auto}}@media (min-width:769px) and (max-width:1280px){.shopping-items-wrapper>.quick-add-bar .shopping-category-combobox{grid-area:3/1/auto/3}}@media (max-width:1024px){.shopping-market-layout{grid-template-columns:minmax(0,1fr)}.shopping-page .shopping-category-overview{order:-1}}@media (max-width:768px){.shopping-items-wrapper>.quick-add-bar{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 44px}.shopping-items-wrapper>.quick-add-bar .shopping-category-combobox{grid-area:2/2/auto/4}}.swipe-shell{position:relative}.swipe-reveal{padding:0 var(--space-4);font-size:var(--type-body-small-size);align-items:center;font-weight:650;display:flex;position:absolute;inset:0}.swipe-reveal span{align-items:center;gap:var(--space-2);opacity:0;display:inline-flex}.swipe-reveal span.visible{opacity:1}.swipe-reveal .swipe-reveal-end{margin-left:auto}.swipe-reveal-success{color:var(--color-success)}.swipe-reveal-danger{color:var(--color-danger)}.swipe-slide{background:var(--color-surface);touch-action:pan-y;position:relative}.swipe-slide *{touch-action:pan-y}.meal-suggestions{gap:var(--space-2);margin-bottom:var(--space-3);display:grid}.meal-suggestions-label{font-size:var(--type-label-size);font-weight:var(--type-label-weight);letter-spacing:var(--type-label-tracking);text-transform:uppercase;color:var(--color-text-muted)}.meal-suggestions-chips{gap:var(--space-2);flex-wrap:wrap;display:flex}.meal-suggestion{align-items:center;gap:var(--space-2);min-height:40px;padding:0 var(--space-3);border:1px solid var(--color-line);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-text);font:inherit;font-size:var(--type-body-small-size);cursor:pointer;display:inline-flex}.meal-suggestion:hover{background:var(--color-surface-hover)}.meal-suggestion svg{color:var(--color-text-muted);flex:none}.once-hint{align-items:center;gap:var(--space-3);margin:0 0 var(--space-3);padding:var(--space-1) var(--space-1) var(--space-1) var(--space-4);border:1px solid color-mix(in srgb, var(--color-accent) 18%, transparent);background:color-mix(in srgb, var(--color-accent) 8%, var(--color-surface));color:var(--color-text-secondary);border-radius:12px;display:flex}.once-hint svg{color:var(--color-accent);flex:none}.once-hint p{font-size:var(--type-body-small-size);line-height:var(--type-body-small-line);flex:1;margin:0}.once-hint button{min-height:44px;padding:0 var(--space-3);color:var(--color-accent);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;flex:none;font-weight:600}.once-hint button:hover{background:color-mix(in srgb, var(--color-accent) 10%, transparent)}
