.planning-screen .family-hub{flex-direction:column;gap:16px;display:flex}.planning-screen .family-glass-panel{background:var(--gradient-card);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);padding:20px}.planning-screen .family-hub-tabs{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);gap:4px;padding:4px;display:flex}.planning-screen .family-tab-btn{color:var(--muted);font:500 14px/20px var(--font-body);border-radius:var(--radius-xs);cursor:pointer;background:0 0;border:none;flex:1;min-height:44px;padding:8px 12px;transition:background .2s,color .2s,box-shadow .2s}.planning-screen .family-tab-btn:hover{color:var(--fg-secondary)}.planning-screen .family-tab-btn.active{background:var(--surface2);color:var(--fg);box-shadow:var(--shadow-sm);font-weight:600}.planning-screen .family-label-caps{font:600 12px/16px var(--font-body);letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin:0 0 12px}.planning-screen .family-label-secondary{color:var(--accent)}.planning-screen .family-label-primary{color:var(--accent-bright)}.planning-screen .family-all-layout{min-width:0;position:relative}.planning-screen .family-month-rail{left:max(8px, env(safe-area-inset-left,0px));z-index:30;pointer-events:auto;position:fixed;top:50%;transform:translateY(-50%)}.planning-screen .family-month-rail-trigger{background:color-mix(in oklch, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-subtle);width:44px;height:44px;box-shadow:var(--shadow-md);color:var(--muted);font:650 11px/1 var(--font-body);cursor:pointer;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:0;padding:5px 4px 3px;transition:color .2s,background .2s,border-color .2s,transform .2s;display:inline-flex}.planning-screen .family-month-rail-trigger:hover,.planning-screen .family-month-rail-trigger.active{color:var(--accent);border-color:color-mix(in oklch, var(--accent) 30%, var(--border-subtle));background:color-mix(in oklch, var(--surface) 84%, var(--accent-dim))}.planning-screen .family-month-rail-trigger:active{transform:scale(.96)}.planning-screen .family-month-rail-trigger svg{width:12px;height:12px}.planning-screen .family-month-rail-panel{border:1px solid var(--border-subtle);background:color-mix(in oklch, var(--surface) 96%, transparent);-webkit-backdrop-filter:blur(20px);width:184px;max-height:min(520px,100dvh - 144px);box-shadow:var(--shadow-lg);border-radius:20px;animation:.18s cubic-bezier(.16,1,.3,1) family-month-panel-in;position:absolute;top:50%;left:52px;overflow:hidden;transform:translateY(-50%)}@keyframes family-month-panel-in{0%{opacity:0;transform:translate(-6px,-50%)scale(.98)}}.planning-screen .family-month-rail-head{border-bottom:1px solid var(--border-subtle);min-height:44px;color:var(--fg-secondary);font:650 13px/1 var(--font-body);justify-content:space-between;align-items:center;padding:0 0 0 14px;display:flex}.planning-screen .family-month-rail-head button{width:44px;height:44px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.planning-screen .family-month-rail-head button:hover{color:var(--fg);background:var(--surface2)}.planning-screen .family-month-rail-head svg{width:16px;height:16px}.planning-screen .family-month-rail-scroll{overscroll-behavior:contain;scrollbar-width:thin;max-height:min(476px,100dvh - 188px);padding:10px;overflow-y:auto}.planning-screen .family-month-rail-year+.family-month-rail-year{border-top:1px solid var(--border-subtle);margin-top:12px;padding-top:10px}.planning-screen .family-month-rail-year-label{color:var(--muted);font:600 10px/1 var(--font-body);font-variant-numeric:tabular-nums;letter-spacing:.08em;margin:0 4px 6px;display:block}.planning-screen .family-month-rail-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;display:grid}.planning-screen .family-month-rail-btn{width:100%;height:44px;color:var(--muted);font:600 11px/1 var(--font-body);letter-spacing:.05em;cursor:pointer;background:0 0;border:none;border-radius:12px;transition:background .2s,color .2s}.planning-screen .family-month-rail-btn:hover{background:var(--border-subtle)}.planning-screen .family-month-rail-btn.active{background:var(--accent-dim);color:var(--accent);box-shadow:none}.planning-screen .family-all-timeline{flex-direction:column;gap:16px;min-width:0;display:flex}.planning-screen .family-hub-tabs-triple .family-tab-btn{padding:8px 6px;font-size:12px}.planning-screen .family-hub-tabs-quad .family-tab-btn{padding:8px 4px;font-size:12px}.planning-screen .family-hub-tabs-multi .family-tab-btn{flex:1 1 0;padding:8px 4px;font-size:12px}.planning-screen .family-all-subtitle{margin-top:24px}.planning-screen .family-month-section{scroll-margin-top:16px}.planning-screen .family-month-section+.family-month-section{margin-top:28px}.planning-screen .family-month-heading{font:600 16px/24px var(--font-display);color:var(--fg);margin:0 0 16px}.planning-screen .family-month-pending+.family-month-completed{margin-top:20px}.planning-screen .family-month-pending h5,.planning-screen .family-month-completed h5{margin:0 0 12px}.planning-screen .family-calendar-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.planning-screen .family-calendar-head strong{font:600 16px/24px var(--font-body);color:var(--fg)}.planning-screen .family-calendar-nav{border-radius:var(--radius-xs);background:var(--surface2);width:44px;height:44px;color:var(--fg-secondary);cursor:pointer;border:none;font-size:18px;transition:background .2s,color .2s}.planning-screen .family-calendar-nav:hover{background:var(--surface3);color:var(--fg)}.planning-screen .family-calendar-weekdays,.planning-screen .family-calendar-grid{grid-template-columns:repeat(7,minmax(44px,1fr));gap:8px 0;display:grid}.planning-screen .family-calendar-weekdays span{text-align:center;font:600 12px/16px var(--font-body);letter-spacing:.05em;color:var(--muted);padding:4px 0}.planning-screen .family-calendar-day{min-height:44px;color:var(--fg);font:400 14px/20px var(--font-body);cursor:pointer;background:0 0;border:none;flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex;position:relative}.planning-screen .family-calendar-day-num{justify-content:center;align-items:center;min-width:32px;min-height:32px;display:flex}.planning-screen .family-calendar-markers{flex-wrap:wrap;justify-content:center;align-items:center;gap:2px;min-height:14px;display:flex}.planning-screen .family-calendar-marker{border-radius:50%;flex-shrink:0;width:5px;height:5px}.planning-screen .family-calendar-marker.todo{background:var(--warning)}.planning-screen .family-calendar-marker.moment{background:var(--accent)}.planning-screen .family-calendar-mood,.planning-screen .family-calendar-anniv{flex-shrink:0;font-size:13px;line-height:1}.planning-screen .family-calendar-day.has-mood,.planning-screen .family-calendar-day.has-anniv{min-height:56px}.planning-screen .family-calendar-day.out-month{color:var(--border-subtle);cursor:default}.planning-screen .family-calendar-lunar{color:var(--muted);font-size:11px;line-height:1}.planning-screen .family-calendar-lunar.festival{color:var(--danger);font-weight:600}.planning-screen .family-calendar-day.has-festival .family-calendar-day-num{color:var(--danger)}.planning-screen .family-calendar-day.is-holiday:after{content:"";background:var(--danger);opacity:.6;border-radius:1px;width:16px;height:2px;position:absolute;bottom:2px;left:50%;transform:translate(-50%)}.planning-screen .family-calendar-day.is-workday:after{content:"";background:var(--muted);opacity:.5;border-radius:1px;width:16px;height:2px;position:absolute;bottom:2px;left:50%;transform:translate(-50%)}.planning-screen .family-calendar-marker.todo.overdue{background:var(--danger)}.planning-screen .family-calendar-day.in-month:hover:not(.selected){opacity:.85}.planning-screen .family-calendar-day.selected .family-calendar-day-num{border:1px solid var(--accent);border-radius:var(--radius-xs);background:var(--accent-dim);width:32px;height:32px;color:var(--accent);font-weight:600}.planning-screen .family-calendar-day.out-month .family-calendar-marker{opacity:.35}.planning-screen .family-day-panel{flex-direction:column;gap:16px;min-width:0;display:flex}.planning-screen .family-day-head{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:8px;padding-bottom:12px;display:flex}.planning-screen .family-day-head h3{font:400 14px/20px var(--font-body);color:var(--muted);margin:0}.planning-screen .family-day-add-row{flex-shrink:0;align-items:center;gap:8px;display:flex}.planning-screen .family-day-add-btn{border:1px solid var(--accent);background:var(--accent-dim);color:var(--accent-bright);cursor:pointer;white-space:nowrap;border-radius:14px;min-height:32px;padding:6px 12px;font-size:12px;font-weight:600;transition:transform .15s}.planning-screen .family-day-add-btn.secondary{border-color:var(--border);color:var(--fg-secondary);background:0 0}.planning-screen .family-day-add-btn:active{transform:scale(.96)}.planning-screen .family-day-section h4{font:400 14px/20px var(--font-body);color:var(--muted);margin:0 0 12px}.planning-screen .family-day-mood{text-align:left;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;align-items:center;gap:12px;width:100%;padding:12px 14px;transition:border-color .2s,background .2s;display:flex}.planning-screen .family-day-mood:active{background:var(--surface2)}.planning-screen .family-day-mood-emoji{flex-shrink:0;font-size:28px;line-height:1}.planning-screen .family-day-mood-body{flex-direction:column;gap:2px;min-width:0;display:flex}.planning-screen .family-day-mood-body strong{font:600 15px/1.3 var(--font-body)}.planning-screen .family-day-mood-body span{color:var(--muted);font-size:13px}.planning-screen .family-day-anniv-list{gap:8px;display:grid}.planning-screen .family-day-anniv{text-align:left;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;align-items:center;gap:12px;width:100%;padding:12px 14px;transition:border-color .2s,background .2s,transform .15s;display:flex}.planning-screen .family-day-anniv:active{background:var(--surface2);transform:scale(.99)}.planning-screen .family-day-anniv-icon{flex-shrink:0;font-size:26px;line-height:1}.planning-screen .family-day-anniv-body{flex-direction:column;gap:2px;min-width:0;display:flex}.planning-screen .family-day-anniv-body strong{font:600 15px/1.3 var(--font-body)}.planning-screen .family-day-anniv-body span{color:var(--muted);font-size:13px}.planning-screen .family-all-panel{padding:20px}.planning-screen .family-all-section+.family-all-section{margin-top:24px}.planning-screen .family-empty{font:400 14px/20px var(--font-body);color:var(--muted);text-align:center;margin:0}.planning-screen .family-empty-hint{font:400 12px/18px var(--font-body);color:var(--muted);opacity:.7;margin-top:6px}.planning-screen .family-todo-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.planning-screen .family-todo-card{border:1px solid var(--border-subtle);border-radius:var(--radius-xs);background:var(--gradient-card);overflow-wrap:anywhere;flex-direction:column;gap:8px;min-width:0;padding:12px;display:flex}.planning-screen .family-todo-card.pending{border-left:3px solid var(--accent)}.planning-screen .family-todo-card.priority-high.pending{border-left-color:var(--danger)}.planning-screen .family-todo-card.priority-low.pending{border-left-color:var(--info)}.planning-screen .family-todo-card-main{align-items:flex-start;gap:10px;width:100%;display:flex;position:relative}.planning-screen .family-todo-card-body{flex:1 1 0;min-width:0}.planning-screen .family-todo-card-body .family-todo-title{word-break:break-word;overflow-wrap:anywhere;display:block}.planning-screen .family-todo-tags{flex-wrap:wrap;align-items:center;gap:6px;max-width:100%;margin-top:4px;display:flex}.planning-screen .family-todo-priority-tag{border-radius:4px;padding:3px 6px;font-size:11px;font-weight:600;line-height:1}.planning-screen .family-todo-priority-tag.high{background:var(--danger-dim);color:var(--danger)}.planning-screen .family-todo-priority-tag.low{background:var(--info-dim);color:var(--info)}.planning-screen .family-todo-recurrence-tag{color:var(--muted);font-size:12px}.planning-screen .family-todo-subtask-summary{background:var(--surface2);color:var(--text-secondary);cursor:pointer;border:none;border-radius:10px;min-height:44px;padding:3px 8px;font-size:11px}.planning-screen .family-todo-completed-by{color:var(--muted);font-size:11px}.planning-screen .family-todo-subtasks{flex-direction:column;gap:6px;width:100%;margin:0;padding:0 0 0 28px;list-style:none;display:flex}.planning-screen .family-todo-subtask{align-items:center;gap:8px;display:flex}.planning-screen .family-todo-subtask-check{cursor:pointer;width:44px;min-width:44px;height:44px;color:var(--accent);background:0 0;border:none;justify-content:center;align-items:center;display:flex;position:relative}.planning-screen .family-todo-subtask-check:before{content:"";border:1.5px solid var(--border);background:0 0;border-radius:5px;width:20px;height:20px;position:absolute}.planning-screen .family-todo-subtask-check.checked{background:0 0}.planning-screen .family-todo-subtask-check.checked:before{background:var(--accent);border-color:var(--accent)}.planning-screen .family-todo-subtask-check svg{z-index:1;width:12px;height:12px;position:relative}.planning-screen .family-todo-subtask-check:disabled{cursor:default;opacity:.6}.planning-screen .family-todo-subtask-title{color:var(--fg-secondary);font-size:12px}.planning-screen .family-todo-subtask-title.checked{opacity:.5;text-decoration:line-through}.planning-screen .family-filter-bar{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.planning-screen .family-filter-chip{min-height:36px;color:var(--fg-secondary);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:6px 13px;font-size:12px;font-weight:550;transition:color .18s,background .18s}.planning-screen .family-filter-chip.active{background:var(--accent-dim);color:var(--accent-bright);font-weight:700}.planning-screen .family-filter-chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.planning-screen .family-search-bar{background:var(--gradient-card,var(--surface2));border:1px solid var(--border-subtle);border-radius:999px;align-items:center;gap:8px;min-height:44px;margin-bottom:12px;padding:0 12px;display:flex}.planning-screen .family-search-icon{width:16px;height:16px;color:var(--text-secondary);flex-shrink:0}.planning-screen .family-search-input{min-height:44px;font:500 14px/1 var(--font-body);color:var(--fg,var(--family-on-surface));background:0 0;border:none;outline:none;flex:1;align-self:stretch;min-width:0}.planning-screen .family-search-input::placeholder{color:var(--text-tertiary)}.planning-screen .family-search-summary{font:500 12px/1.3 var(--font-body);color:var(--text-secondary);margin:0 0 12px}.planning-screen .family-search-group{flex-direction:column;gap:8px;margin-bottom:16px;display:flex}.planning-screen .family-search-group+.family-search-group{margin-top:8px}.family-add-sheet .family-subtask-list{flex-direction:column;gap:6px;margin-bottom:8px;display:flex}.family-add-sheet .family-subtask-row{background:var(--surface2);border-radius:var(--radius-xs);justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.family-add-sheet .family-subtask-title{color:var(--fg-secondary);font-size:12px}.family-add-sheet .family-subtask-remove{color:var(--danger);cursor:pointer;background:0 0;border:none;min-width:44px;min-height:44px;font-size:18px;line-height:1}.family-add-sheet .family-subtask-input-row{gap:8px;display:flex}.family-add-sheet .family-subtask-input{flex:1}.family-add-sheet .family-subtask-add{background:var(--accent-dim);min-height:44px;color:var(--accent-bright);border-radius:var(--radius-xs);cursor:pointer;border:none;padding:0 16px;font-size:12px;font-weight:600}.family-add-sheet .family-add-pill.family-add-priority.active.high{background:var(--danger-dim);color:var(--danger)}.family-add-sheet .family-add-pill.family-add-priority.active.low{background:var(--info-dim);color:var(--info)}.family-add-sheet .family-add-pill.family-add-priority.active.medium{background:var(--surface3);color:var(--fg-secondary)}.planning-screen .family-todo-card.history{background:var(--surface);border-color:color-mix(in srgb, var(--border-subtle) 30%, transparent);border-left:4px solid var(--border-subtle);opacity:.7}.planning-screen .family-todo-check{width:44px;height:44px;color:var(--on-accent);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;margin:-10px 0 0 -10px;padding:0;transition:border-color .2s,background .2s;display:inline-flex;position:relative}.planning-screen .family-todo-check:before{content:"";border:1px solid var(--border);background:var(--bg);border-radius:6px;width:20px;height:20px;position:absolute}.planning-screen .family-todo-check.checked{background:0 0}.planning-screen .family-todo-check.checked:before{border-color:var(--accent);background:var(--accent)}.planning-screen .family-todo-check svg{z-index:1;width:14px;height:14px;position:relative}.planning-screen .family-todo-title{font:400 14px/20px var(--font-body);color:var(--fg)}.planning-screen .family-todo-card.checked .family-todo-title,.planning-screen .family-todo-card.history .family-todo-title{text-decoration:line-through}.planning-screen .owner-tag{width:fit-content;font:600 11px/1 var(--font-body);letter-spacing:.05em;border-radius:4px;padding:2px 8px;display:inline-flex}.planning-screen .owner-tag.memberA{background:var(--accent-dim);color:var(--accent)}.planning-screen .owner-tag.memberB{background:var(--purple-dim);color:var(--purple)}.planning-screen .owner-tag.both{background:var(--warning-dim);color:var(--warning)}.planning-screen .family-todo-card.overdue{border-color:var(--danger-glow)}.planning-screen .family-todo-date.overdue{color:var(--danger)}.planning-screen .family-todo-card.reorderable{cursor:default}.planning-screen .family-todo-card.dragging{opacity:.92;z-index:10;box-shadow:var(--shadow-glow-accent,0 8px 24px color-mix(in srgb, var(--media-shadow) 22%, transparent));cursor:grabbing}.planning-screen .family-todo-drag-handle{width:44px;height:44px;color:var(--text-tertiary);opacity:.7;cursor:grab;touch-action:none;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.planning-screen .family-todo-drag-handle svg{width:18px;height:18px}.planning-screen .family-todo-drag-handle:hover{opacity:1;color:var(--text-secondary)}.planning-screen .family-todo-drag-handle:active{cursor:grabbing}.planning-screen .family-todo-card{position:relative}.planning-screen .family-moment-comment-delete{color:var(--text-secondary);font:500 11px/1 var(--font-body);background:0 0;border:none;justify-content:center;align-items:center;min-width:44px;min-height:44px;margin-left:4px;padding:10px 6px;display:inline-flex}.planning-screen .family-expense-summary{flex-direction:column;gap:8px;margin-bottom:12px;padding:16px;display:flex}.planning-screen .family-expense-summary-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.planning-screen .family-expense-summary-head h3{font:600 15px/1.3 var(--font-body);margin:0}.planning-screen .family-expense-summary-head p{color:var(--text-secondary);font:500 12px/1.3 var(--font-body);margin:4px 0 0}.planning-screen .family-expense-summary-head strong{font:700 20px/1 var(--font-display)}.planning-screen .family-expense-summary-meta{color:var(--text-secondary);font:500 12px/1.4 var(--font-body);margin:0}.planning-screen .family-expense-summary-meta.over-budget{color:var(--danger)}.planning-screen .family-expense-summary-link{color:var(--accent);font:600 12px/1 var(--font-body);background:0 0;border:none;align-self:flex-start;padding:0}.planning-screen .family-anniversary-strip{gap:10px;margin-bottom:12px;padding:14px 16px}.planning-screen .family-anniversary-strip-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.planning-screen .family-anniversary-strip-head h3{font:600 14px/1.3 var(--font-body);margin:0}.planning-screen .family-anniversary-add{color:var(--accent);font:600 12px/1 var(--font-body);background:0 0;border:none;min-height:32px;padding:6px 4px}.planning-screen .family-anniversary-strip-list{-webkit-overflow-scrolling:touch;gap:10px;padding-bottom:2px;display:flex;overflow-x:auto}.planning-screen .family-anniversary-card{border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--surface2,var(--family-surface-container-high));text-align:left;flex:none;align-items:center;gap:8px;min-width:120px;padding:10px 14px;display:flex}.planning-screen .family-anniversary-card.today{border-color:var(--accent);background:color-mix(in oklch, var(--accent) 12%, var(--surface2,transparent))}.planning-screen .family-anniversary-card-icon{font-size:22px;line-height:1}.planning-screen .family-anniversary-card-body{flex-direction:column;gap:2px;display:flex}.planning-screen .family-anniversary-card-body strong{font:600 13px/1.3 var(--font-body);color:var(--fg,var(--family-on-surface))}.planning-screen .family-anniversary-card-meta{font:500 11px/1.2 var(--font-body);color:var(--text-secondary)}.planning-screen .family-moment-album-wrap{flex-direction:column;gap:12px;display:flex}.planning-screen .family-moment-view-toggle{border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border-subtle);align-self:flex-end;gap:0;padding:3px;display:flex}.planning-screen .family-moment-view-toggle button{color:var(--muted);font:500 13px/1 var(--font-body);border-radius:var(--radius-xs);cursor:pointer;background:0 0;border:none;min-height:44px;padding:7px 16px;transition:color .2s,background .2s}.planning-screen .family-moment-view-toggle button.active{background:var(--accent-dim);color:var(--accent-bright);font-weight:600}.planning-screen .family-album{flex-direction:column;gap:4px;display:flex}.planning-screen .family-skill-view{flex-direction:column;gap:16px;min-width:0;display:flex}.planning-screen .family-skill-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.planning-screen .family-skill-filter{flex-wrap:wrap;gap:8px;display:flex}.planning-screen .family-skill-add-btn{border:1px solid var(--accent);background:var(--accent-dim);color:var(--accent-bright);font:600 13px/1 var(--font-body);cursor:pointer;white-space:nowrap;border-radius:999px;padding:8px 16px;transition:transform .15s}.planning-screen .family-skill-add-btn:active{transform:scale(.96)}.planning-screen .family-skill-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}@media (min-width:768px){.planning-screen .family-skill-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.planning-screen .family-skill-card{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--gradient-card);box-shadow:var(--shadow-sm);flex-direction:column;gap:8px;min-width:0;padding:14px;display:flex}.planning-screen .family-skill-card-head{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.planning-screen .family-skill-name{font:600 15px/1.3 var(--font-body);color:var(--fg);word-break:break-word;overflow-wrap:anywhere;flex:1;min-width:0}.planning-screen .family-skill-card-more{flex-shrink:0;position:relative}.planning-screen .family-skill-more-btn{width:44px;height:44px;color:var(--muted);border-radius:var(--radius-xs);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;transition:background .2s,color .2s;display:inline-flex}.planning-screen .family-skill-more-btn svg{width:18px;height:18px}.planning-screen .family-skill-more-btn:active{background:var(--surface2);color:var(--fg)}.planning-screen .family-skill-action-menu{z-index:20;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);min-width:88px;box-shadow:var(--shadow-lg);flex-direction:column;padding:4px;display:flex;position:absolute;top:calc(100% + 4px);right:0}.planning-screen .family-skill-action-item{color:var(--fg);font:500 14px/1.4 var(--font-body);text-align:left;border-radius:var(--radius-xs);cursor:pointer;background:0 0;border:none;padding:9px 12px;transition:background .15s}.planning-screen .family-skill-action-item:active{background:var(--surface2)}.planning-screen .family-skill-action-item.danger{color:var(--danger)}.planning-screen .family-skill-meta{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.planning-screen .family-skill-level-tag{font:600 11px/1 var(--font-body);background:var(--surface2);color:var(--fg-secondary);border-radius:4px;padding:3px 8px}.planning-screen .family-skill-level-bar{gap:3px;display:flex}.planning-screen .family-skill-level-seg{background:var(--surface3);border-radius:3px;flex:1;height:6px;transition:background .2s}.planning-screen .family-skill-level-seg.filled{background:var(--accent)}.planning-screen .family-skill-note{color:var(--muted);word-break:break-word;overflow-wrap:anywhere;margin:0;font-size:12px;line-height:1.5}.planning-screen .family-diary-view{flex-direction:column;gap:16px;min-width:0;display:flex}.planning-screen .family-diary-list{flex-direction:column;gap:12px;display:flex}.planning-screen .family-diary-card{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--gradient-card);box-shadow:var(--shadow-sm);flex-direction:column;gap:10px;min-width:0;padding:16px;display:flex}.planning-screen .family-diary-card-head{flex-direction:column;gap:8px;display:flex}.planning-screen .family-diary-card-title-row{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.planning-screen .family-diary-title{font:600 16px/1.4 var(--font-body);color:var(--fg);word-break:break-word;overflow-wrap:anywhere;flex:1;min-width:0}.planning-screen .family-diary-meta{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.planning-screen .family-diary-date{font:500 12px/1 var(--font-body);color:var(--muted)}.planning-screen .family-diary-mood{font-size:16px;line-height:1}.planning-screen .family-diary-content{min-width:0;overflow:hidden}.planning-screen .family-diary-content.collapsed{max-height:160px;-webkit-mask-image:linear-gradient(to bottom, var(--media-shadow) 70%, transparent);-webkit-mask-image:linear-gradient(to bottom, var(--media-shadow) 70%, transparent);mask-image:linear-gradient(to bottom, var(--media-shadow) 70%, transparent)}.planning-screen .family-diary-toggle{color:var(--accent-bright);font:600 13px/1 var(--font-body);cursor:pointer;background:0 0;border:none;align-self:flex-start;padding:4px 0}.markdown-body{color:var(--fg);word-break:break-word;overflow-wrap:anywhere;font-size:14px;line-height:1.7}.markdown-body h1,.markdown-body h2,.markdown-body h3{margin:1em 0 .5em;font-weight:700;line-height:1.3}.markdown-body h1{font-size:1.4em}.markdown-body h2{font-size:1.25em}.markdown-body h3{font-size:1.1em}.markdown-body p{margin:.5em 0}.markdown-body ul,.markdown-body ol{margin:.5em 0;padding-left:1.5em}.markdown-body li{margin:.25em 0}.markdown-body code{font-family:var(--font-mono,monospace);background:var(--surface2);border-radius:4px;padding:2px 5px;font-size:.875em}.markdown-body pre{background:var(--surface2);border-radius:var(--radius-xs);margin:.75em 0;padding:12px;overflow-x:auto}.markdown-body pre code{background:0 0;padding:0}.markdown-body blockquote{border-left:3px solid var(--accent);color:var(--fg-secondary);margin:.75em 0;padding:.5em 0 .5em 1em}.markdown-body a{color:var(--accent-bright);text-decoration:none}.markdown-body a:hover{text-decoration:underline}.markdown-body table{border-collapse:collapse;width:100%;margin:.75em 0;font-size:13px}.markdown-body th,.markdown-body td{border:1px solid var(--border-subtle);text-align:left;padding:6px 10px}.markdown-body th{background:var(--surface2);font-weight:600}.markdown-body img{border-radius:var(--radius-xs);max-width:100%}.markdown-body hr{border:none;border-top:1px solid var(--border-subtle);margin:1em 0}.family-add-preview-toolbar{justify-content:flex-end;margin-bottom:4px;display:flex}.family-add-preview-toggle{border:1px solid var(--border);color:var(--muted);font:500 12px/1 var(--font-body);cursor:pointer;background:0 0;border-radius:999px;padding:6px 12px;transition:background .15s,color .15s}.family-add-preview-toggle.active{background:var(--accent-dim);color:var(--accent-bright);border-color:var(--accent)}.family-moment-preview{border:1px solid var(--border-subtle);border-radius:var(--radius-xs);background:var(--surface);min-height:120px;padding:12px}.family-moment-preview-empty{color:var(--muted);font-size:13px}.planning-screen .family-album-grid{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.planning-screen .family-album-photo{aspect-ratio:1;border-radius:var(--radius-sm);background:var(--surface2,var(--family-surface-container-high));border:none;padding:0;display:block;position:relative;overflow:hidden}.planning-screen .family-album-photo img{object-fit:cover;width:100%;height:100%;display:block}.planning-screen .family-album-photo-meta{font:500 10px/1.2 var(--font-body);color:var(--on-media);background:linear-gradient(to top, color-mix(in srgb, var(--media-shadow) 55%, transparent), transparent);opacity:0;pointer-events:none;justify-content:space-between;align-items:center;gap:4px;padding:14px 6px 4px;transition:opacity .15s;display:flex;position:absolute;inset:auto 0 0}.planning-screen .family-album-photo:hover .family-album-photo-meta,.planning-screen .family-album-photo:focus-visible .family-album-photo-meta{opacity:1}@media (hover:none){.planning-screen .family-album-photo-meta{opacity:1}}.planning-screen .family-album-locate{left:50%;bottom:calc(96px + var(--safe-bottom,0px));z-index:30;font:600 13px/1 var(--font-body);color:var(--on-media);background:var(--accent);box-shadow:var(--shadow-glow-accent,0 4px 16px color-mix(in srgb, var(--media-shadow) 20%, transparent));border:none;border-radius:999px;padding:10px 20px;position:fixed;transform:translate(-50%)}.planning-screen .family-todo-card-side{flex-direction:row;flex-shrink:0;align-self:flex-start;align-items:center;gap:4px;display:flex;position:relative}.planning-screen .family-todo-more-btn{width:44px;height:44px;color:var(--muted);border-radius:var(--radius-xs);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;transition:background .2s,color .2s;display:inline-flex}.planning-screen .family-todo-more-btn svg{width:20px;height:20px}.planning-screen .family-todo-more-btn:active{background:var(--surface2);color:var(--fg)}.planning-screen .family-todo-action-menu{z-index:20;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);min-width:96px;box-shadow:var(--shadow-lg);flex-direction:column;padding:4px;display:flex;position:absolute;top:calc(100% + 4px);right:0}.planning-screen .family-todo-action-item{color:var(--fg);font:500 14px/1.4 var(--font-body);text-align:left;border-radius:var(--radius-xs);cursor:pointer;background:0 0;border:none;padding:10px 12px;transition:background .15s}.planning-screen .family-todo-action-item:active:not(:disabled){background:var(--surface2)}.planning-screen .family-todo-action-item.danger{color:var(--danger)}.planning-screen .family-todo-action-item:disabled{opacity:.4;cursor:not-allowed}.planning-screen .family-todo-date{color:var(--muted);align-items:center;gap:4px;min-width:0;max-width:100%;font-size:11px;display:inline-flex}.planning-screen .family-todo-date.overdue{color:var(--danger);font-weight:600}.planning-screen .family-todo-date svg{flex-shrink:0;width:12px;height:12px}.planning-screen .family-todo-due{color:var(--muted);white-space:nowrap;font-size:11px}.planning-screen .family-todo-due.overdue{color:var(--danger);font-weight:600}.planning-screen .family-moment-delete{color:var(--muted);font:400 14px/20px var(--font-body);cursor:pointer;background:0 0;border:none;transition:color .2s}.planning-screen .family-moment-delete:hover{color:var(--danger)}.planning-screen .family-date-divider{align-items:center;gap:8px;margin:4px 0 12px;display:flex}.planning-screen .family-date-divider span{background:var(--border-subtle);flex:1;height:1px}.planning-screen .family-date-divider strong{font:600 11px/1 var(--font-body);letter-spacing:.05em;color:var(--muted);white-space:nowrap}.planning-screen .family-history-items{gap:12px;display:grid}.planning-screen .family-moment-timeline{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--gradient-card);box-shadow:var(--shadow-sm);flex-direction:column;gap:12px;padding:16px;display:flex}.planning-screen .family-moment-timeline.pinned{border-color:var(--warning,var(--accent));box-shadow:var(--shadow-sm), 0 0 0 1px color-mix(in oklch, var(--warning,var(--accent)) 30%, transparent)}.planning-screen .family-moment-pin-badge{font:600 11px/1 var(--font-body);color:var(--warning,var(--accent));background:color-mix(in oklch, var(--warning,var(--accent)) 14%, transparent);border-radius:999px;align-self:flex-start;padding:4px 8px}.planning-screen .family-moment-timeline-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:8px;min-width:0;display:flex}.planning-screen .family-moment-mood-badge{color:var(--muted);font:600 12px/1 var(--font-body);letter-spacing:.05em;white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.planning-screen .family-moment-author-pill{border:1px solid var(--border);background:var(--surface2);color:var(--muted);font:600 11px/1 var(--font-body);letter-spacing:.05em;border-radius:999px;padding:2px 8px;display:inline-flex}.planning-screen .family-moment-author-pill.memberA{border-color:color-mix(in oklch, var(--accent) 35%, transparent);background:var(--accent-dim);color:var(--accent)}.planning-screen .family-moment-author-pill.memberB{border-color:color-mix(in oklch, var(--purple) 35%, transparent);background:var(--purple-dim);color:var(--purple)}.planning-screen .family-moment-timeline-time{color:var(--muted);flex-shrink:0;align-items:center;gap:4px;font-size:11px;display:inline-flex}.planning-screen .family-moment-timeline-time svg{width:12px;height:12px;color:var(--accent)}.planning-screen .family-moment-timeline-content{word-break:break-word;overflow-wrap:anywhere;margin:0}.planning-screen .family-moment-timeline-images{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.planning-screen .family-moment-audio{margin-top:4px}.planning-screen .family-moment-audio audio{width:100%}.planning-screen .family-moment-audio-duration{color:var(--muted);margin-bottom:4px;font-size:12px;display:block}.planning-screen .family-moment-timeline-bar{border-top:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:12px;margin-top:4px;padding-top:12px;display:flex}.planning-screen .family-moment-timeline-actions{align-items:center;gap:16px;display:flex}.planning-screen .family-moment-action-btn{color:var(--muted);font:600 12px/1 var(--font-body);letter-spacing:.05em;cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;min-width:44px;min-height:44px;padding:0 4px;transition:color .2s,transform .2s;display:inline-flex}.planning-screen .family-moment-action-btn svg{width:18px;height:18px}.planning-screen .family-moment-action-btn:hover,.planning-screen .family-moment-action-btn.active{color:var(--accent)}.planning-screen .family-moment-action-btn:active svg{transform:scale(1.08)}.planning-screen .family-moment-timeline-more{position:relative}.planning-screen .family-moment-timeline-menu{border:1px solid var(--border-subtle);background:var(--surface);min-width:88px;box-shadow:var(--shadow-lg);z-index:3;border-radius:8px;position:absolute;bottom:calc(100% + 6px);right:0;overflow:hidden}.planning-screen .family-moment-timeline-menu button{width:100%;color:var(--danger);font:400 14px/20px var(--font-body);text-align:left;cursor:pointer;background:0 0;border:none;min-height:44px;padding:10px 12px}.planning-screen .family-moment-timeline-menu button.family-moment-timeline-menu-edit{color:var(--fg)}.planning-screen .family-moment-timeline-menu button.family-moment-timeline-menu-edit:hover{background:color-mix(in srgb, var(--fg) 8%, transparent)}.planning-screen .family-moment-timeline-menu button:hover{background:color-mix(in srgb, var(--danger) 10%, transparent)}.planning-screen .family-moment-timeline-comments{gap:10px;padding-top:4px;display:grid}.planning-screen .family-moment-feed{gap:12px;display:grid}.planning-screen .family-moment-compact{border:1px solid var(--border-subtle);border-radius:var(--radius-xs);background:var(--gradient-card);padding:12px}.planning-screen .family-moment-compact-head{align-items:center;gap:8px;margin-bottom:8px;display:flex}.planning-screen .family-moment-compact-time{color:var(--muted);margin-left:auto;font-size:11px}.planning-screen .family-moment-compact-content{font:400 14px/20px var(--font-body);color:var(--fg);white-space:pre-wrap;margin:0}.planning-screen .family-moment-compact-images{grid-template-columns:repeat(3,1fr);gap:4px;margin-top:8px;display:grid}.planning-screen .family-moment-image-btn{cursor:pointer;background:0 0;border:none;border-radius:4px;padding:0;overflow:hidden}.planning-screen .family-moment-image-btn img{aspect-ratio:1;object-fit:cover;width:100%;display:block}.planning-screen .family-moment-expand-btn{color:var(--accent);font:500 12px/1 var(--font-body);cursor:pointer;background:0 0;border:none;min-height:44px;margin-top:8px;padding:0 4px}.planning-screen .family-moment-compact-interactions{border-top:1px solid color-mix(in srgb, var(--border-subtle) 50%, transparent);margin-top:10px;padding-top:10px}.planning-screen .family-like-btn{color:var(--muted);cursor:pointer;background:0 0;border:none;min-width:44px;min-height:44px;padding:0 4px;font-size:12px}.planning-screen .family-like-btn.active{color:var(--accent)}.planning-screen .family-moment-likes{border-radius:var(--radius-xs);background:var(--surface2);color:var(--fg-secondary);margin:8px 0;padding:8px 10px;font-size:11px}.planning-screen .family-moment-comments{gap:6px;margin:0 0 8px;padding:0;list-style:none;display:grid}.planning-screen .family-moment-comments li{background:var(--border-subtle);color:var(--fg);word-break:break-word;overflow-wrap:anywhere;border-radius:4px;min-width:0;padding:8px 10px;font-size:11px;line-height:1.45}.planning-screen .family-moment-comments strong{margin-right:6px}.planning-screen .family-moment-comments span{word-break:break-word}.planning-screen .family-moment-comment-form{gap:8px;min-width:0;display:flex}.planning-screen .family-moment-comment-form input{border:1px solid var(--border-subtle);border-radius:var(--radius-xs);background:var(--surface);min-width:0;color:var(--fg);flex:1 1 0;padding:8px 10px;font-size:12px}.planning-screen .family-moment-comment-form button{border:1px solid var(--border-subtle);border-radius:var(--radius-xs);background:var(--accent-dim);color:var(--accent);cursor:pointer;padding:0 12px;font-size:11px}.planning-screen .family-image-preview{z-index:400;background:var(--media-overlay-bg-strong);justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.planning-screen .family-image-preview img{object-fit:contain;max-width:100%;max-height:100%}.planning-screen .family-image-preview-nav{background:var(--media-overlay-control);width:44px;min-width:44px;height:44px;color:var(--media-overlay-fg);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:28px;line-height:1;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.planning-screen .family-image-preview-nav.prev{left:16px}.planning-screen .family-image-preview-nav.next{right:16px}.planning-screen .family-image-preview-nav:disabled{opacity:.3;cursor:default}.planning-screen .family-image-preview-counter{color:color-mix(in srgb, var(--media-overlay-fg) 80%, transparent);font-size:12px;position:absolute;bottom:24px;left:50%;transform:translate(-50%)}.planning-screen .family-image-preview-close{background:var(--media-overlay-control);width:44px;min-width:44px;height:44px;color:var(--media-overlay-fg);cursor:pointer;border:none;border-radius:50%;font-size:24px;line-height:1;position:absolute;top:16px;right:16px}.family-fab.fab-menu{right:18px;bottom:calc(84px + var(--safe-bottom))}.family-fab.fab-menu .fab{background:var(--gradient-accent);width:50px;height:50px;color:var(--on-accent);box-shadow:var(--shadow-md), var(--shadow-glow-accent);border:none;border-radius:50%;font-size:24px;font-weight:300;line-height:1}.family-fab.fab-menu .fab:hover{opacity:.95}.family-fab.fab-menu.open .fab{background:var(--surface2);color:var(--fg);border:1px solid var(--border-subtle)}.family-fab.fab-menu .fab-action-sheet{border-color:var(--border-subtle);background:var(--gradient-card);bottom:60px}.family-fab.fab-menu .fab-action-item{color:var(--fg)}.family-fab.fab-menu .fab-action-item span{color:var(--muted)}.family-moment-upload-preview{grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px;display:grid}.family-moment-upload-item{position:relative}.family-moment-upload-item img{aspect-ratio:1;object-fit:cover;border-radius:var(--radius-xs);width:100%}.family-moment-upload-item button{background:var(--media-overlay-bg);color:var(--media-overlay-fg);cursor:pointer;border:none;border-radius:999px;padding:2px 6px;font-size:11px;position:absolute;top:4px;right:4px}.financial-planning-section{border-bottom:1px solid var(--border-subtle);margin-bottom:18px;padding-bottom:18px}.financial-planning-toggle{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--bg);text-align:left;cursor:pointer;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:14px 16px;display:flex}.financial-planning-toggle h3{margin:0 0 4px;font-size:14px}.financial-planning-toggle p{color:var(--muted);margin:0;font-size:11px}.financial-planning-toggle span{color:var(--accent);white-space:nowrap;font-size:11px}.financial-planning-body{gap:12px;margin-top:12px;display:grid}.financial-planning-body .card{margin:0}.sheet.family-add-sheet{flex-direction:column;max-height:92dvh;padding:12px 20px 0;display:flex;overflow:hidden}.sheet.family-add-sheet>h3{text-align:center;flex-shrink:0;margin-bottom:12px}.sheet.family-add-sheet>.family-add-form{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.family-add-body{-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;gap:16px;padding:0 0 16px;display:flex;overflow-y:auto}.family-add-segment{border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border-subtle);padding:4px;display:flex;position:relative}.family-add-segment-indicator{border-radius:var(--radius-xs);background:var(--accent-dim);width:calc(25% - 1.2px);height:calc(100% - 8px);box-shadow:none;pointer-events:none;border:1px solid #0000;transition:transform .25s cubic-bezier(.16,1,.3,1);position:absolute;top:4px;left:4px}.family-add-segment-indicator.moment{transform:translate(100%)}.family-add-segment-indicator.anniversary{transform:translate(200%)}.family-add-segment-indicator.skill{transform:translate(300%)}.family-add-segment-btn{z-index:1;color:var(--muted);font:500 14px/20px var(--font-body);cursor:pointer;background:0 0;border:none;flex:1;padding:12px 8px;transition:color .2s;position:relative}.family-add-segment-btn.active{color:var(--accent-bright);font-weight:700}.family-add-forms{flex-direction:column;gap:16px;display:flex}.family-add-field-card{border-radius:var(--radius-sm);background:var(--gradient-card);border:1px solid var(--border-subtle);flex-direction:column;gap:8px;padding:20px;display:flex}.family-add-field-card label,.family-add-field-label{font:400 14px/20px var(--font-body);color:var(--muted)}.family-add-field-card input,.family-add-field-card textarea{border:none;border-bottom:1px solid var(--border-subtle);width:100%;min-height:44px;color:var(--fg);font:400 16px/24px var(--font-body);background:0 0;outline:none;padding:8px 0}.family-add-field-card input:focus,.family-add-field-card textarea:focus{border-bottom-color:var(--accent)}.family-add-field-card textarea{resize:none;min-height:96px}.family-add-pill-row{flex-wrap:wrap;gap:12px;display:flex}.family-add-mood-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;display:grid}.family-add-mood-btn{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--surface);color:var(--muted);cursor:pointer;flex-direction:column;align-items:center;gap:6px;padding:12px 4px;transition:border-color .2s,background .2s,color .2s,transform .15s;display:flex}.family-add-mood-btn.active{border-color:var(--accent);background:var(--accent-dim);color:var(--accent)}.family-add-mood-btn:active{transform:scale(.94)}.family-add-mood-emoji{font-size:28px;line-height:1}.family-add-mood-label{font:600 11px/1 var(--font-body)}.family-add-pill{border:1px solid var(--border-subtle);min-height:44px;color:var(--muted);font:600 12px/1 var(--font-body);letter-spacing:.05em;cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:4px;padding:8px 16px;transition:border-color .2s,background .2s,color .2s,transform .15s;display:inline-flex}.family-add-pill:active{transform:scale(.96)}.family-add-pill.active{border-color:color-mix(in oklch, var(--accent) 50%, transparent);background:var(--accent-dim);color:var(--accent-bright);font-weight:700}.family-add-pill.active.memberA,.family-add-pill.active.both{border-color:color-mix(in oklch, var(--accent) 50%, transparent);background:var(--accent-dim);color:var(--accent-bright)}.family-add-pill.active.memberB{border-color:color-mix(in oklch, var(--purple) 50%, transparent);background:var(--purple-dim);color:var(--purple)}.family-add-interval-stepper{border:1px solid var(--border-subtle);background:0 0;border-radius:999px;align-items:center;gap:4px;padding:4px;display:inline-flex}.family-add-interval-btn{background:var(--accent-dim);width:44px;height:44px;color:var(--accent-bright);font:700 18px/1 var(--font-body);cursor:pointer;border:none;border-radius:999px;flex:none;transition:background .2s,color .2s,transform .15s}.family-add-interval-btn:active{transform:scale(.92)}.family-add-interval-btn:disabled{opacity:.35;cursor:not-allowed}.family-add-interval-value{text-align:center;min-width:96px;font:600 13px/1 var(--font-body);color:var(--text);letter-spacing:.03em}.family-add-image-grid{grid-template-columns:repeat(4,1fr);gap:8px;margin-top:12px;display:grid}.family-add-image-item{aspect-ratio:1;position:relative}.family-add-image-item img{object-fit:cover;border-radius:var(--radius-xs);width:100%;height:100%}.family-add-image-item button{background:var(--media-overlay-bg);color:var(--media-overlay-fg);cursor:pointer;border:none;border-radius:999px;padding:2px 6px;font-size:11px;position:absolute;top:4px;right:4px}.family-add-image-add{aspect-ratio:1;border:2px dashed var(--border);border-radius:var(--radius-xs);color:var(--muted);cursor:pointer;background:0 0;flex-direction:column;justify-content:center;align-items:center;gap:4px;transition:border-color .2s,color .2s,background .2s;display:flex}.family-add-image-add:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.family-add-image-add span{font-size:22px;line-height:1}.family-add-image-add small{font-size:11px}.family-add-audio-record{border:2px dashed var(--border);border-radius:var(--radius-xs);width:100%;color:var(--muted);cursor:pointer;background:0 0;padding:12px;transition:border-color .2s,color .2s,background .2s}.family-add-audio-record:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.family-add-audio-record:disabled{opacity:.6;cursor:not-allowed}.family-add-audio-preview{flex-direction:column;gap:8px;display:flex}.family-add-audio-preview audio{width:100%}.family-add-audio-meta{color:var(--muted);font-size:12px}.family-add-audio-preview button{border:1px solid var(--border);border-radius:var(--radius-xs);color:var(--muted);cursor:pointer;background:0 0;align-self:flex-start;padding:6px 12px;font-size:12px}.family-add-audio-recording{border-radius:var(--radius-xs);background:var(--accent-dim);align-items:center;gap:10px;padding:12px;display:flex}.family-add-audio-dot{background:var(--danger);border-radius:50%;width:10px;height:10px;animation:1s ease-in-out infinite family-audio-pulse}@keyframes family-audio-pulse{0%,to{opacity:1}50%{opacity:.3}}.family-add-audio-timer{font-variant-numeric:tabular-nums;color:var(--text);flex:1;font-size:14px}.family-add-audio-recording button{border-radius:var(--radius-xs);background:var(--danger);color:var(--on-media);cursor:pointer;border:none;padding:6px 14px;font-size:12px}.family-add-footer{padding:12px 0 calc(16px + var(--safe-bottom));background:var(--surface);border-top:1px solid var(--border-subtle);flex-shrink:0;gap:12px;margin-top:auto;display:flex}.family-add-submit{border-radius:var(--radius-sm);background:var(--gradient-accent);color:var(--on-accent);font:600 16px/24px var(--font-body);cursor:pointer;box-shadow:var(--shadow-md), var(--shadow-glow-accent);border:none;flex:1;padding:16px;transition:transform .2s,opacity .2s}.family-add-submit:active{transform:scale(.98)}.family-add-submit:disabled{opacity:.6;cursor:not-allowed}.family-add-delete{border:1px solid color-mix(in oklch, var(--danger) 45%, transparent);border-radius:var(--radius-sm);background:var(--danger-dim);color:var(--danger);font:600 16px/24px var(--font-body);cursor:pointer;flex-shrink:0;padding:16px 24px;transition:transform .15s,background .2s}.family-add-delete:active{transform:scale(.96)}.family-fab-trigger{right:18px;bottom:calc(84px + var(--safe-bottom));z-index:100;background:var(--gradient-accent);width:50px;height:50px;color:var(--on-accent);box-shadow:var(--shadow-md), var(--shadow-glow-accent);cursor:pointer;border:none;border-radius:50%;font-size:24px;font-weight:300;line-height:1;transition:transform .2s cubic-bezier(.16,1,.3,1),box-shadow .2s;position:fixed}.family-fab-trigger:active{transform:scale(.92)}.planning-screen .family-month-rail{left:max(8px, calc((100vw - var(--app-max-width)) / 2 + 8px))}.fab,.fab-menu,.family-fab-trigger,.family-fab.fab-menu{right:max(18px, calc((100vw - var(--app-max-width)) / 2 + 18px))}
.asset-returns-module{gap:12px;display:grid}.asset-empty-hero{text-align:center;flex-direction:column;align-items:center;gap:8px;padding:28px 16px;display:flex}.asset-empty-title{font:700 16px/1.4 var(--font-display);color:var(--text);margin:0}.asset-empty-desc{color:var(--muted);margin:0 0 12px;font-size:13px;line-height:1.5}.asset-empty-btn{max-width:220px}.asset-hero-card{flex-direction:column;gap:16px;display:flex}.asset-hero-top{justify-content:space-between;align-items:center;gap:12px;display:flex}.asset-year-switcher{align-items:center;gap:10px;display:flex}.year-nav-btn{border:1px solid color-mix(in srgb, var(--on-media) 25%, transparent);background:color-mix(in srgb, var(--on-media) 10%, transparent);width:44px;height:44px;color:color-mix(in srgb, var(--on-media) 90%, transparent);font:700 18px/1 var(--font-body);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;transition:background .15s,opacity .15s;display:flex}.year-nav-btn:hover:not(:disabled){background:color-mix(in srgb, var(--on-media) 20%, transparent)}.year-nav-btn:disabled{opacity:.3;cursor:not-allowed}.asset-year-label{font:700 18px/1 var(--font-display);color:var(--hero-banner-fg,var(--on-media));text-align:center;min-width:72px}.asset-hero-add{background:color-mix(in srgb, var(--on-media) 18%, transparent);color:color-mix(in srgb, var(--on-media) 95%, transparent);border:1px solid color-mix(in srgb, var(--on-media) 25%, transparent)}.asset-hero-add:hover{background:color-mix(in srgb, var(--on-media) 28%, transparent)}.asset-hero-figures{grid-template-columns:1fr 1fr;gap:12px;display:grid}.asset-hero-figure{flex-direction:column;gap:6px;display:flex}.asset-figure-label{font:600 12px/1 var(--font-body);color:color-mix(in srgb, var(--on-media) 70%, transparent)}.asset-figure-value{font:700 28px/1.1 var(--font-display);font-variant-numeric:tabular-nums;color:var(--hero-banner-fg,var(--on-media))}.asset-figure-value.pos{color:var(--accent)}.asset-figure-value.neg{color:var(--danger)}.asset-hero-annualized{border-top:1px solid color-mix(in srgb, var(--on-media) 15%, transparent);align-items:center;gap:8px;padding-top:14px;display:flex}.asset-annualized-item{text-align:center;flex-direction:column;flex:1;gap:4px;display:flex}.asset-annualized-label{font:600 11px/1 var(--font-body);color:color-mix(in srgb, var(--on-media) 60%, transparent)}.asset-annualized-value{font:700 16px/1 var(--font-mono);font-variant-numeric:tabular-nums;color:color-mix(in srgb, var(--on-media) 95%, transparent)}.asset-annualized-value.pos{color:var(--accent)}.asset-annualized-value.neg{color:var(--danger)}.asset-annualized-divider{background:color-mix(in srgb, var(--on-media) 15%, transparent);align-self:stretch;width:1px}.asset-hero-total-row{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.asset-total-label{font:600 12px/1 var(--font-body);color:color-mix(in srgb, var(--on-media) 70%, transparent)}.asset-total-value{font:700 18px/1 var(--font-mono);font-variant-numeric:tabular-nums;color:color-mix(in srgb, var(--on-media) 95%, transparent)}.asset-total-value.pos{color:var(--accent)}.asset-total-value.neg{color:var(--danger)}.asset-total-values{align-items:baseline;gap:8px;min-width:0;display:flex}.asset-total-rate{font:600 12px/1 var(--font-mono);font-variant-numeric:tabular-nums;color:color-mix(in srgb, var(--on-media) 70%, transparent);white-space:nowrap}.asset-total-rate.pos{color:var(--accent)}.asset-total-rate.neg{color:var(--danger)}.asset-hero-empty{text-align:center;flex-direction:column;align-items:center;gap:14px;padding:20px 0 8px;display:flex}.asset-hero-empty p{color:color-mix(in srgb, var(--on-media) 80%, transparent);margin:0;font-size:14px}.asset-hero-add-btn{border:1px solid color-mix(in srgb, var(--on-media) 30%, transparent);background:color-mix(in srgb, var(--on-media) 15%, transparent);color:color-mix(in srgb, var(--on-media) 95%, transparent);border-radius:var(--radius-md);font:700 13px/1 var(--font-body);cursor:pointer;padding:8px 20px}.asset-hero-add-btn:hover{background:color-mix(in srgb, var(--on-media) 25%, transparent)}.asset-yearly-list{gap:8px;margin-top:4px;display:grid}.asset-yearly-item{border:1px solid var(--border);background:var(--bg);border-radius:14px;grid-template-columns:minmax(0,1fr) 44px;align-items:center;gap:2px;padding:3px;transition:background .15s,border-color .15s;display:grid}.asset-yearly-item:hover{border-color:var(--accent)}.asset-yearly-edit{min-height:44px;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:11px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:9px 10px;display:grid}.asset-yearly-edit:hover{background:var(--surface2)}.asset-yearly-delete{width:44px;height:44px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:11px;justify-content:center;align-items:center;display:inline-flex}.asset-yearly-delete:hover{background:var(--danger-dim);color:var(--danger)}.asset-yearly-delete svg{width:18px;height:18px}.asset-yearly-year{font:700 15px/1.25 var(--font-display);color:var(--text)}.asset-yearly-total{font:600 13px/1 var(--font-mono);font-variant-numeric:tabular-nums;color:var(--muted)}.asset-yearly-rate{font:700 16px/1 var(--font-mono);font-variant-numeric:tabular-nums}.asset-yearly-rate.pos{color:var(--accent)}.asset-yearly-rate.neg{color:var(--danger)}.legend-item-muted{opacity:.45}.form-hint{color:var(--muted);margin:-4px 0 8px;font-size:11px}.asset-channel-list{gap:8px;margin-top:4px;display:grid}.asset-channel-row{grid-template-columns:1fr 120px auto;align-items:center;gap:8px;display:grid}.asset-channel-name-label{font:600 13px/1 var(--font-body);color:var(--text);padding:0 4px}.asset-channel-name{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);font:600 13px/1 var(--font-body);padding:8px 10px}.asset-channel-name:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim);outline:none}.asset-channel-amount{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);font-family:var(--font-mono);font-variant-numeric:tabular-nums;text-align:right;padding:8px 10px}.asset-channel-amount:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim);outline:none}.asset-channel-remove{background:var(--danger-dim);width:28px;height:28px;color:var(--danger);cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:14px;display:flex}.asset-channel-remove:hover{background:var(--danger);color:var(--on-media)}.asset-channel-add{border:1px dashed var(--border);color:var(--accent);border-radius:var(--radius-sm);font:600 13px/1 var(--font-body);cursor:pointer;background:0 0;width:100%;margin-top:8px;padding:8px}.asset-channel-add:hover{border-color:var(--accent);background:var(--accent-dim)}.asset-channel-sum{margin:8px 0 0}.backup-page{flex-direction:column;gap:16px;min-height:100%;display:flex}.backup-page.select-mode{padding-bottom:80px}.backup-header{align-items:center;gap:12px;padding:8px 0;display:flex}.backup-back-btn{border:1px solid var(--border);background:var(--bg);width:44px;height:44px;color:var(--text);font:700 20px/1 var(--font-body);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.backup-back-btn:hover{background:var(--accent-dim)}.backup-header h1{font:700 20px/1 var(--font-display);margin:0}.backup-create-btn{width:100%}.backup-list-section{flex-direction:column;gap:10px;display:flex}.backup-list-title{font:700 14px/1 var(--font-body);color:var(--text);align-items:center;gap:8px;display:flex}.backup-count{color:var(--muted);background:var(--surface3);border-radius:999px;padding:2px 8px;font-size:12px}.backup-manage-btn{min-height:44px;color:var(--accent);font:600 13px/1 var(--font-body);cursor:pointer;background:0 0;border:0;border-radius:10px;margin-left:auto;padding:0 12px}.backup-manage-btn:hover{background:var(--accent-dim)}.backup-empty{color:var(--muted);text-align:center;padding:32px 16px;font-size:13px;line-height:1.6}.backup-list{gap:10px;display:grid}.backup-card{border:1px solid var(--border);background:var(--bg);border-radius:14px;transition:border-color .15s,background .15s;display:flex;position:relative;overflow:hidden}.backup-card.select-mode.selected{border-color:var(--accent);background:var(--accent-dim)}.backup-card-main{cursor:pointer;text-align:left;width:100%;min-height:64px;font:inherit;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:0 0;border:none;flex:1;justify-content:space-between;align-items:center;gap:12px;padding:14px 14px 14px 16px;display:flex}.backup-card-main:active{background:var(--accent-dim)}.backup-card-info{flex-direction:column;gap:4px;min-width:0;display:flex}.backup-card-info h3{font:600 14px/1.3 var(--font-body);color:var(--text);text-overflow:ellipsis;white-space:nowrap;margin:0;overflow:hidden}.backup-card-info time{color:var(--muted);font-size:12px}.backup-chevron{color:var(--muted);white-space:nowrap;flex-shrink:0;font-size:12px}.backup-select-check{border:2px solid var(--border);background:var(--bg);width:22px;height:22px;color:var(--on-media);font:700 12px/1 var(--font-body);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:border-color .15s,background .15s;display:flex}.backup-select-check.checked{border-color:var(--accent);background:var(--accent)}.backup-select-bar{left:50%;bottom:calc(var(--bottom-nav-height,64px) + 12px);width:min(calc(100% - 32px), var(--app-max-width,430px));z-index:20;position:fixed;transform:translate(-50%)}.backup-select-delete-btn{background:var(--danger);border-color:var(--danger);width:100%}.backup-select-delete-btn:disabled{opacity:.45}.backup-card-delete{border:none;border-left:1px solid var(--border);min-width:58px;min-height:44px;color:var(--danger);font:600 12px/1 var(--font-body);cursor:pointer;background:0 0;align-self:stretch}.backup-card-delete:hover{background:var(--danger-dim)}.backup-restore-sheet{flex-direction:column;gap:14px;display:flex}.backup-restore-reason{font:600 13px/1.4 var(--font-body);color:var(--muted);margin:0}.backup-restore-divider{color:var(--muted);align-items:center;gap:12px;font-size:12px;display:flex}.backup-restore-divider:before,.backup-restore-divider:after{content:"";background:var(--border);flex:1;height:1px}.backup-module-list{gap:8px;display:grid}.backup-module-item{border:1px solid var(--border);cursor:pointer;border-radius:12px;align-items:center;gap:10px;padding:12px 14px;transition:border-color .15s,background .15s;display:flex}.backup-module-item.checked{border-color:var(--accent);background:var(--accent-dim)}.backup-module-item input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent);flex-shrink:0}.backup-module-name{font:600 14px/1 var(--font-body);color:var(--text);flex:1}.backup-module-count{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.import-export-page{padding-bottom:24px}.import-export-section{flex-direction:column;gap:10px;display:flex}.import-export-section+.import-export-section{margin-top:8px}.import-export-section-title{font:700 13px/1 var(--font-body);color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding:4px 2px 0}.import-export-module-grid{gap:10px;display:grid}.import-export-module-card{border:1px solid var(--border);background:var(--bg);border-radius:14px;flex-direction:column;gap:6px;padding:12px 14px;display:flex}.import-export-module-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.import-export-module-head strong{font:700 15px/1.2 var(--font-body);color:var(--text)}.import-export-module-head span{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.import-export-module-card p{color:var(--muted);margin:0;font-size:12px;line-height:1.5}.import-export-module-actions{gap:8px;margin-top:4px;display:flex}.import-export-module-actions button{border:1px solid var(--border);background:var(--surface3);min-height:44px;color:var(--text);font:600 13px/1 var(--font-body);cursor:pointer;border-radius:10px;flex:1;padding:8px 12px}.import-export-module-actions button:hover{background:var(--accent-dim)}.import-export-section .list-group-body{border:1px solid var(--border);border-radius:14px;overflow:hidden}
.discourse-screen-inner{gap:var(--gap);flex-direction:column;display:flex}.discourse-owner-switch{background:var(--surface3);border-radius:var(--radius-md);gap:6px;padding:4px;display:flex}.discourse-owner-tab{border-radius:var(--radius-sm);min-height:44px;color:var(--fg-secondary);font-size:var(--text-md);cursor:pointer;background:0 0;border:none;flex:1;padding:8px 12px;font-weight:600;transition:background .2s,color .2s}.discourse-owner-tab.active{background:var(--surface);color:var(--accent);box-shadow:var(--shadow-sm)}.discourse-hero-card{background:var(--gradient-card);border-color:var(--border-subtle);flex-direction:column;gap:10px;display:flex}.discourse-hero-label{font-size:var(--text-sm);color:var(--fg-secondary)}.discourse-hero-total{align-items:baseline;gap:10px;display:flex}.discourse-hero-total strong{letter-spacing:-.02em;font-size:40px;font-weight:700;line-height:1;font-family:var(--font-display);color:var(--tier-color)}.discourse-hero-tier{font-size:var(--text-base);color:var(--tier-color);font-weight:600}.discourse-hero-bar{background:var(--surface3);border-radius:999px;height:8px;overflow:hidden}.discourse-hero-bar-fill{border-radius:999px;height:100%;transition:width .3s,background .3s;display:block}.discourse-hero-hint,.discourse-hero-focus{font-size:var(--text-sm);color:var(--muted);margin:0}.discourse-hero-focus strong{font-weight:700}.discourse-principle-summary{border-radius:var(--radius-sm);cursor:pointer;justify-content:space-between;align-items:center;gap:16px;min-height:44px;margin:-8px;padding:8px;list-style:none;display:flex}.discourse-principle-summary::-webkit-details-marker{display:none}.discourse-principle-summary>span{flex-direction:column;gap:3px;min-width:0;display:flex}.discourse-principle-summary strong{color:var(--fg);font-size:var(--text-base);font-weight:700}.discourse-principle-summary small{color:var(--muted);font-size:var(--text-xs);line-height:1.4}.discourse-principle-summary svg{width:20px;height:20px;color:var(--fg-secondary);stroke-width:1.8px;flex:none;transition:transform .2s}.discourse-principle-card[open] .discourse-principle-summary svg{transform:rotate(180deg)}.discourse-principle-list{border-top:1px solid var(--border-subtle);flex-direction:column;gap:12px;margin:16px 0 0;padding:16px 0 0;list-style:none;display:flex}.discourse-principle-item{border-left:3px solid var(--accent-dim);flex-direction:column;gap:3px;padding-left:12px;display:flex}.discourse-principle-item strong{font-size:var(--text-md);color:var(--fg);font-weight:600}.discourse-principle-item span{font-size:var(--text-sm);color:var(--fg-secondary);line-height:1.5}.discourse-focus-card .card-head{align-items:center}.discourse-focus-count{font-size:var(--text-sm);color:var(--muted)}.discourse-focus-tip{font-size:var(--text-sm);color:var(--fg-secondary);margin:4px 0 12px;line-height:1.5}.discourse-radar{justify-content:center;padding:4px 0;display:flex}.discourse-radar-svg{width:100%;max-width:300px;height:auto;overflow:visible}.discourse-radar-vertex{cursor:pointer;transition:opacity .15s}.discourse-radar-vertex.is-disabled{cursor:not-allowed;opacity:.35}.discourse-radar-vertex:not(.is-disabled):hover{opacity:.85}.discourse-radar-label{fill:var(--fg-secondary);paint-order:stroke;stroke:var(--surface);stroke-width:3px;stroke-linejoin:round;font-size:11.5px;font-weight:600}.discourse-radar-score{font-variant-numeric:tabular-nums;paint-order:stroke;stroke:var(--surface);stroke-width:3px;stroke-linejoin:round;font-size:15px;font-weight:700}.discourse-module{flex-direction:column;gap:14px;display:flex}.discourse-module.is-focus{border-color:var(--accent);box-shadow:var(--shadow-soft), 0 0 0 1px var(--accent-glow)}.discourse-module-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.discourse-module-titles{flex:1;min-width:0}.discourse-module-title-row{align-items:center;gap:8px;display:flex}.discourse-module-title-row h3{font-size:var(--text-lg);margin:0;font-weight:700}.discourse-priority{background:var(--surface3);width:22px;height:22px;color:var(--fg-secondary);font-size:var(--text-xs);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.discourse-focus-badge{font-size:var(--text-xs);color:var(--on-accent);background:var(--accent);border-radius:999px;padding:2px 8px;font-weight:600}.discourse-bottom-line{font-size:var(--text-sm);color:var(--fg-secondary);margin:6px 0 0;line-height:1.5}.discourse-module-score{flex-direction:column;flex-shrink:0;align-items:flex-end;display:flex}.discourse-module-score strong{font-size:var(--text-2xl);color:var(--tier-color);font-weight:700;line-height:1}.discourse-module-score small{font-size:var(--text-xs);color:var(--muted);margin-top:2px}.discourse-module-actions{flex-wrap:wrap;gap:8px;display:flex}.discourse-focus-toggle,.discourse-weight-toggle,.discourse-edit-toggle{min-height:44px;font-size:var(--text-sm);border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface2);color:var(--fg-secondary);cursor:pointer;padding:6px 12px;transition:all .2s}.discourse-focus-toggle:hover:not(.disabled),.discourse-weight-toggle:hover,.discourse-edit-toggle:hover{border-color:var(--accent);color:var(--accent)}.discourse-focus-toggle.active{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.discourse-focus-toggle.disabled{opacity:.45;cursor:not-allowed}.discourse-edit-toggle.active{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.discourse-dim-group{flex-direction:column;gap:10px;display:flex}.discourse-dim-group--bottom .discourse-section-label{color:var(--fg-secondary)}.discourse-dim-group--growth{border-radius:var(--radius-md);background:var(--warning-dim);border-left:3px solid var(--warning);margin-top:6px;padding:14px 14px 14px 16px}.discourse-dim-group--growth .discourse-section-label{font-size:var(--text-md);color:var(--warning);font-weight:700}.discourse-section-label{font-size:var(--text-sm);color:var(--muted);align-items:center;gap:8px;margin-top:2px;font-weight:600;display:flex}.discourse-growth-hint{font-size:var(--text-xs);color:var(--warning);background:var(--warning-dim);border-radius:999px;padding:1px 7px;font-weight:500}.discourse-note{font-size:var(--text-xs);color:var(--fg-secondary);font-style:normal;font-weight:400}.discourse-dim-list{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.discourse-dim-row{border-bottom:1px solid var(--border-subtle);flex-direction:column;gap:8px;padding-bottom:12px;display:flex}.discourse-dim-row:last-child{border-bottom:none;padding-bottom:0}.discourse-dim-meta{flex-direction:column;gap:2px;display:flex}.discourse-dim-label{font-size:var(--text-md);color:var(--fg);font-weight:600}.discourse-dim-desc{font-size:var(--text-sm);color:var(--fg-secondary);line-height:1.45}.discourse-weight-input{font-size:var(--text-sm);color:var(--muted);align-items:center;gap:8px;display:flex}.discourse-weight-input input{border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--surface2);width:64px;color:var(--fg);font:inherit;padding:4px 8px}.discourse-slider{align-items:center;gap:10px;display:flex;position:relative}.discourse-slider.is-locked .discourse-slider-input{pointer-events:none}.discourse-slider.is-locked .discourse-slider-track{cursor:default}.discourse-slider.is-locked{opacity:.82}.discourse-stepper{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface2);width:30px;height:30px;color:var(--fg);cursor:pointer;flex:none;font-size:15px;line-height:1}.discourse-stepper:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.discourse-stepper:disabled{opacity:.35;cursor:default}.discourse-slider-track{flex:1;align-items:center;height:32px;display:flex;position:relative}.discourse-slider-track:before{content:"";background:var(--surface3);z-index:0;border-radius:999px;height:6px;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}.discourse-slider-fill{z-index:0;border-radius:999px;height:6px;transition:width .15s,background .15s;position:absolute;top:50%;left:0;transform:translateY(-50%)}.discourse-slider-ticks{z-index:1;pointer-events:none;height:6px;display:flex;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}.discourse-slider-tick{background:linear-gradient(to right, var(--tick-line) 0, var(--tick-line) 2px, transparent 2px, transparent 100%);flex:1;height:100%}.discourse-slider-tick:first-child{background:0 0}.discourse-slider-tick.is-filled{background:linear-gradient(to right, var(--tick-line-filled) 0, var(--tick-line-filled) 2px, transparent 2px, transparent 100%)}.discourse-slider-tick.is-filled:first-child{background:0 0}.discourse-slider-input{z-index:2;opacity:0;cursor:pointer;background:0 0;width:100%;height:32px;margin:0;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}.discourse-slider-input::-webkit-slider-thumb{-webkit-appearance:none;opacity:0;width:2px;height:100%}.discourse-slider-input::-moz-range-thumb{opacity:0;background:0 0;border:none;width:2px;height:100%}.discourse-slider-input::-webkit-slider-runnable-track{background:0 0}.discourse-slider-input::-moz-range-track{background:0 0}.discourse-slider-value{font-size:var(--text-md);text-align:right;font-variant-numeric:tabular-nums;min-width:34px;font-weight:700}.discourse-slider-badge{font-size:var(--text-xs);color:var(--warning);background:var(--warning-dim);border-radius:999px;flex-shrink:0;padding:1px 6px}.discourse-slider-input:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:var(--radius-xs)}
.member-entry{border-bottom:1px solid var(--border-subtle)}.member-entry .list-row{border-bottom:none}.member-row{cursor:default;align-items:center;gap:10px;display:flex}.member-name-btn{min-height:44px;color:var(--fg);text-align:left;cursor:pointer;background:0 0;border:none;flex:1;align-self:stretch;padding:0 4px;font-size:14px}.member-edit-input{border:1px solid var(--border);background:var(--bg);min-width:0;min-height:44px;color:var(--fg);border-radius:8px;flex:1;padding:8px;font-size:13px}.member-row-actions{align-items:center;gap:4px;display:flex}.member-more-btn,.member-compact-btn,.member-restore-btn,.member-action-row button{border-radius:var(--radius-xs);min-width:44px;min-height:44px;color:var(--fg-secondary);font:600 12px/1 var(--font-body);cursor:pointer;background:0 0;border:none}.member-more-btn{place-items:center;width:44px;padding:0;display:inline-grid}.member-more-btn svg{width:20px;height:20px}.member-more-btn[aria-expanded=true],.member-compact-btn.primary,.member-action-row button:active,.member-restore-btn:active{background:var(--accent-dim);color:var(--accent)}.member-action-row{justify-content:flex-end;gap:8px;padding:0 16px 12px 58px;display:flex}.member-action-row button{border:1px solid var(--border-subtle);padding:0 14px}.member-action-row .danger-text{color:var(--danger)}.member-row-inactive{opacity:.82}.member-restore-btn{color:var(--accent);padding:0 12px}.member-add-row{align-items:center;gap:10px;display:flex}.member-add-row .member-edit-input{flex:1}.sheet.record-entry-sheet{flex-direction:column;max-height:92dvh;padding:12px 20px 0;display:flex;overflow:hidden}.record-entry-body{-webkit-overflow-scrolling:touch;flex:1;min-height:0;padding:0 0 16px;overflow-y:auto}.record-entry-footer{padding:12px 0 calc(16px + var(--safe-bottom));border-top:1px solid var(--border-subtle);background:var(--surface);flex:none;gap:12px;display:flex}.record-entry-footer .btn-submit{flex:1;min-height:52px;margin:0}.record-entry-footer .btn-secondary.danger{width:auto;min-height:52px;margin:0;padding-inline:18px}.form-hint{color:var(--muted);margin:4px 0 10px;font-size:12px;line-height:1.5}.form-section{margin-bottom:6px}.form-section-head{border-left:3px solid var(--accent);flex-direction:column;gap:2px;margin:10px 0 6px;padding-left:8px;display:flex}.form-section.liability .form-section-head{border-left-color:var(--danger)}.form-section-name{color:var(--fg);font-size:13px;font-weight:600}.form-section-desc{color:var(--muted);font-size:12px;line-height:1.5}.form-link{color:var(--accent);cursor:pointer;text-align:left;background:0 0;border:none;margin-top:10px;padding:4px 0;font-size:13px;text-decoration:underline}.metric-manage-sheet .metric-manage-hint{color:var(--fg-secondary);margin:0 0 12px;font-size:13px;line-height:1.6}.metric-manage-sheet .metric-group-card{margin-bottom:12px}.metric-manage-sheet .keynet-name-input{border:1px solid var(--border);background:var(--bg);width:100%;color:var(--fg);border-radius:8px;margin-bottom:8px;padding:8px 10px;font-size:13px;display:block}.metric-manage-sheet .keynet-hint{margin:8px 0 0}.metric-manage-sheet .metric-item-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.metric-manage-sheet .metric-item-row{grid-template-columns:auto 1.2fr 1fr auto;align-items:center;gap:6px;display:grid}.metric-manage-sheet .metric-item-actions{justify-content:flex-end;align-items:center;gap:4px;display:flex}.metric-manage-sheet .metric-move-btn{border:1px solid var(--border);background:var(--bg);width:26px;height:26px;color:var(--fg-secondary);cursor:pointer;border-radius:6px;flex:none;font-size:12px;line-height:1}.metric-manage-sheet .metric-move-btn:disabled{opacity:.35;cursor:default}.metric-manage-sheet .metric-advanced-btn{color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:4px 2px;font-size:12px}.metric-manage-sheet .metric-import-input{grid-column:1/-1}.metric-manage-sheet .metric-group-fields{flex-direction:column;gap:8px;margin-bottom:10px;display:flex}.metric-manage-sheet .metric-item-row input,.metric-manage-sheet .metric-item-row select{border:1px solid var(--border);background:var(--bg);min-width:0;color:var(--fg);border-radius:8px;padding:6px 8px;font-size:13px}.metric-manage-sheet .metric-kind-dot{border-radius:50%;flex:none;width:8px;height:8px}.metric-manage-sheet .metric-kind-dot.asset{background:var(--accent)}.metric-manage-sheet .metric-kind-dot.liability{background:var(--danger)}.metric-manage-sheet .metric-builtin-tag{color:var(--fg-secondary);border:1px solid var(--border);white-space:nowrap;border-radius:6px;padding:2px 6px;font-size:11px}.metric-manage-sheet .metric-add-row{grid-template-columns:1.1fr auto auto;gap:6px;margin-top:10px;display:grid}.metric-manage-sheet .cashflow-category-row{grid-template-columns:auto 1fr 1.2fr auto}.metric-manage-sheet .cashflow-category-add-row{grid-template-columns:1fr auto}.metric-manage-sheet .metric-add-row input,.metric-manage-sheet .metric-add-row select{border:1px solid var(--border);background:var(--bg);min-width:0;color:var(--fg);border-radius:8px;padding:6px 8px;font-size:13px}.metric-manage-sheet .metric-add-row select{min-width:96px}.metric-manage-sheet .metric-manage-actions{gap:10px;margin-top:16px;display:flex}@media (max-width:480px){.metric-manage-sheet .metric-item-row{grid-template-columns:auto 1fr;grid-template-areas:"dot name""select actions"}.metric-manage-sheet .metric-item-row .metric-kind-dot{grid-area:dot}.metric-manage-sheet .metric-item-row>input:not(.metric-import-input){grid-area:name}.metric-manage-sheet .metric-item-row>select{grid-area:select;width:100%}.metric-manage-sheet .metric-item-row .metric-item-actions{grid-area:actions}.metric-manage-sheet .metric-add-row{grid-template-columns:1fr auto auto}.metric-manage-sheet .cashflow-category-row{grid-template-columns:auto 1fr;grid-template-areas:"dot name""desc desc""actions actions"}.metric-manage-sheet .cashflow-category-row>.metric-kind-dot{grid-area:dot}.metric-manage-sheet .cashflow-category-row>input:not(.category-desc-input):not(.metric-import-input){grid-area:name}.metric-manage-sheet .cashflow-category-row>.category-desc-input{grid-area:desc}.metric-manage-sheet .cashflow-category-row .metric-item-actions{grid-area:actions;justify-content:flex-start}.metric-manage-sheet .cashflow-category-add-row{grid-template-columns:1fr auto}}
body{background:radial-gradient(circle at 50% -12%, color-mix(in oklch, var(--accent) 5%, transparent), transparent 34%), var(--bg)}.scroll-area{gap:18px}.module-screen.active{animation:.36s cubic-bezier(.16,1,.3,1) module-enter}@keyframes module-enter{0%{opacity:0;transform:translateY(6px)}}.card,.module-section,.list-group-body{background:var(--surface);border-color:var(--border-subtle);box-shadow:var(--shadow-sm)}.card{padding:20px}.card-title{color:var(--fg-secondary);letter-spacing:.035em;font-weight:650}.hero-card{isolation:isolate;border:1px solid color-mix(in srgb, var(--on-media) 16%, transparent);background:var(--gradient-hero-banner);box-shadow:var(--shadow-hero)}.hero-card:before{content:"";z-index:-1;aspect-ratio:1;border:1px solid color-mix(in srgb, var(--on-media) 11%, transparent);width:74%;box-shadow:0 0 0 34px color-mix(in srgb, var(--on-media) 3.5%, transparent), 0 0 0 68px color-mix(in srgb, var(--on-media) 2.5%, transparent);pointer-events:none;border-radius:50%;position:absolute;top:-42%;right:-20%}.hero-card .analysis-grid,.hero-card .cash-analysis-grid{border:1px solid color-mix(in srgb, var(--on-media) 12%, transparent);background:color-mix(in srgb, var(--on-media) 12%, transparent);gap:1px;overflow:hidden}.hero-card .analysis-item,.hero-card .cash-analysis-grid .analysis-item{background:color-mix(in srgb, var(--on-media) 11%, transparent);border-color:#0000;border-radius:0}.hero-card .net-worth,.hero-card .cash-surplus-value{letter-spacing:-.045em;text-shadow:0 1px 10px color-mix(in srgb, var(--media-shadow) 8%, transparent)}.planning-screen .family-hub{gap:12px}.planning-screen .family-glass-panel{background:var(--surface);border-color:var(--border-subtle);box-shadow:var(--shadow-sm)}.planning-screen .family-hub-tabs{background:var(--surface2);box-shadow:none;border-color:#0000;border-radius:18px;padding:5px}.planning-screen .family-tab-btn{color:var(--fg-secondary);border-radius:14px;transition:background .18s cubic-bezier(.16,1,.3,1),color .18s,box-shadow .18s}.planning-screen .family-tab-btn.active{color:var(--accent-bright);background:var(--surface);box-shadow:var(--shadow-sm), inset 0 -2px 0 var(--accent);font-weight:700}.planning-screen .family-moment-album-wrap{gap:12px;position:relative}.planning-screen .family-moment-album-wrap.has-inline-search .family-all-layout{position:static}.planning-screen .family-moment-view-toggle{background:0 0;border:0;border-radius:0;align-self:stretch;align-items:center;gap:4px;width:100%;padding:0;display:flex}.planning-screen .family-moment-album-wrap.has-inline-search .family-moment-view-toggle{align-self:flex-start;width:calc(100% - 52px)}.planning-screen .family-moment-view-toggle button{min-width:52px;min-height:44px;color:var(--muted);border-radius:10px;flex:none;padding:0 10px;font-size:12px;font-weight:500;position:relative}.planning-screen .family-moment-view-toggle button.active{color:var(--accent-bright);box-shadow:none;background:0 0;font-weight:650}.planning-screen .family-moment-view-toggle button.active:after{content:"";background:var(--accent);border-radius:999px;height:2px;position:absolute;bottom:4px;left:12px;right:12px}.planning-screen .family-search-bar{background:var(--surface2);min-height:48px;box-shadow:inset 0 0 0 1px color-mix(in oklch, var(--border-subtle) 55%, transparent);border-color:#0000;margin-bottom:14px;padding:0 16px}.planning-screen .family-moment-album-wrap.has-inline-search .family-search-bar.compact{z-index:24;width:44px;min-height:44px;box-shadow:none;background:0 0;border-radius:12px;justify-content:flex-end;margin:0;padding:0;transition:width .22s cubic-bezier(.16,1,.3,1),background .18s,box-shadow .18s;position:absolute;top:0;right:0;overflow:hidden}.planning-screen .family-moment-album-wrap.has-inline-search .family-search-bar.compact.expanded{background:var(--surface);width:100%;box-shadow:var(--shadow-md);padding-left:14px}.planning-screen .family-search-toggle{width:44px;height:44px;color:var(--fg-secondary);cursor:pointer;background:0 0;border:0;border-radius:12px;flex:0 0 44px;justify-content:center;align-items:center;display:inline-flex}.planning-screen .family-search-toggle:hover{color:var(--accent);background:var(--accent-dim)}.planning-screen .family-search-toggle svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;width:19px;height:19px}.planning-screen .family-search-bar.compact .family-search-input{min-height:44px}.planning-screen .family-month-heading{letter-spacing:-.02em;margin-bottom:18px;font-size:18px;font-weight:680}.planning-screen .family-month-rail{right:max(8px, env(safe-area-inset-right,0px));left:auto}.planning-screen .family-month-rail-panel{left:auto;right:52px}.planning-screen .family-date-divider{gap:10px;margin:4px 0 10px}.planning-screen .family-date-divider span:first-child{flex:0 0 22px}.planning-screen .family-date-divider strong{color:var(--fg-secondary);letter-spacing:.04em;font-weight:550}.planning-screen .family-history-items,.planning-screen .family-moment-feed{gap:16px}.planning-screen .family-moment-timeline{background:var(--surface);box-shadow:var(--shadow-soft);border-color:#0000;border-radius:20px;gap:14px;padding:16px}.planning-screen .family-moment-timeline-images{gap:6px}.planning-screen .family-moment-image-btn{border-radius:12px}.planning-screen .family-moment-timeline-content{color:var(--fg);font-size:15px;line-height:1.7}.planning-screen .family-moment-timeline-bar{border-color:color-mix(in oklch, var(--border-subtle) 75%, transparent);margin-top:0;padding-top:8px}.planning-screen .family-moment-author-pill{border:0;border-radius:999px;padding:4px 9px}.planning-screen .family-todo-card{background:var(--surface);box-shadow:var(--shadow-sm);border-color:#0000;border-radius:16px}.discourse-screen-inner{gap:16px}.discourse-owner-switch{background:var(--surface2);border-radius:18px;padding:5px}.discourse-owner-tab{border-radius:14px}.discourse-owner-tab.active{color:var(--accent-bright);box-shadow:var(--shadow-sm), inset 0 -2px 0 var(--accent);font-weight:700}.planning-screen .family-skill-filter .family-add-pill{letter-spacing:0;border-color:#0000;min-height:36px;padding:6px 13px;font-weight:550}.planning-screen .family-skill-filter .family-add-pill.active{background:var(--accent-dim);color:var(--accent-bright);border-color:#0000;font-weight:700}.discourse-hero-card{background:radial-gradient(circle at 100% 0%, color-mix(in oklch, var(--tier-color) 11%, transparent), transparent 46%), var(--surface);box-shadow:var(--shadow-soft);border:0;gap:12px;overflow:hidden}.discourse-hero-card:after{content:"家的状态不是结论，\a 而是一段对话的开始。";white-space:pre;max-width:15ch;color:var(--muted);text-align:right;font-size:11px;line-height:1.6;position:absolute;top:20px;right:18px}.discourse-hero-total strong{letter-spacing:-.055em;font-size:46px;font-weight:650}.discourse-hero-bar{background:var(--surface3);height:5px}.discourse-principle-card,.discourse-focus-card{box-shadow:var(--shadow-sm)}.discourse-focus-card .card-title{color:var(--fg);font-size:15px}.bottom-nav{padding:7px 14px calc(9px + var(--safe-bottom));background:color-mix(in oklch, var(--surface) 91%, transparent);border-color:color-mix(in oklch, var(--border-subtle) 72%, transparent);box-shadow:0 -10px 30px color-mix(in srgb, var(--shadow-color) 4%, transparent)}.nav-item{min-height:54px;color:var(--muted);border-radius:16px;gap:3px;padding:7px 0 6px;position:relative}.nav-item.active{color:var(--accent-bright);background:var(--accent-dim)}.nav-item svg{stroke-width:1.7px;width:21px;height:21px}.nav-item.active svg{transform:none}.fab,.family-fab.fab-menu .fab{background:var(--gradient-accent);width:52px;height:52px;box-shadow:0 12px 28px color-mix(in oklch, var(--accent) 28%, transparent)}.list-group-body{border-color:var(--border-subtle);box-shadow:var(--shadow-sm)}.list-row{background:var(--surface)}.auth-gate{background:radial-gradient(circle at 50% 12%, color-mix(in oklch, var(--accent) 11%, transparent), transparent 31%), var(--bg)}.auth-gate-card{border-color:var(--border-subtle);background:color-mix(in oklch, var(--surface) 96%, transparent);box-shadow:var(--shadow-lg)}@media (prefers-reduced-motion:reduce){.module-screen.active{animation:none}}@media (max-width:380px){.discourse-hero-card:after{display:none}}.family-fab-trigger{width:auto;min-width:88px;font-size:var(--text-base);border-radius:var(--radius-xl);padding:0 18px}.family-moment-view-toggle{box-shadow:none;border-bottom:1px solid var(--border-subtle);background:0 0;border-radius:0}.discourse-actions{padding:var(--pad);border-top:1px solid var(--border)}.discourse-actions h2{font-size:var(--text-lg);margin-bottom:12px}.action-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.discourse-actions form,.discourse-actions label{gap:12px;display:grid}.discourse-actions input,.discourse-actions select,.action-row button,.sync-problem button,.family-empty button{border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--surface);min-height:44px;color:var(--fg);padding:8px 12px}.sync-status{padding:8px var(--pad);flex-wrap:wrap}.sync-problem{color:var(--fg-secondary);flex-basis:100%}.draft-close-choice{z-index:10;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);gap:12px;padding:20px;display:grid;position:absolute;inset:auto 12px 12px}.draft-close-choice button{border-radius:var(--radius-xs);border:1px solid var(--border);background:var(--surface2);min-height:44px;color:var(--fg)}.family-moment-timeline:focus{outline:2px solid var(--accent);outline-offset:4px}@media (min-width:1024px){:root{--app-max-width:960px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.sync-problem pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:200px;overflow:auto}.sync-problem button,.family-empty button{min-height:44px;padding:8px 14px}.family-fab-trigger{min-width:104px;min-height:48px;font-size:15px;line-height:1.3}.sync-status>button{border:1px solid var(--border);border-radius:var(--radius-sm);min-width:44px;min-height:44px;color:var(--fg-secondary);background:var(--surface);font:inherit;padding:8px 12px}@media (max-width:768px),(pointer:coarse){button{min-width:44px!important;min-height:44px!important}}
.health-space{gap:14px;min-width:0;padding:0 0 88px;display:grid}.health-toolbar{justify-content:space-between;align-items:center;gap:12px;display:flex}.health-people{flex-wrap:wrap;align-items:center;gap:6px;min-width:0;display:flex}.health-person{border:1px solid var(--border);min-height:44px;color:var(--fg-secondary);cursor:pointer;background:0 0;border-radius:12px;padding:0 14px;font-size:14px}.health-person.active{color:var(--accent);background:var(--accent-dim);border-color:var(--accent)}.health-notes-button{min-height:44px;color:var(--accent);cursor:pointer;background:0 0;border:0;flex-shrink:0;padding:0 4px;font-size:12px}.health-section-title{justify-content:space-between;align-items:center;gap:12px;display:flex}.health-section-title h3{margin:0;font-size:16px}.health-section-title>span,.health-section-title>button{color:var(--fg-secondary);font-size:12px}.health-section-title button{min-height:44px;color:var(--accent);background:0 0;border:0;padding:0 12px}.health-followups{background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:14px}.health-followup{text-align:left;border:0;border-bottom:1px solid var(--border);width:100%;color:var(--fg);background:0 0;align-items:center;gap:12px;min-height:56px;padding:16px 0;display:flex}.health-followup:last-child{border:0;padding-bottom:0}.health-followup>span:nth-child(2){flex:1;min-width:0}.health-followup strong{overflow-wrap:anywhere;font-size:13px;display:block}.health-followup small{color:var(--fg-secondary);margin-top:4px;font-size:11px;display:block}.health-followup>span:last-child{white-space:nowrap;color:var(--fg-secondary);font-size:11px}.health-due,.health-overdue{min-width:40px;color:var(--accent);font-size:11px}.health-overdue{color:var(--warning)}.health-followups summary{color:var(--accent);cursor:pointer;min-height:44px;padding-top:16px;font-size:12px}.health-filters{gap:12px;margin-top:-8px;display:flex}.health-search{flex:1;min-width:0}.health-filters input,.health-filters select{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--fg);height:44px;font:inherit;border-radius:12px;padding:0 12px;font-size:12px}.health-filters>label:last-child{max-width:112px}.health-month{color:var(--fg-secondary);letter-spacing:.06em;margin:4px 0 16px;font-size:12px;font-weight:500}.health-record{grid-template-columns:40px minmax(0,1fr);gap:16px;padding-bottom:24px;display:grid}.health-record-date{text-align:center;padding-top:4px;position:relative}.health-record-date:after{content:"";background:var(--border);width:1px;position:absolute;top:52px;bottom:0;left:50%}.health-record-date strong{font-size:22px;font-weight:500;line-height:1.1;display:block}.health-record-date span{color:var(--fg-secondary);font-size:10px}.health-record-body{background:var(--surface);border:1px solid var(--border);border-radius:16px;min-width:0;padding:20px}.health-record-meta{color:var(--fg-secondary);flex-wrap:wrap;gap:8px;margin:0 0 8px;font-size:11px;display:flex}.health-record-meta span+span:before{content:"·";padding-right:8px}.health-record-meta span:first-child{color:var(--accent)}.health-record-title{text-align:left;width:100%;min-height:44px;font:inherit;color:var(--fg);overflow-wrap:anywhere;background:0 0;border:0;justify-content:space-between;align-items:center;gap:16px;padding:4px 0;font-size:17px;font-weight:600;display:flex}.health-record-title span{color:var(--fg-secondary);font-size:14px;font-weight:400}.health-facility{color:var(--fg-secondary);margin:4px 0 0;font-size:12px}.health-excerpt{color:var(--fg-secondary);-webkit-line-clamp:3;white-space:pre-wrap;overflow-wrap:anywhere;-webkit-box-orient:vertical;margin:12px 0 0;font-size:13px;line-height:1.8;display:-webkit-box;overflow:hidden}.health-report-count{text-align:left;min-height:44px;color:var(--accent);background:0 0;border:0;align-items:center;gap:12px;margin-top:16px;padding:0;font-size:11px;display:flex}.health-report-count img{object-fit:cover;border-radius:8px;width:44px;height:44px}.health-pdf-icon{background:var(--accent-dim);width:40px;height:44px;color:var(--accent);letter-spacing:.04em;border-radius:8px;flex-shrink:0;place-items:center;font-size:10px;display:inline-grid}.health-empty{text-align:center;border:1px dashed var(--border);border-radius:20px;padding:32px 24px 40px}.health-empty h3{margin:16px 0 8px;font-size:18px}.health-empty p{color:var(--fg-secondary);max-width:340px;margin:0 auto 24px;font-size:13px;line-height:1.8}.health-empty .btn-submit{width:auto;padding-inline:24px}.health-empty-mark{background:var(--accent-dim);width:48px;height:48px;color:var(--accent);border-radius:50%;place-items:center;font-size:24px;font-weight:300;display:inline-grid}.health-loading{text-align:center;color:var(--fg-secondary);padding:48px 16px;font-size:13px}.health-error{color:var(--danger);background:color-mix(in srgb, var(--danger) 6%, var(--surface));border-radius:12px;padding:12px 16px;font-size:13px;line-height:1.7}.health-error button{color:inherit;background:0 0;border:0;min-height:44px;margin-left:12px;text-decoration:underline}.health-profile-note{border-left:2px solid var(--accent);background:color-mix(in srgb, var(--accent) 5%, var(--surface));overflow-wrap:anywhere;border-radius:0 12px 12px 0;padding:12px 16px;font-size:13px;line-height:1.8}.health-profile-note p{white-space:pre-wrap;color:var(--fg-secondary);margin:4px 0 0}.health-form{gap:20px;display:grid}.health-form label{gap:8px;min-width:0;font-size:13px;font-weight:500;display:grid}.health-form label>span{color:var(--fg-secondary);font-size:11px;font-weight:400}.health-form input:not([type=file]):not([type=checkbox]),.health-form select,.health-form textarea{box-sizing:border-box;background:var(--surface);width:100%;min-width:0;min-height:44px;color:var(--fg);border:1px solid var(--border);font:inherit;border-radius:10px;padding:12px;font-size:14px}.health-form textarea{resize:vertical;line-height:1.8}.health-form-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.health-help{color:var(--fg-secondary);margin:0;line-height:1.8;font-size:12px!important}.health-upload h3{justify-content:space-between;margin:0 0 8px;font-size:14px;display:flex}.health-upload h3 span{color:var(--fg-secondary);font-size:12px;font-weight:400}.health-form .health-file-button{border:1px dashed var(--accent);min-height:48px;color:var(--accent);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;margin-top:12px;display:flex;position:relative;overflow:hidden}.health-file-button input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.health-file-button:focus-within{outline:2px solid var(--accent);outline-offset:3px}.health-attachments{gap:8px;margin-top:12px;display:grid}.health-attachment{align-items:center;gap:12px;display:flex}.health-thumbnail{border:0;border-radius:8px;flex-shrink:0;width:48px;height:48px;padding:0;overflow:hidden}.health-thumbnail img{object-fit:cover;width:100%;height:100%}.health-filename{overflow-wrap:anywhere;flex:1;min-width:0;font-size:12px}.health-attachment>button:last-child{color:var(--fg-secondary);background:0 0;border:0;min-height:44px;padding:0 8px;font-size:12px}.health-form .health-check{align-items:center;gap:12px;min-height:44px;display:flex}.health-form fieldset{border:1px solid var(--border);border-radius:12px;gap:16px;min-width:0;padding:16px;display:grid}.health-form legend{color:var(--accent);padding:0 8px;font-size:13px}.health-detail h2{margin:8px 0 12px;font-size:22px;line-height:1.5}.health-full-notes{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;line-height:1.9}.health-detail-attachments{gap:16px;margin:24px 0;display:grid}.health-detail-image{border:1px solid var(--border);text-align:left;color:var(--fg-secondary);background:0 0;border-radius:12px;padding:0;font-size:12px;overflow:hidden}.health-detail-image img{object-fit:contain;background:var(--surface);width:100%;max-height:320px;display:block}.health-detail-image>span{overflow-wrap:anywhere;padding:12px;display:block}.health-document-link{border:1px solid var(--border);color:var(--fg);overflow-wrap:anywhere;border-radius:12px;align-items:center;gap:16px;padding:16px;font-size:13px;text-decoration:none;display:flex}.health-document-link small{color:var(--accent);margin-top:4px;font-size:11px;display:block}.health-detail-actions{gap:12px;margin-top:24px;display:flex}.health-detail-actions .btn-submit{flex:1}.health-load-more{justify-self:center;min-width:160px}@media (max-width:480px){.health-person{padding:0 12px}.health-record{grid-template-columns:32px minmax(0,1fr);gap:8px}.health-record-body{padding:16px}.health-form-grid{gap:12px}.health-filters{gap:8px}.health-followups{padding:16px}}@media (prefers-reduced-motion:reduce){.health-person{transition:none}}.health-form .health-form-fields{border:0;gap:20px;min-width:0;margin:0;padding:0;display:grid}.health-detail-actions>.btn-secondary{flex:none;width:auto}.health-load-more{width:auto}.health-filters .sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.member-role-label{color:var(--muted);margin-top:4px;font-size:12px;display:block}.member-role-field{flex-direction:column;gap:8px;width:100%;min-width:0;font-size:13px;display:flex}.member-role-field select{max-width:100%;min-height:44px;color:var(--fg);background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:8px}.member-action-row:has(.member-role-field){flex-wrap:wrap}
