:root{--bg: #faf8f4;--surface: #ffffff;--surface-muted: #f3efe8;--border: #e8e3da;--border-strong: #d6cfc1;--text: #2a2a28;--text-muted: #6b675f;--text-soft: #8e8a80;--accent: #5b7c6b;--accent-hover: #4a6957;--accent-soft: #e6ede8;--warning: #b8884a;--danger: #a85a4e;--success: #5b7c6b;--radius-sm: 8px;--radius: 14px;--radius-lg: 20px;--shadow-sm: 0 1px 2px rgba(40, 30, 10, .04);--shadow: 0 4px 16px rgba(40, 30, 10, .06);--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-serif: "Fraunces", Georgia, serif;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 64px}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;overscroll-behavior-y:contain}h1,h2,h3{font-family:var(--font-serif);font-weight:500;letter-spacing:-.01em;margin:0;color:var(--text)}h1{font-size:1.75rem;line-height:1.15}h2{font-size:1.2rem;line-height:1.25}h3{font-size:1.1rem;line-height:1.3;font-family:var(--font-sans);font-weight:600}p{margin:0}a{color:var(--accent);text-decoration:none}button{font-family:inherit}input,textarea,select{font-family:inherit;font-size:inherit;color:inherit}.app{display:grid;grid-template-columns:240px 1fr;min-height:100vh;min-height:100dvh}.sidebar{background:var(--surface);border-right:1px solid var(--border);padding:var(--space-6) var(--space-4);position:sticky;top:0;height:100vh;height:100dvh;display:flex;flex-direction:column;gap:var(--space-6)}.brand{font-family:var(--font-serif);font-size:1.6rem;font-weight:500;padding:0 var(--space-3);letter-spacing:-.01em;display:flex;align-items:center;gap:var(--space-3)}.brand-logo{color:var(--accent);flex-shrink:0}.brand-sub{font-family:var(--font-sans);font-size:.8rem;color:var(--text-soft);padding:0 var(--space-3);margin-top:-4px}.nav{display:flex;flex-direction:column;gap:2px}.nav a{display:flex;align-items:center;gap:var(--space-3);padding:10px var(--space-3);border-radius:var(--radius-sm);color:var(--text-muted);font-size:.95rem;font-weight:500;transition:background .15s ease,color .15s ease}.nav a:hover{background:var(--surface-muted);color:var(--text)}.nav a.active{background:var(--accent-soft);color:var(--accent)}.nav-icon{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;font-size:16px}.bottom-nav{display:none}.content{padding:var(--space-7) var(--space-6) var(--space-8);max-width:980px;width:100%;margin:0 auto}.page-header{margin-bottom:var(--space-6)}.page-header p{color:var(--text-muted);margin-top:var(--space-2)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-5);display:flex;flex-direction:column}.card-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--space-4);gap:var(--space-3)}.card-footer{margin-top:auto;padding-top:var(--space-3)}.card-title{font-family:var(--font-sans);font-weight:600;font-size:1rem;color:var(--text);letter-spacing:0}.card-subtitle{font-size:.85rem;color:var(--text-soft)}.grid{display:grid;gap:var(--space-4);align-items:stretch}.grid-2{grid-template-columns:1fr 1fr}.grid-3{grid-template-columns:repeat(3,1fr)}@media (max-width: 720px){.grid-2,.grid-3{grid-template-columns:1fr}}.row{display:flex;align-items:center;gap:var(--space-3)}.row.between{justify-content:space-between}.stack{display:flex;flex-direction:column;gap:var(--space-4)}.stack-tight{display:flex;flex-direction:column;gap:var(--space-2)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:10px 18px;border-radius:var(--radius-sm);border:1px solid transparent;background:var(--accent);color:#fff;font-weight:500;font-size:.95rem;cursor:pointer;transition:background .15s ease,transform .05s ease;min-height:42px;white-space:nowrap;flex-shrink:0}.btn:hover:not(:disabled){background:var(--accent-hover)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-ghost{background:transparent;color:var(--text);border-color:var(--border-strong)}.btn-ghost:hover:not(:disabled){background:var(--surface-muted)}.btn-danger{background:var(--danger)}.btn-danger:hover:not(:disabled){background:#8e4a40}.field{display:flex;flex-direction:column;gap:var(--space-2)}.field label{font-size:.85rem;color:var(--text-muted);font-weight:500}.input,.textarea,.select{padding:10px 12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);font-size:1rem;transition:border-color .15s ease,box-shadow .15s ease;width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none}select.input{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'><path d='M1 1l5 5 5-5' stroke='%236b675f' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}.input:focus,.textarea:focus,.select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.textarea{min-height:96px;resize:vertical;line-height:1.5}.help{font-size:.8rem;color:var(--text-soft)}.spinner{display:inline-block;width:18px;height:18px;border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{display:inline-block;background:linear-gradient(90deg,var(--surface-muted) 0%,var(--border) 50%,var(--surface-muted) 100%);background-size:200% 100%;animation:skeleton-shimmer 1.6s ease-in-out infinite;vertical-align:middle}@keyframes skeleton-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@media (prefers-reduced-motion: reduce){.skeleton{animation:none}}.empty{text-align:center;padding:var(--space-7) var(--space-4);color:var(--text-soft)}.empty-title{font-size:1rem;color:var(--text-muted);margin-bottom:var(--space-2)}.tag{display:inline-flex;align-items:center;padding:2px 10px;border-radius:999px;background:var(--surface-muted);color:var(--text-muted);font-size:.78rem;font-weight:500}.tag-accent{background:var(--accent-soft);color:var(--accent)}.divider{height:1px;background:var(--border);margin:var(--space-4) 0}.banner{padding:var(--space-3) var(--space-4);background:var(--surface-muted);border-radius:var(--radius-sm);font-size:.9rem;color:var(--text-muted)}.banner-error{background:#f8e6e3;color:#8e4a40}.member-row{display:flex;gap:var(--space-3);align-items:center;padding:var(--space-3) 0;border-bottom:1px solid var(--border);flex-wrap:wrap}.member-row:last-child{border-bottom:none}.member-identity{flex:1 1 200px;min-width:0}.member-name{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member-name-input{font-weight:500;padding:6px 10px;width:100%;max-width:280px}.member-self-tag{color:var(--text-soft);font-weight:400;font-size:.85rem}.shopping-progress{margin-top:var(--space-3);height:6px;border-radius:999px;background:var(--surface-muted);overflow:hidden}.shopping-progress-fill{display:block;height:100%;border-radius:999px;background:var(--accent);transition:width .24s ease}.shopping-notices{display:flex;flex-direction:column;gap:var(--space-2)}.shopping-notice{display:flex;align-items:center;gap:var(--space-3)}.shopping-notice-text{flex:1;min-width:0}.shopping-notice-btn{min-height:auto;padding:6px 12px;font-size:.85rem;flex-shrink:0}.shopping-card{padding:0}.shopping-section{padding:var(--space-3) var(--space-4);border-top:1px solid var(--border)}.shopping-section:first-child{border-top:none}.shopping-section-head{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-1)}.shopping-section-name{flex:1;min-width:0;font-weight:600}.shopping-section-count{color:var(--text-soft);font-size:.85rem;flex-shrink:0}.shopping-section-btn{min-height:auto;padding:6px 12px;font-size:.85rem;flex-shrink:0}.shopping-items{list-style:none;margin:0;padding:0}.shopping-swipe{border-radius:var(--radius-sm)}.shopping-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--border);cursor:pointer;background:var(--surface);touch-action:pan-y}.shopping-items .shopping-swipe:last-child .shopping-row,.shopping-items>.shopping-row:last-child{border-bottom:none}.shopping-row-hidden{opacity:.55;cursor:default}.shopping-checkbox{width:20px;height:20px;accent-color:var(--accent);cursor:pointer;flex-shrink:0}.shopping-name{flex:1;min-width:0;display:inline-flex;align-items:center;gap:var(--space-2);color:var(--text)}.shopping-name-done,.shopping-name-hidden{text-decoration:line-through;color:var(--text-soft)}.shopping-qty{color:var(--text-soft);font-size:.88rem;flex-shrink:0}.shopping-action{background:transparent;border:none;color:var(--text-soft);cursor:pointer;font-size:1.2rem;line-height:1;padding:4px 8px;border-radius:var(--radius-sm);flex-shrink:0}.shopping-action:hover{background:var(--surface-muted);color:var(--text-muted)}@media (hover: none){.shopping-action{display:none}}@media (hover: hover) and (pointer: fine){.shopping-action{opacity:0;transition:opacity .12s ease}.shopping-row:hover .shopping-action,.shopping-row:focus-within .shopping-action{opacity:1}}.shopping-restore{background:transparent;border:1px solid var(--border-strong);color:var(--text-muted);cursor:pointer;font-size:.75rem;padding:4px 10px;border-radius:var(--radius-sm);flex-shrink:0}.tag-manual{background:var(--accent-soft);color:var(--accent);font-size:.7rem;padding:0 6px;min-width:18px;text-align:center}.extra-add-form{display:grid;grid-template-columns:2fr 1fr 1.4fr auto;gap:var(--space-3);align-items:end}.extra-add-submit{display:flex;align-items:flex-end}@media (max-width: 720px){.extra-add-form{grid-template-columns:1fr}.extra-add-submit .btn{width:100%}}.member-controls{display:flex;gap:var(--space-3);align-items:center;flex-wrap:wrap}.member-role{width:auto;min-width:130px}.member-digest-toggle{display:inline-flex;align-items:center;gap:6px;font-size:.9rem;white-space:nowrap}.member-add-form{margin-top:var(--space-4);display:grid;grid-template-columns:1fr 1fr 160px auto auto;gap:var(--space-3);align-items:end}.member-add-submit{display:flex;align-items:flex-end}@media (max-width: 720px){.member-add-form{grid-template-columns:1fr}.member-add-submit .btn{width:100%}.member-controls{width:100%;justify-content:space-between}}@media (max-width: 768px){.app{grid-template-columns:1fr}.sidebar{display:none}.content{padding:max(var(--space-4),env(safe-area-inset-top)) var(--space-3) calc(72px + env(safe-area-inset-bottom,0px))}.card{padding:var(--space-4)}.card-header{margin-bottom:var(--space-3)}.page-header{margin-bottom:var(--space-4)}.stack,.grid{gap:var(--space-3)}h1{font-size:1.5rem}.home-list>*:nth-child(n+4){display:none}.bottom-nav{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;bottom:0;left:0;right:0;background:var(--surface);border-top:1px solid var(--border);padding:6px max(var(--space-2),env(safe-area-inset-left)) calc(6px + env(safe-area-inset-bottom));z-index:50}.bottom-nav a,.bottom-nav-more{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:6px 2px;font-size:.7rem;color:var(--text-soft);font-weight:500;border-radius:6px;text-align:center;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;-webkit-tap-highlight-color:transparent;background:transparent;border:none;cursor:pointer;font-family:inherit}.bottom-nav a.active,.bottom-nav-more.active{color:var(--accent);font-weight:650}.bottom-nav a.active .bottom-nav-icon,.bottom-nav-more.active .bottom-nav-icon{background:var(--accent-soft)}.bottom-nav-icon{font-size:20px;display:inline-flex;align-items:center;justify-content:center;padding:3px 14px;border-radius:999px}}@media (max-width: 360px){.bottom-nav a span:not(.bottom-nav-icon),.bottom-nav-more span:not(.bottom-nav-icon){display:none}.bottom-nav-icon{font-size:22px}}.push-warning{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--surface-muted);border-left:3px solid var(--warning);border-radius:var(--radius-sm);margin-bottom:var(--space-3);font-size:.9rem;color:var(--text-muted);line-height:1.5}.push-warning svg{color:var(--warning);flex-shrink:0;margin-top:2px}.push-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.ios-install-hint{position:fixed;bottom:calc(72px + env(safe-area-inset-bottom,0px) + var(--space-3));left:var(--space-3);right:var(--space-3);background:var(--surface);border:1px solid var(--accent);border-radius:var(--radius);padding:var(--space-3) var(--space-3) var(--space-3) var(--space-4);display:flex;align-items:flex-start;gap:var(--space-3);box-shadow:0 8px 24px #281e0a29;z-index:80;animation:ios-hint-slide .3s ease-out;max-width:480px;margin-left:auto;margin-right:auto}@keyframes ios-hint-slide{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.ios-install-hint-body{flex:1;display:flex;flex-direction:column;gap:4px}.ios-install-hint-body strong{color:var(--accent);font-size:.95rem}.ios-install-hint-body p{margin:0;font-size:.85rem;color:var(--text-muted);line-height:1.45}.ios-share-icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border:1.5px solid var(--accent);border-radius:4px;font-size:.85rem;margin:0 2px;vertical-align:-4px;color:var(--accent)}.ios-install-hint-dismiss{background:transparent;border:none;color:var(--text-muted);cursor:pointer;padding:4px;border-radius:var(--radius-sm);flex-shrink:0;display:inline-flex;align-items:center;justify-content:center}.ios-install-hint-dismiss:hover{background:var(--surface-muted);color:var(--text)}@media (min-width: 769px){.ios-install-hint{display:none}}.more-sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#14141259;z-index:60;display:flex;align-items:flex-end;justify-content:center;animation:more-fade-in .15s ease-out}.more-sheet{background:var(--surface);width:100%;border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg);padding:var(--space-3) var(--space-4) calc(var(--space-5) + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:var(--space-2);box-shadow:0 -8px 24px #281e0a1f;animation:more-slide-up .2s ease-out}.more-sheet-handle{width:36px;height:4px;border-radius:2px;background:var(--border-strong);align-self:center;margin-bottom:var(--space-2)}.more-sheet-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-sm);color:var(--text);font-size:1rem;font-weight:500;-webkit-tap-highlight-color:transparent}.more-sheet-item:active{background:var(--surface-muted)}.more-sheet-item.active{color:var(--accent);background:var(--accent-soft)}.more-sheet-icon{font-size:20px;width:24px;text-align:center}.historikk-sheet{background:var(--bg);width:100%;max-width:720px;max-height:90vh;max-height:90dvh;overflow-y:auto;border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg);padding:var(--space-3) var(--space-4) calc(var(--space-5) + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:var(--space-3);box-shadow:0 -8px 24px #281e0a1f;animation:more-slide-up .2s ease-out}@keyframes more-fade-in{0%{opacity:0}to{opacity:1}}@keyframes more-slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.user-badge{margin-top:auto;padding-top:var(--space-3);border-top:1px solid var(--border);display:flex;flex-direction:column;gap:2px;font-size:.8rem;color:var(--text-muted);overflow:hidden}.user-badge-name{color:var(--text);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-badge-role{font-size:.78rem}.bill-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-3)}.bill-section{margin-bottom:var(--space-5)}.bill-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-2);padding:0 var(--space-1)}.bill-section-title{font-family:var(--font-serif);font-size:1.05rem;font-weight:500;margin:0;color:var(--text);letter-spacing:-.005em}.bill-section-count{font-size:.85rem;color:var(--text-muted)}.bill-section-empty{margin:0;padding:var(--space-3) var(--space-4);color:var(--text-muted);font-style:italic;font-size:.95rem}.bill-section-paid .bill-row{opacity:.78}.bill-section-paid .bill-row:hover{opacity:1}.mealplan-week-tabs{display:inline-flex;gap:4px;margin-top:var(--space-3);padding:3px;background:var(--surface-muted);border-radius:999px}.mealplan-week-tab{border:none;background:transparent;font-family:inherit;font-size:.85rem;font-weight:500;color:var(--text-soft);padding:8px 16px;min-height:36px;border-radius:999px;cursor:pointer;-webkit-tap-highlight-color:transparent}.mealplan-week-tab.active{background:var(--surface);color:var(--accent);font-weight:650;box-shadow:0 1px 2px #00000014}.mealplan-row{border-bottom:1px solid var(--border)}.mealplan-row:first-child{border-top:1px solid var(--border)}.mealplan-row-header{display:grid;grid-template-columns:1fr auto auto;grid-template-areas:"weekday meta caret" "name    name name";column-gap:var(--space-3);row-gap:4px;align-items:baseline;width:100%;padding:14px 6px;background:transparent;border:none;text-align:left;cursor:pointer;color:inherit;font:inherit;min-width:0}.mealplan-row-header:hover{background:var(--surface-muted)}.mealplan-row-weekday{grid-area:weekday;font-family:var(--font-serif);font-style:italic;font-size:1rem;color:var(--text-muted);text-transform:lowercase}.mealplan-row-today{background:color-mix(in oklab,var(--accent) 6%,transparent);box-shadow:inset 3px 0 0 var(--accent-strong, var(--accent))}.mealplan-row-past .mealplan-row-header{opacity:.45}.mealplan-row-past .mealplan-row-name{text-decoration:line-through;text-decoration-color:color-mix(in oklab,var(--text-soft) 60%,transparent)}.mealplan-row-today .mealplan-row-weekday{color:var(--accent-strong, var(--accent));text-transform:none;font-style:normal;font-weight:500;letter-spacing:.02em}.mealplan-row-name{grid-area:name;font-family:var(--font-serif);font-size:1.1rem;font-weight:500;color:var(--text);letter-spacing:-.005em;line-height:1.25;min-width:0}.mealplan-row-skipped .mealplan-row-name{text-decoration:line-through;color:var(--text-soft)}.mealplan-row-meta{grid-area:meta;color:var(--text-muted);font-size:.85rem;white-space:nowrap}.mealplan-row-caret{grid-area:caret;color:var(--text-soft);display:inline-flex}.mealplan-row-body{padding:0 6px 14px;display:flex;flex-direction:column;gap:var(--space-2)}.mealplan-row-ingredients{margin:0;color:var(--text-muted);font-size:.9rem}.mealplan-row-description{margin:0;color:var(--text-muted);font-size:.95rem;font-style:italic;font-family:var(--font-serif);line-height:1.55;max-width:60ch}.mealplan-row-actions{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-top:var(--space-2)}.mealplan-row-actions .btn{min-height:40px;padding:6px 14px;font-size:.9rem}.mealplan-row-recipes{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-2);margin-top:var(--space-1);font-size:.85rem}.mealplan-row-recipe-link{color:var(--accent-strong, var(--accent));text-decoration:none;padding:4px 10px;border-radius:999px;background:color-mix(in oklab,var(--accent) 10%,transparent)}.mealplan-row-recipe-link:hover{background:color-mix(in oklab,var(--accent) 18%,transparent)}.auth-page{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:32px 20px;background:var(--surface-muted, #f7f3eb)}.auth-card{width:100%;max-width:420px;background:var(--surface);border-radius:var(--radius-lg);padding:32px 28px;box-shadow:0 20px 60px #00000014}.auth-card h1{font-family:var(--font-serif);font-weight:500;font-size:1.5rem;margin:0 0 8px;letter-spacing:-.01em}.auth-sub{color:var(--text-muted);font-size:.95rem;margin:0 0 20px}.auth-form{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-3)}.auth-divider{display:flex;align-items:center;gap:var(--space-2);margin:var(--space-3) 0;color:var(--text-soft);font-size:.85rem;text-transform:uppercase;letter-spacing:.08em}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--border)}.auth-google{display:inline-flex;align-items:center;justify-content:center;gap:10px;width:100%;text-decoration:none}.auth-links{display:flex;align-items:center;justify-content:center;gap:var(--space-2);margin-top:var(--space-3);font-size:.9rem;color:var(--text-muted)}.auth-links a{color:var(--accent-strong, var(--accent));text-decoration:none}.auth-links a:hover{text-decoration:underline}.auth-loading{min-height:50vh;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.invite-form{display:grid;grid-template-columns:1fr 140px auto;gap:var(--space-2);margin-bottom:var(--space-3)}@media (max-width: 540px){.invite-form{grid-template-columns:1fr}}.invite-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.invite-row{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface)}.invite-row-email{font-weight:500}.invite-row-meta{font-size:.85rem;color:var(--text-muted);margin-top:2px}.invite-row-actions{display:flex;gap:4px}.kiosk-url{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;font-size:.85rem;word-break:break-all;white-space:pre-wrap;margin:var(--space-2) 0}.legal-page{min-height:100vh;min-height:100dvh;padding:32px 20px 64px;background:var(--surface-muted, #f7f3eb)}.legal-article{max-width:680px;margin:0 auto;background:var(--surface);padding:40px 32px;border-radius:var(--radius-lg);box-shadow:0 12px 36px #0000000f}.legal-article h1{font-family:var(--font-serif);font-weight:500;font-size:1.8rem;letter-spacing:-.01em;margin:0 0 8px}.legal-article h2{font-family:var(--font-serif);font-weight:500;font-size:1.15rem;margin:28px 0 8px;letter-spacing:-.005em}.legal-article p,.legal-article li{line-height:1.55;color:var(--text)}.legal-article ul{padding-left:22px;margin:8px 0 16px}.legal-article li{margin-bottom:6px}.legal-article a{color:var(--accent-strong, var(--accent));text-decoration:none}.legal-article a:hover{text-decoration:underline}.legal-back{margin:0 0 16px;font-size:.9rem}.legal-sub{color:var(--text-muted);font-size:.9rem;margin:0 0 16px}.legal-footer{margin-top:32px;padding-top:16px;border-top:1px solid var(--border);text-align:right;font-size:.95rem}.auth-legal{margin-top:var(--space-3);text-align:center;font-size:.8rem;color:var(--text-soft)}.auth-legal a{color:var(--text-muted);text-decoration:underline}.onboarding-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#14141473;display:flex;align-items:center;justify-content:center;padding:24px;z-index:200}.onboarding-card{width:100%;max-width:460px;background:var(--surface);border-radius:var(--radius-lg);padding:36px 32px 28px;box-shadow:0 24px 64px #00000040}.onboarding-card h1{font-family:var(--font-serif);font-weight:500;font-size:1.4rem;margin:12px 0 8px;letter-spacing:-.01em}.onboarding-sub{color:var(--text-muted);font-size:.95rem;margin:0 0 var(--space-3)}.onboarding-steps{list-style:none;display:flex;gap:6px;margin:0 0 var(--space-3);padding:0}.onboarding-step{flex:1;height:4px;border-radius:2px;background:var(--border);transition:background .2s ease}.onboarding-step-active{background:var(--accent)}.onboarding-step-done{background:var(--accent-strong, var(--accent))}.onboarding-actions{display:flex;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-4)}.activity-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.activity-row{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-3);padding:10px 0;border-bottom:1px solid var(--border);font-size:.95rem}.activity-row:last-child{border-bottom:none}.activity-text{flex:1;color:var(--text)}.activity-when{color:var(--text-soft);font-size:.8rem;white-space:nowrap}.bill-row{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--border-strong);border-radius:var(--radius);padding:var(--space-4);display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;box-shadow:var(--shadow-sm)}.bill-row-overdue{border-left-color:var(--danger)}.bill-row-today{border-left-color:var(--warning)}.bill-row-soon{border-left-color:var(--accent)}.bill-row-later{border-left-color:var(--border-strong)}.bill-row-paid{border-left-color:var(--success, #2e7d57)}.bill-row-editing{border-left-color:var(--border-strong)}.bill-check{flex:0 0 auto;width:44px;height:44px;border-radius:999px;border:2px solid var(--border-strong);background:var(--surface);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .12s ease,border-color .12s ease,transform .08s ease}.bill-check:hover{border-color:var(--success, #2e7d57)}.bill-check:active{transform:scale(.92)}.bill-check:disabled{opacity:.5;cursor:default}.bill-check-on{background:var(--success, #2e7d57);border-color:var(--success, #2e7d57)}.bill-row-main{flex:1 1 240px;min-width:0}.bill-row-name{font-family:var(--font-serif);font-size:1.15rem;font-weight:500;color:var(--text);letter-spacing:-.005em}.bill-row-meta{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;margin-top:var(--space-1);font-size:.95rem;color:var(--text-muted)}.bill-row-amount{color:var(--text);font-weight:500;font-variant-numeric:tabular-nums}.bill-due-overdue{color:var(--danger);font-weight:600}.bill-due-today{color:var(--warning);font-weight:600}.bill-due-soon{color:var(--warning);font-weight:500}.bill-row-paidnote{color:var(--success, #2e7d57);font-weight:500}.bill-row-actions{display:flex;gap:var(--space-2)}.bill-row-delete{padding:10px 12px}.bill-row-split{margin-top:var(--space-2);font-size:.85rem;color:var(--text-soft);letter-spacing:.01em}.bill-add-form{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:var(--space-3)}.bill-add-onetime,.bill-add-split,.bill-add-submit,.bill-add-error{grid-column:1 / -1}.bill-add-checkbox{display:inline-flex;align-items:center;gap:var(--space-2);cursor:pointer;font-size:.95rem}.bill-add-checkbox input[type=checkbox]{accent-color:var(--accent);cursor:pointer}.bill-add-submit{display:flex;gap:var(--space-2)}.bill-add-submit .btn{justify-self:start}.split-editor{border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);background:var(--surface-muted);margin:0;display:flex;flex-direction:column;gap:var(--space-3)}.split-editor-title{font-size:.78rem;color:var(--text-soft);font-weight:500;text-transform:uppercase;letter-spacing:.08em}.split-editor-toggle{display:inline-flex;align-items:center;gap:var(--space-2);cursor:pointer;font-size:.95rem}.split-editor-toggle input[type=checkbox]{accent-color:var(--accent);cursor:pointer}.split-editor-rows{display:flex;flex-direction:column;gap:var(--space-2)}.split-editor-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:var(--space-3)}.split-editor-row label{font-size:.9rem;color:var(--text)}.split-editor-input{display:inline-flex;align-items:center;gap:var(--space-2)}.split-editor-input .input{width:80px;text-align:right}.split-editor-sum{font-size:.85rem;text-align:right;font-variant-numeric:tabular-nums}.split-editor-sum-ok{color:var(--accent)}.split-editor-sum-bad{color:var(--danger)}.bill-totals{background:var(--accent-soft);border-radius:var(--radius);padding:var(--space-4) var(--space-5);margin-bottom:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.bill-totals-header{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-3)}.bill-totals-label{text-transform:uppercase;font-size:.78rem;letter-spacing:.1em;color:var(--accent);font-weight:500}.bill-totals-grand{color:var(--accent);font-weight:500;font-variant-numeric:tabular-nums}.bill-totals-list{display:flex;flex-wrap:wrap;gap:var(--space-4)}.bill-totals-row{display:inline-flex;align-items:baseline;gap:var(--space-2);font-family:var(--font-serif);font-size:1.05rem}.bill-totals-name{color:var(--text-muted)}.bill-totals-amount{color:var(--text);font-weight:500;font-variant-numeric:tabular-nums}@media (max-width: 720px){.bill-add-form{grid-template-columns:1fr}.bill-add-submit{flex-direction:column}.bill-add-submit .btn{width:100%}.bill-totals-list{flex-direction:column;gap:var(--space-2)}.bill-totals-row{justify-content:space-between;width:100%}}.calendar-range{display:inline-flex;gap:2px;background:var(--surface-muted);padding:3px;border-radius:var(--radius-sm)}.calendar-range-btn{background:transparent;color:var(--text-muted);border:none;padding:6px 12px;border-radius:6px;font-size:.85rem;font-weight:500;cursor:pointer;transition:background .15s ease,color .15s ease}.calendar-range-btn:hover:not(.calendar-range-btn-active){color:var(--text)}.calendar-range-btn-active{background:var(--accent-soft);color:var(--accent)}.calendar-agenda{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-6)}.calendar-day{display:grid;grid-template-columns:minmax(120px,180px) 1fr;gap:var(--space-5);padding-bottom:var(--space-5);border-bottom:1px solid var(--border)}.calendar-day:last-child{border-bottom:none;padding-bottom:0}.calendar-day-header{display:flex;flex-direction:column;gap:2px;position:sticky;top:var(--space-4);align-self:start}.calendar-day-today-tag{font-size:.7rem;text-transform:uppercase;letter-spacing:.15em;color:var(--accent);font-weight:600;margin-bottom:var(--space-1)}.calendar-day-weekday{font-family:var(--font-serif);font-style:italic;font-size:clamp(1.5rem,3vw,2rem);font-weight:400;line-height:1;color:var(--text);text-transform:lowercase}.calendar-day-date{font-family:var(--font-sans);font-size:.95rem;color:var(--text-muted);letter-spacing:.02em}.calendar-day-today .calendar-day-weekday{color:var(--accent)}.calendar-day-weekend .calendar-day-weekday{color:var(--text-muted)}.calendar-day-today.calendar-day-weekend .calendar-day-weekday{color:var(--accent)}.calendar-event-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-1)}.calendar-event{padding:var(--space-2) 0 var(--space-2) var(--space-3);border-left:3px solid var(--border-strong);border-radius:0 var(--radius-sm) var(--radius-sm) 0;transition:background .15s ease}.calendar-event:hover{background:var(--surface-muted)}.calendar-event-time{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:.95rem;padding-top:2px}.calendar-event-allday{font-style:italic;color:var(--text-soft);font-size:.9rem}.calendar-event-body{display:flex;flex-direction:column;gap:2px;min-width:0}.calendar-event-title{font-size:1rem;color:var(--text);line-height:1.35}.calendar-event-location{font-size:.85rem;color:var(--text-muted)}.calendar-event-source{font-size:.78rem;color:var(--text-soft);font-style:italic;letter-spacing:.01em}@media (max-width: 720px){.calendar-day{grid-template-columns:1fr;gap:var(--space-3);padding-bottom:var(--space-4)}.calendar-day-header{position:static;flex-direction:row;align-items:baseline;gap:var(--space-3)}.calendar-day-weekday{font-size:1.5rem}.calendar-day-today-tag{margin-bottom:0;margin-right:var(--space-2)}.calendar-event-row{grid-template-columns:60px 1fr}}.favorite-list{list-style:none;margin:0 0 var(--space-4);padding:0;display:flex;flex-direction:column}.favorite-row{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--border)}.favorite-row:last-child{border-bottom:none}.favorite-row-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--space-1)}.favorite-row-name{font-weight:500;font-size:1rem;color:var(--text)}.favorite-row-days{display:flex;flex-wrap:wrap;gap:4px}.favorite-row-notes{color:var(--text-muted);font-size:.9rem;font-style:italic}.favorite-row-delete{padding:8px 12px;flex-shrink:0}.favorite-add-form{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--border)}.favorite-add-days,.favorite-add-notes,.favorite-add-submit,.favorite-add-error{grid-column:1 / -1}.favorite-add-days-list{display:flex;flex-wrap:wrap;gap:var(--space-2);padding-top:var(--space-1)}.favorite-add-day{display:inline-flex;align-items:center;gap:var(--space-2);padding:6px 10px;background:var(--surface-muted);border-radius:var(--radius-sm);cursor:pointer;font-size:.9rem}.favorite-add-day input[type=checkbox]{accent-color:var(--accent);cursor:pointer}.favorite-add-submit .btn{justify-self:start}@media (max-width: 720px){.favorite-add-form{grid-template-columns:1fr}.favorite-add-submit .btn{width:100%}}.skjerm-meal-skipped{text-decoration:line-through;color:var(--sk-muted)!important}.mealplan-content{display:flex;flex-direction:column;gap:var(--space-4)}.mealplan-summary{font-family:var(--font-serif);font-style:italic;font-size:clamp(1.05rem,1.6vw,1.25rem);color:var(--text-muted);max-width:720px;line-height:1.5;margin:0}.mealplan-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.mealplan-day{display:grid;grid-template-columns:minmax(140px,200px) 1fr;gap:var(--space-5);padding:var(--space-5) 0;border-bottom:1px solid var(--border)}.mealplan-day:first-child{padding-top:var(--space-2)}.mealplan-day:last-child{border-bottom:none;padding-bottom:0}.mealplan-day-header{display:flex;flex-direction:column;gap:4px;align-self:start}.mealplan-day-today-tag{font-size:.7rem;text-transform:uppercase;letter-spacing:.15em;color:var(--accent);font-weight:600}.mealplan-day-weekday{font-family:var(--font-serif);font-style:italic;font-size:clamp(1.4rem,2.5vw,1.9rem);font-weight:400;color:var(--text);text-transform:lowercase;line-height:1;letter-spacing:-.01em}.mealplan-day-today .mealplan-day-weekday{color:var(--accent)}.mealplan-day-skipped .mealplan-day-weekday{color:var(--text-soft)}.mealplan-day-body{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}.mealplan-meal-name{font-family:var(--font-serif);font-weight:500;font-size:clamp(1.35rem,2.3vw,1.8rem);line-height:1.2;margin:0;color:var(--text);letter-spacing:-.01em}.mealplan-meal-name-skipped{text-decoration:line-through;color:var(--text-soft)}.mealplan-meal-meta{color:var(--text-muted);font-size:.95rem;margin:0;line-height:1.5}.mealplan-meal-description{color:var(--text-muted);font-size:.95rem;margin:var(--space-1) 0 0;font-style:italic;font-family:var(--font-serif);line-height:1.55;max-width:60ch}@media (max-width: 720px){.mealplan-day{grid-template-columns:1fr;gap:var(--space-2);padding:var(--space-4) 0}.mealplan-day-header{flex-direction:row;align-items:baseline;gap:var(--space-2)}.mealplan-day-today-tag{margin-bottom:0}}.chore-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-3)}.chore-row{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--border-strong);border-radius:var(--radius);padding:var(--space-4);display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;box-shadow:var(--shadow-sm)}.chore-row-overdue{border-left-color:var(--danger)}.chore-row-today{border-left-color:var(--warning)}.chore-row-soon{border-left-color:var(--accent)}.chore-row-mine{border-left-width:5px;border-left-color:var(--accent-strong, var(--accent));background:color-mix(in oklab,var(--accent) 4%,var(--surface))}.chore-row-mine.chore-row-overdue{border-left-color:var(--danger);background:color-mix(in oklab,var(--danger) 4%,var(--surface))}.chore-row-mine.chore-row-today{border-left-color:var(--warning);background:color-mix(in oklab,var(--warning) 4%,var(--surface))}.chore-row-not-mine .chore-row-name{color:var(--text-muted)}.chore-assignee{display:inline-flex;align-items:center;gap:6px;padding:2px 8px 2px 2px;border-radius:999px;background:color-mix(in oklab,var(--text-muted) 12%,transparent);font-size:.85rem;color:var(--text);line-height:1}.chore-assignee-avatar{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--text-muted);color:var(--surface);font-weight:600;font-size:.75rem}.chore-assignee-mine{background:color-mix(in oklab,var(--accent) 18%,transparent);color:var(--accent-strong, var(--accent));font-weight:500}.chore-assignee-mine .chore-assignee-avatar{background:var(--accent);color:var(--accent-fg, white)}.chore-row-main{flex:1 1 240px;min-width:0}.chore-row-name{font-family:var(--font-serif);font-size:1.15rem;font-weight:500;color:var(--text);letter-spacing:-.005em}.chore-row-meta{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;margin-top:var(--space-1);font-size:.9rem;color:var(--text-muted)}.chore-row-overdue .chore-row-due{color:var(--danger);font-weight:500}.chore-row-today .chore-row-due{color:var(--warning);font-weight:500}.chore-row-actions{display:flex;gap:var(--space-2)}.chore-row-delete,.chore-row-backdate{padding:10px 12px}.chore-backdate{flex-basis:100%;display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3);padding-top:var(--space-3);border-top:1px dashed var(--border)}.chore-backdate-label{font-size:.85rem;color:var(--text-muted)}.chore-backdate-options{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}.chore-backdate-date{max-width:180px}.chore-week{flex-basis:100%;margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--border)}.chore-week-row{display:grid;grid-template-columns:28px repeat(7,1fr);gap:4px;align-items:center}.chore-week-row+.chore-week-row{margin-top:4px}.chore-week-head{margin-bottom:2px}.chore-week-day{text-align:center;font-size:.7rem;font-weight:500;color:var(--text-muted)}.chore-week-day.chore-week-today{color:var(--accent-strong, var(--accent));font-weight:700}.chore-week-who{display:flex;align-items:center}.chore-week-avatar{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--text-muted);color:var(--surface);font-weight:600;font-size:.72rem}.chore-week-cell{display:flex;align-items:center;justify-content:center;height:26px;border-radius:var(--radius-sm);background:var(--surface-muted);color:var(--text-muted)}.chore-week-cell.chore-week-today{background:color-mix(in oklab,var(--accent) 8%,var(--surface-muted))}.chore-week-cell.chore-week-done{background:color-mix(in oklab,var(--accent) 22%,var(--surface));color:var(--accent-strong, var(--accent))}.chore-tally{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.chore-tally-row{display:grid;grid-template-columns:24px minmax(60px,1fr) 3fr auto;align-items:center;gap:var(--space-2)}.chore-tally-avatar{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:var(--text-muted);color:var(--surface);font-weight:600;font-size:.75rem}.chore-tally-name{font-size:.92rem;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chore-tally-bar-track{height:8px;border-radius:999px;background:var(--surface-muted);overflow:hidden}.chore-tally-bar{display:block;height:100%;border-radius:999px;background:var(--accent);min-width:4px}.chore-tally-count{font-variant-numeric:tabular-nums;font-weight:600;color:var(--text);min-width:1.5ch;text-align:right}.chore-add-form{display:grid;grid-template-columns:2fr 1fr;gap:var(--space-4)}.chore-add-rotation,.chore-add-submit,.chore-add-error{grid-column:1 / -1}.chore-add-rotation-list{display:flex;flex-wrap:wrap;gap:var(--space-3);padding-top:var(--space-1)}.chore-add-rotation-user{display:inline-flex;align-items:center;gap:var(--space-2);cursor:pointer;padding:6px 10px;background:var(--surface-muted);border-radius:var(--radius-sm)}.chore-add-rotation-user input[type=checkbox]{accent-color:var(--accent);cursor:pointer}.chore-add-submit .btn{justify-self:start}@media (max-width: 720px){.chore-add-form{grid-template-columns:1fr}.chore-add-submit .btn{width:100%}}.home-header h1{font-family:var(--font-serif);font-weight:500;font-size:clamp(1.7rem,4vw,2.4rem);line-height:1.05;letter-spacing:-.015em}.home-date{color:var(--text-muted);font-size:.95rem;margin-top:var(--space-2)}.sun-arc{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-4) var(--space-4) var(--space-3);overflow:hidden}.sun-arc-readout{display:flex;align-items:baseline;gap:var(--space-3);position:relative;z-index:1}.sun-arc-icon{font-size:2rem;line-height:1}.sun-arc-temp{font-family:var(--font-serif);font-weight:500;font-size:clamp(2rem,6vw,2.6rem);line-height:1;color:var(--text)}.sun-arc-meta{display:flex;flex-wrap:wrap;gap:var(--space-3);color:var(--text-muted);font-size:.85rem}.sun-arc-chart{position:relative;width:100%;height:clamp(80px,18vw,130px);margin-top:var(--space-3)}.sun-arc-svg{display:block;touch-action:pan-y}.sun-arc-sun-tick{stroke:#cda24a;stroke-width:1;stroke-dasharray:2 3;opacity:.45}.sun-arc-label{font-size:.66rem;font-weight:600;font-variant-numeric:tabular-nums;paint-order:stroke fill;stroke:var(--surface);stroke-width:3px;stroke-linejoin:round}.sun-arc-label-peak{fill:var(--accent-strong, var(--accent))}.sun-arc-label-now{fill:var(--accent)}.sun-arc-label-min{fill:var(--text-muted);font-weight:500}.sun-arc-label-sun{fill:#b5862a}.sun-arc-label-rain{fill:#5b8db5}.sun-arc-grid{stroke:var(--border);stroke-width:1;stroke-dasharray:2 3}.sun-arc-yscale-line{stroke:var(--border);stroke-width:1;stroke-dasharray:1 4;opacity:.6}.sun-arc-yscale-label{fill:var(--text-soft);font-weight:500}.sun-arc-temp-line{stroke:var(--accent);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.sun-arc-precip-bar{fill:color-mix(in oklab,#5b8db5 70%,transparent)}.sun-arc-now-line{stroke:var(--text-soft);stroke-width:1.2;stroke-dasharray:2 2;opacity:.7}.sun-arc-now-dot{fill:var(--accent);filter:drop-shadow(0 0 4px color-mix(in oklab,var(--accent) 60%,transparent))}.sun-arc-axis{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-2);margin-top:2px;font-variant-numeric:tabular-nums;color:var(--text-soft);font-size:.72rem;letter-spacing:.04em}.sun-arc-now-readout{margin-top:var(--space-2);color:var(--accent-strong, var(--accent));font-size:.85rem;font-weight:500;font-variant-numeric:tabular-nums}.sun-arc-scrub-line{stroke:var(--accent);stroke-width:1.5;opacity:.9}.sun-arc-scrub-dot{fill:var(--surface);stroke:var(--accent);stroke-width:2.5}.sun-arc-scrub{position:absolute;top:0;transform:translate(-50%);display:flex;align-items:center;gap:6px;padding:3px 8px;border-radius:999px;background:var(--surface);border:1px solid var(--border);box-shadow:0 2px 8px #0000001f;font-size:.78rem;font-variant-numeric:tabular-nums;white-space:nowrap;pointer-events:none;z-index:2}.sun-arc-scrub-time{color:var(--text-muted)}.sun-arc-scrub-icon{font-size:1.05rem;line-height:1;display:inline-flex}.sun-arc-scrub-temp{font-weight:600;color:var(--text)}.sun-arc-scrub-rain{color:#5b8db5;font-weight:500}.sun-arc-kiosk{background:transparent;border:none;border-radius:0;padding:0;overflow:visible}.sun-arc-kiosk .sun-arc-chart{height:clamp(84px,12vh,150px);margin-top:0}.sun-arc-kiosk .sun-arc-temp-line{stroke:var(--sk-accent);stroke-width:2.5}.sun-arc-kiosk .sun-arc-grid{stroke:var(--sk-rule);stroke-width:1}.sun-arc-kiosk .sun-arc-now-line{stroke:var(--sk-soft);stroke-width:1.5;opacity:.75}.sun-arc-kiosk .sun-arc-now-dot{fill:var(--sk-accent);filter:drop-shadow(0 0 5px color-mix(in oklab,var(--sk-accent) 60%,transparent))}.sun-arc-kiosk .sun-arc-sun-tick{stroke:#cda24a;stroke-width:1.5;opacity:.5}.sun-arc-kiosk .sun-arc-axis{font-size:clamp(.8rem,1.3vw,1.05rem);color:var(--sk-soft);margin-top:var(--space-2)}.sun-arc-kiosk .sun-arc-label{font-size:clamp(.78rem,1.2vw,1.02rem);font-weight:600;stroke:var(--sk-bg);stroke-width:3.5px}.sun-arc-kiosk .sun-arc-label-peak{fill:var(--sk-text)}.sun-arc-kiosk .sun-arc-label-now{fill:var(--sk-accent)}.sun-arc-kiosk .sun-arc-label-min{fill:var(--sk-muted)}.sun-arc-kiosk .sun-arc-label-sun{fill:#c9a14b}.sun-arc-kiosk .sun-arc-label-rain{fill:#6ba0c8}.sun-arc-kiosk .sun-arc-scrub-line{stroke:var(--sk-accent);stroke-width:2}.sun-arc-kiosk .sun-arc-scrub-dot{fill:var(--sk-bg);stroke:var(--sk-accent)}.sun-arc-kiosk .sun-arc-scrub{background:var(--sk-bg);border-color:var(--sk-rule);color:var(--sk-text);gap:8px;padding:5px 12px;font-size:clamp(.9rem,1.3vw,1.15rem)}.sun-arc-kiosk .sun-arc-scrub-time{color:var(--sk-soft)}.sun-arc-kiosk .sun-arc-scrub-temp{color:var(--sk-text)}.sun-arc-kiosk .sun-arc-scrub-rain{color:#6ba0c8}.sun-arc-kiosk .sun-arc-yscale-line{stroke:var(--sk-rule);opacity:.5}.sun-arc-kiosk .sun-arc-yscale-label{fill:var(--sk-soft)}.action-stack{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.action-item{display:grid;grid-template-columns:auto 1fr auto;gap:var(--space-4);align-items:center;padding:var(--space-3) 0;border-bottom:1px solid var(--border)}.action-item:first-child{padding-top:0}.action-item:last-child{border-bottom:none;padding-bottom:0}.action-item-icon{color:var(--warning);flex-shrink:0}.action-item-text{color:var(--text);font-size:1rem;line-height:1.4;min-width:0}.action-item-error{color:var(--danger);font-size:.85rem;margin-top:2px}.action-success{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--accent-soft);border-radius:var(--radius-sm);color:var(--text-muted);font-size:.95rem}.action-success-icon{color:var(--accent);flex-shrink:0}.action-hero{display:grid;grid-template-columns:auto 1fr auto;gap:var(--space-4);align-items:center}.action-hero-text{color:var(--text);min-width:0}.action-hero-title{font-size:1.1rem;line-height:1.35;font-weight:500}.action-more{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--border)}.reveal-toggle{display:inline-flex;align-items:center;gap:var(--space-2);background:transparent;border:0;padding:6px 0;color:var(--text-muted);font-size:.9rem;cursor:pointer}.reveal-toggle:hover{color:var(--text)}.activity-section .reveal-toggle{margin-bottom:var(--space-2)}.home-today{display:grid;grid-template-columns:1fr 1fr 1fr;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.home-today-two{grid-template-columns:1fr 1fr}.home-today-col{display:flex;flex-direction:column;gap:4px;padding:var(--space-4) var(--space-4);color:var(--text);text-decoration:none;transition:background .15s ease;min-width:0;border-left:1px solid var(--border)}.home-today-col:first-child{border-left:none}.home-today-col:hover{background:var(--surface-muted)}.home-today-label{text-transform:uppercase;font-size:.72rem;letter-spacing:.14em;color:var(--text-soft);font-weight:500}.home-today-value{font-family:var(--font-serif);font-weight:500;font-size:clamp(1.15rem,1.8vw,1.4rem);color:var(--text);line-height:1.2;margin-top:2px}.home-today-truncate{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-today-empty{color:var(--text-muted);font-style:italic;font-weight:400}.home-today-weather{display:inline-flex;align-items:baseline;gap:10px;font-variant-numeric:tabular-nums}.home-today-weather-icon{font-size:1.6em;line-height:1}.home-today-meta{font-size:.85rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 720px){.home-today-col{padding:var(--space-3) var(--space-3);gap:2px}.home-today-label{font-size:.65rem;letter-spacing:.1em}.home-today-value{font-size:1.05rem}.home-today-weather{gap:6px}.home-today-weather-icon{font-size:1.3em}.home-today-meta{font-size:.75rem}}.home-bills{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap;padding:var(--space-3) var(--space-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);text-decoration:none;transition:background .15s ease,border-color .15s ease}.home-bills:hover{background:var(--surface-muted);border-color:var(--border-strong)}.home-bills-label{text-transform:uppercase;font-size:.7rem;letter-spacing:.12em;color:var(--text-soft);font-weight:500;flex-shrink:0}.home-bills-items{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-3) var(--space-4);flex:1}.home-bills-item{display:inline-flex;align-items:baseline;gap:6px;font-family:var(--font-serif);font-size:1rem}.home-bills-name{color:var(--text-muted)}.home-bills-amount{color:var(--text);font-weight:500;font-variant-numeric:tabular-nums}.home-bills-link{color:var(--accent);font-size:.85rem;font-weight:500;flex-shrink:0}@media (max-width: 720px){.home-bills{flex-direction:column;align-items:stretch;gap:var(--space-2)}.home-bills-link{align-self:flex-end}}.quick-add-form{display:grid;grid-template-columns:2fr 1fr auto;gap:var(--space-3);align-items:end}@media (max-width: 720px){.quick-add-form{grid-template-columns:1fr}.quick-add-form .btn{width:100%}.action-item{grid-template-columns:auto 1fr}.action-item .btn{grid-column:1 / -1;justify-self:stretch}}.skjerm{--sk-t: 1;min-height:100vh;min-height:100dvh;--sk-day-bg: #faf8f4;--sk-day-text: #2a2a28;--sk-day-muted: #6b675f;--sk-day-soft: #8e8a80;--sk-day-rule: rgba(40, 40, 38, .12);--sk-night-bg: #1a1715;--sk-night-text: #c8c0b1;--sk-night-muted: #8a8170;--sk-night-soft: #5c544a;--sk-night-rule: rgba(236, 229, 216, .08);--sk-day-accent: #5b7c6b;--sk-night-accent: #6a8b78;--sk-bg: var(--sk-day-bg);--sk-bg: color-mix(in oklab, var(--sk-night-bg), var(--sk-day-bg) calc(var(--sk-t) * 100%));--sk-text: var(--sk-day-text);--sk-text: color-mix(in oklab, var(--sk-night-text), var(--sk-day-text) calc(var(--sk-t) * 100%));--sk-muted: var(--sk-day-muted);--sk-muted: color-mix(in oklab, var(--sk-night-muted), var(--sk-day-muted) calc(var(--sk-t) * 100%));--sk-soft: var(--sk-day-soft);--sk-soft: color-mix(in oklab, var(--sk-night-soft), var(--sk-day-soft) calc(var(--sk-t) * 100%));--sk-rule: var(--sk-day-rule);--sk-rule: color-mix(in oklab, var(--sk-night-rule), var(--sk-day-rule) calc(var(--sk-t) * 100%));--sk-accent: var(--sk-day-accent);--sk-accent: color-mix(in oklab, var(--sk-night-accent), var(--sk-day-accent) calc(var(--sk-t) * 100%));background:var(--sk-bg);color:var(--sk-text);font-family:var(--font-sans);display:grid;grid-template-rows:auto 1fr auto;gap:clamp(var(--space-4),3vh,var(--space-6));padding:max(var(--space-5),env(safe-area-inset-top)) max(var(--space-7),env(safe-area-inset-right)) max(var(--space-5),env(safe-area-inset-bottom)) max(var(--space-7),env(safe-area-inset-left));-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.skjerm-top{display:flex;flex-direction:column;gap:clamp(var(--space-3),2.2vh,var(--space-5))}.skjerm-weather-strip{width:100%;border-top:1px solid var(--sk-rule);padding-top:clamp(var(--space-2),1.6vh,var(--space-4))}.skjerm-hero{display:grid;grid-template-columns:1fr auto;align-items:end;gap:var(--space-7)}.skjerm-hero-headline{transition:transform 1.4s ease-in-out;min-width:0;display:flex;flex-direction:column;gap:4px}.skjerm-hero-overline{display:flex;align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-2)}.skjerm-hero-clock{font-family:var(--font-sans);font-variant-numeric:tabular-nums;font-size:clamp(1rem,1.6vw,1.4rem);font-weight:500;color:var(--sk-muted);letter-spacing:.04em}.skjerm-hero-greeting{font-family:var(--font-serif);font-style:italic;font-weight:400;font-size:clamp(1.1rem,1.8vw,1.5rem);color:var(--sk-soft);letter-spacing:-.005em}.skjerm-hero-weekday{font-family:var(--font-serif);font-style:italic;font-weight:400;font-size:clamp(1.6rem,3vw,2.6rem);line-height:1;color:var(--sk-text);letter-spacing:-.015em;text-transform:lowercase}.skjerm-hero-day-number{font-family:var(--font-serif);font-weight:300;font-size:clamp(4.5rem,9vw,8rem);line-height:.85;color:var(--sk-text);letter-spacing:-.04em;font-variant-numeric:tabular-nums;margin:-.05em 0}.skjerm-hero-context{display:flex;align-items:center;gap:var(--space-2);font-family:var(--font-sans);font-size:clamp(.85rem,1.3vw,1.1rem);text-transform:uppercase;letter-spacing:.16em;color:var(--sk-muted);font-weight:500;margin-top:var(--space-2)}.skjerm-hero-dot{color:var(--sk-soft)}.skjerm-hero-weather{display:grid;grid-template-columns:auto auto;align-items:center;gap:var(--space-4) var(--space-5);align-self:end}.skjerm-hero-weather-icon{grid-row:1 / 3;font-size:clamp(3.5rem,7vw,6rem);line-height:1}.skjerm-hero-temp{font-family:var(--font-serif);font-weight:400;font-size:clamp(3rem,6vw,5rem);line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.025em;color:var(--sk-text);align-self:end}.skjerm-hero-temp-min{color:var(--sk-muted);font-size:.45em;font-weight:400}.skjerm-hero-precip{display:inline-flex;align-items:center;gap:6px;color:var(--sk-muted);font-size:clamp(.95rem,1.4vw,1.2rem);letter-spacing:.02em;align-self:start}.skjerm-main{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(var(--space-5),4vw,var(--space-7)) clamp(var(--space-6),5vw,var(--space-8));min-height:0;align-items:start}.skjerm-panel{display:flex;flex-direction:column;gap:var(--space-4);min-width:0;min-height:0;overflow:hidden}.skjerm-panel-body{flex:1 1 auto;min-height:0;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--sk-rule) transparent}.skjerm-panel-body::-webkit-scrollbar,.skjerm-tap-list::-webkit-scrollbar,.skjerm-agenda-list::-webkit-scrollbar{width:6px}.skjerm-panel-body::-webkit-scrollbar-thumb,.skjerm-tap-list::-webkit-scrollbar-thumb,.skjerm-agenda-list::-webkit-scrollbar-thumb{background:var(--sk-rule);border-radius:3px}.skjerm-panel>.skjerm-tap-list,.skjerm-panel>.skjerm-agenda-list{flex:1 1 auto;min-height:0;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--sk-rule) transparent;-webkit-overflow-scrolling:touch}.skjerm-panel-action{padding:var(--space-5) var(--space-4) var(--space-4);position:relative;border-radius:var(--radius);background:color-mix(in oklab,var(--sk-bg),var(--sk-muted) 12%)}.skjerm-panel-action:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--sk-muted);opacity:.25;border-radius:var(--radius) var(--radius) 0 0;pointer-events:none}.skjerm-panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3)}.skjerm-panel-meta{color:var(--sk-soft);font-size:clamp(.85rem,1.2vw,1rem);letter-spacing:.02em}.skjerm-label{font-family:var(--font-sans);font-weight:500;text-transform:uppercase;font-size:clamp(.75rem,1vw,.95rem);letter-spacing:.22em;color:var(--sk-soft);margin:0;display:inline-flex;align-items:center;gap:var(--space-2)}.skjerm-label svg{color:var(--sk-muted);flex-shrink:0}.skjerm-sublabel{font-family:var(--font-sans);font-weight:500;text-transform:uppercase;font-size:clamp(.7rem,.9vw,.85rem);letter-spacing:.2em;color:var(--sk-soft)}.skjerm-quiet{color:var(--sk-soft);font-size:clamp(1.05rem,1.6vw,1.35rem);font-style:italic;font-family:var(--font-serif);font-weight:400;margin:0}.skjerm-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);flex:1;min-height:120px;color:var(--sk-soft);text-align:center}.skjerm-empty-icon{color:var(--sk-muted);opacity:.6}.skjerm-empty-text{font-family:var(--font-serif);font-style:italic;font-size:clamp(1.05rem,1.6vw,1.3rem);margin:0}.skjerm-agenda-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-3)}.skjerm-agenda-item{display:grid;grid-template-columns:5ch 1fr;gap:var(--space-4);align-items:baseline}.skjerm-agenda-time{font-variant-numeric:tabular-nums;color:var(--sk-muted);font-size:clamp(1rem,1.4vw,1.25rem);letter-spacing:.02em}.skjerm-agenda-time-allday{color:var(--sk-soft);font-size:1.6em;line-height:.8;text-align:center}.skjerm-agenda-title{font-family:var(--font-serif);font-weight:400;font-size:clamp(1.25rem,2vw,1.75rem);line-height:1.2;color:var(--sk-text);overflow:hidden;text-overflow:ellipsis}.skjerm-agenda-item-muted .skjerm-agenda-title{color:var(--sk-muted)}.skjerm-tomorrow{display:flex;flex-direction:column;gap:var(--space-3);padding-top:var(--space-2)}.skjerm-meal-block{display:flex;flex-direction:column;gap:var(--space-2)}.skjerm-meal-hero{font-family:var(--font-serif);font-weight:400;font-size:clamp(2rem,4.2vw,3.6rem);line-height:1.05;letter-spacing:-.015em;color:var(--sk-text);margin:0}.skjerm-meal-meta{color:var(--sk-muted);font-size:clamp(.95rem,1.3vw,1.15rem);letter-spacing:.02em;margin:0}.skjerm-meal-block-secondary{padding-top:var(--space-4);border-top:1px solid var(--sk-rule)}.skjerm-meal-sub{font-family:var(--font-serif);font-weight:400;font-size:clamp(1.25rem,2vw,1.75rem);line-height:1.2;color:var(--sk-muted);margin:0}.skjerm-chore-cards{display:flex;flex-direction:column;gap:10px}.skjerm-chore-card{display:block;width:100%;text-align:left;background:var(--sk-bg);color:var(--sk-text);border:1px solid color-mix(in oklab,var(--sk-bg),var(--sk-muted) 18%);border-radius:12px;padding:14px 18px;box-shadow:0 1px 2px #0000000a,0 4px 10px #00000008;font-family:var(--font-sans);cursor:pointer;position:relative;transition:transform .18s cubic-bezier(.34,1.56,.64,1),box-shadow .18s ease,border-color .15s ease,background .15s ease;-webkit-tap-highlight-color:transparent}.skjerm-chore-card:hover{border-color:color-mix(in oklab,var(--sk-accent),transparent 55%);box-shadow:0 2px 4px #0000000a,0 8px 20px #0000000f;transform:translateY(-2px)}.skjerm-chore-card:active{transform:translateY(0) scale(.97);box-shadow:0 1px 1px #0000000a;transition:transform .06s ease}.skjerm-chore-name{font-family:var(--font-serif);font-weight:500;font-size:clamp(1.1rem,1.7vw,1.4rem);line-height:1.2;color:var(--sk-text);letter-spacing:-.005em}.skjerm-chore-meta{color:var(--sk-muted);font-size:clamp(.85rem,1.2vw,1rem);margin-top:4px;letter-spacing:.02em}.skjerm-chore-card-overdue{border-left:3px solid color-mix(in oklab,var(--sk-accent),transparent 30%);padding-left:15px}.skjerm-chore-card-completing{animation:skjerm-chip-bloom .7s cubic-bezier(.34,1.56,.64,1) forwards;pointer-events:none;border-color:transparent}.skjerm-chore-card-completing .skjerm-chore-name{text-decoration:line-through;text-decoration-thickness:2px;text-decoration-color:#ffffffb3}.skjerm-chore-card-completing .skjerm-chore-meta{color:#ffffffbf}@media (prefers-reduced-motion: reduce){.skjerm-chore-card{transition:opacity .15s ease}.skjerm-chore-card:hover,.skjerm-chore-card:active{transform:none}}.skjerm-tap-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.skjerm-tap-item{display:grid;grid-template-columns:1fr auto;gap:var(--space-3);align-items:center;padding:var(--space-3) 0;border-bottom:1px solid var(--sk-rule);cursor:pointer;min-height:44px;-webkit-tap-highlight-color:transparent}.skjerm-tap-item:last-child{border-bottom:none}.skjerm-tap-item:active{opacity:.45}.skjerm-tap-primary{font-family:var(--font-serif);font-weight:400;font-size:clamp(1.1rem,1.7vw,1.4rem);line-height:1.2;color:var(--sk-text)}.skjerm-tap-secondary{color:var(--sk-muted);font-size:clamp(.85rem,1.2vw,1rem);letter-spacing:.02em;margin-top:2px}.skjerm-tap-hint{color:var(--sk-soft);font-size:clamp(.75rem,1vw,.9rem);text-transform:uppercase;letter-spacing:.15em}.skjerm-tap-more{padding-top:var(--space-3);color:var(--sk-soft);font-style:italic;font-family:var(--font-serif);font-size:clamp(.95rem,1.3vw,1.1rem)}.skjerm-shopping{display:flex;flex-direction:column;gap:var(--space-4)}.skjerm-shopping-section{display:flex;flex-direction:column;gap:var(--space-2)}.skjerm-shopping-section-name{font-family:var(--font-serif);font-style:italic;font-weight:400;font-size:clamp(.95rem,1.3vw,1.15rem);color:var(--sk-muted);text-transform:lowercase;letter-spacing:-.005em;margin:0 0 var(--space-1);padding-left:2px}.skjerm-chips{display:flex;flex-wrap:wrap;gap:10px}.skjerm-chip{display:inline-flex;align-items:baseline;gap:10px;padding:14px 18px;border-radius:12px;background:var(--sk-bg);color:var(--sk-text);border:1px solid color-mix(in oklab,var(--sk-bg),var(--sk-muted) 18%);box-shadow:0 1px 2px #0000000a,0 4px 10px #00000008;font-family:var(--font-sans);font-size:clamp(1rem,1.4vw,1.15rem);font-weight:500;min-height:48px;cursor:pointer;position:relative;transition:transform .18s cubic-bezier(.34,1.56,.64,1),box-shadow .18s ease,border-color .15s ease,background .15s ease;-webkit-tap-highlight-color:transparent}.skjerm-chip:hover{border-color:color-mix(in oklab,var(--sk-accent),transparent 55%);box-shadow:0 2px 4px #0000000a,0 8px 20px #0000000f;transform:translateY(-2px)}.skjerm-chip:active{transform:translateY(0) scale(.95);box-shadow:0 1px 1px #0000000a;transition:transform .06s ease}.skjerm-chip-name{letter-spacing:-.005em}.skjerm-chip-qty{color:var(--sk-muted);font-size:.88em;font-weight:400;font-variant-numeric:tabular-nums}.skjerm-chip-manual{border-left:3px solid color-mix(in oklab,var(--sk-accent),transparent 30%);padding-left:15px}.skjerm-chip-completing{animation:skjerm-chip-bloom .7s cubic-bezier(.34,1.56,.64,1) forwards;pointer-events:none;border-color:transparent}.skjerm-chip-completing .skjerm-chip-name{text-decoration:line-through;text-decoration-thickness:2px;text-decoration-color:#ffffffb3}.skjerm-chip-completing .skjerm-chip-qty{color:#ffffffbf}@keyframes skjerm-chip-bloom{0%{transform:scale(1);background:var(--sk-bg);color:var(--sk-text);box-shadow:0 1px 2px #0000000a,0 4px 10px #00000008}25%{transform:scale(1.12);background:var(--sk-accent);color:#fff;box-shadow:0 0 0 6px color-mix(in oklab,var(--sk-accent),transparent 70%),0 12px 28px color-mix(in oklab,var(--sk-accent),transparent 50%)}55%{transform:scale(1.05);background:var(--sk-accent);color:#fff;box-shadow:0 0 0 3px color-mix(in oklab,var(--sk-accent),transparent 80%),0 8px 18px color-mix(in oklab,var(--sk-accent),transparent 60%);opacity:1}80%{transform:scale(1) translateY(-4px);background:var(--sk-accent);color:#fff;opacity:.9}to{transform:scale(.85) translateY(-12px);background:var(--sk-accent);color:#fff;opacity:0}}@media (prefers-reduced-motion: reduce){.skjerm-chip{transition:opacity .15s ease}.skjerm-chip:hover,.skjerm-chip:active{transform:none}.skjerm-chip-completing{animation:skjerm-chip-bloom-reduced .25s ease-out forwards}@keyframes skjerm-chip-bloom-reduced{to{opacity:0;background:var(--sk-accent);color:#fff}}}.skjerm-quickadd{display:flex;gap:var(--space-2);margin-top:auto;padding-top:var(--space-3)}.skjerm-quickadd-input{flex:1;padding:12px 16px;border:1px solid var(--sk-rule);border-radius:var(--radius-sm);background:transparent;color:var(--sk-text);font-family:var(--font-sans);font-size:1rem;min-height:44px}.skjerm-quickadd-input::placeholder{color:var(--sk-soft)}.skjerm-quickadd-input:focus{outline:none;border-color:var(--sk-muted)}.skjerm-quickadd-button{background:transparent;border:1px solid var(--sk-rule);border-radius:var(--radius-sm);color:var(--sk-text);padding:0 18px;min-width:56px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.skjerm-quickadd-button:disabled{opacity:.4;cursor:not-allowed}.skjerm,.skjerm *{transition-property:background-color,color,border-color,fill,stroke;transition-duration:60s;transition-timing-function:linear}@media (orientation: portrait){.skjerm-hero{grid-template-columns:1fr;gap:var(--space-5)}.skjerm-hero-weather{justify-content:flex-start;text-align:left}.skjerm-hero-weather-text{align-items:flex-start}.skjerm-main{display:flex;flex-direction:row;grid-template-columns:none;grid-template-rows:none;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;margin-inline:calc(-1*max(var(--space-7),env(safe-area-inset-left)));padding-inline:0;gap:0;scrollbar-width:none;-ms-overflow-style:none;overscroll-behavior-x:contain}.skjerm-main::-webkit-scrollbar{display:none}.skjerm-panel{flex:0 0 100%;width:100%;min-width:100%;scroll-snap-align:start;scroll-snap-stop:always;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-inline:max(var(--space-5),env(safe-area-inset-left))}.skjerm-panel-body,.skjerm-panel>.skjerm-tap-list,.skjerm-panel>.skjerm-agenda-list{overflow:visible;min-height:0}}.skjerm-pager{display:none}@media (orientation: portrait){.skjerm-pager{display:flex;gap:10px;justify-content:center;align-items:center;padding:var(--space-3) 0}.skjerm-pager-dot{width:10px;height:10px;border-radius:50%;border:none;padding:0;background:var(--sk-rule);cursor:pointer;transition:background .2s ease,transform .2s ease}.skjerm-pager-dot-active{background:var(--sk-muted);transform:scale(1.3)}}.card-tight{padding:var(--space-3)}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:999px;background:transparent;border:1px solid transparent;color:var(--text);cursor:pointer;transition:background .15s ease,border-color .15s ease}.icon-btn:hover{background:var(--surface-2);border-color:var(--border)}.btn-sm{padding:.4rem .75rem;font-size:.85rem}.calendar-month-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3);gap:var(--space-2)}.calendar-month-title{display:flex;flex-direction:column;align-items:center;line-height:1.1}.calendar-month-name{font-family:var(--font-serif);font-size:1.5rem;font-weight:500;text-transform:capitalize;letter-spacing:.01em}.calendar-month-year{font-size:.8rem;color:var(--text-muted);letter-spacing:.08em}.calendar-month-grid{display:flex;flex-direction:column;gap:var(--space-2)}.calendar-weekday-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.calendar-weekday-cell{text-align:center;font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);padding:4px 0}.calendar-weeks{display:flex;flex-direction:column;gap:4px}.calendar-week{position:relative;overflow:hidden}.calendar-week-cells{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.calendar-week-bars{position:absolute;left:0;right:0;top:26px;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));column-gap:4px;row-gap:3px;grid-auto-rows:6px;align-content:start;pointer-events:none}.calendar-bar{height:6px;border-radius:999px;background:var(--accent);overflow:hidden;pointer-events:none}.calendar-bar-open-left{border-top-left-radius:0;border-bottom-left-radius:0}.calendar-bar-open-right{border-top-right-radius:0;border-bottom-right-radius:0}.calendar-bar-label{display:none}@media (min-width: 700px){.calendar-week-bars{top:30px;row-gap:4px;grid-auto-rows:18px}.calendar-bar{height:18px;display:flex;align-items:center;padding:0 7px}.calendar-bar-label{display:block;font-size:.7rem;line-height:1;font-weight:500;color:var(--accent-fg, #fff);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}.calendar-day-cell{position:relative;aspect-ratio:1 / 1;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:6px 4px 4px;background:transparent;border:1px solid transparent;border-radius:10px;color:var(--text);cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .1s ease;font-family:inherit}.calendar-day-cell:hover{background:var(--surface-2)}.calendar-day-cell:active{transform:scale(.96)}.calendar-day-cell-other-month{color:var(--text-muted);opacity:.4}.calendar-day-cell-today{background:color-mix(in oklab,var(--accent) 12%,transparent)}.calendar-day-cell-today .calendar-day-cell-number{font-weight:600;color:var(--accent-strong, var(--accent))}.calendar-day-cell-selected{background:var(--accent);color:var(--accent-fg, white);border-color:var(--accent)}.calendar-day-cell-selected .calendar-day-cell-number{color:inherit}.calendar-day-cell-number{font-size:.95rem;line-height:1.2}.calendar-day-cell-dots{display:flex;gap:3px;align-items:center;margin-top:auto;margin-bottom:2px;flex-wrap:wrap;justify-content:center;max-width:100%}.calendar-day-cell-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);display:inline-block}.calendar-day-cell-overflow{font-size:.6rem;color:var(--text-muted);margin-left:1px}.calendar-day-cell-selected .calendar-day-cell-overflow{color:inherit;opacity:.85}.calendar-legend{display:flex;flex-wrap:wrap;gap:6px 10px;margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--border)}.calendar-legend-chip{display:inline-flex;align-items:center;gap:6px;font-size:.75rem;color:var(--text-muted);background:var(--surface-2);padding:3px 9px;border-radius:999px}.calendar-legend-dot{width:8px;height:8px;border-radius:50%}.calendar-legend-ro{font-style:italic;opacity:.7}.calendar-event-row{display:grid;grid-template-columns:70px 1fr;width:100%;align-items:flex-start;gap:var(--space-3);background:transparent;border:none;padding:0;text-align:left;cursor:pointer;color:inherit;font:inherit}.calendar-event-row:disabled{cursor:default}.calendar-event-row:not(:disabled):hover .calendar-event-title{text-decoration:underline;text-decoration-color:var(--border-strong);text-underline-offset:3px}.calendar-fab{position:fixed;right:calc(env(safe-area-inset-right,0px) + var(--space-4));bottom:calc(env(safe-area-inset-bottom,0px) + var(--bottom-nav-height, 64px) + var(--space-4));width:56px;height:56px;border-radius:50%;background:var(--accent);color:var(--accent-fg, white);border:none;box-shadow:0 8px 24px #0000002e;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;z-index:20;transition:transform .12s ease,box-shadow .12s ease}.calendar-fab:hover{box-shadow:0 10px 28px #00000038}.calendar-fab:active{transform:scale(.94)}@media (min-width: 900px){.calendar-fab{bottom:calc(env(safe-area-inset-bottom,0px) + var(--space-5))}}.sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#14141466;display:flex;align-items:flex-end;justify-content:center;z-index:100;animation:sheet-overlay-in .18s ease}@keyframes sheet-overlay-in{0%{opacity:0}}.sheet{width:100%;max-width:560px;max-height:90vh;background:var(--surface);border-radius:var(--radius-lg) var(--radius-lg) 0 0;display:flex;flex-direction:column;box-shadow:0 -12px 48px #0003;animation:sheet-in .22s ease;padding-bottom:env(safe-area-inset-bottom,0px)}@keyframes sheet-in{0%{transform:translateY(24px);opacity:0}}@media (min-width: 720px){.sheet-overlay{align-items:center}.sheet{border-radius:var(--radius-lg);max-height:80vh}}.sheet-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-4) var(--space-3);border-bottom:1px solid var(--border);flex-shrink:0}.sheet-header h2{font-family:var(--font-serif);font-weight:500;font-size:1.25rem;margin:0}.sheet-body{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);overflow-y:auto;flex:1;min-height:0}.sheet-footer{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-top:1px solid var(--border);flex-shrink:0}.form-field{display:flex;flex-direction:column;gap:6px}.form-field>span{font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.form-field input[type=text],.form-field input[type=date],.form-field input[type=time],.form-field select,.form-field textarea{font:inherit;padding:.55rem .75rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);min-height:44px}.form-field textarea{min-height:80px;resize:vertical}.form-field-inline{flex-direction:row;align-items:center;gap:10px}.form-field-inline>span{font-size:.95rem;text-transform:none;letter-spacing:0;color:var(--text)}.form-row{display:grid;grid-template-columns:2fr 1fr;gap:var(--space-3)}.form-row .form-field:only-child{grid-column:1 / -1}.ai-quickfill{margin-bottom:var(--space-4);padding:var(--space-3);background:color-mix(in oklab,var(--accent) 6%,transparent);border:1px solid color-mix(in oklab,var(--accent) 18%,transparent);border-radius:var(--radius-md)}.ai-quickfill-form{display:flex;gap:var(--space-2);align-items:center}.ai-quickfill-icon{color:var(--accent-strong, var(--accent));flex-shrink:0}.ai-quickfill-input{flex:1;min-width:0}.voice-fab{position:fixed;right:24px;bottom:24px;width:72px;height:72px;border-radius:50%;background:var(--accent);color:var(--accent-fg, white);border:none;box-shadow:0 10px 32px #00000038;display:inline-flex;align-items:center;justify-content:center;z-index:80;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease}.voice-fab:active{transform:scale(.96)}.voice-fab-listening{background:var(--danger);animation:voice-pulse 1.1s ease-in-out infinite}.voice-fab-thinking,.voice-fab-speaking{background:var(--accent-strong, var(--accent))}@keyframes voice-pulse{0%,to{box-shadow:0 10px 32px #dc262659,0 0 #dc262659}50%{box-shadow:0 10px 32px #dc262673,0 0 0 16px #dc262600}}.voice-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f0f0f73;display:flex;align-items:center;justify-content:center;padding:24px;z-index:90}.voice-overlay-card{position:relative;background:var(--surface);border-radius:var(--radius-lg);padding:28px 28px 24px;width:min(560px,92vw);max-height:80vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d}.voice-overlay-close{position:absolute;top:12px;right:12px;width:36px;height:36px;border-radius:50%;border:none;background:transparent;color:var(--text-muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.voice-overlay-close:hover{background:var(--surface-2, var(--border))}.voice-overlay-phase{font-size:.85rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:12px}.voice-overlay-label{display:block;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-soft);margin-bottom:4px}.voice-overlay-transcript,.voice-overlay-reply{margin-bottom:16px}.voice-overlay-transcript p,.voice-overlay-reply p{margin:0;font-size:1.15rem;line-height:1.4;color:var(--text)}.voice-overlay-reply p{font-family:var(--font-serif);font-size:1.3rem}.voice-overlay-actions{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.voice-action{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:color-mix(in oklab,var(--accent) 14%,transparent);color:var(--accent-strong, var(--accent));font-size:.9rem;font-weight:500}.voice-action-error{background:color-mix(in oklab,var(--danger) 14%,transparent);color:var(--danger)}.voice-overlay-error{margin-top:12px;padding:10px 14px;border-radius:var(--radius);background:color-mix(in oklab,var(--danger) 10%,transparent);color:var(--danger);font-size:.95rem}.swipe-wrap{position:relative;overflow:hidden;border-radius:var(--radius)}.swipe-wrap-bg{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;padding:0 var(--space-4);font-weight:600;color:#fff;pointer-events:none}.swipe-wrap-bg-right{justify-content:flex-start;background:var(--accent)}.swipe-wrap-bg-left{justify-content:flex-end;background:var(--danger)}.swipe-target{position:relative;touch-action:pan-y;transition:transform .2s ease}.swipe-target-active{transition:none}.nudge-prefs-list{list-style:none;margin:0;padding:0}.nudge-prefs-row{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) 0;border-bottom:1px solid var(--border)}.nudge-prefs-row:last-child{border-bottom:none}.toggle{position:relative;display:inline-block;width:48px;height:28px;flex-shrink:0;cursor:pointer}.toggle input{opacity:0;width:0;height:0}.toggle-track{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--border-strong);border-radius:999px;transition:background .16s ease}.toggle-track:after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;background:#fff;border-radius:50%;box-shadow:0 1px 3px #0000002e;transition:transform .16s ease}.toggle input:checked+.toggle-track{background:var(--accent)}.toggle input:checked+.toggle-track:after{transform:translate(20px)}.toggle input:disabled+.toggle-track{opacity:.6;cursor:not-allowed}
