@import"https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600;9..144,700&family=Plus+Jakarta+Sans:wght@300;400;500;600;700&family=Inter:wght@300;400;500;600&display=swap";.grid-stack{position:relative}.grid-stack-placeholder>.placeholder-content{background-color:#0000001a;margin:0;position:absolute;width:auto;z-index:0!important}.grid-stack>.grid-stack-item{position:absolute;padding:0;top:0;width:var(--gs-column-width);height:var(--gs-cell-height)}.grid-stack>.grid-stack-item>.grid-stack-item-content{margin:0;position:absolute;width:auto;overflow-x:hidden;overflow-y:auto}.grid-stack>.grid-stack-item.size-to-content:not(.size-to-content-max)>.grid-stack-item-content{overflow-y:hidden}.grid-stack:not(.grid-stack-rtl)>.grid-stack-item{left:0}.grid-stack.grid-stack-rtl>.grid-stack-item{right:0}.grid-stack>.grid-stack-item>.grid-stack-item-content,.grid-stack>.grid-stack-placeholder>.placeholder-content{top:var(--gs-item-margin-top);right:var(--gs-item-margin-right);bottom:var(--gs-item-margin-bottom);left:var(--gs-item-margin-left)}.grid-stack-item>.ui-resizable-handle{position:absolute;font-size:.1px;display:block;-ms-touch-action:none;touch-action:none;-webkit-user-select:none;user-select:none;z-index:100}.grid-stack-item.ui-resizable-autohide>.ui-resizable-handle,.grid-stack-item.ui-resizable-disabled>.ui-resizable-handle{display:none}.grid-stack-item>.ui-resizable-ne,.grid-stack-item>.ui-resizable-nw,.grid-stack-item>.ui-resizable-se,.grid-stack-item>.ui-resizable-sw{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="%23666" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 20 20"><path d="m10 3 2 2H8l2-2v14l-2-2h4l-2 2"/></svg>');background-repeat:no-repeat;background-position:center;z-index:101}.grid-stack-item>.ui-resizable-ne{transform:rotate(45deg)}.grid-stack-item>.ui-resizable-sw{transform:rotate(45deg)}.grid-stack-item>.ui-resizable-nw{transform:rotate(-45deg)}.grid-stack-item>.ui-resizable-se{transform:rotate(-45deg)}.grid-stack-item>.ui-resizable-nw{cursor:nw-resize;width:20px;height:20px;top:var(--gs-item-margin-top);left:var(--gs-item-margin-left)}.grid-stack-item>.ui-resizable-n{cursor:n-resize;height:10px;top:var(--gs-item-margin-top);left:25px;right:25px}.grid-stack-item>.ui-resizable-ne{cursor:ne-resize;width:20px;height:20px;top:var(--gs-item-margin-top);right:var(--gs-item-margin-right)}.grid-stack-item>.ui-resizable-e{cursor:e-resize;width:10px;top:15px;bottom:15px;right:var(--gs-item-margin-right)}.grid-stack-item>.ui-resizable-se{cursor:se-resize;width:20px;height:20px;bottom:var(--gs-item-margin-bottom);right:var(--gs-item-margin-right)}.grid-stack-item>.ui-resizable-s{cursor:s-resize;height:10px;left:25px;bottom:var(--gs-item-margin-bottom);right:25px}.grid-stack-item>.ui-resizable-sw{cursor:sw-resize;width:20px;height:20px;bottom:var(--gs-item-margin-bottom);left:var(--gs-item-margin-left)}.grid-stack-item>.ui-resizable-w{cursor:w-resize;width:10px;top:15px;bottom:15px;left:var(--gs-item-margin-left)}.grid-stack-item.ui-draggable-dragging>.ui-resizable-handle{display:none!important}.grid-stack-item.ui-draggable-dragging{will-change:left,right,top}.grid-stack-item.ui-resizable-resizing{will-change:width,height}.ui-draggable-dragging,.ui-resizable-resizing{z-index:10000}.ui-draggable-dragging>.grid-stack-item-content,.ui-resizable-resizing>.grid-stack-item-content{box-shadow:1px 4px 6px #0003;opacity:.8}.grid-stack-animate,.grid-stack-animate .grid-stack-item{transition:left .3s,right .3s,top .3s,height .3s,width .3s}.grid-stack-animate .grid-stack-item.grid-stack-placeholder,.grid-stack-animate .grid-stack-item.ui-draggable-dragging,.grid-stack-animate .grid-stack-item.ui-resizable-resizing{transition:left 0s,right 0s,top 0s,height 0s,width 0s}.grid-stack>.grid-stack-item[gs-y="0"]{top:0}.grid-stack:not(.grid-stack-rtl)>.grid-stack-item[gs-x="0"]{left:0}.grid-stack.grid-stack-rtl>.grid-stack-item[gs-x="0"]{right:0}.gs-print-show{display:none}@media print{@page gs-landscape{size:landscape}@page gs-portrait{size:portrait}.grid-stack{display:block!important;height:auto!important;position:static!important}.grid-stack>.grid-stack-item{display:block!important;float:left!important;position:static!important;height:auto!important;left:auto!important;top:auto!important;width:calc(100% * var(--gs-w)/ var(--gs-columns,12))!important;break-inside:avoid!important;page-break-inside:avoid!important}.grid-stack>.grid-stack-item>.grid-stack-item-content{position:relative!important;height:auto!important;overflow:visible!important;white-space:normal!important;margin-top:var(--gs-item-margin-top)!important;margin-right:var(--gs-item-margin-right)!important;margin-bottom:var(--gs-item-margin-bottom)!important;margin-left:var(--gs-item-margin-left)!important;top:auto!important;right:auto!important;bottom:auto!important;left:auto!important}.gs-print-hide{display:none}.gs-print-show{display:block}.grid-stack>.grid-stack-item.gs-print-hide{display:none!important}.grid-stack>.grid-stack-item[gs-page-break=true],.grid-stack>.grid-stack-item[gs-print-orientation]{float:none!important;clear:both!important}.grid-stack>.grid-stack-item[gs-page-break=true]{page-break-before:always!important;break-before:page!important}.grid-stack>.grid-stack-item[gs-print-orientation=landscape]{page:gs-landscape;min-width:calc(100vmax * var(--gs-w)/ var(--gs-columns,12))!important}.grid-stack>.grid-stack-item[gs-print-orientation=portrait]{page:gs-portrait;min-width:calc(100vmin * var(--gs-w)/ var(--gs-columns,12))!important}.grid-stack>.grid-stack-item>.ui-resizable-handle{display:none!important}}:root{--color-ink: #0f172a;--color-paper: #f8fafc;--color-brand: #f7a832;--color-accent: #3b82f6;--color-cat-sage: #10b981;--color-cat-lavender: #8b5cf6;--color-cat-coral: #f97316;--color-cat-teal: #14b8a6;--color-success: #22c55e;--color-warning: #d97706;--color-error: #ef4444}:root{--bg-primary: #faf9f6;--bg-surface: #ffffff;--bg-hover: color-mix(in srgb, var(--text-primary, #1a1a1a) 6%, var(--bg-primary, #faf9f6));--bg-today: rgba(59, 130, 246, .04);--bg-header: #ffffff;--bg-sidebar: #f0eeeb;--text-primary: #1a1a1a;--text-secondary: #4b5563;--text-muted: #6b7280;--text-light: #9ca3af;--grid-lines: #e5e5e5;--border: #e5e5e5;--border-subtle: #f0efec;--accent: #3b82f6;--color-blue: #bfdbfe;--color-blue-full: var(--color-accent, #3b82f6);--color-green: #bbf7d0;--color-green-full: var(--color-success, #22c55e);--color-purple: #ddd6fe;--color-purple-full: var(--color-cat-lavender, #8b5cf6);--color-orange: #fed7aa;--color-orange-full: var(--color-cat-coral, #f97316);--color-pink: #fed7aa;--color-pink-full: var(--color-cat-coral, #f97316);--color-teal: #99f6e4;--color-teal-full: var(--color-cat-teal, #14b8a6);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-pill: 9999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .04);--shadow: 0 1px 3px rgba(0, 0, 0, .08);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .12);--transition: .2s ease;--font-display: "Fraunces", -apple-system, BlinkMacSystemFont, serif;--font-body: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--header-height: 64px;--time-axis-width: 64px;--hour-height: 72px}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;overflow:hidden}body{font-family:var(--font-body);background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;user-select:none;-webkit-user-select:none}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;font-size:inherit}input,select,textarea{font-family:inherit;font-size:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent, #3b82f6);outline-offset:2px}button:focus:not(:focus-visible),a:focus:not(:focus-visible){outline:none}:root{--sidebar-width: 64px}.beacon{height:100vh;display:grid;overflow:hidden;background:var(--bg-primary)}.beacon--sidebar-left{grid-template-columns:var(--sidebar-width) 1fr}.beacon--sidebar-left .beacon-main{grid-column:2}.beacon--sidebar-left .sidebar{grid-column:1;border-right:1px solid var(--border-subtle);border-left:none}.beacon--sidebar-right{grid-template-columns:1fr var(--sidebar-width)}.beacon--sidebar-right .beacon-main{grid-column:1}.beacon--sidebar-right .sidebar{grid-column:2;border-left:1px solid var(--border-subtle);border-right:none}.beacon--sidebar-bottom{grid-template-columns:1fr;padding-bottom:var(--mobile-tab-bar-height, 72px)}.beacon--sidebar-bottom .beacon-main{grid-column:1}.beacon--sidebar-bottom .mobile-tab-bar{display:flex}.beacon--kiosk{grid-template-columns:1fr}.beacon-main{display:flex;flex-direction:column;overflow:clip;min-width:0;min-height:0;height:100%;position:relative;background:var(--bg-primary);isolation:isolate}.beacon-body{flex:1;min-height:0}.beacon-main>.settings-view,.beacon-main>.grocery-view,.beacon-main>.music-view,.beacon-main>.dashboard,.beacon-main>.photo-frame{flex:1;min-height:0}.beacon-main>*{animation:view-enter .25s ease both}@keyframes view-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.sidebar{grid-row:1 / -1;display:flex;flex-direction:column;align-items:center;background:var(--bg-sidebar, #f0eeeb);padding:12px 0;height:100vh;z-index:15}.sidebar-logo{width:40px;height:40px;display:flex;align-items:center;justify-content:center;margin-bottom:16px;flex-shrink:0}.sidebar-logo img{width:32px;height:auto}.sidebar-nav-group{display:flex;flex-direction:column;align-items:center;gap:4px;width:100%;padding:0 8px}.sidebar-nav-group--bottom{margin-top:auto}.sidebar-divider{width:32px;height:1px;background:var(--border);margin:12px 0;flex-shrink:0}.sidebar-icon{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);color:var(--text-muted);transition:all var(--transition);position:relative;flex-shrink:0}.sidebar-icon:hover{background:color-mix(in srgb,var(--accent, #3b82f6) 12%,transparent);color:var(--text-primary)}.sidebar-icon--active{background:color-mix(in srgb,var(--accent, #3b82f6) 15%,transparent);color:var(--accent, #3b82f6)}.sidebar-icon--active:before{content:"";position:absolute;top:8px;bottom:8px;width:3px;background:var(--color-blue-full)}.beacon--sidebar-left .sidebar-icon--active:before{right:-8px;left:auto;border-radius:3px 0 0 3px}.beacon--sidebar-right .sidebar-icon--active:before{left:-8px;right:auto;border-radius:0 3px 3px 0}.filter-bar{padding:8px 16px 0;flex-shrink:0;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.filter-bar::-webkit-scrollbar{display:none}.beacon-header{flex-shrink:0;height:var(--header-height);display:flex;align-items:center;justify-content:space-between;padding:0 24px;background:var(--bg-surface);border-bottom:1px solid var(--border-subtle);z-index:10}.header-left{display:flex;align-items:center;gap:16px}.header-family-name{font-family:var(--font-display);font-size:1.35rem;font-weight:600;color:var(--text-primary);letter-spacing:-.3px}.header-date{font-size:.9rem;font-weight:400;color:var(--text-secondary)}.header-separator{width:1px;height:24px;background:var(--border)}.header-right{display:flex;align-items:center;gap:16px}.clock-mini{font-size:.9rem;font-weight:500;color:var(--text-secondary);font-variant-numeric:tabular-nums;min-width:72px;text-align:right}.family-filter{display:flex;align-items:center;gap:8px;flex-wrap:nowrap}.filter-pill{display:flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--radius-pill);background:var(--bg-primary);border:1px solid var(--border);transition:all var(--transition);min-height:36px;white-space:nowrap;flex-shrink:0}.filter-pill:hover{background:var(--bg-hover)}.filter-pill--active{background:var(--bg-surface);border-color:var(--border);box-shadow:var(--shadow-sm)}.filter-pill--hidden{opacity:.35;background:transparent}.filter-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;transition:all var(--transition)}.filter-name{font-size:.8rem;font-weight:500;color:var(--text-primary)}.filter-pill--hidden .filter-name{color:var(--text-muted)}.beacon-body{flex:1;display:flex;flex-direction:column;min-height:0;padding:16px 16px 0;position:relative}.beacon-body--two-col{flex-direction:row;gap:0}.beacon-body--two-col .beacon-body-calendar{flex:1;min-width:0;display:flex;flex-direction:column;min-height:0}.calendar-sidebar{width:280px;flex-shrink:0;border-left:1px solid var(--border-subtle);padding:16px;overflow-y:auto;display:flex;flex-direction:column;gap:24px}.cal-sidebar-heading{font-family:var(--font-display);font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:10px}.cal-sidebar-section{display:flex;flex-direction:column}.cal-sidebar-empty{font-size:.85rem;color:var(--text-light)}.cal-sidebar-events{list-style:none;display:flex;flex-direction:column;gap:8px}.cal-sidebar-event{display:flex;align-items:flex-start;gap:10px}.cal-sidebar-event-dot{width:8px;height:8px;border-radius:50%;margin-top:5px;flex-shrink:0}.cal-sidebar-event-info{display:flex;flex-direction:column;min-width:0}.cal-sidebar-event-title{font-size:.85rem;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-sidebar-event-time{font-size:.75rem;color:var(--text-muted)}.cal-sidebar-todos{list-style:none;display:flex;flex-direction:column;gap:6px}.cal-sidebar-todo{display:flex;align-items:center;gap:8px}.cal-sidebar-todo-check{background:none;border:none;cursor:pointer;padding:0;display:flex;align-items:center}.cal-sidebar-todo-label{font-size:.85rem;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.week-calendar{flex:1;display:flex;flex-direction:column;min-height:0;background:var(--bg-surface);border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:var(--shadow);overflow:hidden}.week-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border-bottom:1px solid var(--border-subtle);background:var(--bg-surface);flex-shrink:0}.week-nav-controls,.week-nav-jump{display:flex;align-items:center;gap:6px}.week-nav-btn,.week-nav-jump-btn,.week-nav-today{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:0 10px;border:1px solid var(--border-subtle);background:var(--bg-surface);color:var(--text-primary);border-radius:var(--radius-sm);font-size:14px;font-weight:500;cursor:pointer;transition:background var(--transition),border-color var(--transition);font-family:inherit}.week-nav-btn{font-size:18px;line-height:1}.week-nav-btn:hover,.week-nav-jump-btn:hover,.week-nav-today:not(:disabled):hover{background:var(--bg-hover);border-color:var(--border)}.week-nav-today--active,.week-nav-today:disabled{background:transparent;color:var(--text-muted);cursor:default;border-color:var(--border-subtle)}.week-nav-label{font-family:var(--font-display, inherit);font-size:15px;font-weight:600;color:var(--text-primary);letter-spacing:.01em;text-align:center;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:480px){.week-nav{padding:8px 10px;gap:6px}.week-nav-label{font-size:13px}.week-nav-jump{display:none}}.event-block--expanded{box-shadow:0 0 0 2px var(--accent, #3b82f6),var(--shadow-md);z-index:6}.event-details-popover{z-index:9000;background:var(--bg-surface, #fff);border-radius:var(--radius-md, 12px);box-shadow:var(--shadow-lg, 0 10px 30px rgba(0, 0, 0, .18));border:1px solid var(--border-subtle);display:flex;overflow:hidden;max-height:calc(100vh - 32px);animation:event-details-popover-in .12s ease-out}@keyframes event-details-popover-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.event-details-popover-stripe{width:4px;flex-shrink:0}.event-details-popover-body{flex:1;display:flex;flex-direction:column;padding:14px 16px 12px;gap:10px;min-width:0;overflow-y:auto}.event-details-popover-header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.event-details-popover-title{margin:0;font-size:16px;font-weight:600;line-height:1.3;color:var(--text-primary);word-break:break-word}.event-details-popover-close{background:transparent;border:none;color:var(--text-muted);font-size:22px;line-height:1;cursor:pointer;padding:0 4px;border-radius:var(--radius-sm)}.event-details-popover-close:hover{color:var(--text-primary);background:var(--bg-hover)}.event-details-popover-meta{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--text-secondary)}.event-details-popover-time{font-weight:500;color:var(--text-primary)}.event-details-popover-calendar{display:flex;align-items:center;gap:6px;color:var(--text-muted);font-size:12px}.event-details-popover-calendar-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.event-details-popover-recurrence{font-size:12px;color:var(--text-muted);font-style:italic}.event-details-popover-description{font-size:13px;line-height:1.5;color:var(--text-primary);white-space:pre-wrap;word-break:break-word;border-top:1px solid var(--border-subtle);padding-top:10px}.event-details-popover-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:2px}.event-details-popover-btn{font:inherit;font-size:13px;font-weight:500;padding:6px 12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-surface);color:var(--text-primary);cursor:pointer;transition:background var(--transition),border-color var(--transition)}.event-details-popover-btn:hover{background:var(--bg-hover)}.event-details-popover-btn--primary{background:var(--accent, #3b82f6);border-color:var(--accent, #3b82f6);color:#fff}.event-details-popover-btn--primary:hover{background:var(--accent-hover, #2563eb);border-color:var(--accent-hover, #2563eb)}.week-calendar-header{display:grid;grid-template-columns:var(--time-axis-width) repeat(7,1fr);border-bottom:1px solid var(--border);flex-shrink:0}.week-header-day{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:12px 4px;border-left:1px solid var(--border-subtle)}.week-header-day--today{background:var(--bg-today)}.week-header-day-name{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted)}.week-header-day-number{font-family:var(--font-display);font-size:1.5rem;font-weight:600;color:var(--text-secondary);width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;margin-top:2px}.week-header-day--today .week-header-day-number{background:var(--color-blue-full);color:#fff}.week-header-day--today .week-header-day-name{color:var(--color-blue-full)}.week-header-weather{display:flex;align-items:center;gap:3px;margin-top:2px;font-size:11px;color:var(--text-muted);line-height:1}.week-header-weather-icon{font-size:12px}.week-header-weather-temps{font-family:var(--font-body);font-weight:400;white-space:nowrap}.week-allday-row{display:grid;grid-template-columns:var(--time-axis-width) repeat(7,1fr);min-height:0;flex-shrink:0}.week-allday-label{display:flex;align-items:center;justify-content:flex-end;padding-right:8px;font-size:.65rem;font-weight:500;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.week-allday-cell{border-left:1px solid var(--border-subtle);padding:4px 2px;display:flex;flex-direction:column;gap:2px;min-height:32px;overflow:hidden;min-width:0}.week-allday-cell--today{background:var(--bg-today)}.week-grid-scroll{flex:1;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.week-grid-scroll::-webkit-scrollbar{width:4px}.week-grid-scroll::-webkit-scrollbar-track{background:transparent}.week-grid-scroll::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.week-time-grid{display:grid;grid-template-columns:var(--time-axis-width) repeat(7,1fr);position:relative}.week-time-slot{grid-column:1;height:var(--hour-height);display:flex;align-items:flex-start;justify-content:flex-end;padding-right:8px;padding-top:0;transform:translateY(-8px)}.week-time-label{font-size:.7rem;font-weight:500;color:var(--text-muted);font-variant-numeric:tabular-nums;line-height:1}.week-day-column{position:relative;border-left:1px solid var(--border-subtle)}.week-day-column--today{background:var(--bg-today)}.week-hour-cell{height:var(--hour-height);border-bottom:1px solid var(--border-subtle);position:relative}.week-hour-cell:after{content:"";position:absolute;left:0;right:0;top:50%;border-bottom:1px dashed var(--border-subtle)}.week-hour-cell-btn{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;border:none;cursor:pointer;z-index:0;border-radius:0;padding:0;min-height:0}.week-hour-cell-btn:hover{background:#3b82f608}.event-block{position:absolute;left:2px;width:calc(100% - 4px);border-radius:var(--radius-sm);overflow:hidden;cursor:pointer;transition:box-shadow var(--transition),transform var(--transition);z-index:1;display:flex;min-height:22px;border:1px solid #fff;text-align:left;padding:0}.event-block:hover{box-shadow:var(--shadow-md);transform:scale(1.01);z-index:5}.event-block:active{transform:scale(.99)}.event-block--past{opacity:.55;filter:grayscale(.6)}.event-block-stripe{width:3px;flex-shrink:0}.event-block-content{flex:1;padding:4px 6px;min-width:0;display:flex;flex-direction:column;gap:1px}.event-block-title{font-size:.75rem;font-weight:600;color:#000000d9;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:break-word;line-height:1.3}.event-block-time{font-size:.65rem;font-weight:400;color:#00000080;line-height:1.2}.event-block-location{font-size:.65rem;font-weight:400;color:#0000008c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2}.event-block--allday{position:relative;left:auto;right:auto;border-radius:6px;min-height:22px;max-width:100%;overflow:hidden}.event-block--allday .event-block-content{padding:2px 6px}.event-block--allday .event-block-title{font-size:.7rem}.week-allday-section{border-bottom:1px solid var(--border);flex-shrink:0}.week-allday-multiday-wrapper{display:grid;grid-template-columns:var(--time-axis-width) 1fr}.week-allday-spans{position:relative}.event-block--multiday{position:absolute;height:24px;border-radius:6px;overflow:hidden;cursor:pointer;border:none;background:transparent;padding:0;text-align:left;z-index:2;transition:box-shadow var(--transition)}.event-block--multiday:hover{box-shadow:var(--shadow-md);z-index:5}.event-block-inner--multiday{display:flex;width:100%;height:100%;border-radius:6px;overflow:hidden}.event-block-inner--multiday .event-block-content{padding:2px 8px;display:flex;align-items:center}.event-block-inner--multiday .event-block-title{font-size:.7rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.event-block--draggable{cursor:grab}.event-block--draggable:active{cursor:grabbing;opacity:.7}.week-hour-cell-btn--drop-target{background:color-mix(in srgb,var(--accent, #3b82f6) 10%,transparent)!important;outline:2px dashed var(--accent, #3b82f6);outline-offset:-2px;border-radius:4px}.drag-ghost-preview{position:absolute;top:2px;right:2px;bottom:2px;left:2px;background:color-mix(in srgb,var(--accent, #3b82f6) 15%,transparent);border:1px dashed var(--accent, #3b82f6);border-radius:var(--radius-sm);display:flex;align-items:flex-start;padding:4px 8px;pointer-events:none;z-index:3}.drag-ghost-title{font-size:.7rem;font-weight:600;color:var(--accent, #3b82f6);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.current-time-line{position:absolute;left:0;right:0;height:2px;background:var(--color-error, #ef4444);z-index:10;pointer-events:none}.current-time-line:before{content:"";position:absolute;left:-4px;top:-3px;width:8px;height:8px;border-radius:50%;background:var(--color-error, #ef4444)}.btn--fab{position:absolute;bottom:24px}.beacon--sidebar-left .btn--fab,.beacon--sidebar-bottom .btn--fab,.beacon--sidebar-right .btn--fab{right:24px}.btn--fab{right:24px;width:56px;height:56px;border-radius:50%;background:var(--color-blue-full);color:#fff;font-size:1.8rem;font-weight:300;box-shadow:var(--shadow-lg);transition:all var(--transition);z-index:20;display:flex;align-items:center;justify-content:center;line-height:1}.btn--fab:hover{background:#2563eb;transform:scale(1.08);box-shadow:0 12px 32px #3b82f64d}.btn--fab:active{transform:scale(.95)}.connection-status{display:flex;align-items:center;gap:6px;font-size:.75rem;color:var(--text-muted)}.connection-dot{width:6px;height:6px;border-radius:50%;background:var(--color-warning, #d97706);animation:pulse 2s infinite}.demo-badge{position:fixed;bottom:24px;left:24px;background:var(--bg-surface);color:var(--text-muted);font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:1px;padding:6px 12px;border-radius:var(--radius-pill);border:1px solid var(--border);box-shadow:var(--shadow-sm);z-index:50}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000040;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:100;animation:fade-in .15s ease}.modal{background:var(--bg-surface);border-radius:var(--radius-xl);width:90%;max-width:480px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg);animation:slide-up .2s ease}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:24px 24px 0}.modal-title{font-family:var(--font-display);font-size:1.2rem;font-weight:600;color:var(--text-primary)}.modal-close{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:1.1rem;color:var(--text-muted);transition:all var(--transition)}.modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.modal-body{padding:20px 24px;display:flex;flex-direction:column;gap:16px}.modal-error{margin:0 24px;padding:10px 12px;border-radius:var(--radius-md, 8px);background:#dc26261a;border:1px solid rgba(220,38,38,.35);color:#dc2626;font-size:13px;line-height:1.4}.modal-footer{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-top:1px solid var(--border-subtle)}.modal-footer-right{display:flex;gap:8px;margin-left:auto}.form-field{display:flex;flex-direction:column;gap:6px}.form-field--toggle{flex-direction:row;align-items:center;justify-content:space-between}.form-row{display:flex;gap:12px}.form-row .form-field{flex:1}.form-label{font-size:.75rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.form-input,.form-select,.form-textarea{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;color:var(--text-primary);font-size:1rem;transition:border-color var(--transition),box-shadow var(--transition);min-height:44px}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--color-blue-full);box-shadow:0 0 0 3px #3b82f61a}.form-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%239ca3af' fill='none' stroke-width='2'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px}.form-textarea{resize:vertical;min-height:80px}.toggle{width:48px;height:26px;border-radius:13px;background:var(--border);border:none;position:relative;transition:all var(--transition);flex-shrink:0}.toggle--on{background:var(--color-blue-full)}.toggle-knob{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:var(--shadow-sm);transition:transform var(--transition)}.toggle--on .toggle-knob{transform:translate(22px)}.btn{padding:10px 20px;border-radius:var(--radius-sm);font-weight:600;font-size:.9rem;transition:all var(--transition);min-height:44px;display:inline-flex;align-items:center;justify-content:center}.btn--primary{background:var(--color-blue-full);color:#fff;border-radius:var(--radius-md)}.btn--primary:hover{background:#2563eb}.btn--secondary{background:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-md)}.btn--secondary:hover{background:var(--bg-hover)}.btn--danger{background:transparent;color:var(--color-error, #ef4444)}.btn--danger:hover{background:color-mix(in srgb,var(--color-error, #ef4444) 6%,transparent)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@media(max-width:1100px){:root{--header-height: 56px;--time-axis-width: 52px;--hour-height: 64px}.header-family-name{font-size:1.15rem}.week-header-day-number{font-size:1.3rem;width:36px;height:36px}.event-block-title{font-size:.7rem}.event-block-time{font-size:.6rem}}.mobile-tab-bar,.week-mobile-nav{display:none}@media(max-width:768px){:root{--time-axis-width: 44px;--hour-height: 56px;--sidebar-width: 0px;--mobile-tab-bar-height: 72px}.beacon{grid-template-columns:1fr!important;padding-bottom:var(--mobile-tab-bar-height)}.beacon .beacon-main,.beacon--sidebar-left .beacon-main,.beacon--sidebar-right .beacon-main{grid-column:1!important}.calendar-sidebar{display:none}.beacon-body--two-col{flex-direction:column}.sidebar--desktop{display:none!important}.mobile-tab-bar{display:flex;position:fixed;bottom:0;left:0;right:0;height:var(--mobile-tab-bar-height);background:var(--bg-surface, #ffffff);border-top:1px solid var(--border, #e5e5e5);box-shadow:0 -2px 8px #00000014;z-index:90;align-items:stretch;justify-content:space-around;padding:8px 4px 0;padding-bottom:max(12px,env(safe-area-inset-bottom,12px))}.mobile-tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:56px;min-height:48px;padding:6px 8px;border-radius:var(--radius-sm);color:var(--text-muted);transition:color var(--transition);-webkit-tap-highlight-color:transparent}.mobile-tab--active{color:var(--accent, #3b82f6);position:relative}.mobile-tab--active:after{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:24px;height:3px;border-radius:0 0 3px 3px;background:var(--accent, #3b82f6)}.mobile-tab-label{font-size:.6rem;font-weight:600;letter-spacing:.2px}.mobile-more-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000040;z-index:99}.mobile-more-menu{position:fixed;bottom:var(--mobile-tab-bar-height);left:0;right:0;background:var(--bg-surface);border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:var(--shadow-lg);z-index:100;padding:8px 0 16px;padding-bottom:calc(16px + env(safe-area-inset-bottom,0px));animation:slide-up .2s ease}.mobile-more-header{display:flex;align-items:center;justify-content:space-between;padding:8px 20px 12px}.mobile-more-title{font-family:var(--font-display);font-size:1.1rem;font-weight:600;color:var(--text-primary)}.mobile-more-close{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:50%;color:var(--text-muted);transition:all var(--transition)}.mobile-more-close:hover{background:var(--bg-hover);color:var(--text-primary)}.mobile-more-item{display:flex;align-items:center;gap:14px;width:100%;padding:14px 24px;font-size:.95rem;font-weight:500;color:var(--text-primary);min-height:48px;transition:background var(--transition);-webkit-tap-highlight-color:transparent}.mobile-more-item:hover,.mobile-more-item:active{background:var(--bg-hover)}.mobile-more-item--active{color:var(--accent, #3b82f6)}.mobile-more-theme{padding:8px 24px 0}.beacon-header{padding:0 12px;height:48px}.header-separator,.header-date,.clock-mini{display:none}.header-family-name{font-size:1.1rem}.beacon-body{padding:8px 8px 0}.filter-bar{padding:6px 8px 0}.filter-name{font-size:.7rem}.filter-pill{padding:4px 10px;min-height:32px}.week-header-day-name{font-size:.6rem}.week-header-day-number{font-size:1.1rem;width:32px;height:32px}.week-header-day{padding:8px 2px}.week-header-weather-temps{display:none}.week-header-weather{font-size:10px}.week-mobile-nav{display:flex;align-items:center;justify-content:center;gap:12px;padding:6px 8px 2px;flex-shrink:0}.week-mobile-nav-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:1.2rem;color:var(--text-secondary);transition:all var(--transition);-webkit-tap-highlight-color:transparent}.week-mobile-nav-btn:hover{background:var(--bg-hover)}.week-mobile-nav-btn:disabled{color:var(--text-light);pointer-events:none}.week-mobile-dots{display:flex;gap:8px;align-items:center}.week-mobile-dot{width:8px;height:8px;border-radius:50%;background:var(--border);transition:all var(--transition);-webkit-tap-highlight-color:transparent}.week-mobile-dot--active{background:var(--accent, #3b82f6);width:20px;border-radius:4px}.event-block{min-height:32px}.event-block-time,.event-block-location{display:none}.event-block-title{font-size:.7rem}.event-block-content{padding:6px 8px}.btn--fab{width:52px;height:52px;bottom:calc(var(--mobile-tab-bar-height) + 16px);right:16px;font-size:1.5rem}.modal-overlay{align-items:flex-end}.modal{width:100%;max-width:100%;max-height:95vh;border-radius:var(--radius-xl) var(--radius-xl) 0 0;animation:slide-up .25s ease}.slide-panel{top:auto;bottom:0;left:0;right:0;width:100%;max-height:90vh;border-radius:var(--radius-xl) var(--radius-xl) 0 0;transform:translateY(100%)}.slide-panel--open{transform:translateY(0)}.timer-panel{top:auto;bottom:0;left:0;right:0;width:100%;height:auto;max-height:80vh;border-radius:var(--radius-xl) var(--radius-xl) 0 0;border-right:none;transform:translateY(100%)}.timer-panel--open{transform:translateY(0)}.demo-badge{bottom:calc(var(--mobile-tab-bar-height) + 12px);left:12px}.grocery-drawer{bottom:var(--mobile-tab-bar-height)}.now-playing-bar{position:fixed;bottom:var(--mobile-tab-bar-height);left:0;right:0;z-index:80;margin-bottom:0;border-radius:0}}@media(max-width:480px){:root{--time-axis-width: 36px;--hour-height: 52px}.header-family-name{font-size:1rem}.beacon-header{padding:0 8px;height:44px}.beacon-body,.filter-bar{padding:4px 4px 0}.filter-pill{padding:4px 6px}.week-header-day-name{font-size:.55rem;letter-spacing:.5px}.week-header-day-number{font-size:1rem;width:28px;height:28px}.week-header-day{padding:6px 1px}.week-time-label{font-size:.6rem}.event-block-title{font-size:.65rem}.event-block-content{padding:4px 6px}.btn--fab{width:48px;height:48px;bottom:calc(var(--mobile-tab-bar-height) + 12px);right:12px}.modal-header{padding:16px 16px 0}.modal-body{padding:16px}.modal-footer{padding:12px 16px}.mobile-tab-bar{height:56px}.mobile-tab{min-width:48px;padding:4px 6px}.mobile-tab-label{font-size:.55rem}}.beacon--ingress{--sidebar-width: 52px}.beacon--ingress.beacon--sidebar-left{grid-template-columns:52px 1fr}.beacon--ingress.beacon--sidebar-right{grid-template-columns:1fr 52px}.beacon--compact{grid-template-columns:1fr!important;--sidebar-width: 0px;padding-bottom:var(--mobile-tab-bar-height, 72px)}.beacon--compact .mobile-tab-bar{display:flex}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.slide-panel{position:fixed;top:0;right:0;bottom:0;width:420px;max-width:100vw;background:var(--bg-surface);box-shadow:var(--shadow-lg);z-index:90;display:flex;flex-direction:column;transform:translate(100%);transition:transform .3s cubic-bezier(.4,0,.2,1)}.slide-panel--open{transform:translate(0)}.slide-panel--right{right:0}.slide-panel-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 12px;flex-shrink:0}.slide-panel-title{font-family:var(--font-display);font-size:1.3rem;font-weight:600;color:var(--text-primary)}.slide-panel-body{flex:1;overflow-y:auto;padding:0 24px 24px;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.slide-panel-body::-webkit-scrollbar{width:4px}.slide-panel-body::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.slide-panel-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000026;z-index:89;animation:fade-in .2s ease}.family-manager{max-width:520px;width:95%}.fm-list{display:flex;flex-direction:column;gap:8px}.fm-empty{text-align:center;padding:32px 16px;color:var(--text-muted);font-size:.9rem}.fm-card{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--bg-page);border-radius:var(--radius-md);transition:background var(--transition)}.fm-card:hover{background:var(--bg-hover)}.fm-card-avatar{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.3rem;border:2px solid;flex-shrink:0}.fm-card-info{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.fm-card-name{font-weight:600;font-size:.95rem;color:var(--text-primary)}.fm-card-role{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.fm-card-role--parent{color:var(--color-blue-full)}.fm-card-role--child{color:var(--color-green-full)}.fm-card-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.fm-card-actions{display:flex;gap:4px}.fm-btn-icon{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:var(--text-muted);transition:all var(--transition)}.fm-btn-icon:hover{background:var(--bg-hover);color:var(--text-primary)}.fm-btn-icon--danger:hover{background:color-mix(in srgb,var(--color-error, #ef4444) 8%,transparent);color:var(--color-error, #ef4444)}.fm-btn-icon--confirm{background:color-mix(in srgb,var(--color-error, #ef4444) 8%,transparent)!important;color:var(--color-error, #ef4444)!important}.fm-confirm-text{font-size:.65rem;font-weight:600}.fm-add-btn{width:100%;margin-top:8px}.fm-avatar-picker{max-height:200px;overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding-right:4px;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.fm-avatar-picker::-webkit-scrollbar{width:4px}.fm-avatar-picker::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.fm-avatar-category{display:flex;flex-direction:column;gap:4px}.fm-avatar-category-label{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.fm-avatar-grid{display:flex;flex-wrap:wrap;gap:6px}.fm-avatar-option{width:48px;height:48px;display:flex;align-items:center;justify-content:center;font-size:1.4rem;border-radius:var(--radius-md);background:var(--bg-page);border:2px solid transparent;transition:all var(--transition)}.fm-avatar-option:hover{background:var(--bg-hover);border-color:var(--border)}.fm-avatar-option--selected{border-color:var(--color-blue-full);background:#3b82f60f;box-shadow:0 0 0 2px #3b82f626}.fm-color-grid{display:flex;flex-wrap:wrap;gap:8px}.fm-color-option{width:36px;height:36px;border-radius:50%;border:3px solid transparent;transition:all var(--transition);cursor:pointer}.fm-color-option:hover{transform:scale(1.1)}.fm-color-option--selected{border-color:var(--text-primary);box-shadow:0 0 0 3px var(--bg-surface),0 0 0 5px currentColor}.fm-role-toggle{display:flex;gap:0;border-radius:var(--radius-md);border:1px solid var(--border);overflow:hidden}.fm-role-btn{flex:1;padding:10px 16px;font-weight:600;font-size:.85rem;background:var(--bg-page);color:var(--text-secondary);transition:all var(--transition);min-height:44px}.fm-role-btn--active{background:var(--color-blue-full);color:#fff}.fm-form .modal-footer{padding:16px 0 0;border-top:none}.chores-empty{text-align:center;padding:32px 16px;color:var(--text-muted);font-size:.9rem}.chores-group{margin-bottom:20px}.chores-group-header{display:flex;align-items:center;gap:10px;margin-bottom:8px}.chores-group-avatar{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.1rem;border:2px solid;flex-shrink:0}.chores-group-name{font-family:var(--font-display);font-weight:600;font-size:1rem;color:var(--text-primary);flex:1}.chores-progress{display:flex;align-items:center;gap:8px;margin-bottom:10px}.chores-progress-bar{flex:1;height:6px;background:var(--bg-page);border-radius:3px;overflow:hidden}.chores-progress-fill{height:100%;border-radius:3px;transition:width .4s cubic-bezier(.4,0,.2,1)}.chores-progress-text{font-size:.75rem;font-weight:600;color:var(--text-muted);min-width:32px;text-align:right}.chores-member-empty{font-size:.8rem;color:var(--text-muted);padding:8px 0}.chores-list{display:flex;flex-direction:column;gap:6px}.chores-add-btn{width:100%;margin-top:16px}.chore-card{display:flex;align-items:center;gap:12px;padding:10px 12px;background:var(--bg-page);border-radius:var(--radius-md);transition:all var(--transition);position:relative;overflow:hidden;min-height:56px}.chore-card:active{transform:scale(.99)}.chore-card--done{opacity:.6}.chore-card--swiped{transform:translate(-60px);transition:transform .2s ease}.chore-card-left{flex-shrink:0}.chore-card-avatar{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1rem;border:2px solid}.chore-card-body{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.chore-card-name{font-weight:600;font-size:.9rem;color:var(--text-primary);display:flex;align-items:center;gap:6px}.chore-card-name--done{text-decoration:line-through;color:var(--text-muted)}.chore-card-icon{font-size:1rem}.chore-card-value{font-size:.75rem;font-weight:600;color:var(--color-green-full)}.chore-card-actions{display:flex;gap:2px;flex-shrink:0}.chore-card-action-btn{width:28px;height:28px;border-radius:var(--radius-sm);border:none;background:none;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition)}.chore-card-action-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.chore-card-action-btn--danger:hover{background:color-mix(in srgb,var(--color-error, #ef4444) 6%,transparent);color:var(--color-error, #ef4444)}.chore-card-action-confirm{font-size:.65rem;font-weight:600;color:var(--color-error, #ef4444);white-space:nowrap}.chore-card-skip{position:absolute;right:-56px;top:0;bottom:0;width:56px;background:var(--text-muted);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:600;text-transform:uppercase}.chore-checkbox{width:48px;height:48px;min-width:48px;border-radius:50%;border:2px solid var(--border);display:flex;align-items:center;justify-content:center;background:var(--bg-surface);transition:all var(--transition);flex-shrink:0}.chore-checkbox:hover{border-color:var(--color-green-full);background:#22c55e0a}.chore-checkbox--checked{background:var(--color-green-full);border-color:var(--color-green-full);color:#fff}.chore-checkmark{width:24px;height:24px}.chore-checkbox--bounce{animation:checkbox-bounce .6s cubic-bezier(.4,0,.2,1)}@keyframes checkbox-bounce{0%{transform:scale(1)}30%{transform:scale(1.25)}50%{transform:scale(.9)}70%{transform:scale(1.08)}to{transform:scale(1)}}.streak-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:var(--radius-pill);background:#fb923c1a;color:#ea580c;font-weight:700;transition:all var(--transition);border:none;cursor:pointer}.streak-badge:hover{background:#fb923c2e}.streak-badge--sm{font-size:.75rem;padding:2px 8px}.streak-badge--md{font-size:.85rem}.streak-badge--lg{font-size:1rem;padding:6px 14px}.streak-fire{font-size:1em}.streak-count{font-variant-numeric:tabular-nums}.streak-label{font-weight:500;font-size:.85em;opacity:.7}.streak-badge--hot{animation:streak-pulse 2s ease-in-out infinite}@keyframes streak-pulse{0%,to{box-shadow:0 0 #fb923c00}50%{box-shadow:0 0 12px 4px #fb923c33}}.chores-add-form{background:var(--bg-page);border-radius:var(--radius-lg);padding:20px;margin-top:16px}.chores-add-title{font-family:var(--font-display);font-size:1rem;font-weight:600;color:var(--text-primary);margin-bottom:16px}.chores-value-input{display:flex;align-items:center;gap:4px}.chores-value-prefix{font-weight:600;color:var(--text-secondary);font-size:1rem}.chores-value-input .form-input{flex:1}.chores-assign-grid{display:flex;flex-wrap:wrap;gap:6px}.chores-assign-btn{display:flex;align-items:center;gap:6px;padding:8px 14px;border-radius:var(--radius-pill);background:var(--bg-surface);border:2px solid var(--border);font-size:.85rem;font-weight:500;transition:all var(--transition);min-height:40px}.chores-assign-btn:hover{background:var(--bg-hover)}.chores-assign-btn--active{font-weight:600}.chores-add-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:16px}.chores-add-form .form-field{margin-bottom:12px}.lb-period-toggle{display:flex;gap:0;margin:0 24px 12px;border-radius:var(--radius-md);border:1px solid var(--border);overflow:hidden}.lb-period-btn{flex:1;padding:8px 16px;font-weight:600;font-size:.8rem;background:var(--bg-page);color:var(--text-secondary);transition:all var(--transition);min-height:40px}.lb-period-btn--active{background:var(--color-blue-full);color:#fff}.lb-list{display:flex;flex-direction:column;gap:6px}.lb-row{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--bg-page);border-radius:var(--radius-md);animation:lb-slide-in .3s ease both}@keyframes lb-slide-in{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.lb-row--top{background:linear-gradient(135deg,#3b82f608,#a855f708)}.lb-rank{font-size:1.2rem;min-width:32px;text-align:center;font-weight:700;color:var(--text-muted)}.lb-avatar{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.2rem;border:2px solid;flex-shrink:0}.lb-info{flex:1;display:flex;flex-direction:column;gap:1px;min-width:0}.lb-name{font-weight:600;font-size:.9rem;color:var(--text-primary)}.lb-stats{font-size:.7rem;color:var(--text-muted)}.lb-earnings{font-family:var(--font-display);font-weight:700;font-size:1.1rem;color:var(--color-green-full);min-width:60px;text-align:right}.sidebar-nav{display:flex;flex-direction:column;gap:4px;padding:16px 0}.sidebar-nav-btn{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:var(--radius-md);font-weight:500;font-size:.85rem;color:var(--text-secondary);transition:all var(--transition);min-height:48px}.sidebar-nav-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.sidebar-nav-btn--active{background:#3b82f60f;color:var(--color-blue-full)}.sidebar-nav-icon{font-size:1.2rem}.beacon--sidebar-right .slide-panel{right:var(--sidebar-width)}@media(max-width:768px){.slide-panel{width:100%}.slide-panel-header{padding:16px 20px 8px}.slide-panel-body{padding:0 20px 20px}.family-manager{max-width:100%;width:100%;max-height:95vh;border-radius:var(--radius-xl) var(--radius-xl) 0 0}.fm-avatar-option{width:48px;height:48px;font-size:1.3rem}.fm-btn-icon{width:44px;height:44px}.fm-card{padding:14px 16px;min-height:56px}.chore-card{min-height:60px;padding:12px 14px}.chore-checkbox{width:48px;height:48px;min-width:48px}.chores-assign-btn{min-height:44px}.lb-row{padding:14px 16px;min-height:56px}.lb-period-btn{min-height:44px}}@media(max-width:480px){.slide-panel-title{font-size:1.1rem}.chores-group-name{font-size:.9rem}.lb-earnings{font-size:1rem}}.chores-view{display:flex;flex-direction:column;height:100%;min-height:0;padding:24px 32px;overflow:hidden}.chores-view-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;flex-shrink:0}.chores-view-title{font-family:var(--font-display);font-size:1.5rem;font-weight:600;color:var(--text-primary);margin:0}.chores-view-header .btn{display:inline-flex;align-items:center;gap:6px}.chores-unassigned-section{margin-bottom:24px;flex-shrink:0}.chores-section-title{font-family:var(--font-display);font-size:1.1rem;font-weight:600;color:var(--text-primary);margin:0 0 12px}.chores-unassigned-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px}.unassigned-chore-card{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--bg-page);border:1.5px dashed var(--border);border-radius:var(--radius-md);transition:all var(--transition);min-height:56px}.unassigned-chore-card:hover{border-color:var(--color-blue-full);background:var(--bg-hover)}.unassigned-chore-card .chore-card-body{flex:1}.unassigned-chore-card .chore-card-actions{display:flex;gap:4px;align-items:center}.btn--sm{padding:6px 12px;font-size:.8rem;min-height:32px}.modal--sm{max-width:400px;width:90%}@media(max-width:768px){.chores-unassigned-list{grid-template-columns:1fr}}.chores-family-grid{display:grid;grid-template-columns:repeat(var(--member-count, 1),minmax(200px,1fr));gap:20px;flex:1;min-height:0;overflow-x:auto}.chores-member-col{display:flex;flex-direction:column;gap:10px;min-width:0;min-height:0;background:var(--bg-card, var(--bg-page));border-radius:var(--radius-lg);padding:16px}.chores-member-col-list{flex:1;min-height:0;overflow-y:auto}.chores-member-add-btn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:10px;border-radius:var(--radius-md);border:1.5px dashed var(--border);background:none;color:var(--text-secondary);font-size:.85rem;font-weight:600;cursor:pointer;transition:all var(--transition, .15s ease);flex-shrink:0}.chores-member-add-btn:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--text-secondary)}@media(max-width:768px){.chores-view{padding:16px}.chores-family-grid{grid-template-columns:1fr;overflow-x:visible;overflow-y:auto}.chores-member-col{min-height:200px}}.dashboard{display:grid;grid-template-columns:1fr 300px;grid-template-rows:auto 1fr;grid-template-areas:"topbar topbar" "main   sidebar";height:100%;padding:24px 32px;gap:24px;overflow:hidden}.dashboard--classic{grid-template-columns:1fr;grid-template-rows:auto 1fr;grid-template-areas:"topbar" "classic";padding:32px 40px;gap:20px}.dash-classic{grid-area:classic;display:grid;grid-template-columns:1fr 1fr 1fr;gap:28px;min-height:0;overflow:hidden}.dash-classic-col{display:flex;flex-direction:column;min-height:0;gap:12px}.dash-classic-sidebar{gap:24px;overflow-y:auto;min-height:0;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.dash-week-day{margin-bottom:14px}.dash-week-day-label{font-family:var(--font-display);font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:6px}.dash-week-empty{font-size:13px;color:var(--text-light);font-style:italic;padding-bottom:4px}.dashboard--compact{grid-template-columns:1fr;grid-template-rows:auto auto auto;grid-template-areas:"topbar" "main" "sidebar";height:auto;overflow-y:auto;padding:20px 20px 80px;gap:20px}.dashboard--compact .dash-sidebar{border-left:none;border-top:1px solid var(--border-subtle);padding-left:0;padding-top:16px}.dash-topbar-region{grid-area:topbar;display:flex;flex-direction:column;gap:12px;min-width:0}.dash-topbar{grid-area:topbar;display:flex;align-items:center;justify-content:space-between;gap:16px}.dash-topbar-left{display:flex;align-items:baseline;gap:16px}.dash-topbar-time{font-family:var(--font-display);font-size:48px;font-weight:700;line-height:1;color:var(--accent);font-variant-numeric:tabular-nums;letter-spacing:-1px}[data-theme=dark] .dash-topbar-time{color:var(--text-primary)}.dash-topbar-date{font-family:var(--font-display);font-size:20px;font-weight:400;color:var(--text-secondary)}.dash-topbar-date-nav{display:flex;align-items:center;gap:10px}.dash-topbar-weather{display:flex;align-items:center;gap:10px;padding:10px 16px;background:var(--bg-surface, #ffffff);border-radius:var(--radius-md, 12px);box-shadow:var(--shadow-sm)}.dash-topbar-weather--clickable{cursor:pointer;transition:box-shadow var(--transition),transform var(--transition)}.dash-topbar-weather--clickable:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.dash-topbar-weather-icon{font-size:28px;line-height:1}.dash-topbar-weather-temp{font-family:var(--font-display);font-size:24px;font-weight:600;color:var(--text-primary)}.dash-topbar-weather-cond{font-size:13px;color:var(--text-muted)}.dash-main{grid-area:main;min-height:0}.dashboard--advanced .dash-main{display:flex;flex-direction:column}.dash-family-grid{display:grid;grid-template-columns:repeat(var(--member-count, 1),minmax(140px,1fr));gap:20px;align-items:stretch;height:100%;min-height:0}.dash-member-col{display:flex;flex-direction:column;gap:10px;min-width:0;min-height:0}.dash-member-header{display:flex;align-items:center;gap:10px;padding-bottom:8px;border-bottom:2px solid var(--border-subtle)}.dash-member-header--clickable{background:none;border:none;border-bottom:2px solid var(--border-subtle);cursor:pointer;text-align:left;width:100%;border-radius:6px 6px 0 0;transition:background var(--transition, .15s ease)}.dash-member-header--clickable:hover,.dash-member-col--selected .dash-member-header--clickable{background:var(--bg-hover)}.dash-member-avatar{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;border:2px solid;flex-shrink:0}.dash-member-name{font-family:var(--font-display);font-size:15px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.dash-member-events{display:flex;flex-direction:column;gap:8px;flex:1;min-height:0;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.dash-member-empty{font-size:13px;color:var(--text-light);font-style:italic;padding:8px 0}.dash-events-fallback{height:100%;display:flex;flex-direction:column}.dash-sidebar{grid-area:sidebar;display:flex;flex-direction:column;gap:24px;overflow-y:auto;min-height:0;border-left:1px solid var(--border-subtle);padding-left:24px;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.dash-sidebar-section{display:flex;flex-direction:column}.dash-menu-list{list-style:none;display:flex;flex-direction:column;gap:8px}.dash-menu-item{display:flex;align-items:flex-start;gap:10px;padding:8px 10px;background:var(--bg-surface);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm)}.dash-menu-icon{font-size:18px;line-height:1;margin-top:2px}.dash-menu-info{display:flex;flex-direction:column;gap:2px;min-width:0}.dash-menu-type{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.dash-menu-name{font-size:.85rem;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dash-sidebar-heading{font-family:var(--font-display);font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:10px}.dashboard-section-title{font-family:var(--font-display);font-size:18px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:1px;margin-bottom:16px;flex-shrink:0}.dash-day-nav-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;border:1px solid var(--border, #e5e5e5);background:var(--bg-elevated, transparent);color:var(--text-secondary);font-size:18px;line-height:1;cursor:pointer;transition:background .15s ease}.dash-day-nav-btn:hover{background:var(--bg-hover)}.dash-day-nav-today{border:none;background:var(--bg-hover);color:var(--text-secondary);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:4px 10px;border-radius:12px;cursor:pointer}.dash-day-nav-today:hover{background:var(--border, #e5e5e5)}.dashboard-events-scroll{flex:1;overflow-y:auto;min-height:0;scrollbar-width:thin;scrollbar-color:var(--border, #e5e5e5) transparent;padding-right:4px}.dashboard-events-scroll::-webkit-scrollbar{width:4px}.dashboard-events-scroll::-webkit-scrollbar-track{background:transparent}.dashboard-events-scroll::-webkit-scrollbar-thumb{background:var(--border, #e5e5e5);border-radius:2px}.dashboard-events-list{display:flex;flex-direction:column;gap:8px}.dashboard-empty{font-size:16px;color:var(--text-muted);padding:24px 0;font-style:italic}.event-card{border-radius:var(--radius-md);padding:14px 16px;display:flex;flex-direction:column;gap:4px;box-shadow:var(--shadow-sm);transition:transform .15s ease,box-shadow .15s ease}.event-card:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.event-card--clickable{cursor:pointer}.event-card--past{opacity:.6;filter:grayscale(.6)}.event-card-calendar{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#00000080}.event-card-title{font-family:var(--font-display);font-size:15px;font-weight:600;color:#000000d9;line-height:1.3}.event-card-time{font-size:13px;color:#00000080}.event-card-location{font-size:12px;color:#00000080;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}[data-theme=dark] .event-card{box-shadow:0 1px 4px #0000004d}[data-theme=dark] .event-card-calendar{color:#00000080}[data-theme=dark] .event-card-title{color:#000000d9}[data-theme=dark] .event-card-time,[data-theme=dark] .event-card-location{color:#00000080}.task-checklist{list-style:none;display:flex;flex-direction:column;gap:4px;overflow-y:auto;flex:1;min-height:0}.task-checklist-item{display:flex;align-items:center;gap:12px;padding:8px 4px;min-height:44px;border-radius:8px;transition:background .15s ease}.task-checklist-item:hover{background:var(--bg-hover, rgba(0, 0, 0, .04))}.task-checklist-item--done{opacity:.5}.task-checkbox{width:44px;height:44px;display:flex;align-items:center;justify-content:center;flex-shrink:0;padding:0;border:none;background:none;cursor:pointer;-webkit-tap-highlight-color:transparent}.task-checkbox-box{width:22px;height:22px;border-radius:6px;border:2px solid var(--border, #e5e5e5);display:flex;align-items:center;justify-content:center;transition:all .2s ease;color:#fff}.task-checkbox--checked .task-checkbox-box{background:var(--accent, #3b82f6);border-color:var(--accent, #3b82f6)}.task-checkbox--completing .task-checkbox-box{animation:check-pop .4s ease}@keyframes check-pop{0%{transform:scale(1)}30%{transform:scale(1.3)}50%{transform:scale(.9)}to{transform:scale(1)}}.task-checklist-label{font-size:15px;font-weight:500;color:var(--text-primary);display:flex;align-items:center;gap:8px;flex:1;min-width:0}.task-checklist-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.task-checklist-label--done{text-decoration:line-through;color:var(--text-muted)}.task-checklist-icon{font-size:16px;line-height:1}.task-checklist-assignees{display:flex;align-items:center;gap:4px;flex-shrink:0}.task-checklist-assignee{display:flex;align-items:center;gap:4px;padding:2px 8px 2px 2px;border-radius:999px;border:1.5px solid;flex-shrink:0}.task-checklist-avatar{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.7rem;flex-shrink:0}.task-checklist-assignee-name{font-size:.72rem;font-weight:600;white-space:nowrap}.task-checklist-empty{font-size:16px;color:var(--text-muted);padding:24px 0;font-style:italic}.task-checklist-done{font-size:16px;color:var(--color-green-full, #22c55e);padding:24px 0;font-weight:500}.task-groups{display:flex;flex-direction:column;gap:16px;overflow-y:auto;flex:1;min-height:0}.task-group{display:flex;flex-direction:column;gap:4px}.task-group-header{display:flex;align-items:center;gap:8px;padding:0 4px 2px}.task-group-avatar{width:24px;height:24px;border-radius:50%;border:1.5px solid;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;flex-shrink:0}.task-group-name{font-size:.8rem;font-weight:700}.task-groups .task-checklist{flex:none;overflow-y:visible}@media(max-width:768px){.dashboard{grid-template-columns:1fr;grid-template-rows:auto auto auto;grid-template-areas:"topbar" "main" "sidebar";gap:16px;padding:16px 16px 80px;height:auto;overflow-y:auto}.dash-topbar{flex-wrap:wrap}.dash-topbar-time{font-size:36px}.dash-topbar-date{font-size:16px}.dash-family-grid{grid-template-columns:1fr;gap:12px}.dash-member-header{border-bottom-width:1px}.dash-sidebar{border-left:none;border-top:1px solid var(--border-subtle);padding-left:0;padding-top:16px}.dashboard-events-scroll{max-height:280px;overflow-y:auto}.event-card{padding:12px 14px}.task-checklist-item{min-height:48px}.dashboard--classic{grid-template-rows:auto auto;height:auto;overflow-y:auto;padding:16px 16px 80px}.dash-classic{grid-template-columns:1fr;overflow:visible;gap:20px}}@media(max-width:480px){.dashboard{padding:12px 12px 80px;gap:12px}.dash-topbar-time{font-size:28px}.dash-topbar-date{font-size:14px}.dash-topbar-weather{padding:8px 12px}.dash-topbar-weather-icon{font-size:20px}.dash-topbar-weather-temp{font-size:18px}.dashboard-section-title{font-size:13px;margin-bottom:10px}.dashboard-events-scroll{max-height:220px}.event-card{padding:10px 12px}.event-card-title{font-size:13px}.event-card-time{font-size:12px}}.dash-edit-toggle{position:fixed;top:6px;right:8px;z-index:50;padding:4px 7px;border-radius:10px;border:1px solid var(--border, #e5e5e5);background:var(--bg-surface, #ffffff);color:var(--text-secondary);font-size:11px;font-weight:600;cursor:pointer;box-shadow:var(--shadow-sm)}.dash-edit-toggle:hover{box-shadow:var(--shadow-md)}.dash-region-editor{display:flex;flex-direction:column;gap:16px;min-width:0;position:relative}.dash-card-edit-wrapper{position:relative;border:1px dashed var(--border, #e5e5e5);border-radius:var(--radius-md, 12px);padding:8px}.dash-card-edit-wrapper--dragging{opacity:.6}.dash-card-edit-toolbar{display:flex;justify-content:flex-end;gap:6px;margin-bottom:4px}.dash-card-edit-btn{width:26px;height:26px;border-radius:50%;border:1px solid var(--border, #e5e5e5);background:var(--bg-surface, #ffffff);cursor:grab;font-size:13px;line-height:1}.dash-card-edit-remove{color:var(--color-red-full, #d9534f)}.dash-card-edit-resize{cursor:nwse-resize;touch-action:none}.dash-card-add-float{position:absolute;right:12px;bottom:12px;z-index:10;min-height:36px;padding:8px 14px;border:1px solid var(--border, #e5e5e5);border-radius:18px;background:var(--bg-surface, #ffffff);color:var(--text-secondary);font-weight:600;cursor:pointer;box-shadow:var(--shadow-sm)}.dash-card-add-float:hover{background:var(--bg-hover);box-shadow:var(--shadow-md)}.dash-region-editor--topbar .dash-card-add-float,.dash-region-editor--sidebar .dash-card-add-float{left:50%;right:auto;transform:translate(-50%)}.dash-region-editor--topbar{background-image:linear-gradient(to right,var(--border-subtle) 1px,transparent 1px);background-size:calc(100% / 12) 100%}.dash-region-editor--sidebar{background-image:linear-gradient(to bottom,var(--border-subtle) 1px,transparent 1px);background-size:100% 48px}.dash-region-editor--topbar .dash-card-edit-wrapper,.dash-region-editor--sidebar .dash-card-edit-wrapper{outline:1px dashed var(--accent);outline-offset:-1px}.dash-card-picker-list{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.dash-card-picker-option{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid var(--border, #e5e5e5);border-radius:var(--radius-md, 12px);background:none;cursor:pointer;text-align:left}.dash-card-picker-option:hover{background:var(--bg-hover)}.dash-card-picker-icon{font-size:20px}.dash-card-picker-entity-list{max-height:220px;overflow-y:auto;display:flex;flex-direction:column;gap:6px}.dash-entity-picker{display:flex;flex-direction:column;gap:8px}.dash-entity-filters{display:flex;gap:8px}.dash-entity-filters .form-input{flex:2 1 0;min-width:0}.dash-entity-filters .form-select{flex:1 1 0;min-width:0}.dash-card-picker-entity-option{display:flex;align-items:center;gap:8px;font-size:13px}.dash-ha-card-empty{font-size:13px;color:var(--text-light);font-style:italic}.dash-ha-card-subtitle{margin-top:-5px;margin-bottom:8px;font-size:12px;color:var(--text-muted)}.dash-ha-card-state{font-family:var(--font-display);font-size:24px;font-weight:600;color:var(--text-primary)}.dash-ha-card-unit{font-size:14px;font-weight:400;color:var(--text-muted);margin-left:4px}.dash-ha-entities-list{list-style:none;display:flex;flex-direction:column;gap:8px}.dash-ha-entities-item{display:flex;justify-content:space-between;font-size:13px}.dash-ha-entities-name{color:var(--text-secondary)}.dash-ha-entities-state{font-weight:600;color:var(--text-primary)}.dash-ha-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px 12px;border:1px solid var(--border, #e5e5e5);border-radius:var(--radius-md, 12px);background:none;cursor:pointer;font-size:14px;color:var(--text-primary)}.dash-ha-toggle-list{display:flex;flex-direction:column;gap:8px}.dash-ha-toggle-switch{width:36px;height:20px;border-radius:10px;background:var(--border, #e5e5e5);position:relative;transition:background var(--transition, .15s ease)}.dash-ha-toggle-switch:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform var(--transition, .15s ease)}.dash-ha-toggle--on .dash-ha-toggle-switch{background:var(--accent)}.dash-ha-toggle--on .dash-ha-toggle-switch:after{transform:translate(16px)}.dash-card--sm{min-height:48px}.dash-card--md{min-height:140px}.dash-card--lg{min-height:240px}.dash-gridstack-wrapper{flex:1;min-height:0;display:flex;flex-direction:column;gap:12px;position:relative}.dash-gridstack-wrapper--topbar{flex:0 0 auto;min-height:104px}.dash-gridstack-wrapper--sidebar{height:100%}.dash-gridstack-wrapper--topbar .grid-stack{flex:0 0 auto;overflow-y:visible}.grid-stack{flex:1;min-height:0;overflow-y:auto}.grid-stack-item-content{overflow:auto}.grid-stack:not(.grid-stack-static){background-image:linear-gradient(to right,var(--border-subtle) 1px,transparent 1px),linear-gradient(to bottom,var(--border-subtle) 1px,transparent 1px);background-position:var(--gs-item-margin-left) var(--gs-item-margin-top);background-size:var(--gs-column-width) 100%,100% var(--gs-cell-height)}.grid-stack:not(.grid-stack-static)>.grid-stack-item>.grid-stack-item-content{outline:1px dashed var(--accent);outline-offset:-1px}.dash-gridstack-item-inner{position:relative;height:100%;min-height:0;overflow:auto}.dash-card-edit-toolbar--overlay{position:absolute;top:8px;right:8px;z-index:5;margin-bottom:0}.dash-view-tabs{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.dash-view-tab{display:flex;align-items:center;gap:4px}.dash-view-tab-btn{padding:6px 14px;border-radius:16px;border:1px solid var(--border, #e5e5e5);background:none;color:var(--text-muted);font-size:13px;font-weight:600;cursor:pointer}.dash-view-tab--active .dash-view-tab-btn{background:var(--accent);border-color:var(--accent);color:var(--bg-surface, #fff)}.dash-view-tab-icon{width:22px;height:22px;border-radius:50%;border:1px solid var(--border, #e5e5e5);background:none;font-size:11px;cursor:pointer}.dash-view-tab-add{width:26px;height:26px;border-radius:50%;border:1px dashed var(--border, #e5e5e5);background:none;color:var(--text-muted);font-size:15px;cursor:pointer}.grocery-view{display:flex;flex-direction:column;height:100%;background:var(--bg-primary);color:var(--text-primary);font-family:var(--font-body);overflow:hidden}.grocery-view-header{padding:20px 20px 0;flex-shrink:0}.grocery-view-selector{position:relative;display:inline-flex;width:100%;max-width:360px}.grocery-view-select{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:100%;padding:12px 40px 12px 16px;font-size:1rem;font-weight:600;font-family:inherit;color:var(--text-primary);background:var(--bg-surface);border:1.5px solid var(--border);border-radius:12px;cursor:pointer;outline:none;transition:border-color .2s ease}.grocery-view-select:focus{border-color:var(--accent, var(--color-blue-full))}.grocery-view-select-icon{position:absolute;right:14px;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}.grocery-view-add{display:flex;gap:8px;padding:16px 20px;flex-shrink:0}.grocery-view-input{flex:1;border:1.5px solid var(--border);border-radius:12px;padding:12px 16px;font-size:16px;font-family:inherit;background:var(--bg-surface);color:var(--text-primary);min-height:44px;outline:none;transition:border-color .2s ease}.grocery-view-input:focus{border-color:var(--accent, var(--color-blue-full))}.grocery-view-input::placeholder{color:var(--text-muted)}.grocery-view-add-btn{width:44px;height:44px;border-radius:50%;background:var(--accent, var(--color-blue-full));color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .2s ease,transform .15s ease}.grocery-view-add-btn:hover{opacity:.9;transform:scale(1.05)}.grocery-view-add-btn:active{transform:scale(.95)}.grocery-view-add-btn:disabled{background:var(--border);cursor:default;transform:none}.grocery-view-list{flex:1;overflow-y:auto;padding:0 20px 24px;scrollbar-width:thin}.grocery-view-section{margin-bottom:8px}.grocery-view-section-header{font-size:.8rem;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;padding:12px 4px 8px;display:flex;align-items:center;gap:4px;background:none;border:none;font-family:inherit;cursor:default}.grocery-view-section-header--toggle{cursor:pointer;-webkit-tap-highlight-color:transparent;color:var(--text-muted)}.grocery-view-section-header--toggle:hover{color:var(--text-secondary)}.grocery-view-item{display:flex;align-items:center;gap:14px;padding:12px 8px;border-radius:12px;min-height:44px;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .15s ease;text-align:left;width:100%;background:none;border:none;font-family:inherit;color:inherit;font-size:inherit}.grocery-view-item:hover,.grocery-view-item:active{background:var(--bg-hover)}.grocery-view-checkbox{width:24px;height:24px;border-radius:50%;border:2px solid var(--border);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s ease;color:#fff}.grocery-view-checkbox--checked{background:var(--accent, var(--color-blue-full));border-color:var(--accent, var(--color-blue-full));animation:grocery-check-bounce .3s ease}@keyframes grocery-check-bounce{0%{transform:scale(1)}40%{transform:scale(1.2)}to{transform:scale(1)}}.grocery-view-item-name{flex:1;font-size:1rem;color:var(--text-primary);transition:all .2s ease}.grocery-view-item--checked .grocery-view-item-name{text-decoration:line-through;color:var(--text-muted)}.grocery-view-item-row{display:flex;align-items:center}.grocery-view-item-row .grocery-view-item{flex:1;min-width:0}.grocery-view-delete{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;border:none;background:none;color:var(--text-muted);cursor:pointer;opacity:0;transition:opacity .15s ease,color .15s ease;flex-shrink:0}.grocery-view-item-row:hover .grocery-view-delete{opacity:1}@media(hover:none),(max-width:1024px){.grocery-view-delete{opacity:.5}}.grocery-view-delete:hover{color:#e55}.grocery-view-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;color:var(--text-muted);font-size:.95rem;text-align:center;gap:16px}.grocery-view-empty-icon{opacity:.4}.grocery-view-loading{text-align:center;padding:32px 16px;color:var(--text-muted);font-size:.9rem}.meal-plan-bar{background:var(--bg-surface);border-bottom:1px solid var(--border-subtle);box-shadow:0 1px 4px #0000000a;font-family:var(--font-body);color:var(--text-primary);z-index:60}.meal-plan-bar--collapsed{background:var(--bg-surface);border:none;box-shadow:0 1px 4px #0000000a;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:4px;min-height:28px;width:100%;color:var(--text-muted);font-family:inherit}.meal-plan-bar--collapsed:hover{background:var(--bg-hover)}.meal-plan-bar-content{display:flex;align-items:center;gap:8px;padding:8px 20px;min-height:40px;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .15s ease;width:100%;background:none;border:none;font-family:inherit;color:inherit;font-size:inherit;text-align:left}.meal-plan-bar-content:hover{background:var(--bg-hover)}.meal-plan-bar-label{font-size:.8rem;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;flex-shrink:0}.meal-plan-bar-meals{font-size:.9rem;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.meal-plan-bar-notes{font-size:.75rem;color:var(--text-muted);margin-left:auto;flex-shrink:0}.meal-plan-bar-icon{display:flex;align-items:center;justify-content:center}@media(max-width:768px){.grocery-view-header{padding:16px 16px 0}.grocery-view-selector{max-width:100%}.grocery-view-add{padding:12px 16px}.grocery-view-list{padding:0 16px 20px}.grocery-view-item{min-height:48px;padding:14px 8px}.meal-plan-bar-content{padding:8px 12px}.meal-plan-bar-notes{display:none}}@media(max-width:480px){.grocery-view-header{padding:12px 12px 0}.grocery-view-add{padding:10px 12px}.grocery-view-list{padding:0 12px 16px}}.now-playing-bar{position:relative;display:flex;align-items:center;gap:12px;padding:8px 16px;background:color-mix(in srgb,var(--bg-surface) 75%,transparent);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--border-subtle);border-radius:var(--radius-lg) var(--radius-lg) 0 0;animation:now-playing-slide-up .3s ease;min-height:64px;overflow:hidden}.now-playing-progress{position:absolute;top:0;left:0;right:0;height:2px;background:var(--border-subtle, rgba(0, 0, 0, .06))}.now-playing-progress-fill{height:100%;background:var(--accent, #3b82f6);transition:width 1s linear}[data-theme=dark] .now-playing-bar{background:#0f172acc}@keyframes now-playing-slide-up{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.now-playing-info{display:flex;align-items:center;gap:10px;flex:1;min-width:0;text-align:left}.now-playing-art{width:44px;height:44px;border-radius:var(--radius-sm);object-fit:cover;flex-shrink:0;box-shadow:var(--shadow-sm)}.now-playing-art--placeholder{background:var(--bg-hover)}.now-playing-text{display:flex;flex-direction:column;min-width:0}.now-playing-title{font-size:.85rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.now-playing-artist{font-size:.75rem;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.now-playing-controls{display:flex;align-items:center;gap:4px;flex-shrink:0}.now-playing-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;color:var(--text-primary);transition:all var(--transition)}.now-playing-btn:hover{background:var(--bg-hover)}.now-playing-btn--play{width:44px;height:44px;background:var(--color-blue-full);color:#fff}.now-playing-btn--play:hover{opacity:.9}.now-playing-volume{display:flex;align-items:center;gap:4px;flex-shrink:0;width:120px}.now-playing-volume-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:80px;height:4px;border-radius:2px;background:var(--border);outline:none}.now-playing-volume-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:var(--color-blue-full);cursor:pointer}.now-playing-volume-slider::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--color-blue-full);cursor:pointer;border:none}.music-view{display:flex;flex-direction:column;align-items:center;padding:40px 24px;max-width:480px;margin:0 auto;height:100%;overflow-y:auto}.music-player-selector{position:relative;margin-bottom:24px;align-self:center}.music-player-selector-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--radius-pill);background:var(--bg-hover);color:var(--text-primary);font-size:.85rem;font-weight:500;transition:all var(--transition)}.music-player-selector-btn:hover{background:var(--border)}.music-player-dropdown{position:absolute;top:calc(100% + 4px);left:50%;transform:translate(-50%);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);min-width:220px;z-index:20;animation:fade-in .15s ease}.music-player-dropdown-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px 16px;font-size:.85rem;color:var(--text-primary);transition:background var(--transition)}.music-player-dropdown-item:hover{background:var(--bg-hover)}.music-player-dropdown-item--active{color:var(--color-blue-full);font-weight:600}.music-player-dropdown-playing{font-size:.7rem;color:var(--color-green-full);font-weight:500;text-transform:uppercase;letter-spacing:.5px}.music-art-container{width:280px;height:280px;flex-shrink:0;margin-bottom:32px}.music-art{width:100%;height:100%;border-radius:var(--radius-lg);object-fit:cover;box-shadow:0 8px 32px #00000026}.music-art--placeholder{display:flex;align-items:center;justify-content:center;background:var(--bg-hover);color:var(--text-muted)}.music-track-info{text-align:center;margin-bottom:24px;width:100%}.music-track-title{font-family:var(--font-display);font-size:1.4rem;font-weight:700;color:var(--text-primary);margin-bottom:4px;line-height:1.2}.music-track-artist{font-size:1rem;color:var(--text-secondary);margin-bottom:2px}.music-track-album{font-size:.85rem;color:var(--text-muted)}.music-progress{display:flex;align-items:center;gap:10px;width:100%;margin-bottom:24px}.music-progress-time{font-size:.7rem;font-weight:500;color:var(--text-muted);font-variant-numeric:tabular-nums;min-width:36px;text-align:center}.music-progress-bar{flex:1;height:4px;background:var(--border);border-radius:2px;overflow:hidden}.music-progress-fill{height:100%;background:var(--color-blue-full);border-radius:2px;transition:width 1s linear}.music-controls{display:flex;align-items:center;justify-content:center;gap:24px;margin-bottom:24px}.music-control-btn{width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:50%;color:var(--text-primary);transition:all var(--transition)}.music-control-btn:hover{background:var(--bg-hover)}.music-control-btn:active{transform:scale(.92)}.music-control-btn--play{width:64px;height:64px;background:var(--color-blue-full);color:#fff;box-shadow:0 4px 16px #3b82f64d}.music-control-btn--play:hover{background:#2563eb;box-shadow:0 6px 20px #3b82f666}.music-volume{display:flex;align-items:center;gap:10px;width:100%;max-width:280px}.music-volume-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:50%;color:var(--text-secondary);transition:all var(--transition);flex-shrink:0}.music-volume-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.music-volume-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex:1;height:4px;border-radius:2px;background:var(--border);outline:none}.music-volume-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:var(--color-blue-full);cursor:pointer}.music-volume-slider::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--color-blue-full);cursor:pointer;border:none}@media(max-width:768px){.music-view{padding:24px 20px}.music-art-container{width:240px;height:240px;margin-bottom:24px}.music-track-title{font-size:1.2rem}.now-playing-volume{display:none}.music-control-btn{width:52px;height:52px}.music-control-btn--play{width:68px;height:68px}.now-playing-btn{width:44px;height:44px}.now-playing-btn--play{width:48px;height:48px}}@media(max-width:480px){.music-view{padding:16px}.music-art-container{width:200px;height:200px;margin-bottom:20px}.music-track-title{font-size:1.1rem}.music-track-artist{font-size:.9rem}.music-controls{gap:16px}}.photo-frame{position:relative;width:100%;height:100%;background:#000;overflow:hidden;cursor:pointer}.photo-frame-image-wrapper{position:absolute;top:0;right:0;bottom:0;left:0;animation:photo-crossfade 1s ease}.photo-frame-image{width:100%;height:100%;object-fit:cover}@keyframes photo-crossfade{0%{opacity:0}to{opacity:1}}.photo-frame-overlay{position:absolute;bottom:0;left:0;right:0;padding:80px 32px 32px;background:linear-gradient(to top,rgba(0,0,0,.5) 0%,transparent 100%);pointer-events:none}.photo-frame-clock{font-family:var(--font-display);font-size:3.5rem;font-weight:300;color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.4);line-height:1;margin-bottom:4px}.photo-frame-date{font-size:1.1rem;font-weight:400;color:#ffffffd9;text-shadow:0 1px 8px rgba(0,0,0,.4)}.photo-frame-weather{font-size:.9rem;font-weight:400;color:#ffffffb3;text-shadow:0 1px 6px rgba(0,0,0,.3);margin-top:4px}.photo-frame-controls{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;gap:32px;background:#0000004d;opacity:0;pointer-events:none;transition:opacity .3s ease}.photo-frame-controls--visible{opacity:1;pointer-events:auto}.photo-frame-control-btn{width:64px;height:64px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#ffffff26;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#fff;transition:all .2s ease}.photo-frame-control-btn:hover{background:#ffffff40;transform:scale(1.05)}.photo-frame-control-btn:active{transform:scale(.95)}.photo-frame-control-btn--play{width:72px;height:72px;background:#fff3}.photo-frame-back{position:absolute;top:16px;left:16px;width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#0000004d;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#fff;transition:all .2s ease;z-index:10}.photo-frame-back:hover{background:#00000080}.photo-frame-music{position:absolute;bottom:0;left:0;right:0;z-index:5}.photo-frame-music .now-playing-bar{background:#0009;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid rgba(255,255,255,.1);border-radius:0}.photo-frame-music .now-playing-title,.photo-frame-music .now-playing-btn,.photo-frame-music .now-playing-btn--play{color:#fff}.photo-frame-music .now-playing-artist{color:#ffffffb3}.photo-frame-music .now-playing-btn--play{background:#fff3}.photo-frame-music .now-playing-btn--play:hover{background:#ffffff4d}.photo-frame-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:#fff9;text-align:center;font-size:1.1rem}.photo-frame-empty-hint{font-size:.85rem;color:#fff6;margin-top:8px}@media(max-width:768px){.photo-frame-clock{font-size:2.5rem}.photo-frame-overlay{padding:60px 20px 20px}.photo-frame-control-btn{width:56px;height:56px}.photo-frame-control-btn--play{width:64px;height:64px}.photo-frame-back{width:48px;height:48px}.photo-frame-music{bottom:var(--mobile-tab-bar-height, 0px)}}@media(max-width:480px){.photo-frame-clock{font-size:2rem}.photo-frame-date{font-size:.9rem}.photo-frame-overlay{padding:40px 16px 16px}.photo-frame-controls{gap:20px}.photo-frame-control-btn{width:48px;height:48px}.photo-frame-control-btn--play{width:56px;height:56px}}.screensaver-dim{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;z-index:9999;cursor:pointer;animation:screensaver-fade-in 1s ease}.screensaver-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg-primary, #000);z-index:9999;cursor:pointer;animation:screensaver-fade-in 1.5s ease}[data-theme=light] .screensaver-overlay{background:#0a0a0a}[data-theme=dark] .screensaver-overlay{background:var(--bg-primary, #0a0a0a)}.screensaver-clock{position:absolute;transform:translate(-50%,-50%);text-align:center;transition:left 4s cubic-bezier(.4,0,.2,1),top 4s cubic-bezier(.4,0,.2,1);-webkit-user-select:none;user-select:none}.screensaver-time{font-family:var(--font-display, "Fraunces", serif);font-size:120px;font-weight:300;color:#ffffffd9;line-height:1;letter-spacing:-3px;font-variant-numeric:tabular-nums}.screensaver-date{font-family:var(--font-display, "Fraunces", serif);font-size:24px;font-weight:400;color:#fff6;margin-top:12px}@keyframes screensaver-fade-in{0%{opacity:0}to{opacity:1}}@media(max-width:768px){.screensaver-time{font-size:72px}.screensaver-date{font-size:18px}}@media(max-width:480px){.screensaver-time{font-size:56px;letter-spacing:-2px}.screensaver-date{font-size:15px;margin-top:8px}}.timer{display:flex;flex-direction:column;align-items:center;gap:16px;padding:24px;background:var(--bg-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.timer--compact{padding:12px;gap:8px}.timer-modes{display:flex;gap:4px;background:var(--bg-primary);border-radius:var(--radius-pill);padding:3px}.timer-mode-btn{padding:6px 14px;border-radius:var(--radius-pill);font-size:.75rem;font-weight:600;color:var(--text-muted);transition:all var(--transition);min-height:36px}.timer-mode-btn:hover{color:var(--text-secondary)}.timer-mode-btn--active{background:var(--bg-surface);color:var(--text-primary);box-shadow:var(--shadow-sm)}.timer--compact .timer-mode-btn{padding:4px 10px;font-size:.65rem}.timer-display{font-family:var(--font-display);font-size:56px;font-weight:600;color:var(--text-primary);font-variant-numeric:tabular-nums;line-height:1;letter-spacing:-1px}.timer--compact .timer-display{font-size:32px}.timer-display--finished{color:var(--color-error, #ef4444);animation:timer-pulse 1s ease infinite}@keyframes timer-pulse{0%,to{opacity:1}50%{opacity:.4}}.timer-sound-picker{display:flex;align-items:center;gap:6px;justify-content:center;flex-wrap:wrap;margin-bottom:8px}.timer-sound-icon{color:var(--text-muted);flex-shrink:0}.timer-sound-btn{padding:3px 10px;border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--bg-primary);color:var(--text-secondary);font-size:.7rem;font-weight:500;cursor:pointer;transition:all var(--transition)}.timer-sound-btn:hover{border-color:var(--accent);color:var(--text-primary)}.timer-sound-btn--active{background:var(--accent);color:#fff;border-color:var(--accent)}.timer-btn--dismiss{background:color-mix(in srgb,var(--color-error, #ef4444) 15%,var(--bg-secondary));color:var(--color-error, #ef4444)}.timer-btn--dismiss:hover{background:color-mix(in srgb,var(--color-error, #ef4444) 25%,var(--bg-secondary))}.timer-add-section{display:flex;flex-direction:column;align-items:center;gap:10px;width:100%}.timer-name-input{width:100%;max-width:280px;padding:8px 12px;border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--bg-primary);color:var(--text-primary);font-size:.85rem;outline:none;transition:border-color var(--transition)}.timer-name-input::placeholder{color:var(--text-muted)}.timer-name-input:focus{border-color:var(--accent)}.timer-start-btn{display:inline-flex;align-items:center;gap:6px;width:auto;height:auto;border-radius:var(--radius-pill);padding:8px 20px;font-size:.8rem;font-weight:600}.timer-list{display:flex;flex-direction:column;gap:8px;width:100%;max-height:320px;overflow-y:auto}.timer-card{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:var(--radius-md, 8px);background:var(--bg-primary);border:1px solid var(--border);transition:background var(--transition)}.timer-card--finished{background:color-mix(in srgb,var(--color-error, #ef4444) 10%,var(--bg-primary));border-color:color-mix(in srgb,var(--color-error, #ef4444) 30%,var(--border));animation:timer-card-pulse 1.5s ease infinite}@keyframes timer-card-pulse{0%,to{opacity:1}50%{opacity:.7}}.timer-card-name{flex:1;min-width:0;font-size:.85rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.timer-card-time{font-family:var(--font-display);font-size:1.3rem;font-weight:600;font-variant-numeric:tabular-nums;color:var(--text-primary);min-width:72px;text-align:center}.timer-card-controls{display:flex;gap:4px;flex-shrink:0}.timer-btn--sm{width:32px;height:32px}.timer-presets{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}.timer-preset{padding:6px 12px;border-radius:var(--radius-pill);font-size:.75rem;font-weight:600;color:var(--text-secondary);background:var(--bg-primary);border:1px solid var(--border);transition:all var(--transition)}.timer-preset:hover{background:var(--bg-hover)}.timer-preset--active{background:color-mix(in srgb,var(--accent) 12%,transparent);border-color:var(--accent);color:var(--accent)}.timer--compact .timer-preset{padding:4px 8px;font-size:.65rem}.timer-controls{display:flex;gap:8px;align-items:center}.timer-btn{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--bg-primary);border:1px solid var(--border);color:var(--text-secondary);transition:all var(--transition)}.timer--compact .timer-btn{width:36px;height:36px}.timer-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.timer-btn--play{background:var(--color-green-full);border-color:var(--color-green-full);color:#fff}.timer-btn--play:hover{background:#16a34a}.timer-btn--pause{background:var(--color-orange-full);border-color:var(--color-orange-full);color:#fff}.timer-btn--pause:hover{background:#ea580c}.timer-laps{width:100%;max-height:120px;overflow-y:auto;display:flex;flex-direction:column;gap:4px;margin-top:4px}.timer-lap{display:flex;justify-content:space-between;padding:4px 8px;border-radius:var(--radius-sm);background:var(--bg-primary);font-size:.75rem}.timer-lap-label{color:var(--text-muted);font-weight:500}.timer-lap-time{color:var(--text-primary);font-weight:600;font-variant-numeric:tabular-nums}.countdown-widget{background:var(--bg-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:16px}.countdown-widget-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.countdown-add-btn{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--bg-primary);border:1px solid var(--border);color:var(--text-secondary);font-size:1rem;font-weight:500;transition:all var(--transition)}.countdown-add-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.countdown-add-form{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}.countdown-add-form .form-input{flex:1;min-width:100px;min-height:36px;padding:6px 10px;font-size:.85rem}.countdown-add-form .btn{min-height:36px;padding:6px 14px;font-size:.8rem}.countdown-list{display:flex;flex-direction:column;gap:8px}.countdown-item{display:flex;align-items:center;gap:12px;padding:8px;border-radius:var(--radius-sm);transition:background var(--transition)}.countdown-item:hover{background:var(--bg-hover)}.countdown-days{display:flex;flex-direction:column;align-items:center;min-width:48px}.countdown-days-number{font-family:var(--font-display);font-size:24px;font-weight:700;color:var(--accent, var(--color-blue-full));line-height:1}.countdown-days-label{font-size:.6rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.countdown-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.countdown-title{font-size:.85rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.countdown-date{font-size:.7rem;color:var(--text-muted)}.countdown-remove-btn{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:1rem;transition:all var(--transition);flex-shrink:0;opacity:0}.countdown-item:hover .countdown-remove-btn{opacity:1}.countdown-remove-btn:hover{color:var(--color-error, #ef4444);background:color-mix(in srgb,var(--color-error, #ef4444) 8%,transparent)}.timer-panel{position:fixed;top:0;right:var(--sidebar-width, 64px);width:320px;height:100vh;background:var(--bg-surface);border-left:1px solid var(--border);box-shadow:var(--shadow-lg);z-index:90;display:flex;flex-direction:column;transform:translate(100%);transition:transform .3s ease}.timer-panel--open{transform:translate(0)}.timer-panel-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-subtle);flex-shrink:0}.timer-panel-title{font-family:var(--font-display);font-size:1.1rem;font-weight:600;color:var(--text-primary)}.timer-panel-close{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:1.2rem;transition:all var(--transition)}.timer-panel-close:hover{background:var(--bg-hover);color:var(--text-primary)}.timer-panel-body{flex:1;overflow-y:auto;padding:16px}@media(max-width:768px){.timer-btn{width:48px;height:48px}.timer-preset{padding:8px 14px;min-height:40px}.countdown-add-btn{width:36px;height:36px}.countdown-remove-btn{width:32px;height:32px;opacity:1}.countdown-item{padding:10px;min-height:48px}}@media(max-width:480px){.timer-display{font-size:48px}.timer{padding:16px;gap:12px}}.omni-add{position:fixed;bottom:24px;right:24px;z-index:90;display:flex;flex-direction:column;align-items:center;gap:12px;pointer-events:none}.omni-add--sidebar-left{right:24px}.omni-add--sidebar-right{right:calc(var(--sidebar-width, 72px) + 24px)}.omni-add--sidebar-bottom{right:24px}.omni-add-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0003;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:-1;pointer-events:auto;animation:omni-backdrop-in .2s ease forwards}@keyframes omni-backdrop-in{0%{opacity:0}to{opacity:1}}.omni-add-actions{display:flex;flex-direction:column;align-items:center;gap:16px;opacity:0;pointer-events:none;transform:translateY(20px);transition:opacity .2s ease,transform .2s ease}.omni-add--expanded .omni-add-actions{opacity:1;pointer-events:auto;transform:translateY(0)}.omni-add-action{display:flex;flex-direction:column;align-items:center;gap:4px;background:none;border:none;cursor:pointer;padding:0;-webkit-tap-highlight-color:transparent;opacity:0;transform:translateY(16px) scale(.8);transition:opacity .2s ease,transform .2s ease;transition-delay:var(--omni-delay, 0ms);pointer-events:auto}.omni-add--expanded .omni-add-action{opacity:1;transform:translateY(0) scale(1)}.omni-add-action-icon{width:48px;height:48px;border-radius:50%;background:var(--bg-surface);color:var(--accent, var(--color-blue-full));display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px #0000001f,0 1px 4px #0000000f;transition:transform .15s ease,box-shadow .15s ease}.omni-add-action:hover .omni-add-action-icon{transform:scale(1.1);box-shadow:0 6px 20px #00000029}.omni-add-action:active .omni-add-action-icon{transform:scale(.95)}.omni-add-action-label{font-size:.7rem;font-weight:600;color:var(--text-primary);text-shadow:0 1px 4px rgba(0,0,0,.1);white-space:nowrap;font-family:var(--font-body)}.omni-add-fab{width:56px;height:56px;border-radius:50%;background:var(--accent, #3b82f6);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 20px #0003,0 2px 8px #0000001a;transition:transform .2s ease,box-shadow .2s ease,background .2s ease;pointer-events:auto;-webkit-tap-highlight-color:transparent;z-index:1}@media(min-width:1400px){.omni-add-fab{width:72px;height:72px}.omni-add-fab-icon{font-size:2.2rem}}.omni-add-fab:hover{filter:brightness(1.1);transform:scale(1.08);box-shadow:0 12px 32px #00000040}.omni-add-fab:active{transform:scale(.95)}.omni-add-fab-icon{font-size:1.8rem;font-weight:300;line-height:1;display:block;transition:transform .3s cubic-bezier(.4,0,.2,1)}.omni-add--expanded .omni-add-fab-icon{transform:rotate(45deg)}@media(max-width:768px){.omni-add{bottom:calc(var(--mobile-tab-bar-height, 64px) + 16px);right:16px}.omni-add-fab{width:52px;height:52px}.omni-add-fab-icon{font-size:1.5rem}.omni-add-action-icon{width:44px;height:44px}}@media(max-width:480px){.omni-add{bottom:calc(var(--mobile-tab-bar-height, 64px) + 12px);right:12px}.omni-add-fab{width:48px;height:48px}}.settings-view{display:flex;flex:1;height:100%;min-height:0;background:var(--bg-primary);overflow:hidden}.settings-nav{width:240px;flex-shrink:0;background:var(--bg-surface);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.settings-nav-header{padding:24px 20px 16px;font-family:var(--font-display);font-size:1.4rem;font-weight:700;color:var(--text-primary);flex-shrink:0}.settings-nav-item{display:flex;align-items:center;gap:10px;padding:10px 20px;border:none;background:none;cursor:pointer;font-family:var(--font-body);font-size:.9rem;font-weight:400;color:var(--text-secondary);text-align:left;transition:all var(--transition);border-left:3px solid transparent}.settings-nav-item:hover{background:var(--bg-hover);color:var(--text-primary)}.settings-nav-item--active{background:var(--bg-today);color:var(--accent);font-weight:500;border-left-color:var(--accent)}.settings-nav-item svg{flex-shrink:0;opacity:.7}.settings-nav-item--active svg{opacity:1}.settings-content{flex:1;overflow-y:auto;padding:32px 40px 60px;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.settings-section-title{font-family:var(--font-display);font-size:1.5rem;font-weight:700;color:var(--text-primary);margin-bottom:8px}.settings-section-desc{font-size:.85rem;color:var(--text-secondary);margin-bottom:28px;line-height:1.5}.settings-group{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:4px 0;margin-bottom:24px}.settings-group-title{font-family:var(--font-display);font-size:.75rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;padding:12px 20px 4px}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 20px;min-height:52px}.settings-row+.settings-row{border-top:1px solid var(--border-subtle)}.settings-row-label{font-size:.9rem;font-weight:500;color:var(--text-primary);flex-shrink:0}.settings-row-sublabel{font-size:.78rem;color:var(--text-secondary);margin-top:2px;font-weight:400}.settings-row-value{display:flex;align-items:center;gap:8px;flex-shrink:0}.settings-toggle{position:relative;display:inline-block;width:48px;height:28px;flex-shrink:0}.settings-toggle input{opacity:0;width:0;height:0;position:absolute}.settings-toggle-track{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background:var(--border);border-radius:28px;transition:background var(--transition)}.settings-toggle input:checked+.settings-toggle-track{background:var(--accent)}.settings-toggle-thumb{position:absolute;content:"";height:22px;width:22px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:transform var(--transition);box-shadow:0 1px 3px #00000026;pointer-events:none}.settings-toggle input:checked~.settings-toggle-thumb{transform:translate(20px)}.settings-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 32px 6px 12px;font-family:var(--font-body);font-size:.85rem;color:var(--text-primary);cursor:pointer;transition:border-color var(--transition);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right 10px center;min-width:140px}.settings-select:focus{outline:none;border-color:var(--accent)}.settings-input{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 12px;font-family:var(--font-body);font-size:.85rem;color:var(--text-primary);width:200px;transition:border-color var(--transition)}.settings-input:focus{outline:none;border-color:var(--accent)}.settings-input--wide{width:300px}.settings-slider-wrapper{display:flex;align-items:center;gap:12px}.settings-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:160px;height:6px;background:var(--border);border-radius:3px;outline:none;cursor:pointer}.settings-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:var(--accent);cursor:pointer;box-shadow:0 1px 4px #0003}.settings-slider::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--accent);cursor:pointer;border:none;box-shadow:0 1px 4px #0003}.settings-slider-value{font-size:.85rem;color:var(--text-secondary);min-width:40px;text-align:center;font-variant-numeric:tabular-nums}.settings-segment{display:inline-flex;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.settings-segment-btn{padding:6px 14px;border:none;background:none;font-family:var(--font-body);font-size:.82rem;color:var(--text-secondary);cursor:pointer;transition:all var(--transition)}.settings-segment-btn+.settings-segment-btn{border-left:1px solid var(--border)}.settings-segment-btn--active{background:var(--accent);color:#fff;font-weight:500}.settings-theme-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;padding:8px 20px 16px}.settings-theme-card{position:relative;border:2px solid var(--border);border-radius:var(--radius-md);padding:12px;cursor:pointer;transition:all var(--transition);background:var(--bg-primary)}.settings-theme-card:hover{border-color:var(--text-secondary)}.settings-theme-card--active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.settings-theme-preview{display:flex;gap:4px;margin-bottom:8px}.settings-theme-swatch{width:100%;height:24px;border-radius:4px;border:1px solid rgba(128,128,128,.15)}.settings-theme-name{font-size:.82rem;font-weight:500;color:var(--text-primary);text-align:center}.settings-theme-check{position:absolute;top:6px;right:6px;width:20px;height:20px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;color:#fff}.settings-status-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.settings-status-dot--connected{background:var(--color-success, #22c55e);box-shadow:0 0 6px color-mix(in srgb,var(--color-success, #22c55e) 40%,transparent)}.settings-status-dot--disconnected{background:var(--color-error, #ef4444);box-shadow:0 0 6px color-mix(in srgb,var(--color-error, #ef4444) 40%,transparent)}.settings-color-grid{display:flex;flex-wrap:wrap;gap:8px;padding:8px 20px 16px}.settings-color-circle{width:28px;height:28px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:all var(--transition)}.settings-color-circle:hover{transform:scale(1.15)}.settings-color-circle--selected{border-color:var(--text-primary);box-shadow:0 0 0 2px var(--bg-surface),0 0 0 4px var(--text-primary)}.settings-calendar-row{border-bottom:1px solid var(--border-subtle)}.settings-calendar-row:last-child{border-bottom:none}.settings-calendar-color-swatch{width:26px;height:26px;border-radius:50%;border:2px solid var(--bg-surface);box-shadow:0 0 0 1px var(--border);cursor:pointer;flex-shrink:0;transition:all var(--transition)}.settings-calendar-color-swatch:hover{transform:scale(1.12);box-shadow:0 0 0 2px var(--accent)}.settings-color-editor{border-top:1px dashed var(--border-subtle);background:color-mix(in srgb,var(--bg-surface) 55%,transparent);padding:12px 0 16px}.settings-color-editor .settings-color-grid{padding:0 20px 12px}.settings-color-editor-custom{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 20px;flex-wrap:wrap}.settings-color-custom{display:inline-flex;align-items:center;gap:8px;font-size:.85rem;color:var(--text-secondary);cursor:pointer}.settings-color-custom input[type=color]{width:26px;height:26px;padding:0;border:1px solid var(--border);border-radius:50%;cursor:pointer;background:none}.settings-btn:disabled{opacity:.45;cursor:default}.settings-btn{padding:8px 18px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-surface);font-family:var(--font-body);font-size:.85rem;color:var(--text-primary);cursor:pointer;transition:all var(--transition);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.settings-btn:hover{background:var(--bg-hover)}.settings-btn--primary{background:var(--accent);border-color:var(--accent);color:#fff}.settings-btn--primary:hover{opacity:.9}.settings-btn--danger{color:var(--color-error, #ef4444);border-color:var(--color-error, #ef4444)}.settings-btn--danger:hover{background:color-mix(in srgb,var(--color-error, #ef4444) 6%,transparent)}.settings-btn-group{display:flex;gap:8px;flex-wrap:wrap}.settings-about-row{display:flex;justify-content:space-between;padding:10px 20px;font-size:.85rem}.settings-about-row+.settings-about-row{border-top:1px solid var(--border-subtle)}.settings-about-label{color:var(--text-secondary)}.settings-about-value{color:var(--text-primary);font-weight:500}.settings-about-value a{color:var(--accent);text-decoration:none}.settings-about-value a:hover{text-decoration:underline}.settings-fm-list{padding:0 20px 8px}.settings-fm-card{display:flex;align-items:center;gap:12px;padding:10px 0}.settings-fm-card+.settings-fm-card{border-top:1px solid var(--border-subtle)}.settings-fm-avatar{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.3rem;flex-shrink:0}.settings-fm-info{flex:1;min-width:0}.settings-fm-name{font-weight:500;font-size:.9rem;color:var(--text-primary)}.settings-fm-role{font-size:.78rem;color:var(--text-secondary);text-transform:capitalize}.settings-fm-actions{display:flex;gap:4px}.settings-fm-btn{width:32px;height:32px;border-radius:var(--radius-sm);border:none;background:none;cursor:pointer;color:var(--text-secondary);display:flex;align-items:center;justify-content:center;transition:all var(--transition)}.settings-fm-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.settings-fm-btn--danger:hover{background:color-mix(in srgb,var(--color-error, #ef4444) 6%,transparent);color:var(--color-error, #ef4444)}.settings-fm-empty{padding:20px 0;text-align:center;color:var(--text-secondary);font-size:.85rem}.settings-time-input{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 10px;font-family:var(--font-body);font-size:.85rem;color:var(--text-primary);cursor:pointer}.settings-time-input:focus{outline:none;border-color:var(--accent)}@media(max-width:768px){.settings-view{flex-direction:column}.settings-nav{width:100%;border-right:none;border-bottom:1px solid var(--border);flex-direction:row;overflow-x:auto;overflow-y:hidden;padding:0 8px;gap:0}.settings-nav-header{display:none}.settings-nav-item{padding:12px 14px;white-space:nowrap;font-size:.82rem;border-left:none;border-bottom:3px solid transparent}.settings-nav-item--active{border-bottom-color:var(--accent);border-left-color:transparent}.settings-content{padding:20px 16px 40px}.settings-input{width:150px}.settings-input--wide{width:100%}.settings-theme-grid{grid-template-columns:repeat(2,1fr);gap:8px}.settings-slider{width:120px}}.weather-view{display:flex;flex-direction:column;gap:32px;height:100%;padding:40px 48px;overflow-y:auto}.weather-loading,.weather-error{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--text-muted);font-size:16px;gap:16px}.weather-retry-btn{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:8px 20px;font-size:14px;cursor:pointer}.weather-current{position:relative;background:var(--bg-secondary);border-radius:16px;padding:32px;display:flex;flex-direction:column;gap:24px}.weather-current-main{display:flex;align-items:center;gap:24px}.weather-current-icon{font-size:80px;line-height:1}.weather-current-temp-block{display:flex;flex-direction:column;gap:4px}.weather-current-temp{font-family:var(--font-display);font-size:64px;font-weight:700;line-height:1;color:var(--text-primary);letter-spacing:-1px}.weather-current-condition{font-size:20px;color:var(--text-secondary);font-weight:400}.weather-current-details{display:flex;gap:32px;flex-wrap:wrap}.weather-detail{display:flex;flex-direction:column;gap:4px}.weather-detail-label{font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);font-weight:500}.weather-detail-value{font-size:18px;font-weight:600;color:var(--text-primary)}.weather-refresh-btn{position:absolute;top:16px;right:16px;background:none;border:none;color:var(--text-muted);cursor:pointer;padding:8px;border-radius:8px;transition:background .15s,color .15s}.weather-refresh-btn:hover{background:var(--bg-tertiary, rgba(255, 255, 255, .05));color:var(--text-primary)}.weather-forecast{display:flex;flex-direction:column;gap:16px}.weather-forecast-title{font-family:var(--font-display);font-size:20px;font-weight:600;color:var(--text-primary);margin:0}.weather-forecast-scroll{display:flex;gap:12px;overflow-x:auto;padding-bottom:8px;-webkit-overflow-scrolling:touch}.weather-forecast-scroll::-webkit-scrollbar{height:4px}.weather-forecast-scroll::-webkit-scrollbar-track{background:transparent}.weather-forecast-scroll::-webkit-scrollbar-thumb{background:var(--text-muted);border-radius:2px;opacity:.3}.weather-forecast-card{flex:0 0 auto;width:120px;background:var(--bg-secondary);border:2px solid transparent;border-radius:12px;padding:16px;display:flex;flex-direction:column;align-items:center;gap:8px;transition:background .15s,border-color .15s;cursor:pointer;font-family:inherit;color:inherit}.weather-forecast-card:hover{background:var(--bg-tertiary, rgba(255, 255, 255, .08))}.weather-forecast-card--selected{border-color:var(--accent);background:var(--bg-tertiary, rgba(255, 255, 255, .08))}.weather-forecast-day{font-size:14px;font-weight:600;color:var(--text-primary)}.weather-forecast-date{font-size:12px;color:var(--text-muted)}.weather-forecast-icon{font-size:36px;line-height:1}.weather-forecast-temps{display:flex;gap:8px;align-items:baseline}.weather-forecast-high{font-size:16px;font-weight:600;color:var(--text-primary)}.weather-forecast-low{font-size:14px;color:var(--text-muted)}.weather-forecast-precip{font-size:11px;color:var(--accent);font-weight:500}.weather-forecast-chevron{color:var(--text-muted);transition:transform .2s}.weather-forecast-chevron--open{transform:rotate(180deg)}.weather-hourly{background:var(--bg-secondary);border-radius:12px;padding:20px;display:flex;flex-direction:column;gap:16px;animation:weather-hourly-in .2s ease-out}@keyframes weather-hourly-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.weather-hourly-header{display:flex;align-items:center;justify-content:space-between}.weather-hourly-title{font-family:var(--font-display);font-size:16px;font-weight:600;color:var(--text-primary);margin:0}.weather-hourly-close{background:none;border:1px solid var(--text-muted);border-radius:6px;color:var(--text-muted);font-size:12px;padding:4px 12px;cursor:pointer;transition:color .15s,border-color .15s}.weather-hourly-close:hover{color:var(--text-primary);border-color:var(--text-primary)}.weather-hourly-loading,.weather-hourly-empty{color:var(--text-muted);font-size:14px;text-align:center;padding:12px 0}.weather-hourly-scroll{display:flex;gap:10px;overflow-x:auto;padding-bottom:6px;-webkit-overflow-scrolling:touch}.weather-hourly-scroll::-webkit-scrollbar{height:4px}.weather-hourly-scroll::-webkit-scrollbar-track{background:transparent}.weather-hourly-scroll::-webkit-scrollbar-thumb{background:var(--text-muted);border-radius:2px;opacity:.3}.weather-hourly-card{flex:0 0 auto;width:80px;background:var(--bg-primary, rgba(0, 0, 0, .15));border-radius:10px;padding:12px 8px;display:flex;flex-direction:column;align-items:center;gap:6px}.weather-hourly-time{font-size:12px;font-weight:600;color:var(--text-secondary);white-space:nowrap}.weather-hourly-icon{font-size:24px;line-height:1}.weather-hourly-temp{font-size:16px;font-weight:700;color:var(--text-primary)}.weather-hourly-precip{display:flex;align-items:center;gap:3px;font-size:11px;color:var(--accent);font-weight:500}.weather-hourly-wind{display:flex;align-items:center;gap:3px;font-size:11px;color:var(--text-muted);font-weight:500}.dashboard-weather--clickable{cursor:pointer;transition:background .15s;border-radius:12px}.dashboard-weather--clickable:hover{background:var(--bg-tertiary, rgba(255, 255, 255, .05))}@media(max-width:768px){.weather-view{padding:20px 16px;gap:24px}.weather-current{padding:24px 20px}.weather-current-icon{font-size:56px}.weather-current-temp{font-size:48px}.weather-current-condition{font-size:16px}.weather-current-details{gap:20px}.weather-detail-value{font-size:16px}.weather-forecast-card{width:100px;padding:12px}.weather-hourly{padding:16px 12px}.weather-hourly-card{width:72px;padding:10px 6px}}.focus-view{display:flex;flex-direction:column;height:100vh;height:100dvh;background:var(--bg-primary);color:var(--text-primary);overflow:hidden}.focus-header{display:flex;align-items:center;justify-content:space-between;padding:24px 32px;border-bottom:3px solid var(--focus-accent, var(--accent))}.focus-member{display:flex;align-items:center;gap:16px}.focus-avatar{display:flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:50%;border:3px solid var(--focus-accent, var(--accent));font-size:2rem}.focus-greeting{font-size:1rem;color:var(--text-muted)}.focus-name{font-size:1.8rem;font-weight:700;line-height:1.1}.focus-clock{background:none;border:none;color:inherit;text-align:right;cursor:default;padding:0;font:inherit}.focus-time{font-size:2.2rem;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.1}.focus-date{font-size:.95rem;color:var(--text-muted)}.focus-body{flex:1;overflow-y:auto;padding:24px 32px 40px;display:flex;flex-direction:column;gap:20px;max-width:720px;width:100%;margin:0 auto}.focus-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:16px;overflow:hidden}.focus-card--preview{opacity:.65}.focus-card-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 8px}.focus-card-title{font-size:1.25rem;font-weight:700;margin:0}.focus-card-badge{font-size:.8rem;font-weight:600;padding:4px 10px;border-radius:999px;background:var(--bg-today, var(--bg-primary));color:var(--text-muted)}.focus-card-count{font-size:.95rem;font-weight:700;color:var(--focus-accent, var(--accent))}.focus-checklist{list-style:none;margin:0;padding:8px 12px 16px;display:flex;flex-direction:column;gap:8px}.focus-check-row{display:flex;align-items:center;gap:16px;width:100%;padding:14px 12px;border:none;border-radius:12px;background:none;color:inherit;font:inherit;font-size:1.2rem;cursor:pointer;text-align:left;transition:background .15s ease;min-height:56px}.focus-check-row:not(:disabled):hover{background:var(--bg-primary)}.focus-check-row:disabled{cursor:default}.focus-check-box{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:32px;height:32px;border-radius:50%;border:3px solid var(--focus-accent, var(--accent));color:#fff;transition:all .15s ease}.focus-check-row--done .focus-check-box{background:var(--focus-accent, var(--accent))}.focus-check-row--done .focus-check-label{text-decoration:line-through;color:var(--text-muted)}.focus-check-row--completing .focus-check-box{transform:scale(1.2)}.focus-check-icon{margin-right:8px}.focus-check-value{margin-left:auto;font-size:.9rem;font-weight:700;color:var(--focus-accent, var(--accent))}.focus-celebration{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}.focus-celebration-emoji{font-size:4.5rem}.focus-celebration-title{font-size:1.6rem;font-weight:700}.focus-empty{flex:1;display:flex;align-items:center;justify-content:center;color:var(--text-muted);text-align:center;padding:24px}.focus-exit-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.focus-exit-dialog{background:var(--bg-secondary);border:1px solid var(--border);border-radius:16px;padding:24px;max-width:320px;text-align:center}.focus-exit-actions{display:flex;gap:12px;justify-content:center;margin-top:16px}.focus-invalid-banner{display:flex;align-items:center;gap:12px;justify-content:center;padding:8px 16px;background:color-mix(in srgb,var(--color-error, #ef4444) 13%,transparent);color:var(--text-primary);font-size:.9rem;border-bottom:1px solid var(--border)}
