:root{--journal-photo-paper: #fffefa;--journal-ochre: #b08a47;--journal-photo-shadow: 0 2px 7px #44351b14;--journal-paper-image: url(/images/scrapbook/paper.webp);color-scheme:light;--hue-neutral: 88;--hue-accent: 142;--hue-danger: 25;--hue-warning: 65;--hue-info: 250;--hue-purple: 300;--bg: #f4f2ea;--surface: #fffdf8;--surface2: #efece2;--surface3: #e5e1d4;--fg: #1f2b25;--fg-secondary: #545e56;--muted: #636a62;--border: #e0dccf;--border-subtle: #ebe8de;--border-strong: #c9c4b4;--accent: #1f5c43;--accent-bright: #174a36;--accent-dim: #e3ece2;--accent-glow: #d2e1d1;--financial-debt: #8a5a1f;--financial-debt-bg: #f6ecdb;--warm-focus: #f7efdf;--danger: #b03a2e;--danger-dim: #f9e6e1;--danger-glow: oklch(52% .2 var(--hue-danger) / .18);--warning: #8a5a1f;--warning-dim: #f6ecdb;--warning-glow: oklch(60% .14 var(--hue-warning) / .18);--info: #315fc0;--info-dim: #e8f0ff;--purple: #7750b5;--purple-dim: #f1e9ff;--on-accent: #ffffff;--nav-bg: color-mix(in srgb, var(--surface) 90%, transparent);--nav-fg: var(--muted);--nav-selected: var(--accent-dim);--nav-selected-fg: var(--accent);--tier-danger-strong: color-mix(in srgb, var(--danger) 100%, var(--fg));--tier-danger: color-mix(in srgb, var(--danger) 70%, var(--surface));--tier-warning-strong: color-mix(in srgb, var(--warning) 100%, var(--fg));--tier-warning: color-mix(in srgb, var(--warning) 75%, var(--surface));--tier-accent: var(--accent);--tier-accent-strong: color-mix(in srgb, var(--accent) 100%, var(--fg));--tick-line: oklch(20% 0 0 / .12);--tick-line-filled: oklch(100% 0 0 / .85);--surface-floating: var(--surface);--scrim: oklch(25% .01 var(--hue-neutral) / .4);--scrim-strong: oklch(25% .01 var(--hue-neutral) / .55);--media-overlay-bg: oklch(0% 0 0 / .55);--media-overlay-bg-strong: oklch(0% 0 0 / .82);--media-overlay-fg: oklch(100% 0 0);--media-overlay-control: oklch(100% 0 0 / .15);--shadow-color: oklch(30% .03 var(--hue-neutral));--shadow-sm: 0 1px 2px color-mix(in srgb, var(--shadow-color) 6%, transparent);--shadow-md: 0 2px 6px color-mix(in srgb, var(--shadow-color) 10%, transparent);--shadow-lg: 0 4px 12px color-mix(in srgb, var(--shadow-color) 14%, transparent);--shadow-soft: var(--shadow-sm);--shadow-card-hover: var(--shadow-sm);--shadow-glow-accent: 0 0 0 transparent;--shadow-glow-danger: 0 0 0 transparent;--shadow-hero: var(--shadow-sm);--surface-shadow: none;--gradient-accent: var(--accent);--gradient-surface: var(--surface);--gradient-hero: var(--surface2);--gradient-card: var(--surface);--gradient-hero-banner: var(--surface2);--hero-banner-fg: oklch(100% 0 0);--journal-heading: "Noto Serif SC", "Songti SC", STSong, serif;--font-display: "Avenir Next", "PingFang SC", "Noto Sans SC", sans-serif;--font-body: "PingFang SC", "Noto Sans SC", "Microsoft YaHei", sans-serif;--font-mono: "SF Mono", ui-monospace, "Menlo", monospace;--text-xs: 14px;--text-sm: 14px;--text-base: 16px;--text-control: 16px;--text-md: 18px;--text-lg: 20px;--text-xl: 24px;--text-2xl: 28px;--text-display: 32px;--fs-caption: 12px;--fs-small: 14px;--fs-body: 16px;--fs-title: 18px;--fs-headline: 21px;--fs-page: 28px;--fs-figure: 34px;--control-radius: 10px;--control-height: 44px;--pill-radius: 999px;--control-ring: color-mix(in srgb, var(--accent) 24%, transparent);--control-hover: color-mix(in srgb, var(--accent) 8%, var(--surface));--control-primary-hover: color-mix(in srgb, var(--accent) 88%, var(--fg));--control-shadow: none;--radius-xs: 6px;--radius-sm: 10px;--radius-md: 12px;--radius-lg: 14px;--radius-xl: 16px;--radius: var(--radius-lg);--gap: 16px;--pad: 12px;--safe-bottom: env(safe-area-inset-bottom, 0px);--bottom-nav-height: 57px;--app-max-width: 430px;--text-secondary: var(--fg-secondary);--font-number: "Avenir Next", "PingFang SC", sans-serif}:root[data-theme=dark]{--journal-photo-paper: #d9d6c5;--journal-ochre: #d7b36d;--journal-photo-shadow: 0 2px 8px #00000024;--journal-paper-image: none;color-scheme:dark;--bg: #121a16;--surface: #1a241f;--surface2: #222e28;--surface3: #2c3a33;--fg: #ebeee6;--fg-secondary: #b7c2b8;--muted: #98a39a;--border: #33423a;--border-subtle: #28352f;--border-strong: #46574d;--accent: #8ccaa3;--accent-bright: #b3e0c2;--accent-dim: #223b2e;--accent-glow: #2b4a38;--financial-debt: #e0b673;--financial-debt-bg: #33291b;--warm-focus: #2f2a1f;--danger: #f09a8c;--danger-dim: #3d2622;--danger-glow: oklch(65% .22 var(--hue-danger) / .25);--warning: #e0b673;--warning-dim: #33291b;--warning-glow: oklch(78% .15 var(--hue-warning) / .25);--info: #91b8ff;--info-dim: #273d62;--purple: #c6a4ff;--purple-dim: #3e3259;--on-accent: #0f2a1c;--tick-line: oklch(100% 0 0 / .12);--surface-floating: var(--surface);--scrim: oklch(0% 0 0 / .6);--scrim-strong: oklch(0% 0 0 / .72);--shadow-color: oklch(0% 0 0);--shadow-glow-accent: 0 0 0 transparent;--shadow-glow-danger: 0 0 0 transparent;--shadow-soft: var(--shadow-sm);--shadow-card-hover: var(--shadow-sm);--shadow-hero: var(--shadow-sm);--gradient-accent: var(--accent);--gradient-surface: var(--surface);--gradient-hero: var(--surface2);--gradient-card: var(--surface);--gradient-hero-banner: var(--surface2);--hero-banner-fg: oklch(100% 0 0)}@media(min-width:768px){:root{--app-max-width: 720px}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;background:var(--bg);color:var(--fg);font:16px/1.65 var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;transition:background-color .3s ease,color .3s ease}button,input,select{font:inherit}:root,[data-theme=dark]{--on-media: oklch(100% 0 0);--media-shadow: oklch(0% 0 0);--media-surface: oklch(18% .02 var(--hue-neutral))}.app{max-width:430px;margin:0 auto;height:100dvh;overflow:hidden;display:flex;flex-direction:column;padding-bottom:calc(var(--bottom-nav-height) + var(--safe-bottom))}.scroll-area{flex:1;min-height:0;overflow-x:hidden;overflow-y:auto;scrollbar-gutter:stable;padding:var(--pad);padding-top:calc(16px + env(safe-area-inset-top,20px));padding-bottom:calc(var(--pad) + 62px);display:flex;flex-direction:column;gap:var(--gap)}.scroll-area>*{flex-shrink:0}.app-hero{display:flex;flex-direction:column;gap:10px;padding:22px 20px 18px;border-radius:var(--radius-xl);background:var(--gradient-hero-banner);color:var(--hero-banner-fg);box-shadow:var(--shadow-hero);margin-bottom:4px;position:relative;overflow:hidden}.app-hero-main{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;position:relative;z-index:1}.app-hero h1{font:700 26px/1.15 var(--font-display);letter-spacing:-.03em;min-width:0;color:var(--hero-banner-fg)}.app-hero-badge{flex-shrink:0;border:1px solid color-mix(in srgb,var(--on-media) 25%,transparent);border-radius:999px;padding:6px 12px;background:color-mix(in srgb,var(--on-media) 18%,transparent);color:var(--hero-banner-fg);font:500 14px/1.2 var(--font-number);font-variant-numeric:tabular-nums;white-space:nowrap}.app-hero span,.app-hero p{display:none}.app-hero .app-hero-badge{display:inline-block}.app-hero strong,.app-hero-meta{display:none}.app-hero .sync-status{padding-left:2px;color:var(--hero-banner-fg);position:relative;z-index:1}.app-hero .sync-status-dot{background:color-mix(in srgb,var(--on-media) 85%,transparent)}.app-hero .sync-status-synced .sync-status-dot{background:color-mix(in srgb,var(--on-media) 95%,transparent);box-shadow:0 0 6px color-mix(in srgb,var(--on-media) 50%,transparent)}.app-hero .sync-status-loading .sync-status-dot,.app-hero .sync-status-offline .sync-status-dot,.app-hero .sync-status-pending .sync-status-dot,.app-hero .sync-status-error .sync-status-dot{background:color-mix(in srgb,var(--on-media) 85%,transparent)}.module-screen{display:none;gap:var(--gap);min-width:0}.module-screen.active{display:grid}.quick-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.quick-actions button{min-width:0;border:1px solid var(--border);border-radius:var(--radius);padding:16px;background:radial-gradient(circle at 100% 0%,var(--accent-dim),transparent 50%),var(--gradient-card);color:var(--fg);text-align:left;cursor:pointer;box-shadow:var(--shadow-sm);transition:transform .2s cubic-bezier(.16,1,.3,1)}.quick-actions button:hover{box-shadow:var(--shadow-md)}.quick-actions.cash-flow button{background:radial-gradient(circle at 100% 0%,var(--warning-dim),transparent 50%),var(--gradient-card)}.quick-actions span,.quick-actions strong{display:block}.quick-actions span{margin-bottom:6px;color:var(--muted);font-size:var(--text-xs);letter-spacing:.02em}.quick-actions strong{font:700 14px/1.25 var(--font-display);letter-spacing:-.01em}.header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.header h1{font:700 26px/1.2 var(--font-display);letter-spacing:-.03em}.header-actions{display:flex;align-items:center;gap:8px}.card{background:var(--gradient-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;position:relative;min-width:0;max-width:100%;box-shadow:var(--shadow-soft);transition:transform .25s cubic-bezier(.16,1,.3,1)}.module-section{display:grid;gap:var(--gap);padding:16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--gradient-card);min-width:0;overflow:hidden;box-shadow:var(--shadow-soft)}.hero-card{background:var(--gradient-hero-banner);border-color:transparent;color:var(--hero-banner-fg);border-radius:var(--radius-xl);box-shadow:var(--shadow-hero);overflow:hidden}.hero-card .card-title,.hero-card .cash-snapshot-period,.hero-card .cash-surplus-label{color:color-mix(in srgb,var(--on-media) 75%,transparent)}.hero-card .net-worth,.hero-card .cash-surplus-value,.hero-card .cash-surplus-value.positive,.hero-card .cash-surplus-value.negative{color:var(--hero-banner-fg)}.hero-card .net-worth .unit,.hero-card .cash-surplus-value .unit{color:color-mix(in srgb,var(--on-media) 70%,transparent)}.hero-card .change-row .change-item,.hero-card .cash-balance-row .change-item{color:color-mix(in srgb,var(--on-media) 92%,transparent)}.hero-card .change-item.positive .arrow,.hero-card .change-item.negative .arrow{color:var(--hero-banner-fg)}.hero-card .amount-visibility-btn{border-color:color-mix(in srgb,var(--on-media) 30%,transparent);color:color-mix(in srgb,var(--on-media) 90%,transparent)}.hero-card .amount-visibility-btn:hover{background:color-mix(in srgb,var(--on-media) 15%,transparent);border-color:color-mix(in srgb,var(--on-media) 50%,transparent);color:var(--hero-banner-fg)}.hero-card .analysis-grid,.hero-card .cash-analysis-grid{background:color-mix(in srgb,var(--on-media) 12%,transparent);border-color:color-mix(in srgb,var(--on-media) 16%,transparent)}.hero-card .analysis-item span,.hero-card .analysis-item small{color:color-mix(in srgb,var(--on-media) 70%,transparent)}.hero-card .analysis-item strong.positive,.hero-card .analysis-item strong.negative{color:var(--hero-banner-fg)}.hero-card .analysis-item,.hero-card .cash-analysis-grid .analysis-item{background:color-mix(in srgb,var(--on-media) 14%,transparent);border-color:color-mix(in srgb,var(--on-media) 18%,transparent)}.hero-card .contribution-list{border-color:color-mix(in srgb,var(--on-media) 16%,transparent)}.hero-card .contribution-item span{color:color-mix(in srgb,var(--on-media) 78%,transparent)}.hero-card .contribution-item strong.positive,.hero-card .contribution-item strong.negative{color:var(--hero-banner-fg)}.hero-card .alignment-banner{background:color-mix(in srgb,var(--on-media) 16%,transparent);color:color-mix(in srgb,var(--on-media) 85%,transparent);border-color:color-mix(in srgb,var(--on-media) 22%,transparent)}.hero-card .alignment-banner strong,.hero-card .alignment-banner span{color:var(--hero-banner-fg)}.hero-card .alignment-banner.warning{background:color-mix(in srgb,var(--on-media) 20%,transparent)}.module-section>*{min-width:0;max-width:100%}.module-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:4px 2px 2px}.module-header span,.module-header p{display:block;color:var(--muted);font-size:var(--text-xs)}.module-header span{margin-bottom:4px;font:700 14px/1 var(--font-number);letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}.module-header.cash-flow span{color:var(--warning)}.module-header.targets span{color:var(--purple)}.module-header h2{margin-bottom:4px;font:700 22px/1.15 var(--font-display);letter-spacing:-.03em}.module-header p{line-height:1.45}.module-header .import-btn{flex-shrink:0;margin-top:2px;background:var(--bg)}.card-title{font:600 14px/1.2 var(--font-body);color:var(--muted);margin-bottom:12px;letter-spacing:.02em}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:4px}.card-head .card-title{margin-bottom:0}.list-caption{display:block;padding:0 16px;margin:18px 0 8px;font:600 14px/1.2 var(--font-body);color:var(--muted);letter-spacing:.01em}.list-caption:first-child{margin-top:0}.list-group-body{display:block;background:var(--gradient-card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-soft)}.list-row{display:flex;align-items:center;gap:12px;width:100%;min-height:52px;padding:12px 16px;background:none;border:none;border-bottom:1px solid var(--border-subtle);color:var(--fg);font:500 15px/1.3 var(--font-body);text-align:left;cursor:pointer;transition:background .15s ease}.list-row:last-child{border-bottom:none}.list-row:active{background:var(--surface2)}.list-icon{display:grid;place-items:center;flex-shrink:0;width:32px;height:32px;border-radius:9px;background:var(--accent);color:var(--on-accent);font-size:16px}.list-icon svg{width:18px;height:18px}.list-icon.info{background:var(--info)}.list-icon.warning{background:var(--warning);color:var(--media-surface)}.list-icon.danger{background:var(--danger)}.list-icon.purple{background:var(--purple)}.list-icon.muted{background:var(--surface3);color:var(--fg-secondary)}.list-label{flex:1;min-width:0}.list-sub{display:block;margin-top:2px;font-size:var(--text-xs);font-weight:400;color:var(--muted)}.list-value{flex-shrink:0;max-width:50%;color:var(--muted);font-size:14px;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-chevron{flex-shrink:0;width:8px;height:14px;color:var(--muted);opacity:.6}.list-chevron:after{content:"";display:block;width:8px;height:8px;border-right:2px solid currentColor;border-top:2px solid currentColor;transform:rotate(45deg);margin-top:3px}.list-row[disabled],.list-row.is-static{cursor:default}.list-row[disabled]{opacity:.45}.list-row.danger{color:var(--danger)}.list-row.danger .list-icon{background:var(--danger-dim);color:var(--danger)}.amount-visibility-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--border);border-radius:999px;background:transparent;color:var(--muted);cursor:pointer;flex-shrink:0;transition:color .2s,border-color .2s,background .2s}.amount-visibility-btn:hover{color:var(--fg);border-color:color-mix(in oklch,var(--border) 70%,var(--fg));background:var(--surface2)}.amount-visibility-btn[aria-pressed=true]{color:var(--accent);border-color:color-mix(in oklch,var(--accent) 45%,var(--border));background:var(--accent-dim)}.cash-analysis-grid .analysis-item{background:var(--bg)}.table-edit-hint{margin:8px 0 10px;color:var(--muted);font-size:var(--text-xs);line-height:1.45}.inline-add-btn,.edit-mode-btn{min-height:44px;border:1px solid var(--border);background:transparent;color:var(--muted);font:600 14px/1 var(--font-body);padding:6px 12px;border-radius:999px;cursor:pointer;flex-shrink:0;transition:color .2s,border-color .2s,background .2s}.inline-add-btn{color:var(--fg)}.net-worth{font:700 36px/1.05 var(--font-number);letter-spacing:-.03em;font-variant-numeric:tabular-nums;margin-bottom:12px}.net-worth .unit{font-size:16px;font-weight:500;color:var(--muted);margin-left:4px;font-family:var(--font-body)}.change-row{display:flex;gap:16px;font-size:var(--text-xs)}.change-item{display:flex;align-items:center;gap:4px}.change-item.positive{color:var(--accent)}.change-item.negative{color:var(--danger)}.change-item .arrow{font-size:var(--text-xs)}.tab-row{display:flex;gap:4px;background:var(--surface2);border:0;border-radius:var(--radius-md);padding:4px;margin-bottom:12px;position:relative;z-index:3}.tab-btn{flex:1;min-height:44px;border:none;background:transparent;color:var(--fg-secondary);font:550 14px/1 var(--font-body);padding:8px 4px;border-radius:var(--radius-sm);cursor:pointer;transition:color .18s ease,background .18s ease}.tab-btn.active{background:var(--surface);color:var(--accent-bright);font-weight:700;box-shadow:var(--shadow-sm),inset 0 -2px 0 var(--accent)}.range-row{display:flex;gap:4px;margin-bottom:12px;position:relative;z-index:3}.range-btn{min-height:36px;border:0;background:transparent;color:var(--fg-secondary);font:550 14px/1 var(--font-body);padding:6px 13px;border-radius:999px;cursor:pointer;transition:color .18s ease,background .18s ease}.range-btn.active{background:var(--accent-dim);color:var(--accent-bright);font-weight:700;box-shadow:none}.tab-btn:focus-visible,.range-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.chart-container{height:200px;position:relative}.chart-container canvas,.trend-svg{width:100%!important;height:100%!important;cursor:crosshair;touch-action:none}.trend-svg{display:block;overflow:hidden}.trend-grid-line{stroke:var(--border-subtle);stroke-width:1}.trend-axis-label{fill:var(--muted);font:14px var(--font-number)}.trend-axis-label.y-label{text-anchor:end}.trend-axis-label.x-label{text-anchor:middle}.trend-area{pointer-events:none}.trend-line{fill:none;stroke:var(--accent);stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round;pointer-events:none}.trend-line.liability{stroke:var(--danger)}.trend-line.income{stroke:var(--accent)}.trend-line.expense{stroke:var(--danger)}.trend-line.surplus{stroke:var(--warning)}.trend-chart-wrap{display:grid;gap:8px}.trend-legend{display:flex;flex-wrap:wrap;gap:12px}.trend-legend.cash-flow-legend{align-items:center}.cash-flow-legend-items{display:flex;flex-wrap:wrap;gap:12px}.legend-item{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:var(--text-xs)}.legend-item:before{content:"";width:18px;height:3px;border-radius:999px;background:currentColor}.legend-item.surplus-cap{color:var(--muted)}.legend-item.income:before{width:10px;height:10px;border-radius:3px;background:var(--accent-dim);border:1px solid color-mix(in srgb,var(--accent) 40%,transparent)}.legend-item.expense:before{width:10px;height:10px;border-radius:3px;background:var(--danger-dim);border:1px solid color-mix(in srgb,var(--danger) 40%,transparent)}.legend-item.surplus-cap:before{width:10px;height:10px;border-radius:3px;background:linear-gradient(180deg,var(--accent) 0 42%,var(--danger) 42% 100%)}.cash-flow-chart{height:220px}.cash-flow-baseline{stroke:color-mix(in srgb,var(--fg-secondary) 40%,transparent);stroke-width:1;pointer-events:none}.cash-flow-bar-group{pointer-events:none;transition:opacity .2s}.cash-flow-income{fill:var(--accent-dim);stroke:color-mix(in srgb,var(--accent) 30%,transparent);stroke-width:1}.cash-flow-expense{fill:color-mix(in srgb,var(--danger) 65%,transparent);stroke:color-mix(in srgb,var(--danger) 45%,transparent);stroke-width:1}.cash-flow-surplus-cap{fill:var(--accent);stroke:color-mix(in srgb,var(--accent) 50%,transparent);stroke-width:1}.cash-flow-deficit-cap{fill:var(--danger);stroke:color-mix(in srgb,var(--danger) 50%,transparent);stroke-width:1}.cash-flow-bar-group.active .cash-flow-income,.cash-flow-bar-group.active .cash-flow-expense,.cash-flow-bar-group.active .cash-flow-surplus-cap,.cash-flow-bar-group.active .cash-flow-deficit-cap{opacity:1}.cash-flow-bar-group:not(.active){opacity:.88}.cash-flow-tooltip{min-width:148px}.cash-flow-tooltip-hero{display:grid;gap:2px;margin:6px 0 4px}.cash-flow-tooltip-hero small{color:var(--muted);font-size:var(--text-xs)}.cash-flow-tooltip-hero strong{font-size:16px}.cash-flow-tooltip-change{display:block;color:var(--muted);font-size:var(--text-xs);margin-bottom:6px}.cash-flow-tooltip-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:4px}.cash-flow-tooltip-row span{margin-bottom:0;font-size:var(--text-xs)}.cash-flow-tooltip-row strong{font-size:var(--text-xs)}.cash-flow-tooltip-row.income span{color:var(--accent)}.cash-flow-tooltip-row.expense span{color:var(--danger)}.cash-flow-tooltip-row.surplus span{color:var(--warning)}.legend-item.income{color:var(--accent)}.legend-item.expense{color:var(--danger)}.trend-point{fill:var(--accent);pointer-events:none}.trend-point.liability{fill:var(--danger)}.trend-point-inner{fill:var(--surface2);pointer-events:none}.trend-crosshair{stroke:var(--border);stroke-width:1;pointer-events:none}.trend-active-point{fill:var(--accent-dim);pointer-events:none}.trend-hit-area{fill:transparent;pointer-events:all}.chart-empty{display:grid;place-items:center;height:100%;color:var(--muted);font-size:var(--text-xs)}.chart-tooltip{position:absolute;transform:translate(-50%,calc(-100% - 12px));min-width:100px;padding:10px 12px;border-radius:var(--radius-sm);background:var(--surface-floating);border:1px solid var(--border);color:var(--fg);box-shadow:var(--shadow-lg);pointer-events:none;z-index:2}.chart-tooltip:after{content:"";position:absolute;left:50%;bottom:-5px;width:10px;height:10px;background:var(--surface-floating);border-right:1px solid var(--border);border-bottom:1px solid var(--border);transform:translate(-50%) rotate(45deg)}.chart-tooltip span,.chart-tooltip strong{display:block;white-space:nowrap}.chart-tooltip span{color:var(--muted);font-size:var(--text-xs);margin-bottom:3px}.chart-tooltip strong{font:700 14px/1.2 var(--font-number);font-variant-numeric:tabular-nums}.chart-tooltip small{display:block;margin-top:4px;color:var(--muted);font-size:var(--text-xs);white-space:nowrap}.chart-tooltip-note{white-space:normal!important;max-width:220px;line-height:1.4;padding-top:6px;margin-top:6px;border-top:1px solid var(--border-subtle);color:var(--fg-secondary)!important}.analysis-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:14px}.analysis-item{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:12px;background:var(--bg);transition:border-color .2s}.analysis-item:hover{border-color:var(--border)}.analysis-item span,.analysis-item small{display:block;color:var(--muted);font-size:var(--text-xs)}.analysis-item strong{display:block;margin:4px 0 2px;font:700 14px/1 var(--font-number);font-variant-numeric:tabular-nums}.income-card-header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-top:8px}.income-card-header span,.income-card-header small{display:block;color:var(--muted);font-size:var(--text-xs)}.income-card-header strong{display:block;margin-top:4px;font:700 28px/1.1 var(--font-number);font-variant-numeric:tabular-nums}.income-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:14px}.income-stat{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--bg);padding:12px}.income-stat span,.income-stat small{display:block;color:var(--muted);font-size:var(--text-xs)}.income-stat strong{display:block;margin:4px 0 3px;font:700 14px/1 var(--font-number);font-variant-numeric:tabular-nums}.cash-snapshot-card{overflow:hidden}.cash-snapshot-card>*{position:relative}.cash-snapshot-period,.cash-surplus-label{color:var(--muted);font-size:var(--text-xs)}.cash-snapshot-period{margin-top:2px}.cash-surplus-label{margin-top:14px}.cash-surplus-value{margin-top:4px;font:700 36px/1.05 var(--font-number);letter-spacing:-.03em;font-variant-numeric:tabular-nums}.cash-surplus-value .unit{margin-left:4px;color:var(--muted);font:500 16px/1 var(--font-body)}.cash-balance-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:12px;font-size:var(--text-xs)}.cash-analysis-grid .analysis-item{background:var(--surface2)}.donut-section{display:flex;align-items:center;gap:14px;min-width:0}.net-worth-donuts{display:flex;flex-direction:column;gap:12px}@media(min-width:768px){.net-worth-donuts{flex-direction:row}.net-worth-donuts>.card{flex:1 1 0}}.donut-chart{width:124px;height:124px;flex-shrink:0;display:block}.donut-center-value{fill:var(--fg);font:700 15px var(--font-number);text-anchor:middle}.donut-legend{flex:1;min-width:0;display:flex;flex-direction:column;gap:7px}.legend-item{display:flex;align-items:center;gap:7px}.legend-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.legend-label{font-size:var(--text-xs);color:var(--muted);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.legend-value{font:600 14px/1 var(--font-number);font-variant-numeric:tabular-nums;flex-shrink:0;text-align:right}.legend-item.summary{margin-top:4px;padding-top:8px;border-top:1px solid var(--border-subtle)}.person-toggle{display:flex;gap:8px;margin-bottom:14px}.person-btn{border:1px solid var(--border);background:transparent;color:var(--muted);font:500 14px/1 var(--font-body);padding:7px 16px;border-radius:999px;cursor:pointer;transition:background-color .12s ease,color .12s ease,border-color .12s ease}.person-btn.active{background:var(--surface2);color:var(--fg);border-color:var(--border);box-shadow:var(--shadow-sm)}.fab{position:fixed;bottom:calc(84px + var(--safe-bottom));right:18px;width:50px;height:50px;border-radius:50%;background:var(--gradient-accent);color:var(--on-accent);border:none;font-size:24px;font-weight:300;line-height:1;display:grid;place-items:center;cursor:pointer;box-shadow:var(--shadow-lg),var(--shadow-glow-accent);transition:transform .2s cubic-bezier(.16,1,.3,1);z-index:100}.fab:hover{box-shadow:var(--shadow-card-hover),var(--shadow-glow-accent)}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:430px;background:var(--surface-floating);border-top:1px solid var(--border-subtle);display:flex;padding:6px 12px calc(8px + var(--safe-bottom));gap:4px;z-index:90}.nav-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;border:none;background:none;color:var(--muted);font:400 14px/1 var(--font-body);cursor:pointer;padding:8px 0;border-radius:var(--radius-sm);transition:color .2s,transform .15s}.nav-item.active{color:var(--accent);font-weight:600;background:none}.sheet,.import-sheet,.clear-sheet{position:fixed;bottom:0;left:50%;transform:translate(-50%) translateY(100%);width:100%;max-width:430px;background:var(--gradient-surface);border-radius:24px 24px 0 0;padding:20px;padding-bottom:calc(20px + var(--safe-bottom));transition:transform .4s cubic-bezier(.32,.72,0,1);overflow-y:auto;border:1px solid var(--border);border-bottom:none}.sheet-handle{width:36px;height:4px;border-radius:2px;background:var(--border);margin:0 auto 10px}.sheet-heading{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;margin-bottom:14px}.sheet-heading h3{min-width:0;margin:0;text-align:center;overflow-wrap:anywhere}.sheet-close{width:44px;height:44px;display:inline-grid;place-items:center;border:none;border-radius:999px;background:transparent;color:var(--muted);cursor:pointer;transition:background-color .16s cubic-bezier(.16,1,.3,1),color .16s cubic-bezier(.16,1,.3,1),transform .16s cubic-bezier(.16,1,.3,1)}.sheet-close:hover{background:var(--surface2);color:var(--fg)}.sheet-close svg{width:20px;height:20px;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}.sheet h3,.import-sheet h3,.clear-sheet h3{font:700 18px/1.3 var(--font-display);margin-bottom:18px;letter-spacing:-.02em}.sheet-heading h3{margin-bottom:0}.form-group{margin-bottom:16px}.form-group label{display:block;font-size:var(--text-xs);color:var(--muted);margin-bottom:6px;font-weight:500}.form-group select,.form-group input,.form-group textarea{width:100%;padding:12px 14px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg);color:var(--fg);font:14px/1.4 var(--font-body);outline:none;transition:border-color .2s}.form-group select:focus,.form-group input:focus,.form-group textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}.form-group textarea{min-height:80px;resize:vertical}.sheet-section-title,.settings-subtitle{color:var(--muted);font-size:var(--text-xs);font-weight:600;letter-spacing:.03em;margin:18px 0 12px}.passive-goal-form{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);padding:14px;margin-top:14px}.btn-submit,.btn-import-confirm{width:100%;min-height:44px;padding:15px;border-radius:var(--radius-sm);border:none;background:var(--gradient-accent);color:var(--on-accent);font:600 15px/1 var(--font-body);cursor:pointer;transition:opacity .2s,transform .15s;box-shadow:var(--shadow-glow-accent)}.btn-submit:active,.btn-import-confirm:active{opacity:.85}.btn-secondary{width:100%;min-height:44px;padding:12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg);color:var(--fg);font:600 14px/1 var(--font-body);cursor:pointer;margin-bottom:12px;transition:background-color .12s ease,color .12s ease,border-color .12s ease}.btn-secondary.danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 30%,transparent);margin-top:10px;margin-bottom:0}.btn-secondary:disabled{opacity:.4;cursor:not-allowed}.btn-import-confirm:disabled{opacity:.35;cursor:not-allowed}.import-btn{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--border);background:var(--surface);color:var(--muted);font:500 14px/1 var(--font-body);padding:7px 12px;border-radius:var(--radius-xs);cursor:pointer;transition:background-color .12s ease,color .12s ease,border-color .12s ease}.import-btn.danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 30%,transparent)}.import-dropzone{border:2px dashed var(--border);border-radius:var(--radius);padding:32px 20px;text-align:center;transition:background-color .12s ease,color .12s ease,border-color .12s ease;cursor:pointer;margin-bottom:18px}.import-dropzone.dragover{border-color:var(--accent);background:var(--accent-dim);box-shadow:var(--shadow-glow-accent)}.import-file-info{display:flex;align-items:center;gap:12px;background:var(--bg);border-radius:var(--radius-sm);padding:14px;margin-bottom:18px}.import-file-info .file-icon{width:38px;height:38px;border-radius:var(--radius-xs);background:color-mix(in srgb,var(--accent) 15%,transparent);display:grid;place-items:center;font-size:16px;flex-shrink:0}.sheet-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.sheet-chip{border:1px solid var(--border);background:transparent;color:var(--muted);font:500 14px/1 var(--font-body);padding:8px 14px;border-radius:999px;cursor:pointer;transition:background-color .12s ease,color .12s ease,border-color .12s ease}.sheet-chip.selected{background:var(--accent-dim);color:var(--accent);border-color:var(--accent);box-shadow:var(--shadow-glow-accent)}.import-preview{margin-bottom:18px}.import-preview-table{width:100%;border-collapse:collapse;font-size:var(--text-xs);font-variant-numeric:tabular-nums;border-radius:var(--radius-xs);overflow:hidden}.import-preview-table th{background:var(--bg);color:var(--muted);font-weight:600;padding:7px 8px;text-align:right;font-size:var(--text-xs);letter-spacing:.04em}.import-preview-table td{padding:6px 8px;text-align:right;border-bottom:1px solid var(--border-subtle);color:var(--fg)}.import-mode-panel{margin-bottom:18px}.clear-options{display:grid;gap:10px;margin-bottom:18px}.clear-option{display:flex;align-items:flex-start;gap:12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);padding:14px;cursor:pointer;transition:border-color .2s}.clear-option:hover{border-color:var(--border)}.mode-option{border:1px solid var(--border);background:var(--bg);color:var(--fg);border-radius:var(--radius-sm);padding:12px 14px;text-align:left;cursor:pointer;transition:background-color .12s ease,color .12s ease,border-color .12s ease}.mode-option.selected{border-color:var(--accent);background:var(--accent-dim);box-shadow:var(--shadow-glow-accent)}.import-summary{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:12px}.import-summary span{border-radius:var(--radius-xs);background:var(--bg);color:var(--muted);font-size:var(--text-xs);padding:8px 10px}.import-status{font-size:var(--text-xs);padding:12px 14px;border-radius:var(--radius-sm);margin-bottom:12px;display:none}.import-status.success{display:block;background:color-mix(in srgb,var(--accent) 8%,transparent);color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 25%,transparent)}.import-status.error{display:block;background:color-mix(in srgb,var(--danger) 8%,transparent);color:var(--danger);border:1px solid color-mix(in srgb,var(--danger) 25%,transparent)}.import-copy{font-size:var(--text-xs);color:var(--muted);margin-bottom:18px;line-height:1.5}.settings-section{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface3);padding:16px;margin-top:14px}.settings-section>div:first-child h3{font:700 15px/1.2 var(--font-display);letter-spacing:-.01em}.settings-section>div:first-child p{margin-top:6px;color:var(--muted);font-size:var(--text-xs);line-height:1.45}.danger-zone{border-color:color-mix(in srgb,var(--danger) 28%,transparent);background:var(--danger-dim)}.settings-grid{display:grid;gap:10px;margin-top:14px}.settings-action{border:1px solid var(--border);background:var(--bg);color:var(--fg);border-radius:var(--radius-sm);padding:14px;text-align:left;cursor:pointer;transition:background-color .12s ease,color .12s ease,border-color .12s ease}.settings-action:hover{border-color:var(--border);background:var(--surface2)}.settings-action strong,.settings-action span{display:block}.settings-action strong{font-size:var(--text-xs);margin-bottom:4px}.settings-action span{color:var(--muted);font-size:var(--text-xs);line-height:1.4}.settings-action.danger strong{color:var(--danger)}.settings-action:disabled{opacity:.4;cursor:not-allowed}.toast{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px;background:var(--surface);box-shadow:var(--shadow-lg);font-size:var(--text-xs);pointer-events:auto;animation:toast-in .32s cubic-bezier(.16,1,.3,1)}.toast-success{border-color:oklch(72% .19 var(--hue-accent) / .35)}.toast-error{border-color:oklch(65% .22 var(--hue-danger) / .35)}@keyframes toast-in{0%{opacity:0;transform:translateY(-16px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@media(prefers-reduced-motion:reduce){.toast{animation:none}}.skeleton{position:relative;overflow:hidden;border-radius:var(--radius-sm);background:var(--surface2)}.skeleton-hero{height:88px;border-radius:var(--radius-xl)}.skeleton-card{display:grid;gap:12px;padding:20px;border:1px solid var(--border);border-radius:var(--radius);background:var(--gradient-card)}.skeleton-title{height:14px;width:96px}.skeleton-line{height:12px}.skeleton-chart{height:160px;border-radius:var(--radius-sm)}.skeleton.w-40{width:40%}.skeleton.w-50{width:50%}.skeleton.w-60{width:60%}.skeleton.w-80{width:80%}.dashboard-loading{display:flex;align-items:center;justify-content:center;min-height:60vh;width:100%}.dashboard-loading-text{color:var(--muted);font-size:14px}.sync-status-synced .sync-status-dot{background:var(--accent);box-shadow:0 0 6px var(--accent-glow)}.confirm-copy{color:var(--muted);font-size:var(--text-xs);line-height:1.5;margin-bottom:18px}.fab-menu{position:fixed;right:20px;bottom:calc(88px + var(--safe-bottom));z-index:100}.fab-action-sheet{position:absolute;right:0;bottom:calc(100% + 12px);min-width:230px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-lg);overflow:hidden;transform-origin:bottom right;transform:scale(.85) translateY(8px);opacity:0;pointer-events:none;transition:transform .3s cubic-bezier(.34,1.56,.64,1),opacity .2s ease}.fab-action-item{display:grid;gap:2px;width:100%;border:none;border-bottom:1px solid var(--border-subtle);background:transparent;color:var(--fg);text-align:left;padding:14px 16px;cursor:pointer;transition:background .15s;opacity:0;transform:translate(12px)}@media(prefers-reduced-motion:reduce){.fab-icon,.fab-action-sheet,.fab-action-item{transition:opacity .15s ease;transform:none}}.edit-mode-btn{border:1px solid var(--border);border-radius:999px;background:transparent;color:var(--muted);font:600 14px/1 var(--font-body);padding:6px 12px;cursor:pointer;transition:background-color .12s ease,color .12s ease,border-color .12s ease}.edit-mode-btn.active{border-color:var(--accent);background:var(--accent-dim);color:var(--accent);box-shadow:var(--shadow-glow-accent)}.chart-empty{display:grid;gap:10px;place-items:center;padding:32px 12px;color:var(--muted);text-align:center}.auth-gate{display:grid;place-items:center;min-height:100dvh;padding:24px 16px calc(24px + var(--safe-bottom));overflow:hidden;background:radial-gradient(circle at 14% 18%,var(--accent-dim),transparent 34%),radial-gradient(circle at 86% 82%,var(--warning-dim),transparent 36%),var(--bg)}.auth-gate-card{width:min(100%,400px);display:grid;gap:0;padding:32px;border:1px solid var(--border);border-radius:var(--radius-xl);background:var(--surface);box-shadow:var(--shadow-soft)}.auth-gate-brand{display:flex;align-items:center;gap:14px}.auth-gate-mark{width:52px;height:52px;flex:0 0 52px;display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--accent) 18%,var(--border));border-radius:var(--radius-md);background:var(--accent-dim);color:var(--accent)}.auth-gate-mark svg{width:34px;height:34px;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.auth-gate-kicker{display:block;margin-bottom:4px;font:650 var(--text-sm)/1 var(--font-body);letter-spacing:.08em;color:var(--accent)}.auth-gate-card h1{font:720 var(--text-display)/1.15 var(--font-display);letter-spacing:-.03em}.auth-gate-intro{margin-top:22px;color:var(--muted);font-size:var(--text-md);line-height:1.65;text-wrap:balance}.auth-gate-form{display:grid;gap:8px;margin-top:28px}.auth-gate-label{font-size:var(--text-sm);font-weight:600;color:var(--fg-secondary)}.auth-gate-input{width:100%;min-height:52px;padding:13px 15px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface2);color:var(--fg);font:inherit;transition:border-color .16s cubic-bezier(.16,1,.3,1),background-color .16s cubic-bezier(.16,1,.3,1)}.auth-gate-input:focus-visible{border-color:var(--accent);outline:2px solid var(--accent);outline-offset:2px;background:var(--surface);box-shadow:0 0 0 3px var(--accent-dim)}.auth-gate-field-hint{color:var(--muted);font-size:var(--text-xs)}.auth-gate-error{color:var(--danger);font-size:var(--text-sm)}.auth-gate-submit{min-height:48px;margin-top:8px;padding:13px 16px;border:none;border-radius:var(--radius-md);background:var(--gradient-accent);color:var(--on-accent);font:650 var(--text-base)/1 var(--font-body);cursor:pointer;box-shadow:var(--shadow-sm);transition:transform .16s cubic-bezier(.16,1,.3,1),filter .16s cubic-bezier(.16,1,.3,1)}.auth-gate-submit:disabled{opacity:.6;cursor:not-allowed}.auth-gate-trust{margin-top:20px;padding-top:18px;border-top:1px solid var(--border-subtle);color:var(--muted);font-size:var(--text-xs);text-align:center}@media(hover:hover){.auth-gate-submit:hover:not(:disabled){box-shadow:var(--shadow-md)}}@media(max-width:420px){.auth-gate-card{padding:26px 24px}}@media(prefers-reduced-motion:reduce){.auth-gate-input,.auth-gate-submit{transition:none}}@media(min-width:768px){.app,.bottom-nav,.sheet,.import-sheet{max-width:720px}.donut-section{gap:20px}}.tab-btn:active,.range-btn:active,.person-btn:active,.btn-secondary:active,.edit-mode-btn:not(.active):active,.month-edit-btn:active,.goal-mini-btn:active,.goal-round-add:active,.family-tab-btn:not(.active):active,.family-filter-chip:active,.mode-option:active,.clear-option:active,.amount-visibility-btn:active{opacity:.8}.action-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.discourse-actions form,.discourse-actions label{display:grid;gap:12px}.discourse-actions input,.discourse-actions select,.action-row button,.sync-problem button,.family-empty button{min-height:44px;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--surface);color:var(--fg)}.sync-status{flex-wrap:wrap;padding:8px var(--pad)}.sync-problem{flex-basis:100%;color:var(--fg-secondary)}.draft-close-choice{position:absolute;inset:auto 12px 12px;z-index:10;padding:20px;display:grid;gap:12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg)}.draft-close-choice button{min-height:44px;border-radius:var(--radius-xs);border:1px solid var(--border);background:var(--surface2);color:var(--fg)}.sync-problem pre{max-height:200px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere}.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{min-height:44px;min-width:44px;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--fg-secondary);background:var(--surface);font:inherit}.planning-card{overflow:hidden}.planning-card>*{position:relative}.planning-hero{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:14px}.planning-hero>div,.planning-metric,.goal-item{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--bg);transition:border-color .2s}.planning-hero>div:hover,.planning-metric:hover{border-color:var(--border)}.planning-hero>div{padding:16px}.planning-hero span,.planning-metric span,.planning-metric small,.goal-meta,.goal-head span{color:var(--muted);font-size:var(--text-xs)}.planning-hero strong{display:block;margin-top:5px;font:700 20px/1.05 var(--font-number);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.planning-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}.planning-grid-duo{grid-template-columns:repeat(2,1fr)}.planning-goal-source{display:block;margin-top:4px;line-height:1.45}.planning-metric{padding:10px}.planning-metric strong{display:block;margin:5px 0 3px;font:700 14px/1 var(--font-number);font-variant-numeric:tabular-nums}.planning-metric.positive strong{color:var(--accent)}.planning-metric.negative strong{color:var(--danger)}.goal-list{display:grid;gap:8px;margin-top:10px}.goal-item{padding:10px}.goal-head,.goal-meta{display:flex;justify-content:space-between;gap:12px}.goal-head strong{font:700 14px/1 var(--font-number);color:var(--accent)}.goal-progress{height:6px;border-radius:999px;background:var(--border);overflow:hidden;margin:8px 0}.goal-progress span{display:block;height:100%;border-radius:inherit;background:var(--accent)}.goal-progress.warning span{background:linear-gradient(90deg,var(--warning),var(--danger))}.goal-manager{display:grid;gap:12px}.goal-manager-head{display:flex;align-items:center;justify-content:space-between}.goal-manager-head .card-title{margin-bottom:0}.goal-round-add{width:32px;height:32px;border-radius:50%;border:1px solid var(--border);background:transparent;color:var(--fg);font:400 20px/1 var(--font-body);cursor:pointer}.goal-annual-card{border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px;background:var(--bg)}.goal-annual-card>span,.goal-list-section h4{color:var(--muted);font:600 14px/1.2 var(--font-body)}.goal-annual-card strong{display:block;margin-top:6px;color:var(--fg);font:600 28px/.95 var(--font-number);font-variant-numeric:tabular-nums}.goal-annual-meta,.finance-goal-foot,.goal-actions{display:flex;align-items:center}.goal-annual-meta,.finance-goal-foot{justify-content:space-between;gap:12px}.goal-annual-meta small,.finance-goal-card p,.finance-goal-foot span,.goal-empty{color:var(--muted);font-size:var(--text-xs)}.goal-list-section{display:grid;gap:10px}.goal-card-list{display:grid;gap:12px}.finance-goal-card{border-radius:var(--radius);padding:20px;background:var(--gradient-card);box-shadow:var(--shadow-md);border:1px solid var(--border)}.finance-goal-card.completed{border:1px solid var(--border);background:transparent;box-shadow:none;opacity:.82}.finance-goal-main{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:10px}.finance-goal-main h3{margin-bottom:4px;font:700 15px/1.25 var(--font-display)}.finance-goal-main strong{color:var(--accent);font:800 24px/1 var(--font-number);font-variant-numeric:tabular-nums}.finance-goal-foot{margin-top:8px}.finance-goal-foot span{color:var(--fg);font-weight:700;font-variant-numeric:tabular-nums}.goal-actions{gap:8px}.goal-mini-btn{width:36px;height:36px;border-radius:8px;border:1px solid var(--border);background:var(--surface2);color:var(--muted);font:700 18px/1 var(--font-body);cursor:pointer}.goal-mini-btn.add{background:var(--warning);border-color:var(--warning);color:var(--on-accent)}.goal-check{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 55%,transparent);color:var(--on-accent);font:800 20px/1 var(--font-body)}.goal-empty{border:1px dashed var(--border);border-radius:14px;padding:16px;line-height:1.5}.goal-wisdom-card{min-height:140px;border-radius:var(--radius);overflow:hidden;display:flex;align-items:flex-end;padding:20px;background:linear-gradient(180deg,color-mix(in srgb,var(--media-shadow) 5%,transparent),color-mix(in srgb,var(--media-shadow) 80%,transparent)),radial-gradient(circle at 70% 20%,color-mix(in srgb,var(--accent) 30%,transparent),transparent 32%),linear-gradient(135deg,var(--media-surface),var(--media-surface));border:1px solid var(--border)}.goal-wisdom-card span{color:var(--warning);font:800 14px/1.2 var(--font-body)}.goal-wisdom-card p{margin-top:6px;color:var(--on-media);font-size:var(--text-xs);font-style:italic;line-height:1.55}.goal-sheet{background:var(--gradient-card);border:1px solid var(--border)}.goal-sheet-top{display:grid;grid-template-columns:32px 1fr 32px;align-items:center;margin-bottom:16px}.goal-sheet-top button{width:30px;height:30px;border:none;background:transparent;color:var(--fg);font:300 26px/1 var(--font-body);cursor:pointer}.goal-sheet-top h3{margin:0;text-align:center}.goal-preview-card{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;border:1px solid var(--border);border-radius:12px;padding:16px;background:var(--surface);margin-bottom:20px}.goal-preview-card .goal-progress{grid-column:1 / -1;margin-bottom:0}.goal-preview-card strong,.goal-preview-card em{display:block}.goal-preview-card strong{font:800 14px/1.2 var(--font-display)}.goal-preview-card em{color:var(--muted);font-size:var(--text-xs);font-style:normal}.goal-preview-card b{color:var(--warning);font:800 28px/1 var(--font-number);font-variant-numeric:tabular-nums}.goal-sheet-actions{display:grid;grid-template-columns:1fr 2fr;gap:12px;margin-top:20px}.goal-sheet-actions .btn-secondary,.goal-sheet-actions .btn-submit{margin:0;height:48px}.goal-sheet-actions .btn-submit{background:var(--warning);color:var(--on-accent)}.progress-sheet-copy{color:var(--muted);font-size:var(--text-xs);line-height:1.5;margin:-4px 0 16px}.goals-overview-card{overflow:hidden}.goal-metric-grid,.large-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px}.goal-metric{min-width:0;border:1px solid var(--border);border-radius:14px;padding:10px;background:var(--bg)}.goal-metric span,.goal-metric small,.goal-copy{display:block;color:var(--muted);font-size:var(--text-xs)}.goal-metric strong{display:block;margin:5px 0 3px;font:700 14px/1 var(--font-number);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.goal-copy{line-height:1.45;margin-top:3px}.annual-budget-strip{border:1px solid var(--border);border-radius:14px;padding:12px;background:var(--bg);margin:12px 0}.annual-budget-strip>div{display:flex;justify-content:space-between;gap:12px;margin-bottom:8px;color:var(--muted);font-size:var(--text-xs)}.annual-budget-strip strong{font-family:var(--font-number);font-variant-numeric:tabular-nums}.budget-table .budget-total-row td,.budget-table .budget-row td{color:var(--purple);font-weight:600;border-top:1px solid var(--border)}.budget-table .budget-row .sub-cell{color:var(--muted)}.large-summary-grid{margin:12px 0}.large-expense-list{display:grid;gap:10px}.large-expense-item,.empty-state{border:1px solid var(--border);border-radius:14px;padding:12px;background:var(--bg)}.empty-state{color:var(--muted);text-align:center;font-size:var(--text-xs)}.large-expense-main{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.large-expense-main h3{margin-top:6px;font:700 15px/1.25 var(--font-display)}.large-expense-main p,.large-expense-numbers{color:var(--muted);font-size:var(--text-xs)}.large-expense-numbers{display:flex;justify-content:space-between;gap:8px;font-family:var(--font-number);font-variant-numeric:tabular-nums}.status-pill{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;background:var(--accent-dim);color:var(--accent);font:700 14px/1 var(--font-body)}.status-pill.completed{background:color-mix(in srgb,var(--accent) 20%,transparent);color:var(--accent)}.status-pill.inProgress{background:var(--warning-dim);color:var(--warning)}.status-pill.paused{background:var(--danger-dim);color:var(--danger)}.text-btn{border:none;background:transparent;color:var(--accent);font:700 14px/1 var(--font-body);cursor:pointer}.contribution-list{display:grid;gap:0;margin-top:14px;padding-top:14px;border-top:1px solid var(--border-subtle)}.contribution-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 0;font-size:var(--text-xs);color:var(--fg-secondary);border-bottom:1px solid var(--border-subtle)}.contribution-item:last-child{border-bottom:none}.contribution-item strong{font-family:var(--font-number);font-variant-numeric:tabular-nums;font-size:14px}.positive{color:var(--accent)}.negative{color:var(--danger)}.warning{color:var(--warning)}.donut-section{display:flex;align-items:center;gap:20px;min-width:0}.donut-chart{width:140px;height:140px;flex-shrink:0;display:block}.donut-center-label{fill:var(--muted);font:600 14px var(--font-body);text-anchor:middle}.donut-center-value{fill:var(--fg);font:700 14px var(--font-number);text-anchor:middle}.donut-legend{flex:1;min-width:0;display:flex;flex-direction:column;gap:10px}.legend-item{display:flex;align-items:center;gap:8px}.legend-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.legend-label{font-size:var(--text-xs);color:var(--muted);flex:1}.legend-value{font:600 14px/1 var(--font-number);font-variant-numeric:tabular-nums;min-width:0;overflow:hidden;text-overflow:ellipsis}.person-toggle{display:flex;gap:4px;margin-bottom:12px;padding:4px;border-radius:var(--radius-md);background:var(--surface2)}.person-btn{flex:1;min-height:44px;border:0;background:transparent;color:var(--fg-secondary);font:550 14px/1 var(--font-body);padding:6px 14px;border-radius:var(--radius-sm);cursor:pointer;transition:color .18s ease,background .18s ease}.person-btn.active{background:var(--surface);color:var(--accent-bright);font-weight:700;box-shadow:var(--shadow-sm),inset 0 -2px 0 var(--accent)}.person-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.fab{position:fixed;bottom:calc(var(--bottom-nav-height) + 12px + var(--safe-bottom));right:18px;width:50px;height:50px;border-radius:50%;background:var(--gradient-accent);color:var(--on-accent);border:none;font-size:24px;font-weight:300;line-height:1;display:grid;place-items:center;cursor:pointer;box-shadow:var(--shadow-md),var(--shadow-glow-accent);transition:transform .2s cubic-bezier(.16,1,.3,1);z-index:100}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:430px;background:var(--surface-floating);border-top:1px solid var(--border-subtle);display:flex;padding:8px 12px calc(10px + var(--safe-bottom));gap:4px;z-index:90}.nav-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;border:none;background:none;color:var(--muted);font:400 14px/1 var(--font-body);cursor:pointer;padding:8px 0;border-radius:var(--radius-sm);transition:color .2s,background .2s,transform .15s}.nav-item.active{color:var(--accent);background:var(--accent-dim)}.nav-item svg{width:22px;height:22px;transition:transform .2s}.sheet-overlay,.import-overlay,.clear-overlay{position:fixed;inset:0;background:var(--scrim);z-index:200;opacity:0;pointer-events:none;transition:opacity .3s}.import-overlay,.clear-overlay{background:var(--scrim-strong);z-index:300}.sheet-overlay.open,.import-overlay.open,.clear-overlay.open{opacity:1;pointer-events:all}.sheet,.import-sheet,.clear-sheet{position:fixed;bottom:0;left:50%;transform:translate(-50%) translateY(100%);width:100%;max-width:430px;background:var(--surface);border-radius:20px 20px 0 0;padding:20px;padding-bottom:calc(20px + var(--safe-bottom));transition:transform .35s cubic-bezier(.32,.72,0,1);overflow-y:auto}.sheet{z-index:201;max-height:80dvh}.import-sheet{z-index:301;max-height:85dvh}.clear-sheet{z-index:301;max-height:70dvh}.sheet-overlay.open .sheet,.import-overlay.open .import-sheet,.clear-overlay.open .clear-sheet{transform:translate(-50%) translateY(0)}.sheet-handle{width:36px;height:4px;border-radius:2px;background:var(--border);margin:0 auto 16px}.sheet h3,.import-sheet h3,.clear-sheet h3{font:600 17px/1.3 var(--font-display);margin-bottom:16px}.form-group{margin-bottom:14px}.form-group label{display:block;font-size:var(--text-xs);color:var(--muted);margin-bottom:4px;font-weight:500}.form-group select,.form-group input,.form-group textarea{width:100%;padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:var(--bg);color:var(--fg);font:14px/1.4 var(--font-body);outline:none;transition:border-color .2s}.form-group select:focus,.form-group input:focus,.form-group textarea:focus{border-color:var(--accent)}.form-group textarea{min-height:76px;resize:vertical}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.sheet-section-title,.settings-subtitle{color:var(--muted);font-size:var(--text-xs);font-weight:600;letter-spacing:.02em;margin:16px 0 10px}.passive-goal-form{border:1px solid var(--border);border-radius:14px;background:var(--bg);padding:12px;margin-top:12px}.passive-goal-form .settings-subtitle{margin-top:0}.btn-submit,.btn-import-confirm{width:100%;padding:14px;border-radius:12px;border:none;background:var(--accent);color:var(--on-accent);font:600 15px/1 var(--font-body);cursor:pointer;transition:opacity .2s}.btn-secondary{width:100%;padding:11px 12px;border-radius:12px;border:1px solid var(--border);background:var(--bg);color:var(--fg);font:600 14px/1 var(--font-body);cursor:pointer;margin-bottom:12px}.btn-secondary.danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 35%,transparent);margin-top:10px;margin-bottom:0}.btn-secondary:disabled{opacity:.45;cursor:not-allowed}.btn-submit{margin-top:8px}.btn-submit:active,.btn-import-confirm:active{opacity:.8}.btn-import-confirm:disabled{opacity:.4;cursor:not-allowed}.import-btn{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--border);background:var(--surface);color:var(--muted);font:500 14px/1 var(--font-body);padding:6px 10px;border-radius:8px;cursor:pointer;transition:background-color .12s ease,color .12s ease,border-color .12s ease}.import-btn.danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 35%,transparent)}.import-btn svg{width:14px;height:14px}.import-dropzone{border:2px dashed var(--border);border-radius:14px;padding:28px 20px;text-align:center;transition:background-color .12s ease,color .12s ease,border-color .12s ease;cursor:pointer;margin-bottom:16px}.import-dropzone.dragover{border-color:var(--accent);background:var(--accent-dim)}.import-dropzone .icon{font-size:32px;margin-bottom:8px;opacity:.5}.import-dropzone .label{font-size:var(--text-xs);color:var(--muted);line-height:1.5}.import-dropzone .label strong{color:var(--accent)}.import-dropzone input[type=file]{display:none}.import-file-info{display:flex;align-items:center;gap:10px;background:var(--bg);border-radius:10px;padding:12px 14px;margin-bottom:16px}.import-file-info .file-icon{width:36px;height:36px;border-radius:8px;background:color-mix(in srgb,var(--accent) 15%,transparent);display:grid;place-items:center;font-size:16px;flex-shrink:0}.import-file-info .file-name{flex:1;font-size:var(--text-xs);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.import-file-info .file-size{font-size:var(--text-xs);color:var(--muted)}.sheet-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.sheet-chip{border:1px solid var(--border);background:transparent;color:var(--muted);font:500 14px/1 var(--font-body);padding:7px 12px;border-radius:20px;cursor:pointer;transition:background-color .12s ease,color .12s ease,border-color .12s ease}.sheet-chip.selected{background:var(--accent-dim);color:var(--accent);border-color:var(--accent)}.import-preview{margin-bottom:16px}.import-preview-title{font-size:var(--text-xs);color:var(--muted);margin-bottom:8px;font-weight:500}.import-preview-table{width:100%;border-collapse:collapse;font-size:var(--text-xs);font-variant-numeric:tabular-nums;border-radius:8px;overflow:hidden}.import-preview-table th{background:var(--bg);color:var(--muted);font-weight:600;padding:6px 8px;text-align:right;font-size:var(--text-xs);letter-spacing:.03em}.import-preview-table th:first-child,.import-preview-table td:first-child{text-align:left}.import-preview-table td{padding:5px 8px;text-align:right;border-bottom:1px solid var(--border);color:var(--fg)}.import-preview-table td:first-child{color:var(--muted);font-weight:500}.import-preview-scroll{overflow-x:auto}.import-mode-panel{margin-bottom:16px}.clear-options{display:grid;gap:10px;margin-bottom:16px}.clear-option{display:flex;align-items:flex-start;gap:10px;border:1px solid var(--border);border-radius:14px;background:var(--bg);padding:12px;cursor:pointer}.clear-option input{width:16px;height:16px;margin-top:2px;accent-color:var(--danger);flex-shrink:0}.clear-option span,.clear-option strong,.clear-option small{display:block}.clear-option strong{color:var(--fg);font-size:var(--text-xs);margin-bottom:4px}.clear-option small{color:var(--muted);font-size:var(--text-xs);line-height:1.45}.import-mode-options{display:grid;gap:8px}.mode-option{border:1px solid var(--border);background:var(--bg);color:var(--fg);border-radius:12px;padding:10px 12px;text-align:left;cursor:pointer}.mode-option.selected{border-color:var(--accent);background:var(--accent-dim)}.mode-option strong,.mode-option span{display:block}.mode-option strong{font-size:var(--text-xs);margin-bottom:4px}.mode-option span{color:var(--muted);font-size:var(--text-xs)}.import-summary{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:10px}.import-summary span{border-radius:10px;background:var(--bg);color:var(--muted);font-size:var(--text-xs);padding:8px 10px}.import-status{font-size:var(--text-xs);padding:10px 14px;border-radius:10px;margin-bottom:12px;display:none}.import-status.success{display:block;background:color-mix(in srgb,var(--accent) 10%,transparent);color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 30%,transparent)}.import-status.error{display:block;background:color-mix(in srgb,var(--danger) 10%,transparent);color:var(--danger);border:1px solid color-mix(in srgb,var(--danger) 30%,transparent)}.import-copy{font-size:var(--text-xs);color:var(--muted);margin-bottom:16px;line-height:1.5}.settings-panel{margin-bottom:8px}.settings-form-card{display:grid;gap:12px;padding:16px;margin-top:10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--gradient-card);box-shadow:var(--shadow-soft)}.settings-form-head h3{font:700 15px/1.2 var(--font-display);letter-spacing:-.01em}.settings-form-head p{margin-top:4px;color:var(--muted);font-size:var(--text-xs);line-height:1.45}.list-sub-inline{flex-shrink:0;max-width:40%;color:var(--muted);font-size:var(--text-xs);text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-check{flex-shrink:0;width:20px;height:20px;opacity:0}.list-check.on{opacity:1}.list-check.on:after{content:"";display:block;width:7px;height:12px;margin:2px auto 0;border-right:2.5px solid var(--accent);border-bottom:2.5px solid var(--accent);transform:rotate(45deg)}.danger-caption{color:var(--danger)}.settings-meta{display:grid;gap:4px;margin-top:14px;color:var(--muted);font-size:var(--text-xs)}.hidden-file-input{display:none}@media(min-width:768px){.app,.bottom-nav,.sheet,.import-sheet{max-width:720px}.donut-section{gap:32px}}.toast-stack{position:fixed;top:calc(env(safe-area-inset-top,12px) + 12px);left:50%;transform:translate(-50%);width:min(390px,calc(100% - 24px));display:grid;gap:8px;z-index:500;pointer-events:none}.toast{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--border);border-radius:12px;padding:10px 12px;background:var(--surface);box-shadow:var(--shadow-lg);font-size:var(--text-xs);pointer-events:auto}.toast-success{border-color:color-mix(in srgb,var(--accent) 35%,transparent)}.toast-error{border-color:color-mix(in srgb,var(--danger) 35%,transparent)}.toast-dismiss{border:none;background:transparent;color:var(--muted);font-size:18px;line-height:1;cursor:pointer}.sync-status{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:var(--text-xs)}.sync-status-dot{width:6px;height:6px;border-radius:50%;background:var(--muted)}.sync-status-loading .sync-status-dot{background:var(--warning)}.sync-status-synced .sync-status-dot{background:var(--accent)}.sync-status-offline .sync-status-dot{background:var(--danger)}.sync-status-pending .sync-status-dot{background:var(--warning)}.sync-status-error .sync-status-dot{background:var(--danger)}@media(prefers-reduced-motion:reduce){.sync-status-loading .sync-status-dot,.sync-status-pending .sync-status-dot,.sync-status-error .sync-status-dot{animation:none}}.sheet-overlay-high{z-index:320}.sheet-overlay-high .sheet,.sheet-overlay-high .ui-sheet-half,.sheet-overlay-high .ui-sheet-full{z-index:321}.ui-sheet-half{max-height:50dvh}.ui-sheet-full{max-height:92dvh}.confirm-copy{color:var(--muted);font-size:var(--text-xs);line-height:1.5;margin-bottom:16px}.confirm-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.form-error{margin-top:6px;color:var(--danger);font-size:var(--text-xs)}.fab-menu{position:fixed;right:20px;bottom:calc(var(--bottom-nav-height) + 12px + var(--safe-bottom));z-index:100}.fab-menu .fab{position:static}.fab-icon{display:inline-block;transition:transform .35s cubic-bezier(.34,1.56,.64,1)}.fab-menu.open .fab-icon{transform:rotate(135deg)}.fab-action-sheet{position:absolute;right:0;bottom:calc(100% + 10px);min-width:220px;border:1px solid var(--border);border-radius:14px;background:var(--surface);box-shadow:var(--shadow-lg);overflow:hidden;transform-origin:bottom right;transform:scale(.85) translateY(8px);opacity:0;pointer-events:none;transition:transform .3s cubic-bezier(.34,1.56,.64,1),opacity .2s ease}.fab-menu.open .fab-action-sheet{transform:scale(1) translateY(0);opacity:1;pointer-events:auto}.fab-action-item{display:grid;gap:2px;width:100%;border:none;border-bottom:1px solid var(--border);background:transparent;color:var(--fg);text-align:left;padding:12px 14px;cursor:pointer;opacity:0;transform:translate(12px)}.fab-menu.open .fab-action-item{opacity:1;transform:translate(0);transition:opacity .25s ease,transform .3s cubic-bezier(.34,1.56,.64,1),background .15s;transition-delay:calc(var(--fab-item-index, 0) * .04s + .05s)}.fab-action-item:last-child{border-bottom:none}.fab-action-item strong{font-size:var(--text-xs)}.fab-action-item span{color:var(--muted);font-size:var(--text-xs)}.fab-action-item:active{background:var(--surface2)}.card-head-actions{display:flex;align-items:center;gap:8px}.edit-mode-btn{min-height:44px;border:1px solid var(--border);border-radius:999px;background:transparent;color:var(--muted);font:600 14px/1 var(--font-body);padding:6px 12px;cursor:pointer}.edit-mode-btn.active{border-color:var(--accent);background:var(--accent-dim);color:var(--accent)}.chart-empty{display:grid;gap:10px;place-items:center;padding:28px 12px;color:var(--muted);text-align:center}.planning-goals{display:grid;gap:10px;margin-top:12px}.planning-goal-row{border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px;background:var(--bg)}.planning-goal-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:6px;font-size:var(--text-xs)}.planning-goal-row small{display:block;margin-top:6px;color:var(--muted);font-size:var(--text-xs)}.planning-hero strong.positive,.planning-metric.positive strong{color:var(--accent)}.planning-hero strong.negative,.planning-metric.negative strong{color:var(--danger)}.planning-metric.warning strong{color:var(--warning)}.annual-budget-meta,.budget-month-meta{display:flex;justify-content:space-between;gap:8px;margin-top:8px;color:var(--muted);font-size:var(--text-xs)}.budget-card-list{display:grid;gap:10px}.budget-month-card{border:1px solid var(--border);border-radius:14px;padding:12px;background:var(--bg)}.budget-month-card.over-budget{border-color:color-mix(in srgb,var(--danger) 35%,transparent)}.budget-month-head{display:flex;justify-content:space-between;gap:12px}.budget-month-head h3{font:700 15px/1.2 var(--font-display)}.budget-month-head p{margin-top:4px;color:var(--muted);font-size:var(--text-xs)}.budget-month-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:10px}.danger-text{color:var(--danger)}.goal-flag-icon{width:18px;height:18px;color:var(--warning)}.goal-manager-head>div{display:flex;align-items:center;gap:8px}.alignment-banner{display:grid;gap:4px;width:100%;margin-top:10px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);text-align:left}.alignment-banner strong{font-size:var(--text-xs)}.alignment-banner span,.alignment-banner small{color:var(--muted);font-size:var(--text-xs)}.alignment-banner.warning{border-color:color-mix(in srgb,var(--warning) 35%,var(--border));background:color-mix(in srgb,var(--warning) 8%,var(--bg))}.alignment-banner.positive{border-color:color-mix(in srgb,var(--accent) 35%,var(--border))}.budget-alert{cursor:pointer}.alignment-banner.info{border-color:color-mix(in srgb,var(--info) 30%,var(--border));background:color-mix(in srgb,var(--info) 8%,var(--bg))}.planning-params{display:flex;flex-wrap:wrap;gap:6px 10px;margin-top:10px;color:var(--muted);font-size:var(--text-xs)}.planning-paired-hint{margin-top:8px;color:var(--muted);font-size:var(--text-xs)}.planning-paired-hint.warning{color:var(--warning)}.month-delete-btn{display:block;margin:4px auto 0;color:var(--danger);font-size:var(--text-xs)}.reconcile-summary,.reconcile-list{display:grid;gap:8px}.reconcile-row,.reconcile-list-item{display:grid;gap:4px;padding:10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg)}.reconcile-row span,.reconcile-list-metrics span{color:var(--muted);font-size:var(--text-xs)}.reconcile-gap{padding:12px;border-radius:var(--radius-sm);border:1px solid var(--border)}.reconcile-gap.warning{border-color:color-mix(in srgb,var(--warning) 35%,var(--border))}.reconcile-list-head{display:flex;justify-content:space-between;align-items:center}.reconcile-list-metrics{display:flex;flex-wrap:wrap;gap:8px}.reconcile-toggle{display:block;width:100%;margin-top:10px;padding:8px;border:none;border-radius:var(--radius-sm);background:var(--surface2);color:var(--accent);font:600 14px/1 var(--font-body);cursor:pointer}.close-step-actions{display:flex;gap:10px;margin-top:16px}.close-progress{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;margin-bottom:16px;color:var(--muted);font-size:var(--text-xs);font-variant-numeric:tabular-nums}.close-progress-track{height:4px;overflow:hidden;border-radius:999px;background:var(--surface3)}.close-progress-track i{display:block;height:100%;border-radius:inherit;background:var(--accent)}.close-step-actions .btn-submit,.close-step-actions .btn-secondary{flex:1}.close-copy-assets{margin:-2px 0 14px}.finance-context-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:-6px 0 12px}.finance-context-bar select{min-height:44px;color:var(--fg-secondary);border:0;background:transparent;font:inherit;font-size:14px;padding-right:12px}.finance-more-menu{position:relative}.finance-more-menu>summary{min-height:44px;display:flex;align-items:center;gap:4px;color:var(--fg-secondary);font-size:13px;list-style:none;cursor:pointer}.finance-more-menu>div{position:absolute;right:0;z-index:20;width:min(260px,85vw);background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:8px;box-shadow:0 8px 24px #0002}.finance-more-menu button{display:block;width:100%;min-height:44px;text-align:left;border:0;background:none;color:var(--fg);padding:8px;font:inherit;font-size:14px}.finance-more-menu p{font-size:12px;color:var(--fg-secondary);padding:8px;margin:0;border-top:1px solid var(--border)}.finance-month-summary{margin:16px 0 0}.finance-month-head{display:flex;gap:8px;align-items:center;justify-content:space-between;flex-wrap:wrap}.finance-month-head h2{font-family:var(--font-body);font-size:18px;margin:0}.finance-month-head>button{display:flex;align-items:center;gap:4px;min-height:44px;border:0;color:var(--fg-secondary);background:none;padding:0;font:inherit;font-size:13px}.finance-month-summary table{width:100%;border-collapse:collapse;table-layout:auto;font-size:14px}.finance-month-summary th,.finance-month-summary td{padding:9px 8px;border-bottom:1px solid var(--border);text-align:right;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.finance-month-summary th:first-child{text-align:left;font-weight:400}.finance-month-summary thead th{color:var(--fg-secondary);background:var(--surface-hover);font-size:12px;font-weight:400}.finance-full-ledger>summary{text-align:right;font-size:13px;color:var(--fg-secondary);min-height:44px;padding:12px 0;cursor:pointer}.finance-view-toggle{display:flex;gap:4px}.finance-view-toggle button{min-height:44px;padding:8px 14px;border:0;border-radius:7px;color:var(--fg-secondary);background:transparent;font:inherit;font-size:14px}.finance-view-toggle button[aria-pressed=true]{background:var(--accent-dim);color:var(--accent)}.trend-data-list{font-size:13px;margin:8px 0}.trend-data-list summary{min-height:44px;padding:12px 0;cursor:pointer;color:var(--fg-secondary)}.trend-data-list table{width:100%;border-collapse:collapse}.trend-data-list td,.trend-data-list th{text-align:right;padding:8px 3px;border-bottom:1px solid var(--border)}.trend-data-list th:first-child{text-align:left}.mini-trend-end{text-align:right;font-size:13px;color:var(--accent);font-weight:600;margin:8px 0 0}.table-wrapper{--table-sticky-offset: 0px;--table-cat-width: 68px;--table-sub-width: 104px;overflow-x:auto;touch-action:pan-x pan-y pinch-zoom;margin:0;padding:0;max-width:100%;min-width:0;overscroll-behavior-x:contain;position:relative;isolation:isolate}.data-table{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0;font-size:16px;font-variant-numeric:tabular-nums;line-height:1.75}.data-table th,.data-table td{padding:10px 8px;text-align:right;white-space:nowrap;border-bottom:1px solid var(--border);background:var(--surface)}.data-table th:nth-child(n+3),.data-table td:nth-child(n+3){min-width:76px}.data-table th{font-weight:600;color:var(--fg-secondary);font-size:16px;text-transform:uppercase;letter-spacing:.04em;background:var(--surface)}.month-edit-btn{border:none;background:transparent;color:inherit;cursor:pointer;display:grid;gap:2px;justify-items:end;font:inherit}.month-edit-btn span{color:var(--accent);font-size:14px;letter-spacing:0}.table-edit-hint{color:var(--fg-secondary);font-size:14px;margin:-4px 0 10px;line-height:1.5}.inline-metric-input{width:120px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--fg);font:16px/1.5 var(--font-number);font-variant-numeric:tabular-nums;text-align:right;padding:5px 6px;outline:none}.inline-metric-input:hover{border-color:var(--border);background:var(--surface2)}.inline-metric-input:focus{border-color:var(--accent);background:var(--bg)}.data-table th:first-child,.data-table th:nth-child(2){text-align:left;position:sticky;background:var(--surface)}.data-table th:first-child{left:var(--table-sticky-offset);width:var(--table-cat-width);min-width:var(--table-cat-width);z-index:2}.data-table th:nth-child(2){left:calc(var(--table-sticky-offset) + var(--table-cat-width));width:var(--table-sub-width);min-width:var(--table-sub-width);z-index:2}.data-table .cat-cell{text-align:left;font-weight:700;font-size:16px;color:var(--fg);vertical-align:middle;background:var(--surface2);border-right:2px solid var(--border);padding:8px 6px 8px 11px;writing-mode:horizontal-tb;width:var(--table-cat-width);min-width:var(--table-cat-width);max-width:var(--table-cat-width);white-space:normal;position:sticky;left:var(--table-sticky-offset);z-index:1;border-left:3px solid var(--cat-accent)}.data-table .cat-cell.asset{--cat-accent: var(--accent)}.data-table .cat-cell.liability{--cat-accent: var(--danger)}.data-table .cat-cell .cat-name{display:block;line-height:1.35}.data-table .cat-cell .cat-desc{display:none}.data-table .sub-cell{text-align:left;font-weight:400;color:var(--fg-secondary);padding-left:10px;width:var(--table-sub-width);min-width:var(--table-sub-width);max-width:var(--table-sub-width);overflow:hidden;text-overflow:ellipsis;position:sticky;left:calc(var(--table-sticky-offset) + var(--table-cat-width));z-index:1;background:var(--surface);border-right:1px solid var(--border);white-space:normal;overflow-wrap:anywhere}.data-table .subtotal td{font-weight:700;color:var(--accent);border-bottom:2px solid var(--border)}.data-table .subtotal .sub-cell{color:var(--accent);font-weight:600}.data-table .subtotal.liability td,.data-table .subtotal.liability .sub-cell{color:var(--danger)}.data-table .key-net td{font-weight:700;font-size:16px;color:var(--info);border-top:1.5px solid var(--border);border-bottom:1.5px solid var(--border)}.data-table .key-net .sub-cell:before{content:"★ ";font-size:16px}.formula-tooltip{position:relative;display:inline-flex;align-items:center;gap:4px;cursor:help;text-decoration:underline dotted color-mix(in srgb,var(--fg-secondary) 75%,transparent);text-underline-offset:3px}.split-tooltip{position:relative;display:inline-flex;justify-content:flex-end;cursor:help;text-decoration:underline dotted color-mix(in srgb,var(--fg-secondary) 55%,transparent);text-underline-offset:3px}.data-table .grand-total td{font-weight:700;font-size:16px;color:var(--fg);background:var(--surface2);border-bottom:none}.data-table .grand-total .sub-cell{background:var(--surface2)}.data-table .income-row td{color:var(--accent);font-weight:600;border-top:1px solid var(--border)}.data-table .income-row.passive td{color:var(--warning)}.data-table .income-row.windfall td{color:var(--purple)}.data-table .expense-row td{color:var(--warning);font-weight:600;border-top:1px solid var(--border)}.data-table .expense-row.surplus td{color:var(--fg)}.data-table .expense-row.savings td{color:var(--info)}.data-table .subtotal td:first-child,.data-table .key-net td:first-child,.data-table .grand-total td:first-child,.data-table .pair-net td:first-child{position:sticky;left:var(--table-sticky-offset);z-index:1;background:var(--surface)}.data-table .grand-total td:first-child{background:var(--surface2)}.table-scroll-hint{font-size:14px;color:var(--fg-secondary);text-align:center;margin-top:8px}@media(hover:hover)and (pointer:fine){.data-table tbody tr:hover td:not(.cat-cell){background:var(--surface2)}}@media(max-width:600px){.card.finance-table-card{margin-inline:calc(0px - var(--pad));max-width:none;padding:16px 0;border-inline:0;border-radius:0;box-shadow:none}.finance-table-card .card-head,.finance-table-card .person-toggle,.finance-table-card .table-edit-hint,.finance-table-card .table-scroll-hint,.finance-table-card .empty-state{margin-inline:max(12px,env(safe-area-inset-left,0px)) max(12px,env(safe-area-inset-right,0px))}.finance-table-card .card-head{align-items:flex-start}.finance-table-card .card-head-actions{min-width:0}.finance-table-card .table-wrapper{--table-cat-width: 60px;--table-sub-width: 96px;margin-inline:max(4px,env(safe-area-inset-left,0px)) max(4px,env(safe-area-inset-right,0px))}.finance-table-card .data-table th,.finance-table-card .data-table td{padding-inline:4px}.finance-table-card .data-table .sub-cell{padding-left:8px}.finance-table-card .data-table .cat-cell{padding-left:6px}.data-table th:first-child,.data-table .cat-cell,.data-table .subtotal td:first-child,.data-table .key-net td:first-child,.data-table .grand-total td:first-child,.data-table .pair-net td:first-child{position:static}.data-table th:nth-child(2),.data-table .sub-cell{left:0}}.finance-table-card .card-head,.finance-table-card .card-head-actions,.finance-table-card .person-toggle{flex-wrap:wrap}.finance-table-card .card-title{font-size:20px}.finance-table-card .inline-add-btn,.finance-table-card .edit-mode-btn,.finance-table-card .person-btn,.finance-table-card .month-delete-btn{font-size:16px;min-height:44px}.ledger-toolbar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 12px;margin:10px 0}.ledger-toolbar label{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:14px;color:var(--fg-secondary)}.ledger-toolbar select{max-width:190px;min-height:44px;padding:6px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--fg);font-size:16px}.ledger-history-button,.ledger-detail-button{min-height:44px;padding:6px 0;border:0;background:transparent;color:var(--accent);font-size:16px}.ledger-wrapper{border:1px solid var(--border);border-radius:12px;background:var(--surface)}.data-table.ledger-table{table-layout:auto;width:100%;min-width:100%;font:16px/1.5 var(--font-number)}.data-table.ledger-table th,.data-table.ledger-table td{min-width:0;padding:11px 6px;border:0;border-bottom:1px solid var(--border);background:var(--surface);white-space:nowrap;text-align:right}.data-table.ledger-table th{font-family:var(--font-body);letter-spacing:0;text-transform:none;font-weight:500}.data-table.ledger-table th:first-child{width:32%;min-width:94px;left:0;position:sticky;z-index:1;text-align:left}.data-table.ledger-table th:nth-child(2){position:static;width:auto;min-width:0;text-align:right}.data-table.ledger-table thead th{background:var(--surface2);color:var(--fg-secondary)}.data-table.ledger-table thead th:first-child{z-index:2}.data-table.ledger-table .ledger-label{color:var(--fg);white-space:normal;overflow-wrap:anywhere}.ledger-table .ledger-label button{display:flex;align-items:center;gap:3px;min-height:44px;padding:0;border:0;font:600 16px/1.5 var(--font-body);background:transparent;color:inherit;text-align:left}.ledger-table .ledger-label button:disabled{opacity:1;cursor:default}.ledger-label button svg{width:14px;height:14px;flex-shrink:0}.data-table.ledger-table .ledger-group :is(td,th){font-weight:600;padding-block:3px}.data-table.ledger-table .ledger-child :is(td,th){background:var(--bg);color:var(--fg-secondary)}.data-table.ledger-table .ledger-child th{padding-left:14px}.data-table.ledger-table .ledger-subtotal :is(td,th){color:var(--accent);font-weight:600}.data-table.ledger-table .ledger-subtotal.liability :is(td,th){color:var(--danger)}.data-table.ledger-table .ledger-key :is(td,th){color:var(--accent);font-weight:650}.data-table.ledger-table .ledger-total :is(td,th){background:var(--accent-dim);font-weight:650;color:var(--accent);border-bottom:0}.data-table.ledger-table.is-history{width:max-content}.data-table.ledger-table.is-history th:first-child{width:120px;max-width:150px}.data-table.ledger-table.is-history :is(td,th):not(:first-child){min-width:110px}.ledger-table .inline-metric-input{width:102px;padding:5px 2px;background:var(--surface);border-color:var(--border);font:16px/1.5 var(--font-number)}.ledger-table .month-edit-btn{min-height:44px;min-width:44px;justify-content:end;margin-left:auto}.ledger-footer{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;margin-top:8px}.ledger-footer>span{font-size:14px;color:var(--fg-secondary)}@media(max-width:600px){.ledger-toolbar,.ledger-footer{margin-inline:12px}.data-table.ledger-table :is(th,td){padding-inline:4px}.data-table.ledger-table th:first-child{min-width:90px}}.data-table.ledger-table .sub-cell{position:sticky;left:0;z-index:1;width:32%;min-width:90px;max-width:160px;text-align:left;color:var(--fg);background:var(--surface);font-weight:400}.data-table.ledger-table .ledger-section td{padding:6px 8px;text-align:left;font:600 14px/1.5 var(--font-body);color:var(--fg-secondary);background:var(--surface2)}.data-table.ledger-table .expense-row.surplus td{font-weight:650;color:var(--accent);background:var(--accent-dim)}.data-table.cash-ledger-table .income-row td,.data-table.cash-ledger-table .expense-row td{color:var(--fg);font-weight:400}.data-table.cash-ledger-table .expense-row.surplus td{color:var(--accent);font-weight:650}.data-table.cash-ledger-table .sub-cell[colspan]{width:auto;max-width:none;white-space:normal;font:14px/1.6 var(--font-body)}.planning-screen .family-hub{display:flex;flex-direction:column;gap:16px}.planning-screen .family-glass-panel{background:var(--gradient-card);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:20px;box-shadow:var(--shadow-sm)}.planning-screen .family-hub-tabs{display:flex;gap:4px;padding:4px;background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-sm)}.planning-screen .family-tab-btn{flex:1;border:none;background:transparent;color:var(--muted);font:500 14px/20px var(--font-body);padding:8px 12px;min-height:44px;border-radius:var(--radius-xs);cursor:pointer;transition:background .2s,color .2s}.planning-screen .family-tab-btn:hover{color:var(--fg-secondary)}.planning-screen .family-tab-btn.active{background:var(--surface2);color:var(--fg);font-weight:600;box-shadow:var(--shadow-sm)}.planning-screen .family-label-caps{margin:0 0 12px;font:600 14px/16px var(--font-body);letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.planning-screen .family-label-secondary{color:var(--accent)}.planning-screen .family-label-primary{color:var(--accent-bright)}.planning-screen .family-all-layout{position:relative;min-width:0}.planning-screen .family-month-rail{position:fixed;left:max(8px,env(safe-area-inset-left,0px));top:50%;transform:translateY(-50%);z-index:30;pointer-events:auto}.planning-screen .family-month-rail-trigger{width:44px;height:44px;padding:5px 4px 3px;border-radius:14px;background:var(--surface);border:1px solid var(--border-subtle);box-shadow:var(--shadow-md);color:var(--muted);display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:0;font:650 14px/1 var(--font-body);cursor:pointer;transition:color .2s,background .2s,border-color .2s,transform .2s}.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 svg{width:12px;height:12px}.planning-screen .family-month-rail-panel{position:absolute;left:52px;top:50%;width:184px;max-height:min(520px,calc(100dvh - 144px));transform:translateY(-50%);overflow:hidden;border:1px solid var(--border-subtle);border-radius:20px;background:var(--surface);box-shadow:var(--shadow-lg)}.planning-screen .family-month-rail-head{min-height:44px;padding:0 0 0 14px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border-subtle);color:var(--fg-secondary);font:650 14px/1 var(--font-body)}.planning-screen .family-month-rail-head button{width:44px;height:44px;border:none;border-radius:999px;background:transparent;color:var(--muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.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{max-height:min(476px,calc(100dvh - 188px));overflow-y:auto;overscroll-behavior:contain;padding:10px;scrollbar-width:thin}.planning-screen .family-month-rail-year+.family-month-rail-year{margin-top:12px;padding-top:10px;border-top:1px solid var(--border-subtle)}.planning-screen .family-month-rail-year-label{display:block;margin:0 4px 6px;color:var(--muted);font:600 14px/1 var(--font-body);font-variant-numeric:tabular-nums;letter-spacing:.08em}.planning-screen .family-month-rail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.planning-screen .family-month-rail-btn{width:100%;height:44px;border:none;border-radius:12px;background:transparent;color:var(--muted);font:600 14px/1 var(--font-body);letter-spacing:.05em;cursor:pointer;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{display:flex;flex-direction:column;gap:16px;min-width:0}.planning-screen .family-hub-tabs-triple .family-tab-btn{padding:8px 6px;font-size:var(--text-xs)}.planning-screen .family-hub-tabs-quad .family-tab-btn{padding:8px 4px;font-size:var(--text-xs)}.planning-screen .family-hub-tabs-multi .family-tab-btn{padding:8px 4px;font-size:var(--text-xs);flex:1 1 0}.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{margin:0 0 16px;font:600 16px/24px var(--font-display);color:var(--fg)}.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-all-section+.family-all-section{margin-top:0}.planning-screen .family-calendar-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.planning-screen .family-calendar-head strong{font:600 16px/24px var(--font-body);color:var(--fg)}.planning-screen .family-calendar-nav{width:44px;height:44px;border:none;border-radius:var(--radius-xs);background:var(--surface2);color:var(--fg-secondary);font-size:18px;cursor:pointer;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{display:grid;grid-template-columns:repeat(7,minmax(44px,1fr));gap:8px 0}.planning-screen .family-calendar-weekdays span{text-align:center;font:600 14px/16px var(--font-body);letter-spacing:.05em;color:var(--muted);padding:4px 0}.planning-screen .family-calendar-day{position:relative;min-height:44px;border:none;background:transparent;color:var(--fg);font:400 14px/20px var(--font-body);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.planning-screen .family-calendar-day-num{display:flex;align-items:center;justify-content:center;min-width:32px;min-height:32px}.planning-screen .family-calendar-markers{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:2px;min-height:14px}.planning-screen .family-calendar-marker{width:5px;height:5px;border-radius:50%;flex-shrink:0}.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{font-size:var(--text-xs);line-height:1;flex-shrink:0}.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{font-size:var(--text-xs);line-height:1;color:var(--muted)}.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:"";position:absolute;bottom:2px;left:50%;transform:translate(-50%);width:16px;height:2px;border-radius:1px;background:var(--danger);opacity:.6}.planning-screen .family-calendar-day.is-workday:after{content:"";position:absolute;bottom:2px;left:50%;transform:translate(-50%);width:16px;height:2px;border-radius:1px;background:var(--muted);opacity:.5}.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{width:32px;height:32px;border:1px solid var(--accent);border-radius:var(--radius-xs);background:var(--accent-dim);color:var(--accent);font-weight:600}.planning-screen .family-calendar-day.out-month .family-calendar-marker{opacity:.35}.planning-screen .family-day-panel{display:flex;flex-direction:column;gap:16px;min-width:0}.planning-screen .family-day-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-bottom:12px;border-bottom:1px solid var(--border-subtle)}.planning-screen .family-day-head h3{margin:0;font:400 14px/20px var(--font-body);color:var(--muted)}.planning-screen .family-day-add-row{display:flex;align-items:center;gap:8px;flex-shrink:0}.planning-screen .family-day-add-btn{border:1px solid var(--accent);background:var(--accent-dim);color:var(--accent-bright);font-size:var(--text-xs);padding:6px 12px;border-radius:14px;cursor:pointer;font-weight:600;white-space:nowrap;min-height:32px;transition:transform .15s}.planning-screen .family-day-add-btn.secondary{border-color:var(--border);background:transparent;color:var(--fg-secondary)}.planning-screen .family-day-section h4{margin:0 0 12px;font:400 14px/20px var(--font-body);color:var(--muted)}.planning-screen .family-day-mood{display:flex;align-items:center;gap:12px;width:100%;text-align:left;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--surface);padding:12px 14px;cursor:pointer;transition:border-color .2s,background .2s}.planning-screen .family-day-mood:active{background:var(--surface2)}.planning-screen .family-day-mood-emoji{font-size:28px;line-height:1;flex-shrink:0}.planning-screen .family-day-mood-body{display:flex;flex-direction:column;gap:2px;min-width:0}.planning-screen .family-day-mood-body strong{font:600 15px/1.3 var(--font-body)}.planning-screen .family-day-mood-body span{font-size:var(--text-xs);color:var(--muted)}.planning-screen .family-day-anniv-list{display:grid;gap:8px}.planning-screen .family-day-anniv{display:flex;align-items:center;gap:12px;width:100%;text-align:left;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--surface);padding:12px 14px;cursor:pointer;transition:border-color .2s,background .2s,transform .15s}.planning-screen .family-day-anniv:active{background:var(--surface2)}.planning-screen .family-day-anniv-icon{font-size:26px;line-height:1;flex-shrink:0}.planning-screen .family-day-anniv-body{display:flex;flex-direction:column;gap:2px;min-width:0}.planning-screen .family-day-anniv-body strong{font:600 15px/1.3 var(--font-body)}.planning-screen .family-day-anniv-body span{font-size:var(--text-xs);color:var(--muted)}.planning-screen .family-all-panel{padding:20px}.planning-screen .family-all-section+.family-all-section{margin-top:24px}.planning-screen .family-empty{margin:0;font:400 14px/20px var(--font-body);color:var(--muted);text-align:center}.planning-screen .family-empty-hint{margin-top:6px;font:400 14px/18px var(--font-body);color:var(--muted);opacity:.7}.planning-screen .family-todo-list{list-style:none;margin:0;padding:0;display:grid;gap:12px}.planning-screen .family-todo-card{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid var(--border-subtle);border-radius:var(--radius-xs);background:var(--gradient-card);min-width:0;overflow-wrap:anywhere}.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{display:flex;align-items:flex-start;gap:10px;width:100%;position:relative}.planning-screen .family-todo-card-body{flex:1 1 0;min-width:0}.planning-screen .family-todo-card-body .family-todo-title{display:block;word-break:break-word;overflow-wrap:anywhere}.planning-screen .family-todo-tags{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:4px;max-width:100%}.planning-screen .family-todo-priority-tag{font-size:var(--text-xs);line-height:1;padding:3px 6px;border-radius:4px;font-weight:600}.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{font-size:var(--text-xs);color:var(--muted)}.planning-screen .family-todo-subtask-summary{border:none;background:var(--surface2);color:var(--text-secondary);font-size:var(--text-xs);padding:3px 8px;min-height:44px;border-radius:10px;cursor:pointer}.planning-screen .family-todo-completed-by{font-size:var(--text-xs);color:var(--muted)}.planning-screen .family-todo-subtasks{list-style:none;margin:0;padding:0 0 0 28px;display:flex;flex-direction:column;gap:6px;width:100%}.planning-screen .family-todo-subtask{display:flex;align-items:center;gap:8px}.planning-screen .family-todo-subtask-check{position:relative;width:44px;height:44px;min-width:44px;border:none;background:transparent;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--accent)}.planning-screen .family-todo-subtask-check:before{content:"";position:absolute;width:20px;height:20px;border-radius:5px;border:1.5px solid var(--border);background:transparent}.planning-screen .family-todo-subtask-check.checked{background:transparent}.planning-screen .family-todo-subtask-check.checked:before{background:var(--accent);border-color:var(--accent)}.planning-screen .family-todo-subtask-check svg{position:relative;z-index:1;width:12px;height:12px}.planning-screen .family-todo-subtask-check:disabled{cursor:default;opacity:.6}.planning-screen .family-todo-subtask-title{font-size:var(--text-xs);color:var(--fg-secondary)}.planning-screen .family-todo-subtask-title.checked{text-decoration:line-through;opacity:.5}.planning-screen .family-filter-bar{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}.planning-screen .family-filter-chip{min-height:36px;border:0;background:transparent;color:var(--fg-secondary);font-size:var(--text-xs);font-weight:550;padding:6px 13px;border-radius:999px;cursor:pointer;transition:color .18s ease,background .18s ease}.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{display:flex;align-items:center;gap:8px;padding:0 12px;margin-bottom:12px;min-height:44px;border-radius:999px;background:var(--gradient-card, var(--surface2));border:1px solid var(--border-subtle)}.planning-screen .family-search-icon{width:16px;height:16px;flex-shrink:0;color:var(--text-secondary)}.planning-screen .family-search-input{flex:1;align-self:stretch;min-height:44px;border:none;background:transparent;outline:none;font:500 14px/1 var(--font-body);color:var(--fg, var(--family-on-surface));min-width:0}.planning-screen .family-search-input::placeholder{color:var(--text-tertiary)}.planning-screen .family-search-summary{margin:0 0 12px;font:500 14px/1.3 var(--font-body);color:var(--text-secondary)}.planning-screen .family-search-group{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.planning-screen .family-search-group+.family-search-group{margin-top:8px}.family-add-sheet .family-subtask-list{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}.family-add-sheet .family-subtask-row{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--surface2);border-radius:var(--radius-xs)}.family-add-sheet .family-subtask-title{font-size:var(--text-xs);color:var(--fg-secondary)}.family-add-sheet .family-subtask-remove{border:none;background:transparent;color:var(--danger);font-size:18px;line-height:1;cursor:pointer;min-width:44px;min-height:44px}.family-add-sheet .family-subtask-input-row{display:flex;gap:8px}.family-add-sheet .family-subtask-input{flex:1}.family-add-sheet .family-subtask-add{min-height:44px;border:none;background:var(--accent-dim);color:var(--accent-bright);font-size:var(--text-xs);padding:0 16px;border-radius:var(--radius-xs);cursor:pointer;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{position:relative;width:44px;height:44px;flex-shrink:0;margin:-10px 0 0 -10px;border:none;background:transparent;color:var(--on-accent);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0;transition:border-color .2s,background .2s}.planning-screen .family-todo-check:before{content:"";position:absolute;width:20px;height:20px;border:1px solid var(--border);border-radius:6px;background:var(--bg)}.planning-screen .family-todo-check.checked{background:transparent}.planning-screen .family-todo-check.checked:before{border-color:var(--accent);background:var(--accent)}.planning-screen .family-todo-check svg{position:relative;z-index:1;width:14px;height:14px}.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{display:inline-flex;width:fit-content;padding:2px 8px;border-radius:4px;font:600 14px/1 var(--font-body);letter-spacing:.05em}.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{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;color:var(--text-tertiary);opacity:.7;cursor:grab;touch-action:none;flex-shrink:0}.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{margin-left:4px;border:none;background:transparent;color:var(--text-secondary);font:500 14px/1 var(--font-body);padding:10px 6px;min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}.planning-screen .family-expense-summary{display:flex;flex-direction:column;gap:8px;padding:16px;margin-bottom:12px}.planning-screen .family-expense-summary-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.planning-screen .family-expense-summary-head h3{margin:0;font:600 15px/1.3 var(--font-body)}.planning-screen .family-expense-summary-head p{margin:4px 0 0;color:var(--text-secondary);font:500 14px/1.3 var(--font-body)}.planning-screen .family-expense-summary-head strong{font:700 20px/1 var(--font-display)}.planning-screen .family-expense-summary-meta{margin:0;color:var(--text-secondary);font:500 14px/1.4 var(--font-body)}.planning-screen .family-expense-summary-meta.over-budget{color:var(--danger)}.planning-screen .family-expense-summary-link{align-self:flex-start;border:none;background:transparent;color:var(--accent);font:600 14px/1 var(--font-body);padding:0}.planning-screen .family-anniversary-strip{padding:14px 16px;margin-bottom:12px;gap:10px}.planning-screen .family-anniversary-strip-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.planning-screen .family-anniversary-strip-head h3{margin:0;font:600 14px/1.3 var(--font-body)}.planning-screen .family-anniversary-add{border:none;background:transparent;color:var(--accent);font:600 14px/1 var(--font-body);padding:6px 4px;min-height:32px}.planning-screen .family-anniversary-strip-list{display:flex;gap:10px;overflow-x:auto;padding-bottom:2px}.planning-screen .family-anniversary-card{flex:0 0 auto;display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--surface2, var(--family-surface-container-high));text-align:left;min-width:120px}.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{display:flex;flex-direction:column;gap:2px}.planning-screen .family-anniversary-card-body strong{font:600 14px/1.3 var(--font-body);color:var(--fg, var(--family-on-surface))}.planning-screen .family-anniversary-card-meta{font:500 14px/1.2 var(--font-body);color:var(--text-secondary)}.planning-screen .family-moment-album-wrap{display:flex;flex-direction:column;gap:12px}.planning-screen .family-moment-view-toggle{display:flex;align-self:flex-end;gap:0;padding:3px;border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border-subtle)}.planning-screen .family-moment-view-toggle button{border:none;background:transparent;color:var(--muted);font:500 14px/1 var(--font-body);padding:7px 16px;min-height:44px;border-radius:var(--radius-xs);cursor:pointer;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{display:flex;flex-direction:column;gap:4px}.planning-screen .family-diary-view{display:flex;flex-direction:column;gap:16px;min-width:0}.planning-screen .family-diary-list{display:flex;flex-direction:column;gap:12px}.planning-screen .family-diary-card{display:flex;flex-direction:column;gap:10px;padding:16px;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--gradient-card);box-shadow:var(--shadow-sm);min-width:0}.planning-screen .family-diary-card-head{display:flex;flex-direction:column;gap:8px}.planning-screen .family-diary-card-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.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{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.planning-screen .family-diary-date{font:500 14px/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);mask-image:linear-gradient(to bottom,var(--media-shadow) 70%,transparent)}.planning-screen .family-diary-toggle{align-self:flex-start;border:none;background:transparent;color:var(--accent-bright);font:600 14px/1 var(--font-body);cursor:pointer;padding:4px 0}.markdown-body{font-size:14px;line-height:1.7;color:var(--fg);word-break:break-word;overflow-wrap:anywhere}.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);font-size:.875em;background:var(--surface2);padding:2px 5px;border-radius:4px}.markdown-body pre{margin:.75em 0;padding:12px;background:var(--surface2);border-radius:var(--radius-xs);overflow-x:auto}.markdown-body pre code{background:transparent;padding:0}.markdown-body blockquote{margin:.75em 0;padding:.5em 0 .5em 1em;border-left:3px solid var(--accent);color:var(--fg-secondary)}.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:var(--text-xs)}.markdown-body th,.markdown-body td{border:1px solid var(--border-subtle);padding:6px 10px;text-align:left}.markdown-body th{background:var(--surface2);font-weight:600}.markdown-body img{max-width:100%;border-radius:var(--radius-xs)}.markdown-body hr{border:none;border-top:1px solid var(--border-subtle);margin:1em 0}.family-add-preview-toolbar{display:flex;justify-content:flex-end;margin-bottom:4px}.family-add-preview-toggle{border:1px solid var(--border);background:transparent;color:var(--muted);font:500 14px/1 var(--font-body);padding:6px 12px;border-radius:999px;cursor:pointer;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{min-height:120px;padding:12px;border:1px solid var(--border-subtle);border-radius:var(--radius-xs);background:var(--surface)}.family-moment-preview-empty{color:var(--muted);font-size:var(--text-xs)}.planning-screen .family-album-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.planning-screen .family-album-photo{position:relative;display:block;aspect-ratio:1 / 1;border:none;padding:0;border-radius:var(--radius-sm);overflow:hidden;background:var(--surface2, var(--family-surface-container-high))}.planning-screen .family-album-photo img{width:100%;height:100%;object-fit:cover;display:block}.planning-screen .family-album-photo-meta{position:absolute;inset:auto 0 0;display:flex;align-items:center;justify-content:space-between;gap:4px;padding:14px 6px 4px;font:500 14px/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;transition:opacity .15s ease;pointer-events:none}.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{position:fixed;left:50%;transform:translate(-50%);bottom:calc(96px + var(--safe-bottom, 0px));z-index:30;border:none;border-radius:999px;padding:10px 20px;font:600 14px/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))}.planning-screen .family-todo-card-side{display:flex;flex-direction:row;align-items:center;gap:4px;flex-shrink:0;align-self:flex-start;position:relative}.planning-screen .family-todo-more-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:none;background:transparent;color:var(--muted);border-radius:var(--radius-xs);cursor:pointer;flex-shrink:0;transition:background .2s,color .2s}.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{position:absolute;top:calc(100% + 4px);right:0;z-index:20;display:flex;flex-direction:column;min-width:96px;padding:4px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);box-shadow:var(--shadow-lg)}.planning-screen .family-todo-action-item{border:none;background:transparent;color:var(--fg);font:500 14px/1.4 var(--font-body);text-align:left;padding:10px 12px;border-radius:var(--radius-xs);cursor:pointer;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{display:inline-flex;align-items:center;gap:4px;font-size:var(--text-xs);color:var(--muted);max-width:100%;min-width:0}.planning-screen .family-todo-date.overdue{color:var(--danger);font-weight:600}.planning-screen .family-todo-date svg{width:12px;height:12px;flex-shrink:0}.planning-screen .family-todo-due{font-size:var(--text-xs);color:var(--muted);white-space:nowrap}.planning-screen .family-todo-due.overdue{color:var(--danger);font-weight:600}.planning-screen .family-moment-delete{border:none;background:transparent;color:var(--muted);font:400 14px/20px var(--font-body);cursor:pointer;transition:color .2s}.planning-screen .family-moment-delete:hover{color:var(--danger)}.planning-screen .family-date-divider{display:flex;align-items:center;gap:8px;margin:4px 0 12px}.planning-screen .family-date-divider span{flex:1;height:1px;background:var(--border-subtle)}.planning-screen .family-date-divider strong{font:600 14px/1 var(--font-body);letter-spacing:.05em;color:var(--muted);white-space:nowrap}.planning-screen .family-history-items{display:grid;gap:12px}.planning-screen .family-moment-timeline{padding:16px;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--gradient-card);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:12px}.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{align-self:flex-start;font:600 14px/1 var(--font-body);color:var(--warning, var(--accent));padding:4px 8px;border-radius:999px;background:color-mix(in oklch,var(--warning, var(--accent)) 14%,transparent)}.planning-screen .family-moment-timeline-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;flex-wrap:wrap;min-width:0}.planning-screen .family-moment-mood-badge{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font:600 14px/1 var(--font-body);letter-spacing:.05em;white-space:nowrap}.planning-screen .family-moment-author-pill{display:inline-flex;padding:2px 8px;border-radius:999px;border:1px solid var(--border);background:var(--surface2);color:var(--muted);font:600 14px/1 var(--font-body);letter-spacing:.05em}.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{display:inline-flex;align-items:center;gap:4px;font-size:var(--text-xs);color:var(--muted);flex-shrink:0}.planning-screen .family-moment-timeline-time svg{width:12px;height:12px;color:var(--accent)}.planning-screen .family-moment-timeline-content{margin:0;word-break:break-word;overflow-wrap:anywhere}.planning-screen .family-moment-timeline-images{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.planning-screen .family-moment-audio{margin-top:4px}.planning-screen .family-moment-audio audio{width:100%}.planning-screen .family-moment-audio-duration{display:block;margin-bottom:4px;font-size:var(--text-xs);color:var(--muted)}.planning-screen .family-moment-timeline-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:12px;margin-top:4px;border-top:1px solid var(--border-subtle)}.planning-screen .family-moment-timeline-actions{display:flex;align-items:center;gap:16px}.planning-screen .family-moment-collapse{margin-left:auto;flex-shrink:0;white-space:nowrap}.planning-screen .family-moment-action-btn{display:inline-flex;align-items:center;gap:6px;border:none;background:transparent;color:var(--muted);font:600 14px/1 var(--font-body);letter-spacing:.05em;cursor:pointer;min-width:44px;min-height:44px;padding:0 4px;transition:color .2s,transform .2s}.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-timeline-more{position:relative}.planning-screen .family-moment-timeline-menu{position:absolute;right:0;bottom:calc(100% + 6px);min-width:88px;border:1px solid var(--border-subtle);border-radius:8px;background:var(--surface);box-shadow:var(--shadow-lg);overflow:hidden;z-index:3}.planning-screen .family-moment-timeline-menu button{width:100%;border:none;background:transparent;color:var(--danger);font:400 14px/20px var(--font-body);padding:10px 12px;min-height:44px;text-align:left;cursor:pointer}.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{display:grid;gap:10px;padding-top:4px}.planning-screen .family-moment-feed{display:grid;gap:12px}.planning-screen .family-moment-compact{padding:12px;border:1px solid var(--border-subtle);border-radius:var(--radius-xs);background:var(--gradient-card)}.planning-screen .family-moment-compact-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}.planning-screen .family-moment-compact-time{margin-left:auto;font-size:var(--text-xs);color:var(--muted)}.planning-screen .family-moment-compact-content{margin:0;font:400 14px/20px var(--font-body);color:var(--fg);white-space:pre-wrap}.planning-screen .family-moment-compact-images{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin-top:8px}.planning-screen .family-moment-image-btn{border:none;padding:0;background:transparent;border-radius:4px;overflow:hidden;cursor:pointer}.planning-screen .family-moment-image-btn img{display:block;width:100%;aspect-ratio:1;object-fit:cover}.planning-screen .family-moment-expand-btn{margin-top:8px;border:none;background:transparent;color:var(--accent);font:500 14px/1 var(--font-body);cursor:pointer;min-height:44px;padding:0 4px}.planning-screen .family-moment-compact-interactions{margin-top:10px;padding-top:10px;border-top:1px solid color-mix(in srgb,var(--border-subtle) 50%,transparent)}.planning-screen .family-like-btn{border:none;background:transparent;color:var(--muted);font-size:var(--text-xs);cursor:pointer;min-width:44px;min-height:44px;padding:0 4px}.planning-screen .family-like-btn.active{color:var(--accent)}.planning-screen .family-moment-likes{margin:8px 0;padding:8px 10px;border-radius:var(--radius-xs);background:var(--surface2);font-size:var(--text-xs);color:var(--fg-secondary)}.planning-screen .family-moment-comments{list-style:none;margin:0 0 8px;padding:0;display:grid;gap:6px}.planning-screen .family-moment-comments li{padding:8px 10px;border-radius:4px;background:var(--border-subtle);font-size:var(--text-xs);line-height:1.45;color:var(--fg);min-width:0;word-break:break-word;overflow-wrap:anywhere}.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{display:flex;gap:8px;min-width:0}.planning-screen .family-moment-comment-form input{flex:1 1 0;min-width:0;border:1px solid var(--border-subtle);border-radius:var(--radius-xs);background:var(--surface);color:var(--fg);padding:8px 10px;font-size:var(--text-xs)}.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);font-size:var(--text-xs);padding:0 12px;cursor:pointer}.planning-screen .family-image-preview{position:fixed;inset:0;z-index:400;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--media-overlay-bg-strong)}.planning-screen .family-image-preview img{max-width:100%;max-height:100%;object-fit:contain}.planning-screen .family-image-preview-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;min-width:44px;border:none;border-radius:50%;background:var(--media-overlay-control);color:var(--media-overlay-fg);font-size:28px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer}.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{position:absolute;bottom:24px;left:50%;transform:translate(-50%);color:color-mix(in srgb,var(--media-overlay-fg) 80%,transparent);font-size:var(--text-xs)}.planning-screen .family-image-preview-close{position:absolute;top:16px;right:16px;width:44px;height:44px;min-width:44px;border:none;border-radius:50%;background:var(--media-overlay-control);color:var(--media-overlay-fg);font-size:24px;line-height:1;cursor:pointer}.family-fab.fab-menu{right:18px;bottom:calc(84px + var(--safe-bottom))}.family-fab.fab-menu .fab{width:50px;height:50px;border:none;border-radius:50%;background:var(--gradient-accent);color:var(--on-accent);font-size:24px;font-weight:300;line-height:1;box-shadow:var(--shadow-md),var(--shadow-glow-accent)}.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{bottom:60px;border-color:var(--border-subtle);background:var(--gradient-card)}.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{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}.family-moment-upload-item{position:relative}.family-moment-upload-item img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:var(--radius-xs)}.family-moment-upload-item button{position:absolute;right:4px;top:4px;border:none;border-radius:999px;background:var(--media-overlay-bg);color:var(--media-overlay-fg);font-size:var(--text-xs);padding:2px 6px;cursor:pointer}.financial-planning-section{margin-bottom:18px;padding-bottom:18px;border-bottom:1px solid var(--border-subtle)}.financial-planning-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--bg);padding:14px 16px;text-align:left;cursor:pointer}.financial-planning-toggle h3{margin:0 0 4px;font-size:14px}.financial-planning-toggle p{margin:0;color:var(--muted);font-size:var(--text-xs)}.financial-planning-toggle span{color:var(--accent);font-size:var(--text-xs);white-space:nowrap}.financial-planning-body{display:grid;gap:12px;margin-top:12px}.financial-planning-body .card{margin:0}.sheet.family-add-sheet{display:flex;flex-direction:column;overflow:hidden;padding:12px 20px 0;max-height:92dvh}.sheet.family-add-sheet>h3{flex-shrink:0;margin-bottom:12px;text-align:center}.sheet.family-add-sheet>.family-add-form{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.family-add-body{flex:1;overflow-y:auto;padding:0 0 16px;display:flex;flex-direction:column;gap:16px}.family-add-segment{position:relative;display:flex;padding:4px;border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border-subtle)}.family-add-segment-indicator{position:absolute;top:4px;left:4px;width:calc(25% - 1.2px);height:calc(100% - 8px);border-radius:var(--radius-xs);background:var(--accent-dim);border:1px solid transparent;box-shadow:none;transition:transform .25s cubic-bezier(.16,1,.3,1);pointer-events:none}.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{flex:1;position:relative;z-index:1;border:none;background:transparent;color:var(--muted);font:500 14px/20px var(--font-body);padding:12px 8px;cursor:pointer;transition:color .2s}.family-add-segment-btn.active{color:var(--accent-bright);font-weight:700}.family-add-forms{display:flex;flex-direction:column;gap:16px}.family-add-field-card{display:flex;flex-direction:column;gap:8px;padding:20px;border-radius:var(--radius-sm);background:var(--gradient-card);border:1px solid var(--border-subtle)}.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{width:100%;min-height:44px;border:none;border-bottom:1px solid var(--border-subtle);background:transparent;color:var(--fg);font:400 16px/24px var(--font-body);padding:8px 0;outline:none}.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{display:flex;flex-wrap:wrap;gap:12px}.family-add-mood-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.family-add-mood-btn{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 4px;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--surface);color:var(--muted);cursor:pointer;transition:border-color .2s,background .2s,color .2s,transform .15s}.family-add-mood-btn.active{border-color:var(--accent);background:var(--accent-dim);color:var(--accent)}.family-add-mood-emoji{font-size:28px;line-height:1}.family-add-mood-label{font:600 14px/1 var(--font-body)}.family-add-pill{min-height:44px;border:1px solid var(--border-subtle);border-radius:999px;background:transparent;color:var(--muted);font:600 14px/1 var(--font-body);letter-spacing:.05em;padding:8px 16px;cursor:pointer;transition:border-color .2s,background .2s,color .2s,transform .15s;display:inline-flex;align-items:center;gap:4px}.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{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--border-subtle);border-radius:999px;padding:4px;background:transparent}.family-add-interval-btn{width:44px;height:44px;flex:none;border:none;border-radius:999px;background:var(--accent-dim);color:var(--accent-bright);font:700 18px/1 var(--font-body);cursor:pointer;transition:background .2s,color .2s,transform .15s}.family-add-interval-btn:disabled{opacity:.35;cursor:not-allowed}.family-add-interval-value{min-width:96px;text-align:center;font:600 14px/1 var(--font-body);color:var(--text);letter-spacing:.03em}.family-add-image-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:12px}.family-add-image-item{position:relative;aspect-ratio:1}.family-add-image-item img{width:100%;height:100%;object-fit:cover;border-radius:var(--radius-xs)}.family-add-image-item button{position:absolute;right:4px;top:4px;border:none;border-radius:999px;background:var(--media-overlay-bg);color:var(--media-overlay-fg);font-size:var(--text-xs);padding:2px 6px;cursor:pointer}.family-add-image-add{aspect-ratio:1;border:2px dashed var(--border);border-radius:var(--radius-xs);background:transparent;color:var(--muted);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer;transition:border-color .2s,color .2s,background .2s}.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:var(--text-xs)}.family-add-audio-record{width:100%;padding:12px;border:2px dashed var(--border);border-radius:var(--radius-xs);background:transparent;color:var(--muted);cursor:pointer;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{display:flex;flex-direction:column;gap:8px}.family-add-audio-preview audio{width:100%}.family-add-audio-meta{font-size:var(--text-xs);color:var(--muted)}.family-add-audio-preview button{align-self:flex-start;padding:6px 12px;border:1px solid var(--border);border-radius:var(--radius-xs);background:transparent;color:var(--muted);font-size:var(--text-xs);cursor:pointer}.family-add-audio-recording{display:flex;align-items:center;gap:10px;padding:12px;border-radius:var(--radius-xs);background:var(--accent-dim)}.family-add-audio-dot{width:10px;height:10px;border-radius:50%;background:var(--danger);animation:family-audio-pulse 1s ease-in-out infinite}@keyframes family-audio-pulse{0%,to{opacity:1}50%{opacity:.3}}.family-add-audio-timer{font-variant-numeric:tabular-nums;font-size:14px;color:var(--text);flex:1}.family-add-audio-recording button{padding:6px 14px;border:none;border-radius:var(--radius-xs);background:var(--danger);color:var(--on-media);font-size:var(--text-xs);cursor:pointer}.family-add-footer{flex-shrink:0;display:flex;gap:12px;padding:12px 0 calc(16px + var(--safe-bottom));margin-top:auto;background:var(--surface);border-top:1px solid var(--border-subtle)}.family-add-submit{flex:1;border:none;border-radius:var(--radius-sm);background:var(--gradient-accent);color:var(--on-accent);font:600 16px/24px var(--font-body);padding:16px;cursor:pointer;box-shadow:var(--shadow-md),var(--shadow-glow-accent);transition:transform .2s,opacity .2s}.family-add-submit:disabled{opacity:.6;cursor:not-allowed}.family-add-delete{flex-shrink:0;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);padding:16px 24px;cursor:pointer;transition:transform .15s,background .2s}.family-fab-trigger{position:fixed;right:18px;bottom:calc(var(--bottom-nav-height) + 12px + var(--safe-bottom));z-index:100;width:50px;height:50px;border:none;border-radius:50%;background:var(--gradient-accent);color:var(--on-accent);font-size:24px;font-weight:300;line-height:1;box-shadow:var(--shadow-md),var(--shadow-glow-accent);cursor:pointer;transition:transform .2s cubic-bezier(.16,1,.3,1)}.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))}.todo-filter-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0 0 12px}.todo-filter-toolbar select,.todo-filter-panel select{min-height:44px;border:1px solid var(--border);background:var(--surface);color:var(--fg);padding:8px 12px;border-radius:8px;font:inherit;font-size:14px}.todo-filter-toolbar>label:first-child select{background:var(--accent-dim);border-color:transparent;color:var(--accent)}.todo-filter-panel{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:12px;border:1px solid var(--border);border-radius:8px;margin-bottom:12px}.todo-filter-panel label{display:grid;gap:4px;font-size:13px}.todo-completed-history>summary{min-height:44px;padding:12px 0;color:var(--fg-secondary);cursor:pointer}.todo-quick-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:start}.todo-date-picker,.todo-quick-assignee select{border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--fg);font:inherit;font-size:14px;min-height:48px;width:100%}.todo-date-picker>summary{min-height:48px;padding:12px;cursor:pointer}.todo-date-picker>div{display:grid;gap:10px;padding:10px}.todo-date-picker button{min-height:44px}.todo-more-options{border-top:1px solid var(--border);margin-top:8px;padding-top:8px}.todo-more-options>summary{min-height:60px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;list-style:none}.todo-more-options>summary small{display:block;color:var(--fg-secondary);font-size:12px;margin-top:4px}.todo-more-options[open]>summary svg{transform:rotate(90deg)}.draft-saved-hint{display:block;text-align:center;font-size:12px;color:var(--fg-secondary);padding:0 0 8px}@media(max-width:360px){.todo-quick-fields{grid-template-columns:1fr}}.family-moment-timeline-content.markdown-body,.family-moment-preview.markdown-body{white-space:pre-wrap}.asset-returns-module{display:grid;gap:12px}.asset-empty-hero{display:flex;flex-direction:column;align-items:center;gap:8px;padding:28px 16px;text-align:center}.asset-empty-title{font:700 16px/1.4 var(--font-display);color:var(--text);margin:0}.asset-empty-desc{font-size:var(--text-xs);color:var(--muted);margin:0 0 12px;line-height:1.5}.asset-empty-btn{max-width:220px}.asset-hero-card{display:flex;flex-direction:column;gap:16px}.asset-hero-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.asset-year-switcher{display:flex;align-items:center;gap:10px}.year-nav-btn{width:44px;height:44px;border-radius:50%;border:1px solid color-mix(in srgb,var(--on-media) 25%,transparent);background:color-mix(in srgb,var(--on-media) 10%,transparent);color:color-mix(in srgb,var(--on-media) 90%,transparent);font:700 18px/1 var(--font-body);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s ease,opacity .15s ease}.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));min-width:72px;text-align:center}.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{display:grid;grid-template-columns:1fr 1fr;gap:12px}.asset-hero-figure{display:flex;flex-direction:column;gap:6px}.asset-figure-label{font:600 14px/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{display:flex;align-items:center;gap:8px;padding-top:14px;border-top:1px solid color-mix(in srgb,var(--on-media) 15%,transparent)}.asset-annualized-item{flex:1;display:flex;flex-direction:column;gap:4px;text-align:center}.asset-annualized-label{font:600 14px/1 var(--font-body);color:color-mix(in srgb,var(--on-media) 60%,transparent)}.asset-annualized-value{font:700 16px/1 var(--font-number);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{width:1px;align-self:stretch;background:color-mix(in srgb,var(--on-media) 15%,transparent)}.asset-hero-total-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.asset-total-label{font:600 14px/1 var(--font-body);color:color-mix(in srgb,var(--on-media) 70%,transparent)}.asset-total-value{font:700 18px/1 var(--font-number);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{display:flex;align-items:baseline;gap:8px;min-width:0}.asset-total-rate{font:600 14px/1 var(--font-number);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{display:flex;flex-direction:column;align-items:center;gap:14px;padding:20px 0 8px;text-align:center}.asset-hero-empty p{color:color-mix(in srgb,var(--on-media) 80%,transparent);font-size:14px;margin:0}.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);padding:8px 20px;font:700 14px/1 var(--font-body);cursor:pointer}.asset-hero-add-btn:hover{background:color-mix(in srgb,var(--on-media) 25%,transparent)}.asset-yearly-list{display:grid;gap:8px;margin-top:4px}.asset-yearly-item{display:grid;grid-template-columns:minmax(0,1fr) 44px;align-items:center;gap:2px;border:1px solid var(--border);border-radius:14px;background:var(--bg);padding:3px;transition:background .15s ease,border-color .15s ease}.asset-yearly-item:hover{border-color:var(--accent)}.asset-yearly-edit{min-height:44px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:9px 10px;border:0;border-radius:11px;background:transparent;color:inherit;text-align:left;cursor:pointer}.asset-yearly-edit:hover{background:var(--surface2)}.asset-yearly-delete{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:11px;background:transparent;color:var(--muted);cursor:pointer}.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 14px/1 var(--font-number);font-variant-numeric:tabular-nums;color:var(--muted)}.asset-yearly-rate{font:700 16px/1 var(--font-number);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);font-size:var(--text-xs);margin:-4px 0 8px}.asset-channel-list{display:grid;gap:8px;margin-top:4px}.asset-channel-row{display:grid;grid-template-columns:1fr 120px auto;align-items:center;gap:8px}.asset-channel-name-label{font:600 14px/1 var(--font-body);color:var(--text);padding:0 4px}.asset-channel-name{border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 10px;background:var(--bg);color:var(--text);font:600 14px/1 var(--font-body)}.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);padding:8px 10px;background:var(--bg);color:var(--text);font-family:var(--font-number);font-variant-numeric:tabular-nums;text-align:right}.asset-channel-amount:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim);outline:none}.asset-channel-remove{width:28px;height:28px;border-radius:50%;border:none;background:var(--danger-dim);color:var(--danger);font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}.asset-channel-remove:hover{background:var(--danger);color:var(--on-media)}.asset-channel-add{margin-top:8px;border:1px dashed var(--border);background:none;color:var(--accent);border-radius:var(--radius-sm);padding:8px;font:600 14px/1 var(--font-body);cursor:pointer;width:100%}.asset-channel-add:hover{border-color:var(--accent);background:var(--accent-dim)}.asset-channel-sum{margin:8px 0 0}.backup-page{display:flex;flex-direction:column;gap:16px;min-height:100%}.backup-page.select-mode{padding-bottom:80px}.backup-header{display:flex;align-items:center;gap:12px;padding:8px 0}.backup-back-btn{width:44px;height:44px;border-radius:50%;border:1px solid var(--border);background:var(--bg);color:var(--text);font:700 20px/1 var(--font-body);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}.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{display:flex;flex-direction:column;gap:10px}.backup-list-title{display:flex;align-items:center;gap:8px;font:700 14px/1 var(--font-body);color:var(--text)}.backup-count{font-size:var(--text-xs);color:var(--muted);background:var(--surface3);border-radius:999px;padding:2px 8px}.backup-manage-btn{margin-left:auto;min-height:44px;padding:0 12px;border:0;border-radius:10px;background:transparent;color:var(--accent);font:600 14px/1 var(--font-body);cursor:pointer}.backup-manage-btn:hover{background:var(--accent-dim)}.backup-empty{color:var(--muted);font-size:var(--text-xs);text-align:center;padding:32px 16px;line-height:1.6}.backup-list{display:grid;gap:10px}.backup-card{position:relative;display:flex;border:1px solid var(--border);border-radius:14px;background:var(--bg);overflow:hidden;transition:border-color .15s ease,background .15s ease}.backup-card.select-mode.selected{border-color:var(--accent);background:var(--accent-dim)}.backup-card-main{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:64px;flex:1;border:none;background:none;padding:14px 14px 14px 16px;cursor:pointer;text-align:left;font:inherit;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.backup-card-main:active{background:var(--accent-dim)}.backup-card-info{display:flex;flex-direction:column;gap:4px;min-width:0}.backup-card-info h3{margin:0;font:600 14px/1.3 var(--font-body);color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.backup-card-info time{font-size:var(--text-xs);color:var(--muted)}.backup-chevron{font-size:var(--text-xs);color:var(--muted);white-space:nowrap;flex-shrink:0}.backup-select-check{width:22px;height:22px;border-radius:50%;border:2px solid var(--border);background:var(--bg);color:var(--on-media);font:700 14px/1 var(--font-body);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:border-color .15s ease,background .15s ease}.backup-select-check.checked{border-color:var(--accent);background:var(--accent)}.backup-select-bar{position:fixed;left:50%;bottom:calc(var(--bottom-nav-height, 64px) + 12px);transform:translate(-50%);width:min(calc(100% - 32px),var(--app-max-width, 430px));z-index:20}.backup-select-delete-btn{width:100%;background:var(--danger);border-color:var(--danger)}.backup-select-delete-btn:disabled{opacity:.45}.backup-card-delete{min-width:58px;min-height:44px;align-self:stretch;border:none;border-left:1px solid var(--border);background:none;color:var(--danger);font:600 14px/1 var(--font-body);cursor:pointer}.backup-card-delete:hover{background:var(--danger-dim)}.backup-restore-sheet{display:flex;flex-direction:column;gap:14px}.backup-restore-reason{margin:0;font:600 14px/1.4 var(--font-body);color:var(--muted)}.backup-restore-divider{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:var(--text-xs)}.backup-restore-divider:before,.backup-restore-divider:after{content:"";flex:1;height:1px;background:var(--border)}.backup-module-list{display:grid;gap:8px}.backup-module-item{display:flex;align-items:center;gap:10px;border:1px solid var(--border);border-radius:12px;padding:12px 14px;cursor:pointer;transition:border-color .15s ease,background .15s ease}.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{flex:1;font:600 14px/1 var(--font-body);color:var(--text)}.backup-module-count{font-size:var(--text-xs);color:var(--muted);font-variant-numeric:tabular-nums}.import-export-page{padding-bottom:24px}.import-export-section{display:flex;flex-direction:column;gap:10px}.import-export-section+.import-export-section{margin-top:8px}.import-export-section-title{font:700 14px/1 var(--font-body);color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding:4px 2px 0}.import-export-module-grid{display:grid;gap:10px}.import-export-module-card{border:1px solid var(--border);border-radius:14px;background:var(--bg);padding:12px 14px;display:flex;flex-direction:column;gap:6px}.import-export-module-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.import-export-module-head strong{font:700 15px/1.2 var(--font-body);color:var(--text)}.import-export-module-head span{font-size:var(--text-xs);color:var(--muted);font-variant-numeric:tabular-nums}.import-export-module-card p{margin:0;font-size:var(--text-xs);line-height:1.5;color:var(--muted)}.import-export-module-actions{display:flex;gap:8px;margin-top:4px}.import-export-module-actions button{flex:1;min-height:44px;border:1px solid var(--border);border-radius:10px;background:var(--surface3);color:var(--text);font:600 14px/1 var(--font-body);padding:8px 12px;cursor:pointer}.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{display:flex;flex-direction:column;gap:var(--gap)}.discourse-owner-switch{display:flex;gap:6px;padding:4px;background:var(--surface3);border-radius:var(--radius-md)}.discourse-owner-tab{flex:1;min-height:44px;padding:8px 12px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--fg-secondary);font-size:var(--text-md);font-weight:600;cursor:pointer;transition:background .2s ease,color .2s ease}.discourse-owner-tab.active{background:var(--surface);color:var(--accent);box-shadow:var(--shadow-sm)}.discourse-hero-card{display:flex;flex-direction:column;gap:10px;background:var(--gradient-card);border-color:var(--border-subtle)}.discourse-hero-label{font-size:var(--text-sm);color:var(--fg-secondary)}.discourse-hero-total{display:flex;align-items:baseline;gap:10px}.discourse-hero-total strong{font-size:40px;font-weight:700;line-height:1;letter-spacing:-.02em;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{height:8px;border-radius:999px;background:var(--surface3);overflow:hidden}.discourse-hero-bar-fill{display:block;height:100%;border-radius:999px;transition:background .3s ease}.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{min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:16px;margin:-8px;padding:8px;border-radius:var(--radius-sm);cursor:pointer;list-style:none}.discourse-principle-summary::-webkit-details-marker{display:none}.discourse-principle-summary>span{display:flex;flex-direction:column;gap:3px;min-width:0}.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;flex:0 0 auto;color:var(--fg-secondary);stroke-width:1.8;transition:transform .2s ease}.discourse-principle-card[open] .discourse-principle-summary svg{transform:rotate(180deg)}.discourse-principle-list{list-style:none;display:flex;flex-direction:column;gap:12px;margin:16px 0 0;padding:16px 0 0;border-top:1px solid var(--border-subtle)}.discourse-principle-item{display:flex;flex-direction:column;gap:3px;padding-left:12px;border-left:3px solid var(--accent-dim)}.discourse-principle-item strong{font-size:var(--text-md);font-weight:600;color:var(--fg)}.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{display:flex;justify-content:center;padding:4px 0}.discourse-radar-svg{width:100%;max-width:300px;height:auto;overflow:visible}.discourse-radar-vertex{cursor:pointer;transition:opacity .15s ease}.discourse-radar-vertex.is-disabled{cursor:not-allowed;opacity:.35}.discourse-radar-vertex:not(.is-disabled):hover{opacity:.85}.discourse-radar-label{font-size:var(--text-xs);font-weight:600;fill:var(--fg-secondary);paint-order:stroke;stroke:var(--surface);stroke-width:3px;stroke-linejoin:round}.discourse-radar-score{font-size:15px;font-weight:700;font-variant-numeric:tabular-nums;paint-order:stroke;stroke:var(--surface);stroke-width:3px;stroke-linejoin:round}.discourse-module{display:flex;flex-direction:column;gap:14px}.discourse-module.is-focus{border-color:var(--accent);box-shadow:var(--shadow-soft),0 0 0 1px var(--accent-glow)}.discourse-module-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.discourse-module-titles{flex:1;min-width:0}.discourse-module-title-row{display:flex;align-items:center;gap:8px}.discourse-module-title-row h3{font-size:var(--text-lg);font-weight:700;margin:0}.discourse-priority{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:999px;background:var(--surface3);color:var(--fg-secondary);font-size:var(--text-xs);font-weight:700;flex-shrink:0}.discourse-focus-badge{font-size:var(--text-xs);font-weight:600;color:var(--on-accent);background:var(--accent);padding:2px 8px;border-radius:999px}.discourse-bottom-line{font-size:var(--text-sm);color:var(--fg-secondary);line-height:1.5;margin:6px 0 0}.discourse-module-score{display:flex;flex-direction:column;align-items:flex-end;flex-shrink:0}.discourse-module-score strong{font-size:var(--text-2xl);font-weight:700;line-height:1;color:var(--tier-color)}.discourse-module-score small{font-size:var(--text-xs);color:var(--muted);margin-top:2px}.discourse-module-actions{display:flex;gap:8px;flex-wrap:wrap}.discourse-focus-toggle,.discourse-weight-toggle,.discourse-edit-toggle{min-height:44px;font-size:var(--text-sm);padding:6px 12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface2);color:var(--fg-secondary);cursor:pointer;transition:background-color .12s ease,color .12s ease,border-color .12s ease}.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{display:flex;flex-direction:column;gap:10px}.discourse-dim-group--bottom .discourse-section-label{color:var(--fg-secondary)}.discourse-dim-group--growth{margin-top:6px;padding:14px 14px 14px 16px;border-radius:var(--radius-md);background:var(--warning-dim);border-left:3px solid var(--warning)}.discourse-dim-group--growth .discourse-section-label{font-size:var(--text-md);font-weight:700;color:var(--warning)}.discourse-section-label{font-size:var(--text-sm);font-weight:600;color:var(--muted);display:flex;align-items:center;gap:8px;margin-top:2px}.discourse-growth-hint{font-size:var(--text-xs);font-weight:500;color:var(--warning);background:var(--warning-dim);padding:1px 7px;border-radius:999px}.discourse-note{font-size:var(--text-xs);font-style:normal;color:var(--fg-secondary);font-weight:400}.discourse-dim-list{list-style:none;display:flex;flex-direction:column;gap:12px;margin:0;padding:0}.discourse-dim-row{display:flex;flex-direction:column;gap:8px;padding-bottom:12px;border-bottom:1px solid var(--border-subtle)}.discourse-dim-row:last-child{border-bottom:none;padding-bottom:0}.discourse-dim-meta{display:flex;flex-direction:column;gap:2px}.discourse-dim-label{font-size:var(--text-md);font-weight:600;color:var(--fg)}.discourse-dim-desc{font-size:var(--text-sm);color:var(--fg-secondary);line-height:1.45}.discourse-weight-input{display:flex;align-items:center;gap:8px;font-size:var(--text-sm);color:var(--muted)}.discourse-weight-input input{width:64px;padding:4px 8px;border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--surface2);color:var(--fg);font:inherit}.discourse-slider{display:flex;align-items:center;gap:10px;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{width:30px;height:30px;flex:none;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface2);color:var(--fg);font-size:15px;line-height:1;cursor:pointer}.discourse-stepper:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.discourse-stepper:disabled{opacity:.35;cursor:default}.discourse-slider-track{position:relative;flex:1;height:32px;display:flex;align-items:center}.discourse-slider-track:before{content:"";position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);height:6px;border-radius:999px;background:var(--surface3);z-index:0}.discourse-slider-fill{position:absolute;left:0;top:50%;transform:translateY(-50%);height:6px;z-index:0;border-radius:999px;transition:background .15s ease}.discourse-slider-ticks{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);height:6px;z-index:1;display:flex;pointer-events:none}.discourse-slider-tick{flex:1;height:100%;background:linear-gradient(to right,var(--tick-line) 0,var(--tick-line) 2px,transparent 2px,transparent 100%)}.discourse-slider-tick:first-child{background:none}.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:none}.discourse-slider-input{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);z-index:2;width:100%;height:32px;margin:0;opacity:0;cursor:pointer;background:transparent}.discourse-slider-input::-webkit-slider-thumb{-webkit-appearance:none;width:2px;height:100%;opacity:0}.discourse-slider-input::-moz-range-thumb{width:2px;height:100%;border:none;background:transparent;opacity:0}.discourse-slider-input::-webkit-slider-runnable-track{background:transparent}.discourse-slider-input::-moz-range-track{background:transparent}.discourse-slider-value{font-size:var(--text-md);font-weight:700;min-width:34px;text-align:right;font-variant-numeric:tabular-nums}.discourse-slider-badge{font-size:var(--text-xs);color:var(--warning);background:var(--warning-dim);padding:1px 6px;border-radius:999px;flex-shrink:0}.discourse-slider-input:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:var(--radius-xs)}.discourse-view-owner{display:flex;gap:12px;align-items:center;color:var(--fg-secondary);font-size:14px;border-bottom:1px solid var(--border);padding-bottom:10px}.discourse-view-owner select{min-height:44px;background:transparent;color:var(--fg);font:inherit;border:0}.discourse-recent,.discourse-list-head{display:flex;gap:12px;align-items:center;justify-content:space-between}.discourse-recent{padding:16px 0;border-bottom:1px solid var(--border);font-size:14px;flex-wrap:wrap}.discourse-list-head h2{font-family:var(--font-body);font-size:18px;margin:0}.discourse-list-head>span,.discourse-score-caption{font-size:13px;color:var(--fg-secondary)}.discourse-score-caption{text-align:right;padding-right:120px;margin-bottom:4px}.discourse-status-row{display:flex;gap:8px;align-items:center;min-height:60px;border-bottom:1px solid var(--border)}.discourse-status-open{display:flex;align-items:center;justify-content:space-between;gap:10px;flex:1;min-width:0;text-align:left;min-height:52px;border:0;background:none;color:var(--fg);font:inherit;font-size:15px;padding:0}.discourse-status-open strong{font-weight:500;font-size:14px;white-space:nowrap}.discourse-focus-button{min-height:44px;min-width:68px;border:1px solid var(--border);border-radius:7px;color:var(--accent);background:var(--surface);display:inline-flex;align-items:center;justify-content:center;font:inherit;font-size:13px}.discourse-focus-button.active{background:var(--accent);color:var(--on-accent, white)}.discourse-row-arrow{min-width:44px;min-height:44px;display:grid;place-items:center;color:var(--fg);background:none;border:0}.discourse-actions{margin:12px 0 0;padding:16px 0;border-top:1px solid var(--border)}.discourse-actions .btn-secondary{width:auto;display:flex;gap:6px;align-items:center;min-height:44px}.discourse-action-item{display:flex;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--border)}.discourse-action-item>input{width:24px;height:24px;margin:10px;accent-color:var(--accent)}.discourse-action-item>button{flex:1;text-align:left;min-width:0;min-height:44px;border:0;padding:0;background:none;color:var(--fg);font:inherit}.discourse-action-item small{display:block;color:var(--fg-secondary);font-size:12px;padding-top:5px}.discourse-view-all{display:flex;align-items:center;gap:8px;color:var(--fg-secondary);font:inherit;font-size:14px;border:0;background:none;min-height:44px;padding:8px 0}.discourse-score-editor{display:grid;gap:16px}.discourse-score-editor .discourse-dim-row{padding:12px 0;border-bottom:1px solid var(--border)}.discourse-score-editor small{display:block;color:var(--fg-secondary);font-size:12px}.discourse-advanced summary{min-height:44px;cursor:pointer}.discourse-advanced label{display:flex;gap:12px;align-items:center;padding:8px 0}.discourse-advanced input{max-width:100px;min-height:44px}.discourse-edit-footer{display:flex;gap:10px;position:sticky;bottom:0;background:var(--surface);padding-block:12px}.discourse-choose{display:flex;gap:8px;flex-wrap:wrap}.discourse-choose button{min-height:44px;padding:8px 12px;color:var(--fg);border:1px solid var(--border);background:var(--surface);border-radius:8px}@media(max-width:360px){.discourse-status-row{gap:4px}.discourse-status-open{font-size:14px}.discourse-focus-button{min-width:60px}.discourse-score-caption{padding-right:108px}}.member-entry{border-bottom:1px solid var(--border-subtle)}.member-entry .list-row{border-bottom:none}.member-row{display:flex;align-items:center;gap:10px;cursor:default}.member-name-btn{flex:1;align-self:stretch;min-height:44px;border:none;background:none;color:var(--fg);font-size:14px;text-align:left;padding:0 4px;cursor:pointer}.member-edit-input{flex:1;min-width:0;min-height:44px;padding:8px;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--fg);font-size:var(--text-xs)}.member-row-actions{display:flex;align-items:center;gap:4px}.member-more-btn,.member-compact-btn,.member-restore-btn,.member-action-row button{min-width:44px;min-height:44px;border:none;border-radius:var(--radius-xs);background:transparent;color:var(--fg-secondary);font:600 14px/1 var(--font-body);cursor:pointer}.member-more-btn{display:inline-grid;place-items:center;width:44px;padding:0}.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{display:flex;justify-content:flex-end;gap:8px;padding:0 16px 12px 58px}.member-action-row button{padding:0 14px;border:1px solid var(--border-subtle)}.member-action-row .danger-text{color:var(--danger)}.member-row-inactive{opacity:.82}.member-restore-btn{padding:0 12px;color:var(--accent)}.member-add-row{display:flex;align-items:center;gap:10px}.member-add-row .member-edit-input{flex:1}.sheet.record-entry-sheet{display:flex;flex-direction:column;max-height:92dvh;overflow:hidden;padding:12px 20px 0}.record-entry-body{flex:1;min-height:0;overflow-y:auto;padding:0 0 16px}.record-entry-footer{flex:0 0 auto;display:flex;gap:12px;padding:12px 0 calc(16px + var(--safe-bottom));border-top:1px solid var(--border-subtle);background:var(--surface)}.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{margin:4px 0 10px;color:var(--muted);font-size:var(--text-xs);line-height:1.5}.form-section{margin-bottom:6px}.form-section-head{display:flex;flex-direction:column;gap:2px;margin:10px 0 6px;padding-left:8px;border-left:3px solid var(--accent)}.form-section.liability .form-section-head{border-left-color:var(--danger)}.form-section-name{font-weight:600;font-size:var(--text-xs);color:var(--fg)}.form-section-desc{color:var(--muted);font-size:var(--text-xs);line-height:1.5}.form-link{margin-top:10px;border:none;background:none;color:var(--accent);font-size:var(--text-xs);text-decoration:underline;cursor:pointer;padding:4px 0;text-align:left}.metric-manage-sheet .metric-manage-hint{margin:0 0 12px;color:var(--fg-secondary);font-size:var(--text-xs);line-height:1.6}.metric-manage-sheet .metric-group-card{margin-bottom:12px}.metric-manage-sheet .keynet-name-input{display:block;width:100%;margin-bottom:8px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--fg);font-size:var(--text-xs)}.metric-manage-sheet .keynet-hint{margin:8px 0 0}.metric-manage-sheet .metric-item-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.metric-manage-sheet .metric-item-row{display:grid;grid-template-columns:auto 1.2fr 1fr auto;gap:6px;align-items:center}.metric-manage-sheet .metric-item-actions{display:flex;align-items:center;justify-content:flex-end;gap:4px}.metric-manage-sheet .metric-move-btn{width:26px;height:26px;flex:none;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--fg-secondary);font-size:var(--text-xs);line-height:1;cursor:pointer}.metric-manage-sheet .metric-move-btn:disabled{opacity:.35;cursor:default}.metric-manage-sheet .metric-advanced-btn{border:none;background:none;color:var(--muted);font-size:var(--text-xs);padding:4px 2px;cursor:pointer;white-space:nowrap}.metric-manage-sheet .metric-import-input{grid-column:1 / -1}.metric-manage-sheet .metric-group-fields{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}.metric-manage-sheet .metric-item-row input,.metric-manage-sheet .metric-item-row select{min-width:0;padding:6px 8px;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--fg);font-size:var(--text-xs)}.metric-manage-sheet .metric-kind-dot{width:8px;height:8px;border-radius:50%;flex:none}.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{font-size:var(--text-xs);color:var(--fg-secondary);border:1px solid var(--border);border-radius:6px;padding:2px 6px;white-space:nowrap}.metric-manage-sheet .metric-add-row{display:grid;grid-template-columns:1.1fr auto auto;gap:6px;margin-top:10px}.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{min-width:0;padding:6px 8px;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--fg);font-size:var(--text-xs)}.metric-manage-sheet .metric-add-row select{min-width:96px}.metric-manage-sheet .metric-manage-actions{display:flex;gap:10px;margin-top:16px}@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}}.health-space{display:grid;gap:14px;padding:0 0 88px;min-width:0}.health-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.health-people{display:flex;align-items:center;gap:6px;min-width:0;flex-wrap:wrap}.health-person{min-height:44px;padding:0 14px;border:1px solid var(--border);border-radius:12px;background:transparent;color:var(--fg-secondary);font-size:14px;cursor:pointer}.health-person.active{color:var(--accent);background:var(--accent-dim);border-color:var(--accent)}.health-notes-button{flex-shrink:0;min-height:44px;border:0;background:transparent;color:var(--accent);font-size:var(--text-xs);padding:0 4px;cursor:pointer}.health-section-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.health-section-title h3{font-size:16px;margin:0}.health-section-title>span,.health-section-title>button{font-size:var(--text-xs);color:var(--fg-secondary)}.health-section-title button{min-height:44px;padding:0 12px;border:0;background:transparent;color:var(--accent)}.health-followups{padding:14px;background:var(--surface);border:1px solid var(--border);border-radius:20px}.health-followup{display:flex;gap:12px;align-items:center;text-align:left;width:100%;padding:16px 0;background:transparent;border:0;border-bottom:1px solid var(--border);color:var(--fg);min-height:56px}.health-followup:last-child{border:0;padding-bottom:0}.health-followup>span:nth-child(2){flex:1;min-width:0}.health-followup strong{display:block;font-size:var(--text-xs);overflow-wrap:anywhere}.health-followup small{display:block;color:var(--fg-secondary);font-size:var(--text-xs);margin-top:4px}.health-followup>span:last-child{font-size:var(--text-xs);white-space:nowrap;color:var(--fg-secondary)}.health-due,.health-overdue{font-size:var(--text-xs);min-width:40px;color:var(--accent)}.health-overdue{color:var(--warning)}.health-followups summary{padding-top:16px;font-size:var(--text-xs);color:var(--accent);cursor:pointer;min-height:44px}.health-filters{display:flex;gap:12px;margin-top:-8px}.health-search{flex:1;min-width:0}.health-filters input,.health-filters select{width:100%;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--fg);height:44px;padding:0 12px;font:inherit;font-size:var(--text-xs)}.health-filters>label:last-child{max-width:112px}.health-month{font-size:var(--text-xs);color:var(--fg-secondary);font-weight:500;margin:4px 0 16px;letter-spacing:.06em}.health-record{display:grid;grid-template-columns:40px minmax(0,1fr);gap:16px;padding-bottom:24px}.health-record-date{text-align:center;padding-top:4px;position:relative}.health-record-date:after{content:"";position:absolute;top:52px;bottom:0;left:50%;width:1px;background:var(--border)}.health-record-date strong{font-size:22px;font-weight:500;display:block;line-height:1.1}.health-record-date span{font-size:var(--text-xs);color:var(--fg-secondary)}.health-record-body{padding:20px;border-radius:16px;background:var(--surface);border:1px solid var(--border);min-width:0}.health-record-meta{display:flex;gap:8px;flex-wrap:wrap;color:var(--fg-secondary);font-size:var(--text-xs);margin:0 0 8px}.health-record-meta span+span:before{content:"·";padding-right:8px}.health-record-meta span:first-child{color:var(--accent)}.health-record-title{padding:4px 0;min-height:44px;display:flex;align-items:center;gap:16px;justify-content:space-between;width:100%;text-align:left;font:inherit;font-size:17px;font-weight:600;color:var(--fg);background:transparent;border:0;overflow-wrap:anywhere}.health-record-title span{font-weight:400;color:var(--fg-secondary);font-size:14px}.health-facility{font-size:var(--text-xs);color:var(--fg-secondary);margin:4px 0 0}.health-excerpt{font-size:var(--text-xs);line-height:1.8;color:var(--fg-secondary);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin:12px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}.health-report-count{display:flex;align-items:center;gap:12px;margin-top:16px;border:0;background:transparent;padding:0;min-height:44px;text-align:left;font-size:var(--text-xs);color:var(--accent)}.health-report-count :is(img,.health-image-placeholder){width:44px;height:44px;object-fit:cover;border-radius:8px}.health-pdf-icon{display:inline-grid;place-items:center;width:40px;height:44px;border-radius:8px;background:var(--accent-dim);color:var(--accent);font-size:var(--text-xs);letter-spacing:.04em;flex-shrink:0}.health-empty{text-align:center;padding:32px 24px 40px;border:1px dashed var(--border);border-radius:20px}.health-empty h3{font-size:18px;margin:16px 0 8px}.health-empty p{color:var(--fg-secondary);font-size:var(--text-xs);line-height:1.8;max-width:340px;margin:0 auto 24px}.health-empty .btn-submit{width:auto;padding-inline:24px}.health-empty-mark{display:inline-grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--accent-dim);color:var(--accent);font-size:24px;font-weight:300}.health-loading{padding:48px 16px;text-align:center;color:var(--fg-secondary);font-size:var(--text-xs)}.health-error{padding:12px 16px;color:var(--danger);background:color-mix(in srgb,var(--danger) 6%,var(--surface));border-radius:12px;font-size:var(--text-xs);line-height:1.7}.health-error button{background:transparent;border:0;color:inherit;min-height:44px;margin-left:12px;text-decoration:underline}.health-profile-note{border-left:2px solid var(--accent);padding:12px 16px;background:color-mix(in srgb,var(--accent) 5%,var(--surface));border-radius:0 12px 12px 0;font-size:var(--text-xs);line-height:1.8;overflow-wrap:anywhere}.health-profile-note p{margin:4px 0 0;white-space:pre-wrap;color:var(--fg-secondary)}.health-form{display:grid;gap:20px}.health-form label{display:grid;gap:8px;font-size:var(--text-xs);font-weight:500;min-width:0}.health-form label>span{font-weight:400;color:var(--fg-secondary);font-size:var(--text-xs)}.health-form input:not([type=file]):not([type=checkbox]),.health-form select,.health-form textarea{box-sizing:border-box;width:100%;min-width:0;min-height:44px;background:var(--surface);color:var(--fg);border:1px solid var(--border);border-radius:10px;padding:12px;font:inherit;font-size:14px}.health-form textarea{resize:vertical;line-height:1.8}.health-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.health-help{font-size:var(--text-xs);line-height:1.8;color:var(--fg-secondary);margin:0}.health-upload h3{font-size:14px;margin:0 0 8px;display:flex;justify-content:space-between}.health-upload h3 span{font-size:var(--text-xs);font-weight:400;color:var(--fg-secondary)}.health-form .health-file-button{position:relative;min-height:48px;display:flex;align-items:center;justify-content:center;border:1px dashed var(--accent);border-radius:12px;color:var(--accent);margin-top:12px;overflow:hidden;cursor:pointer}.health-file-button input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.health-file-button:focus-within{outline:2px solid var(--accent);outline-offset:3px}.health-attachments{display:grid;gap:8px;margin-top:12px}.health-attachment{display:flex;align-items:center;gap:12px}.health-thumbnail{padding:0;border:0;border-radius:8px;overflow:hidden;width:48px;height:48px;flex-shrink:0}.health-thumbnail :is(img,.health-image-placeholder){width:100%;height:100%;object-fit:cover}.health-filename{flex:1;min-width:0;font-size:var(--text-xs);overflow-wrap:anywhere}.health-attachment>button:last-child{background:transparent;border:0;color:var(--fg-secondary);font-size:var(--text-xs);min-height:44px;padding:0 8px}.health-form .health-check{display:flex;align-items:center;gap:12px;min-height:44px}.health-form fieldset{border:1px solid var(--border);border-radius:12px;padding:16px;display:grid;gap:16px;min-width:0}.health-form legend{font-size:var(--text-xs);padding:0 8px;color:var(--accent)}.health-detail h2{font-size:22px;line-height:1.5;margin:8px 0 12px}.health-full-notes{font-size:14px;line-height:1.9;white-space:pre-wrap;overflow-wrap:anywhere}.health-detail-attachments{display:grid;gap:16px;margin:24px 0}.health-detail-image{padding:0;background:transparent;border:1px solid var(--border);border-radius:12px;overflow:hidden;text-align:left;color:var(--fg-secondary);font-size:var(--text-xs)}.health-detail-image img{width:100%;max-height:320px;object-fit:contain;background:var(--surface);display:block}.health-detail-image>span{display:block;padding:12px;overflow-wrap:anywhere}.health-image-placeholder{display:inline-grid;place-items:center;background:var(--surface2);color:var(--muted);flex-shrink:0}.health-detail-image>.health-image-placeholder{display:grid;min-height:120px}.health-document-link{display:flex;align-items:center;gap:16px;padding:16px;border:1px solid var(--border);border-radius:12px;color:var(--fg);font-size:var(--text-xs);text-decoration:none;overflow-wrap:anywhere}.health-document-link small{display:block;margin-top:4px;color:var(--accent);font-size:var(--text-xs)}.health-detail-actions{display:flex;gap:12px;margin-top:24px}.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{gap:8px;grid-template-columns:32px minmax(0,1fr)}.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;padding:0;margin:0;display:grid;gap:20px;min-width:0}.health-detail-actions>.btn-secondary{width:auto;flex:0 0 auto}.health-member-detail{padding:16px 0}.health-member-detail+.health-member-detail{border-top:1px solid var(--border)}.health-member-detail h3{margin:0 0 8px;color:var(--accent);font-size:15px}.health-detail h2,.health-member-detail h4{overflow-wrap:anywhere}.health-load-more{width:auto}.health-filters .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.member-role-label{display:block;font-size:var(--text-xs);color:var(--muted);margin-top:4px}.member-role-field{display:flex;flex-direction:column;gap:8px;min-width:0;width:100%;font-size:var(--text-xs)}.member-role-field select{min-height:44px;max-width:100%;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}.health-member-picker{display:grid;gap:8px}.health-person{display:inline-flex;gap:6px;align-items:center;max-width:100%;white-space:normal;overflow-wrap:anywhere}.health-person>span{min-width:0}.health-person>svg{flex:0 0 16px}.health-personal-section h3{font:600 18px/1.5 var(--font-body);margin:0}.health-personal{border:1px solid var(--border);border-radius:8px;margin-top:10px}.health-personal>summary{display:flex;align-items:center;gap:8px;padding:10px 12px;min-height:44px;cursor:pointer;list-style:none}.health-personal>summary::-webkit-details-marker{display:none}.health-personal>summary>span{flex:1;min-width:0;overflow-wrap:anywhere}.health-personal>summary small{color:var(--fg-secondary);font-size:12px}.health-personal>summary svg{flex-shrink:0;margin-left:auto}.health-personal[open]>summary svg{transform:rotate(90deg)}.health-personal>label,.health-personal-fields{padding:12px}.health-personal-fields{display:grid;gap:16px;border-top:1px solid var(--border)}.health-save-footer{position:sticky;background:var(--surface);padding:8px 0 max(8px,env(safe-area-inset-bottom));display:grid;gap:4px;z-index:2;border-top:1px solid var(--border-subtle)}.health-record-sheet .health-save-footer .btn-submit{min-height:44px;margin:0;padding:8px 16px;font-size:14px;box-shadow:none}.health-save-footer .health-help{margin:0;text-align:center;font-size:11px;line-height:1.5}.health-form .health-form-fields{gap:16px}.health-record-body{background:transparent;border-width:0 0 1px;border-radius:0;padding:0 0 16px}.health-record{padding-bottom:16px}.health-record-date:after{display:none}.health-record-date{border-right:1px solid var(--border)}@media(max-width:360px){.health-form-grid{grid-template-columns:minmax(0,1fr)}.health-personal>summary{flex-wrap:wrap}}.app,.bottom-nav{max-width:var(--app-max-width)}.page-header{flex-shrink:0;min-width:0;padding:2px 0 0;border-bottom:1px solid var(--border-subtle)}.page-header-title-row{display:flex;align-items:center;gap:8px;min-width:0;min-height:28px}.page-header h1{margin:0;flex-shrink:0;color:var(--fg);font:650 20px/28px var(--font-display);letter-spacing:-.025em}.page-header-caption{min-width:0;overflow:hidden;color:var(--fg-secondary);font-size:var(--text-xs);white-space:nowrap;text-overflow:ellipsis}.page-header-period{margin-left:auto;min-width:0;flex-shrink:2;overflow:hidden;color:var(--muted);font-size:var(--text-xs);font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis}.page-header .page-header-back{margin-left:-10px;margin-right:-8px}.ui-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;flex-shrink:0;min-height:var(--control-height);padding:10px 18px;border:1px solid transparent;border-radius:var(--control-radius);font:600 var(--text-base)/1.4 var(--font-body);text-decoration:none;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;transition:background-color .16s ease,border-color .16s ease,transform .16s ease}.ui-button svg{width:18px;height:18px;flex-shrink:0;pointer-events:none;stroke-width:1.8}.ui-button-primary{background:var(--accent);color:var(--on-accent);box-shadow:var(--control-shadow)}.ui-button-outline{background:var(--surface);color:var(--fg);border-color:var(--border);box-shadow:var(--control-shadow)}.ui-button-ghost{background:transparent;color:var(--fg-secondary);box-shadow:none}.ui-button-link{background:transparent;color:var(--accent);text-underline-offset:4px}.ui-button-sm{padding-inline:12px;font-size:var(--text-sm);gap:6px}.ui-button-sm svg{width:16px;height:16px}.ui-button-lg{min-height:48px;padding-inline:22px;font-size:var(--text-md)}.ui-button-icon{width:var(--control-height);padding:0}.ui-button:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.ui-button:active:not(:disabled){transform:translateY(1px)}.ui-button:focus-visible,.ui-tabs-trigger:focus-visible{outline:2px solid var(--accent);outline-offset:3px;box-shadow:0 0 0 4px var(--control-ring)}.ui-tabs{display:flex;flex-direction:column;gap:16px;min-width:0}.ui-tabs-list{display:inline-flex;align-items:center;gap:4px;width:fit-content;max-width:100%}.ui-tabs-segmented{padding:4px;border-radius:16px;background:var(--surface2);border:1px solid var(--border-subtle)}.ui-tabs-trigger{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:var(--control-height);padding:8px 16px;border:1px solid transparent;border-radius:11px;background:transparent;color:var(--fg-secondary);font:500 var(--text-control)/1.4 var(--font-body);white-space:nowrap;cursor:pointer;transition:background-color .16s ease,color .16s ease}.ui-tabs-trigger svg{width:17px;height:17px;stroke-width:1.7;flex-shrink:0}.ui-tabs-segmented>.ui-tabs-trigger[data-state=active]{background:var(--surface);color:var(--accent);border-color:var(--border-subtle);box-shadow:var(--control-shadow);font-weight:650}.ui-tabs-line{gap:20px;border-bottom:1px solid var(--border-subtle);border-radius:0}.ui-tabs-line>.ui-tabs-trigger{padding:6px 4px;border-radius:6px 6px 0 0}.ui-tabs-line>.ui-tabs-trigger[data-state=active]{color:var(--accent);font-weight:650}.ui-tabs-line>.ui-tabs-trigger[data-state=active]:after{content:"";position:absolute;bottom:-1px;left:4px;right:4px;height:2px;background:var(--accent);border-radius:2px}.ui-tabs-content{min-width:0;outline-offset:4px}.ui-tabs-content[data-state=inactive]{display:none}.ui-tabs-trigger:disabled{opacity:.45;pointer-events:none}.planning-screen .family-hub.ui-tabs{display:grid;gap:16px}.family-main-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));width:100%}.family-main-tabs>.ui-tabs-trigger{padding-inline:6px}.family-view-tabs{width:100%;margin-bottom:0}.has-inline-search .family-view-tabs{width:calc(100% - 52px)}.form-type-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:100%}.form-type-tabs>.ui-tabs-trigger{padding-inline:6px}.finance-chart-tabs{width:100%}.finance-chart-tabs .ui-tabs-trigger{flex:1;padding-inline:6px}.discourse-tabs-list{width:100%;flex-wrap:wrap}.discourse-tabs-list .ui-tabs-trigger{flex:1}.discourse-tab-content{display:grid;gap:var(--gap)}.calendar-tab-content{display:grid;gap:16px}.sync-status{display:grid;grid-template-columns:6px minmax(0,1fr) auto;align-items:center;column-gap:7px;padding:0;min-height:44px;color:var(--fg-secondary);font-size:var(--text-xs)}.sync-status-copy{min-width:0;overflow-wrap:anywhere;line-height:1.5}.sync-status-time{display:inline-block;white-space:nowrap;color:var(--muted);font-variant-numeric:tabular-nums}.sync-status .sync-problem{grid-column:1 / -1;padding:6px 0 12px;min-width:0}.sync-status .sync-refresh{min-height:44px;padding:8px 10px;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--fg-secondary);font:500 var(--text-sm)/1.4 var(--font-body);box-shadow:none}.sync-status-dot{flex-shrink:0;width:6px;height:6px;box-shadow:none}.sync-status-synced .sync-status-dot{box-shadow:none}.app-hero .sync-status span{display:inline}.app-hero .sync-status .sync-refresh{color:inherit}.ui-spin{animation:ui-spin 1s linear infinite}@keyframes ui-spin{to{transform:rotate(360deg)}}.ui-button.family-fab-trigger,.fab-menu .ui-button.fab{display:inline-flex;align-items:center;gap:9px;width:auto;height:50px;min-width:112px;min-height:50px;padding:0 20px;border-radius:16px;border:1px solid color-mix(in srgb,var(--on-accent) 12%,transparent);background:var(--accent);color:var(--on-accent);font:600 var(--text-base)/1.4 var(--font-body);box-shadow:var(--shadow-md)}.ui-button.family-fab-trigger svg,.fab-menu .ui-button.fab svg{width:20px;height:20px}.fab-menu .fab-icon{display:block;transition:transform .18s ease}.fab-menu.open .fab-icon{transform:rotate(45deg)}.fab-action-sheet{padding:6px;border-radius:18px;border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-lg)}.fab-action-item{padding:12px 14px;border:0;border-radius:11px;gap:4px}.fab-action-item strong{font-size:var(--text-base);color:var(--fg)}.fab-action-item span{font-size:var(--text-sm);color:var(--fg-secondary)}.planning-screen .family-empty-welcome{padding:38px 18px;border:1px solid var(--border-subtle);border-radius:20px;background:var(--surface)}.empty-illustration{display:grid;place-items:center;width:52px;height:52px;margin:0 auto 18px;color:var(--accent);background:var(--accent-dim);border-radius:16px}.empty-illustration svg{width:25px;height:25px;stroke-width:1.4}.family-empty-welcome h3{margin:0 0 8px;color:var(--fg);font-size:var(--text-lg);font-weight:600}.family-empty-welcome p{margin:0;color:var(--fg-secondary);font-size:var(--text-control)}.empty-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:24px}.family-empty .ui-button-primary{background:var(--accent);color:var(--on-accent);border-color:transparent}.family-empty .ui-button-outline{background:var(--surface);color:var(--fg);border-color:var(--border)}.family-empty .ui-button{border-radius:var(--control-radius);padding:10px 18px}.family-add-form .family-add-forms{gap:20px}.family-add-form .family-add-field-card{padding:0;background:transparent;border:0;border-radius:0}.family-add-form .family-add-field-card label,.family-add-form .family-add-field-label{color:var(--fg-secondary);font-size:var(--text-control);font-weight:500}.family-add-form .family-add-field-card input,.family-add-form .family-add-field-card textarea{border:1px solid var(--border);border-radius:var(--control-radius);padding:10px 12px;background:var(--surface)}.family-add-form .family-add-field-card input:focus,.family-add-form .family-add-field-card textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--control-ring)}.family-add-form .family-add-pill-row{gap:6px}.family-add-form .family-add-pill{border-radius:var(--radius-sm);padding-inline:12px;letter-spacing:0;font-weight:500}.family-add-form .family-add-pill.active{border-color:transparent}.health-person.ui-button{min-height:44px;padding:0 14px;border:1px solid transparent;font-weight:500}.health-person.ui-button.active{background:var(--accent-dim);border-color:transparent;color:var(--accent)}.health-notes-button.ui-button{padding-inline:8px;color:var(--fg-secondary)}.btn-submit,.btn-import-confirm,.family-add-submit{min-height:46px;border:1px solid transparent;border-radius:var(--control-radius);background:var(--accent);color:var(--on-accent);box-shadow:var(--control-shadow);padding:12px 18px;font:600 var(--text-base)/1.4 var(--font-body)}.btn-secondary,.inline-add-btn{min-height:44px;border:1px solid var(--border);border-radius:var(--control-radius);background:var(--surface);color:var(--fg);box-shadow:var(--control-shadow);padding:10px 16px;font:500 var(--text-control)/1.4 var(--font-body)}.btn-submit:disabled,.btn-import-confirm:disabled,.btn-secondary:disabled,.inline-add-btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.sheet-close{border-radius:12px;background:var(--surface2);color:var(--fg-secondary)}.tab-row,.discourse-owner-switch{padding:4px;border:1px solid var(--border-subtle);border-radius:16px;background:var(--surface2);gap:4px}.tab-btn,.discourse-owner-tab{border-radius:11px;border:1px solid transparent;font-weight:500}.tab-btn.active,.discourse-owner-tab.active{color:var(--accent);background:var(--surface);border-color:var(--border-subtle);box-shadow:var(--control-shadow);font-weight:650}.planning-screen .family-filter-chip{border-radius:10px;border:1px solid transparent;background:transparent;padding:8px 12px;font-weight:500;min-height:44px}.planning-screen .family-filter-chip.active{border-color:var(--border-subtle);color:var(--accent);background:var(--surface);box-shadow:var(--control-shadow)}.range-btn{min-height:44px;border-radius:9px}.range-btn.active{color:var(--accent);background:var(--accent-dim);box-shadow:none}.bottom-nav .nav-item{gap:4px;padding-top:8px}.bottom-nav .nav-item.active{background:transparent;box-shadow:none}.bottom-nav .nav-item:before{display:none}.bottom-nav .nav-item svg{box-sizing:content-box;width:22px;height:22px;padding:5px 12px;border-radius:12px;transition:background-color .16s ease}.bottom-nav .nav-item.active svg{background:var(--accent-dim)}@media(hover:hover){.ui-button-primary:hover,.btn-submit:hover,.btn-import-confirm:hover,.family-add-submit:hover,.ui-button.family-fab-trigger:hover,.fab-menu .ui-button.fab:hover{background:var(--control-primary-hover)}.ui-button-outline:hover,.ui-button-secondary:hover,.btn-secondary:hover,.inline-add-btn:hover,.ui-button-ghost:hover,.sync-status .sync-refresh:hover,.fab-action-item:hover{background:var(--control-hover)}.ui-button-destructive:hover{background:var(--danger-glow)}.ui-button-link:hover{text-decoration:underline}.ui-tabs-trigger:hover{color:var(--accent)}}@media(max-width:390px){.family-main-tabs{gap:2px;padding:3px}.family-main-tabs>.ui-tabs-trigger{gap:4px;padding-inline:3px;font-size:var(--text-sm)}.family-main-tabs .ui-tabs-trigger svg{width:15px;height:15px}}@media(prefers-reduced-motion:reduce){.ui-button,.ui-tabs-trigger,.fab-menu .fab-icon{transition:none}.ui-spin{animation:none}}.planning-screen .family-moment-album-wrap{position:relative;gap:12px}.planning-screen .family-moment-album-wrap.has-inline-search .family-all-layout{position:static}.planning-screen .family-moment-view-toggle{width:100%;align-self:stretch;display:flex;align-items:center;gap:4px;padding:0;border:0;border-radius:0;background:transparent}.planning-screen .family-moment-album-wrap.has-inline-search .family-moment-view-toggle{width:calc(100% - 52px);align-self:flex-start}.planning-screen .family-moment-view-toggle button{position:relative;flex:0 0 auto;min-width:52px;min-height:44px;padding:0 10px;border-radius:10px;color:var(--muted);font-size:16px;font-weight:500}.planning-screen .family-moment-view-toggle button.active{color:var(--accent-bright);background:transparent;box-shadow:none;font-weight:650}.planning-screen .family-moment-view-toggle button.active:after{content:"";position:absolute;right:12px;bottom:4px;left:12px;height:2px;border-radius:999px;background:var(--accent)}.planning-screen .family-search-bar{min-height:48px;margin-bottom:14px;padding:0 16px;border-color:transparent;background:var(--surface2);box-shadow:inset 0 0 0 1px color-mix(in oklch,var(--border-subtle) 55%,transparent)}.planning-screen .family-moment-album-wrap.has-inline-search .family-search-bar.compact{position:absolute;z-index:24;top:0;right:0;width:44px;min-height:44px;margin:0;padding:0;justify-content:flex-end;overflow:hidden;border-radius:12px;background:transparent;box-shadow:none;transition:background .18s ease}.planning-screen .family-moment-album-wrap.has-inline-search .family-search-bar.compact.expanded{width:100%;padding-left:14px;background:var(--surface);box-shadow:var(--shadow-md)}.planning-screen .family-search-toggle{flex:0 0 44px;width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:12px;background:transparent;color:var(--fg-secondary);cursor:pointer}.planning-screen .family-search-toggle:hover{color:var(--accent);background:var(--accent-dim)}.planning-screen .family-search-toggle svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round}.planning-screen .family-search-bar.compact .family-search-input{min-height:44px}.planning-screen .family-month-heading{margin-bottom:18px;font-size:18px;font-weight:680;letter-spacing:-.02em}.planning-screen .family-month-rail{right:max(8px,env(safe-area-inset-right,0px));left:auto}.planning-screen .family-month-rail-panel{right:52px;left:auto}.app{background:var(--bg)}.scroll-area{gap:18px;padding-top:max(16px,env(safe-area-inset-top,0px));padding-bottom:24px}.module-screen{gap:18px}.app :is(.card,.module-section,.list-group-body,.family-glass-panel,.health-followups,.import-export-module-card,.backup-card){padding:14px 12px;border:1px solid var(--border);border-radius:16px;background:var(--surface);box-shadow:none;min-width:0}.app .list-group-body{padding:0;overflow:hidden}.app :is(.card-title,.health-section-title h3,.import-export-section-title,.backup-list-title){color:var(--fg);font:650 20px/1.5 var(--font-display);letter-spacing:-.02em}.app .card-head{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px}.app .card-head-actions{flex-wrap:wrap;min-width:0}.app .list-caption{margin:20px 4px 8px;padding:0;color:var(--fg-secondary);font:600 16px/1.5 var(--font-body)}.app .list-row{min-width:0;padding:14px 12px;gap:10px;background:transparent;font-size:16px}.app .list-label{min-width:0;font-size:18px;line-height:1.5;white-space:normal}.app :is(.list-value,.list-sub,.list-sub-inline){font-size:14px;line-height:1.6;white-space:normal;overflow-wrap:anywhere}.app .list-icon{width:26px;height:30px;border-radius:0;flex-shrink:0;color:var(--fg-secondary);background:transparent}.app .list-icon svg{width:21px;height:21px}.app .list-icon.danger{color:var(--danger)}.page-header{padding:0;border:0;position:relative}.page-header-title-row{display:flex;align-items:center;gap:8px}.page-header-copy{flex:1;min-width:0}.page-header h1{font:650 26px/1.4 var(--font-display);letter-spacing:-.035em}.page-header-caption{margin-top:3px;font-size:14px;white-space:normal;overflow:visible;line-height:1.6}.page-header-actions{flex-shrink:0}.page-header-status{display:flex;align-items:center;flex-wrap:wrap;gap:0 8px;margin-top:4px}.page-header-period{font-size:14px;margin:0 auto 0 0;white-space:normal}.page-header-status .sync-status{flex:1;min-width:160px;font-size:14px;padding:0}.page-header .sync-refresh{padding:8px;min-width:44px}.page-header .sync-refresh span,.page-header .sync-status-time{display:none}.page-header .sync-status-error .sync-status-time,.page-header .sync-status-offline .sync-status-time{display:inline}.page-add-button{font-size:16px;padding-inline:12px}.fab-menu.fab-menu-header{position:relative;inset:auto;width:auto;height:auto;z-index:60}.fab-menu.fab-menu-header .ui-button.fab{position:static;width:auto;min-width:0;height:44px;min-height:44px;padding:8px 12px;font-size:16px;border-radius:10px;box-shadow:none}.fab-menu.fab-menu-header .fab-action-sheet{position:absolute;inset:calc(100% + 8px) 0 auto auto;width:min(320px,calc(100vw - 24px));max-height:min(70dvh,480px);overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-md)}.fab-menu-header .fab-action-item strong{font-size:16px}.fab-menu-header .fab-action-item span{font-size:14px}.ui-tabs{gap:12px}.ui-tabs-list{flex-wrap:wrap}.ui-tabs-segmented,.tab-row,.person-toggle,.discourse-owner-switch{padding:3px;gap:3px;border:0;border-radius:10px;background:var(--surface2)}.ui-tabs-trigger,.tab-btn,.person-btn,.discourse-owner-tab{min-height:44px;padding:8px 10px;border-radius:7px;font-size:16px;line-height:1.4;white-space:normal;box-shadow:none}.ui-tabs-segmented>.ui-tabs-trigger[data-state=active],.tab-btn.active,.person-btn.active,.discourse-owner-tab.active{border-color:transparent;background:var(--surface);color:var(--accent);box-shadow:none}.ui-tabs-line{gap:12px;border-bottom:1px solid var(--border);background:transparent}.ui-tabs-line>.ui-tabs-trigger{padding:8px 2px;border-radius:0}.family-main-tabs.ui-tabs-line{gap:0;border-radius:0;background:transparent;padding:0}.family-main-tabs>.ui-tabs-trigger{padding:8px 2px 12px;background:transparent;font-size:16px}.family-main-tabs .ui-tabs-trigger svg{display:none}.family-main-tabs.ui-tabs-line>.ui-tabs-trigger[data-state=active]:after{width:22px;height:3px;left:calc(50% - 11px);right:auto}.finance-chart-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.finance-chart-tabs .ui-tabs-trigger{padding-inline:2px}.range-buttons,.person-toggle{flex-wrap:wrap}.range-btn{font-size:16px;padding-inline:10px;border-radius:7px}.ui-button,.btn-secondary,.inline-add-btn,.btn-submit,.btn-import-confirm,.edit-mode-btn,.family-add-pill,.family-add-submit{font-size:16px;min-height:44px;padding-inline:12px;border-radius:var(--control-radius);box-shadow:none}.ui-button:active:not(:disabled){transform:none}.ui-button-icon{padding:0}.ui-button svg{flex-shrink:0}:is(.app,.sheet,.auth-gate) :is(input:not([type=checkbox]):not([type=radio]):not([type=range]),textarea,select){font-size:16px}.app :is(.reconcile-toggle,.auth-refresh,.discourse-edit-toggle,.discourse-focus-toggle,.family-moment-action-btn),.credential-tools button,.sheet .form-link{font-size:16px}.form-group label,.form-label,.family-add-field-label{font-size:16px}.sheet,.import-sheet,.clear-sheet{padding-inline:var(--pad);border-radius:18px 18px 0 0;background:var(--surface);border-color:var(--border)}.sheet.record-entry-sheet,.sheet.family-add-sheet{padding-inline:var(--pad)}.sheet-heading h3,.sheet h3{font-size:24px;line-height:1.5}.sheet-heading{gap:8px}.sheet-close{border-radius:10px}.family-add-body{padding-inline:0}.family-add-footer{padding-inline:var(--pad)}.form-section{border-radius:12px;background:var(--bg);padding:12px}.family-add-field-card{border-radius:12px}.draft-close-choice{padding:16px 12px;border-radius:14px}.app .hero-card{--on-media: var(--fg);--hero-banner-fg: var(--fg);color:var(--fg);background:var(--surface);box-shadow:none}.app .hero-card :is(.card-title,.cash-surplus-label,.unit,.analysis-item span,.analysis-item small,.contribution-item span){color:var(--fg-secondary)}.app .hero-card :is(.net-worth,.cash-surplus-value){color:var(--accent);text-shadow:none;font:600 38px/1.25 var(--font-number);letter-spacing:-1px;overflow-wrap:anywhere}.app .hero-card .unit{font:16px var(--font-body);margin-left:8px;letter-spacing:0}.app .hero-card .amount-visibility-btn{color:var(--fg-secondary);border-color:transparent}.app .hero-card :is(.change-item,.change-item .arrow){color:var(--fg-secondary);font-size:16px}.app .hero-card .positive,.positive{color:var(--accent)}.app .hero-card .negative,.negative{color:var(--danger)}.app .hero-card .analysis-grid{gap:12px;border:0;background:transparent;overflow:visible}.app .hero-card .analysis-item{padding:10px 0;background:transparent;border:0;border-top:1px solid var(--border);border-radius:0;min-width:0}.app .hero-card .analysis-item strong{font:600 18px/1.5 var(--font-number);overflow-wrap:anywhere}.app .hero-card .analysis-item :is(span,small){font-size:14px;line-height:1.5}.app .contribution-list{border-color:var(--border)}.app .contribution-item{gap:8px;font-size:16px}.app .net-overview-card{overflow:hidden;padding:12px 14px 0}.app .net-overview-card .card-head{margin:0}.app .net-overview-card .card-title{font-size:16px;font-weight:500}.overview-change{display:flex;flex-wrap:wrap;align-items:center;gap:7px;font-size:14px;color:var(--fg-secondary);margin:8px 0 16px}.change-badge{background:var(--accent-dim);border-radius:5px;padding:2px 7px;font-weight:600}.change-badge.negative{background:var(--danger-dim)}.overview-metrics{display:grid;grid-template-columns:1fr 1fr;gap:12px;background:var(--accent-dim);margin-inline:-14px;padding:12px 14px}.overview-metrics>div{min-width:0}.overview-metrics>div+div{border-left:1px solid var(--border);padding-left:12px}.overview-metrics span{display:block;font-size:14px;color:var(--fg-secondary)}.overview-metrics strong{font:600 18px/1.5 var(--font-number);overflow-wrap:anywhere}.overview-analysis{margin:0 -14px;padding:0 14px;border-top:1px solid var(--border)}.overview-analysis summary,.finance-secondary-details summary{cursor:pointer;min-height:44px;padding:10px 0;font-size:16px;color:var(--fg-secondary)}.overview-analysis[open]{padding-bottom:12px}.investment-returns-card{display:grid;gap:12px;width:100%;padding:14px 12px;text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:16px;color:var(--fg)}.returns-entry-head{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:18px;font-weight:600}.returns-entry-head>span{display:inline-flex;align-items:center;gap:8px}.returns-entry-head svg{width:20px;height:20px;color:var(--accent)}.returns-entry-head>svg{width:16px;color:var(--fg-secondary)}.returns-entry-metrics{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:10px}.returns-entry-metrics>span{min-width:0}.returns-entry-metrics small{display:block;font-size:14px;line-height:1.6;color:var(--fg-secondary);font-weight:400}.returns-entry-metrics strong{display:block;font:600 22px/1.5 var(--font-number);overflow-wrap:anywhere}.returns-entry-metrics .returns-unit{display:inline;margin-left:4px}.returns-entry-note{font-size:14px;color:var(--fg-secondary);line-height:1.6}.finance-secondary-details{min-width:0}.finance-secondary-details>summary{margin-inline:4px}.finance-secondary-details .net-worth-donuts{margin-top:8px}.app .alignment-banner{padding:10px 12px;border-radius:10px;border-color:var(--border);background:var(--surface2);color:var(--fg-secondary)}.donut-legend{min-width:0}.donut-legend-item{flex-wrap:wrap;gap:4px 8px}.donut-label{white-space:normal;overflow-wrap:anywhere}.asset-yearly-item{border-radius:10px}.app .planning-screen :is(.family-hub,.family-history-items,.family-moment-feed){gap:14px}.app .planning-screen :is(.family-moment-timeline,.family-todo-card){padding:14px 12px;border:1px solid var(--border);border-radius:16px;background:var(--surface);box-shadow:none}.app .planning-screen .family-todo-card.history{opacity:1}.app .planning-screen .family-moment-timeline-content{color:var(--fg);font-size:20px;line-height:1.75}.app .planning-screen .family-todo-title{font-size:18px;line-height:1.6}.app .planning-screen .family-month-heading{font:650 20px/1.5 var(--font-display);margin:8px 4px 12px}.app .planning-screen .family-moment-author-pill{border:0;border-radius:7px;padding:4px 8px;font-size:16px;color:var(--accent);background:var(--accent-dim)}.app .planning-screen .family-moment-image-btn{border-radius:10px}.app .planning-screen .family-empty-welcome{border:1px solid var(--border);border-radius:16px;padding:24px 12px;background:var(--surface)}.app .planning-screen .family-empty-welcome h3{font-size:22px}.app .planning-screen .family-empty-welcome p,.family-empty{font-size:18px;line-height:1.75}.app .planning-screen .family-anniversary-strip{background:var(--warning-dim);border-color:transparent;border-radius:12px}.planning-screen .family-anniversary-strip-head h3{font-size:18px;color:var(--warning)}.planning-screen .family-anniversary-card{background:transparent;box-shadow:none;border:0;padding-inline:4px}.planning-screen .family-anniversary-card-body strong{color:var(--warning);font-size:16px}.planning-screen .family-calendar-weekdays,.planning-screen .family-calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr))}.planning-screen .family-calendar-day{min-width:0;font-size:16px}.planning-screen .family-calendar-lunar{max-width:100%;overflow-wrap:anywhere}.discourse-screen-inner,.discourse-tab-content{gap:16px}.app .discourse-hero-card{background:var(--surface)}.discourse-hero-card:after{content:none}.discourse-hero-total strong{font-size:36px}.discourse-actions{padding:14px 12px;background:var(--surface);border:1px solid var(--border);border-radius:16px}.discourse-principle-body{font-size:18px;line-height:1.75}.health-toolbar,.health-section-title,.health-filters{flex-wrap:wrap}.health-record-body{background:var(--surface);border-radius:12px}.health-record-title{font-size:20px;line-height:1.5}.health-detail p,.health-notes-field textarea{font-size:18px;line-height:1.75}.health-add-button{margin-left:auto}.settings-screen{gap:0}.settings-members-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.settings-members-head h2{font:650 20px/1.5 var(--font-display)}.settings-members-head>span{font-size:14px;color:var(--fg-secondary)}.settings-meta{font-size:14px;line-height:1.75;overflow-wrap:anywhere}.auth-gate{background:var(--bg);padding:20px var(--pad)}.auth-gate-card{border-radius:16px;padding:24px 16px;box-shadow:none;background:var(--surface)}.bottom-nav{left:0;right:0;margin-inline:auto;transform:none;height:calc(var(--bottom-nav-height) + var(--safe-bottom));padding:6px 6px calc(8px + var(--safe-bottom));background:var(--surface);border-color:var(--border);box-shadow:none}.bottom-nav .nav-item{min-width:0;font-size:16px;color:var(--fg-secondary);border-radius:0;gap:3px}.bottom-nav .nav-item.active{color:var(--accent);background:transparent}.bottom-nav .nav-item svg{padding:4px 10px;border-radius:9px;transform:none}@media(max-width:600px){.app .hero-card .analysis-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.app .hero-card .analysis-item:last-child{grid-column:1 / -1}.donut-section{flex-wrap:wrap;gap:16px}.donut-section .donut-legend{flex:1 1 160px}.action-row,.health-toolbar{align-items:flex-start}.app .list-sub-inline,.app .list-value{max-width:42%}.asset-yearly-edit{grid-template-columns:auto minmax(0,1fr);gap:6px}.form-type-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.app .card.finance-table-card{margin-inline:calc(0px - var(--pad));max-width:none;padding:14px 0;border:0;border-radius:0;background:transparent}.app .card.finance-table-card .card-head{margin-inline:var(--pad)}}@media(min-width:1024px){:root{--app-max-width: 960px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}.app .cash-snapshot-card{padding-bottom:0;overflow:hidden}.app .cash-snapshot-card .cash-balance-row{margin:12px -12px 0;padding:12px;background:var(--accent-dim)}.cash-overview-analysis{margin-inline:-12px;padding-inline:12px}.cash-overview-analysis[open]{padding-bottom:12px}.app .card.net-ledger-card{background:var(--surface);border:0;box-shadow:none;padding-block:18px 10px}.net-ledger-card .card-head{margin-bottom:10px}.net-ledger-card .card-title{font-size:20px;letter-spacing:.02em}.net-ledger-card .person-toggle{display:flex;gap:20px;padding:0;background:transparent;border:0;border-radius:0;border-bottom:1px solid var(--border-subtle)}.net-ledger-card .person-btn{padding:4px 0;border:0;border-radius:0;background:transparent;color:var(--fg-secondary);box-shadow:none}.net-ledger-card .person-btn.active{color:var(--accent);background:transparent;box-shadow:inset 0 -2px var(--accent)}.balance-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 10px;margin-block:10px 14px}.balance-view-toggle{display:flex;gap:4px}.balance-view-toggle button{min-height:44px;padding:6px 10px;border:0;border-radius:6px;background:transparent;font:16px/1.4 var(--font-body);color:var(--fg-secondary)}.balance-view-toggle button[aria-pressed=true]{background:var(--surface2);color:var(--fg)}.balance-toolbar select{min-height:44px;max-width:100%;padding:4px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--fg);font-size:16px}.balance-scroll-cue{font-size:14px;color:var(--fg-secondary);white-space:nowrap}.balance-scroll-cue span{margin-left:4px}.net-ledger-card .ledger-wrapper{border:0;border-radius:0;scrollbar-width:thin;scrollbar-color:var(--border) var(--surface)}.net-ledger-card .data-table.ledger-table{font:14px/1.45 var(--font-number);font-variant-numeric:tabular-nums}.net-ledger-card .data-table.ledger-table :is(th,td){font-size:14px;font-weight:400;padding:9px 12px;border:0;background:var(--surface);color:var(--fg)}.net-ledger-card .data-table.ledger-table th:first-child{width:108px;min-width:108px;max-width:140px;padding-left:8px;border-right:1px solid var(--border-subtle)}.net-ledger-card .data-table.ledger-table.is-history :is(th,td):not(:first-child){min-width:108px}.net-ledger-card .data-table.ledger-table thead th{padding-block:8px;border-bottom:1px solid var(--border);background:var(--surface)}.net-ledger-card thead small{display:block;color:var(--fg-secondary);font:400 14px/1.5 var(--font-body)}.net-ledger-card .balance-column-label{display:block;margin-bottom:2px;color:var(--fg)}.net-ledger-card .month-edit-btn{gap:2px;font-size:14px;font-weight:600}.net-ledger-card .ledger-label button{min-height:44px;gap:4px;font-size:14px;font-weight:500}.net-ledger-card .ledger-label button svg{width:12px;height:12px;color:var(--fg-secondary)}.net-ledger-card .data-table.ledger-table .ledger-group :is(th,td){padding-block:2px}.net-ledger-card .data-table.ledger-table .ledger-child :is(th,td){padding-block:8px;color:var(--fg-secondary)}.net-ledger-card .data-table.ledger-table .ledger-child th{padding-left:24px}.net-ledger-card .data-table.ledger-table .balance-section :is(th,td){padding-block:18px 6px;color:var(--fg-secondary);font-weight:600}.net-ledger-card .data-table.ledger-table .balance-section th{letter-spacing:.12em}.net-ledger-card .data-table.ledger-table .ledger-subtotal :is(th,td){border-top:1px solid var(--border-subtle);padding-block:12px;font-weight:600}.net-ledger-card .data-table.ledger-table .ledger-key :is(th,td){color:var(--accent);font-weight:500}.net-ledger-card .data-table.ledger-table .ledger-total :is(th,td){padding-block:14px;border-top:1px solid var(--accent);background:var(--accent-dim);color:var(--accent);font-weight:700}.net-ledger-card .formula-tooltip{text-decoration:none}.net-ledger-card .ledger-table .inline-metric-input{width:96px;font-size:16px;min-height:44px}.net-ledger-card .ledger-footer{gap:0 12px;padding-top:4px}.net-ledger-card .ledger-footer>span{font-size:14px}@media(max-width:600px){.net-ledger-card .balance-toolbar{margin-inline:12px}.net-ledger-card .data-table.ledger-table :is(th,td){padding-inline:10px}.net-ledger-card .data-table.ledger-table th:first-child{width:100px;min-width:100px}.net-ledger-card .data-table.ledger-table.is-history :is(th,td):not(:first-child){min-width:106px}}.app .page-header{border-top:3px solid var(--accent);padding-top:12px}.app .page-header h1,.bottom-nav .nav-item.active{color:var(--accent)}.bottom-nav .nav-item.active svg{background:var(--accent-dim);color:var(--accent)}.bottom-nav .nav-item:not(.active) svg{color:var(--fg-secondary);background:transparent}.app :is(.net-overview-card,.cash-snapshot-card,.discourse-hero-card,.asset-hero-card){background:var(--accent-dim);border-color:var(--accent-glow)}.app .net-overview-card .overview-metrics,.app .cash-snapshot-card .cash-balance-row,.app :is(.net-overview-card,.cash-snapshot-card) .overview-analysis{background:var(--surface)}.overview-metrics>div:first-child strong{color:var(--accent)}.overview-metrics>div:nth-child(2) strong{color:var(--danger)}.app .cash-snapshot-card .cash-surplus-value.positive,.app .cash-snapshot-card .cash-balance-row .change-item:first-child{color:var(--accent)}.app .cash-snapshot-card .cash-balance-row .change-item:nth-child(2){color:var(--warning)}.app .cash-snapshot-card .cash-balance-row .change-item.negative{color:var(--danger)}.investment-returns-card{background:var(--surface);border-color:var(--accent-glow)}.investment-returns-card .returns-entry-head{color:var(--accent)}.investment-returns-card .returns-entry-head svg{color:var(--accent)}.investment-returns-card .returns-entry-metrics strong.positive,.net-ledger-card .data-table.ledger-table .balance-section.asset th,.net-ledger-card .data-table.ledger-table .balance-section.net th{color:var(--accent)}.net-ledger-card .data-table.ledger-table .balance-section.liability th{color:var(--danger)}.net-ledger-card .data-table.ledger-table .ledger-subtotal:not(.liability) :is(th,td){color:var(--accent)}.ui-button-outline,.btn-secondary{background:var(--info-dim);border-color:var(--info-dim);color:var(--info)}.ui-button-secondary{background:var(--accent-dim);color:var(--accent)}.inline-add-btn{background:var(--accent-dim);border-color:transparent;color:var(--accent)}.inline-add-btn[data-action=manage],.edit-mode-btn,.discourse-edit-toggle,.discourse-weight-toggle{background:var(--info-dim);border-color:transparent;color:var(--info)}.edit-mode-btn.active{background:var(--accent);color:var(--on-accent)}.ledger-detail-button,.ledger-history-button{color:var(--info)}.ui-button-destructive{background:var(--danger-dim);color:var(--danger)}.fab-action-item[data-tone=primary] strong{color:var(--accent)}.fab-action-item[data-tone=info] strong{color:var(--info)}.fab-action-item[data-tone=warning] strong{color:var(--warning)}@media(hover:hover)and (pointer:fine){.ui-button-outline:hover:not(:disabled),.btn-secondary:hover:not(:disabled){background:color-mix(in srgb,var(--info) 16%,var(--surface));color:var(--info)}}.app .planning-screen .family-empty-welcome{background:var(--accent-dim);border-color:var(--accent-glow)}.app .planning-screen .family-empty-welcome h3{color:var(--accent)}.app .planning-screen .family-anniversary-strip{background:var(--warning-dim);border:1px solid var(--warning-dim)}.health-record-meta>span:nth-child(2){color:var(--info);background:var(--info-dim)}.discourse-actions{border-top:3px solid var(--accent)}.discourse-actions h2{color:var(--accent)}.app .settings-members-card{border-top:3px solid var(--accent)}.app .list-icon.accent{color:var(--accent);background:var(--accent-dim)}.app .list-icon.warning{color:var(--warning);background:var(--warning-dim)}.app .list-icon.info{color:var(--info);background:var(--info-dim)}.app .list-icon.danger{color:var(--danger);background:var(--danger-dim)}.app .settings-screen .list-row:not(.member-row)>.list-icon{width:36px;height:36px;border-radius:10px}.app .member-grid .is-active-row .list-value{color:var(--accent)}.cash-flow-chart .cash-flow-expense{fill:var(--warning);stroke:var(--warning)}.cash-flow-screen .legend-item.expense{color:var(--warning)}.cash-flow-screen .legend-item.expense:before{background:var(--warning);border-color:var(--warning)}.settings-member-list{margin-top:12px}.settings-member-row{display:flex;align-items:center;gap:12px;width:100%;min-height:80px;padding:12px 0;border:0;border-bottom:1px solid var(--border-subtle);background:transparent;color:var(--fg);text-align:left;cursor:pointer}.settings-member-avatar{display:grid;place-items:center;flex:0 0 44px;height:44px;border-radius:50%;color:var(--accent);background:var(--accent-dim);font-size:20px}.settings-member-row:nth-child(2n) .settings-member-avatar{color:var(--warning);background:var(--warning-dim)}.settings-member-copy{flex:1;min-width:0}.settings-member-copy strong{display:block;font-size:18px;font-weight:600;overflow-wrap:anywhere;line-height:1.5}.settings-member-copy small{display:block;font-size:14px;line-height:1.5;color:var(--fg-secondary)}.settings-member-status{flex:0 0 60px;font-size:14px;color:var(--info);text-align:right}.settings-member-row>svg{flex:0 0 16px;width:16px;height:16px;color:var(--fg-secondary)}.settings-add-member{width:100%;margin-top:14px}.member-settings-sheet{display:flex;flex-direction:column;overflow:hidden;height:min(620px,90dvh);max-height:90dvh}.member-settings-sheet .sheet-heading,.member-settings-sheet .sheet-handle{flex-shrink:0}.member-settings-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior-y:contain;padding:0 4px}.member-settings-identity{display:flex;align-items:center;flex-wrap:wrap;justify-content:space-between;gap:8px;margin-bottom:16px;min-height:44px;overflow-wrap:anywhere;font-size:20px}.member-current-label{color:var(--accent);background:var(--accent-dim);border-radius:6px;padding:4px 8px;font-size:14px}.member-settings-field{display:grid;gap:8px;margin:0 0 16px;font-size:16px}.member-settings-field :is(input,select){width:100%;min-width:0;min-height:48px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;color:var(--fg);background:var(--surface);font-size:16px}.member-settings-help,.member-settings-danger p{color:var(--fg-secondary);font-size:14px;line-height:1.6}.member-settings-error{min-height:24px;margin:8px 0;color:var(--danger);font-size:14px;line-height:1.6}.member-settings-danger{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:14px 0;border-top:1px solid var(--border)}.member-settings-footer{display:grid;grid-template-columns:1fr 1fr;flex-shrink:0;gap:12px;padding:14px 0 0;border-top:1px solid var(--border)}.settings-member-row[data-current=true] .settings-member-status{color:var(--accent)}.scroll-area{padding-top:max(8px,env(safe-area-inset-top));gap:8px}.app .page-header{border:0;padding:0}.page-header-title-row{min-height:44px}.page-header-copy{display:flex;align-items:baseline;flex-wrap:wrap;gap:0 10px}.app .page-header h1{font-size:24px;line-height:1.25}.page-header-period{margin:0;font-size:14px;line-height:1.5}.page-header-status{margin-top:0}.page-header-status .sync-status-compact{min-width:0}.sync-status-compact{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;min-height:36px}.sync-status-disclosure{flex:1;min-width:0}.sync-status-disclosure>summary{display:flex;align-items:center;gap:7px;width:fit-content;min-height:36px;cursor:pointer;list-style:none;font-size:14px;line-height:1.5}.sync-status-disclosure>summary::-webkit-details-marker{display:none}.sync-disclosure-arrow{font-size:16px}.sync-status-disclosure[open] .sync-disclosure-arrow{transform:rotate(180deg)}.sync-status-detail-body{font-size:18px;line-height:1.75;padding:8px 0 12px;overflow-wrap:anywhere}.sync-status-compact .sync-refresh{width:44px;min-height:36px;height:36px;padding:6px}.sync-status-compact .sync-refresh svg{width:18px;height:18px}.page-add-button{padding-inline:12px;min-height:40px;gap:5px;font-size:16px}.app .planning-screen .family-hub.ui-tabs{gap:8px}.family-main-tabs{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.family-main-tabs>.ui-tabs-trigger{font-size:18px;min-height:44px}.family-moment-album-wrap{display:flex;flex-direction:column}.planning-screen .family-view-tabs,.planning-screen .has-inline-search .family-view-tabs{width:fit-content;align-self:flex-end;margin:0 0 2px auto;padding:2px;gap:2px;border-radius:9px;border:0;background:var(--surface2)}.planning-screen .family-view-tabs>.ui-tabs-trigger{min-height:40px;padding:6px 10px;border-radius:7px;font-size:16px;line-height:1.4}.planning-screen .family-view-tabs>.ui-tabs-trigger[data-state=active]{background:var(--surface);border-color:var(--border);color:var(--accent);box-shadow:none}.planning-screen .family-moment-album-wrap.has-inline-search .family-search-bar.compact{left:0;right:auto}.planning-screen .family-moment-album-wrap.has-inline-search .family-search-bar.compact.expanded{width:100%}.form-type-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.calendar-tab-content{display:grid;gap:10px}.app .planning-screen :is(.family-history-items,.family-moment-feed){gap:10px}.app .planning-screen .family-moment-timeline{padding:12px;gap:6px;border-radius:12px}.app .planning-screen .family-moment-timeline-content{font-size:18px;line-height:1.75;margin-block:0}.app .planning-screen .family-moment-timeline-content>:first-child{margin-top:0}.app .planning-screen .family-moment-timeline-content>:last-child{margin-bottom:0}.app .planning-screen .family-moment-timeline-bar{margin-top:0;padding-top:6px}.app .planning-screen .family-month-heading{font-size:20px;margin:0 2px 6px}.app .planning-screen .family-date-divider{margin-block:6px;font-size:14px}.app .planning-screen .family-moment-author-pill{font-size:14px;padding:2px 6px}.bottom-nav{padding:4px 8px calc(4px + var(--safe-bottom))}.bottom-nav .nav-item{min-height:44px;padding:0;display:flex;align-items:center;justify-content:center}.bottom-nav .nav-item svg{width:48px;height:40px;padding:8px 12px;border-radius:10px}@media(max-width:360px){.page-header-copy{gap:0 6px}.page-header-period{font-size:14px}.planning-screen .family-view-tabs>.ui-tabs-trigger{padding-inline:8px}}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/0000.woff2) format("woff2");unicode-range:U+20-F7}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/0002.woff2) format("woff2");unicode-range:U+2C6-2DC}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/0020.woff2) format("woff2");unicode-range:U+2013-20AC}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/0021.woff2) format("woff2");unicode-range:U+2122-2122}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/0022.woff2) format("woff2");unicode-range:U+2212-2212}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/0030.woff2) format("woff2");unicode-range:U+3000-3017}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/004e.woff2) format("woff2");unicode-range:U+4E00-4EFF}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/004f.woff2) format("woff2");unicode-range:U+4F01-4FFE}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/0050.woff2) format("woff2");unicode-range:U+500C-50FB}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/0051.woff2) format("woff2");unicode-range:U+5106-51FF}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/0052.woff2) format("woff2");unicode-range:U+5200-52FF}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/0053.woff2) format("woff2");unicode-range:U+5300-53FD}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/0054.woff2) format("woff2");unicode-range:U+5401-54FF}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/0055.woff2) format("woff2");unicode-range:U+5501-55FE}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/0056.woff2) format("woff2");unicode-range:U+5600-56FF}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/0057.woff2) format("woff2");unicode-range:U+5703-57FD}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/0058.woff2) format("woff2");unicode-range:U+5800-58F9}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/0059.woff2) format("woff2");unicode-range:U+5902-59FF}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/005a.woff2) format("woff2");unicode-range:U+5A01-5AF1}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/005b.woff2) format("woff2");unicode-range:U+5B09-5BFF}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/005c.woff2) format("woff2");unicode-range:U+5C01-5CFB}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/005d.woff2) format("woff2");unicode-range:U+5D02-5DFE}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/005e.woff2) format("woff2");unicode-range:U+5E01-5EFF}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/005f.woff2) format("woff2");unicode-range:U+5F00-5FFF}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/0060.woff2) format("woff2");unicode-range:U+6000-60FA}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/0061.woff2) format("woff2");unicode-range:U+6100-61FF}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/0062.woff2) format("woff2");unicode-range:U+6206-62FF}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/0063.woff2) format("woff2");unicode-range:U+6301-63FF}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/0064.woff2) format("woff2");unicode-range:U+6400-64E6}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/0065.woff2) format("woff2");unicode-range:U+6500-65FA}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/0066.woff2) format("woff2");unicode-range:U+6600-66FF}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/0067.woff2) format("woff2");unicode-range:U+6700-67FF}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/0068.woff2) format("woff2");unicode-range:U+6800-68FC}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/0069.woff2) format("woff2");unicode-range:U+6901-69FF}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/006a.woff2) format("woff2");unicode-range:U+6A0A-6AAC}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/006b.woff2) format("woff2");unicode-range:U+6B20-6BFD}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/006c.woff2) format("woff2");unicode-range:U+6C05-6CFE}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/006d.woff2) format("woff2");unicode-range:U+6D01-6DFC}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/006e.woff2) format("woff2");unicode-range:U+6E05-6EF9}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/006f.woff2) format("woff2");unicode-range:U+6F02-6FEF}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/0070.woff2) format("woff2");unicode-range:U+7011-70FD}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/0071.woff2) format("woff2");unicode-range:U+7109-71F9}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/0072.woff2) format("woff2");unicode-range:U+7206-72FC}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/0073.woff2) format("woff2");unicode-range:U+7301-73F2}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/0074.woff2) format("woff2");unicode-range:U+7403-74FF}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/0075.woff2) format("woff2");unicode-range:U+7504-75FF}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/0076.woff2) format("woff2");unicode-range:U+7600-76FE}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/0077.woff2) format("woff2");unicode-range:U+7701-77FF}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/0078.woff2) format("woff2");unicode-range:U+7800-78FA}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/0079.woff2) format("woff2");unicode-range:U+7901-79FD}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/007a.woff2) format("woff2");unicode-range:U+7A00-7AFF}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/007b.woff2) format("woff2");unicode-range:U+7B03-7BFE}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/007c.woff2) format("woff2");unicode-range:U+7C07-7CFB}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/007d.woff2) format("woff2");unicode-range:U+7D0A-7DAE}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/007e.woff2) format("woff2");unicode-range:U+7E3B-7EFF}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/007f.woff2) format("woff2");unicode-range:U+7F00-7FFC}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/0080.woff2) format("woff2");unicode-range:U+8000-80FD}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/0081.woff2) format("woff2");unicode-range:U+8102-81FE}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/0082.woff2) format("woff2");unicode-range:U+8200-82FB}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/0083.woff2) format("woff2");unicode-range:U+8301-83FD}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/0084.woff2) format("woff2");unicode-range:U+8401-84FF}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/0085.woff2) format("woff2");unicode-range:U+850C-85FF}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/0086.woff2) format("woff2");unicode-range:U+8605-86FE}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/0087.woff2) format("woff2");unicode-range:U+8700-87FE}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/0088.woff2) format("woff2");unicode-range:U+8803-88FE}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/0089.woff2) format("woff2");unicode-range:U+8902-89F3}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/008a.woff2) format("woff2");unicode-range:U+8A00-8A93}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/008b.woff2) format("woff2");unicode-range:U+8B07-8BFF}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/008c.woff2) format("woff2");unicode-range:U+8C00-8C98}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/008d.woff2) format("woff2");unicode-range:U+8D1D-8DFD}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/008e.woff2) format("woff2");unicode-range:U+8E05-8ECE}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/008f.woff2) format("woff2");unicode-range:U+8F66-8FFD}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/0090.woff2) format("woff2");unicode-range:U+9000-90FE}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/0091.woff2) format("woff2");unicode-range:U+9102-91DC}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/0092.woff2) format("woff2");unicode-range:U+9274-92C8}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/0093.woff2) format("woff2");unicode-range:U+933E-93D6}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/0094.woff2) format("woff2");unicode-range:U+943E-94FF}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/0095.woff2) format("woff2");unicode-range:U+9500-95FE}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/0096.woff2) format("woff2");unicode-range:U+9600-96FE}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/0097.woff2) format("woff2");unicode-range:U+9700-97F6}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/0098.woff2) format("woff2");unicode-range:U+9875-98E8}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/0099.woff2) format("woff2");unicode-range:U+990D-99A8}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/009a.woff2) format("woff2");unicode-range:U+9A6C-9AFB}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/009b.woff2) format("woff2");unicode-range:U+9B03-9B54}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/009c.woff2) format("woff2");unicode-range:U+9C7C-9CE2}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/009e.woff2) format("woff2");unicode-range:U+9E1F-9EFE}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/009f.woff2) format("woff2");unicode-range:U+9F0B-9FA0}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/00fe.woff2) format("woff2");unicode-range:U+FE49-FE4F}@font-face{font-family:Journal Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/journal-hand/00ff.woff2) format("woff2");unicode-range:U+FF01-FFE5}@font-face{font-family:Journal Title;src:url(/fonts/journal-title.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}.family-journal{background:var(--bg) var(--journal-paper-image) repeat;background-size:256px;font-size:16px;line-height:1.6}.family-journal .scroll-area{padding:max(12px,env(safe-area-inset-top)) 18px 28px;gap:12px;scrollbar-gutter:auto}.app.family-journal .page-header h1{font:400 36px/1.2 Journal Title,Kaiti SC,KaiTi,serif;color:var(--fg);letter-spacing:0}.page-header-journal .page-header-title-row{gap:8px}.page-header-journal .page-header-copy{gap:6px;flex:1;flex-wrap:nowrap;min-width:0;align-items:center}.page-header-journal .page-header-period{font-size:12px;color:var(--fg-secondary);white-space:nowrap}.page-header-journal .page-header-actions{margin-left:auto}.family-journal .page-add-button{min-height:38px;padding:6px 10px;gap:4px;border-radius:9px;font-size:14px}.family-journal .page-add-button svg{width:17px;height:17px}.sync-status-inline{position:relative;flex:0 0 36px;padding:0;min-width:0}.sync-status-inline>summary{display:flex;align-items:center;justify-content:center;width:36px;min-height:40px;cursor:pointer;list-style:none;border-radius:8px}.sync-status-inline>summary::-webkit-details-marker{display:none}.sync-status-inline>summary svg{width:21px;height:21px}.sync-status-inline.sync-status-synced{color:var(--accent)}.sync-status-inline.sync-status-error,.sync-status-inline.sync-status-offline{color:var(--danger)}.sync-status-inline[open]>summary{background:var(--surface2)}.sync-status-popover{position:absolute;z-index:50;top:100%;right:0;width:min(320px,calc(100vw - 36px));padding:16px;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--fg);box-shadow:var(--shadow-lg);font-size:14px;line-height:1.6;max-height:60dvh;overflow:auto}.sync-status-popover .sync-status-time{display:block;margin:6px 0 10px;color:var(--muted);font-size:12px}.sync-status-popover pre{max-width:100%;overflow:auto;font-size:12px}.app.family-journal .planning-screen .family-hub.ui-tabs{gap:12px}.family-journal .family-main-tabs.ui-tabs-line{padding:0;border-bottom:1px solid var(--border);background:transparent}.family-journal .family-main-tabs>.ui-tabs-trigger{min-height:48px;padding:8px;font-size:18px;font-weight:550;color:var(--fg-secondary)}.family-journal .family-main-tabs>.ui-tabs-trigger[data-state=active]{color:var(--accent-bright);font-weight:650}.family-journal .family-main-tabs.ui-tabs-line>.ui-tabs-trigger[data-state=active]:after{height:3px;width:40px;bottom:-1px;border-radius:0;background:var(--accent)}.family-journal .planning-screen .family-view-tabs{background:color-mix(in srgb,var(--surface2) 66%,transparent);padding:2px;gap:0;margin-bottom:0}.family-journal .planning-screen .family-view-tabs>.ui-tabs-trigger{padding:6px 9px;font-size:14px;min-height:36px;color:var(--fg-secondary)}.family-journal .planning-screen .family-view-tabs>.ui-tabs-trigger[data-state=active]{color:var(--accent-bright);background:var(--accent-dim);border-color:transparent}.family-journal .planning-screen .family-moment-album-wrap.has-inline-search .family-search-bar.compact{top:0;height:40px}.family-journal .planning-screen .family-search-toggle{width:40px;height:40px;min-height:40px}.family-journal .planning-screen .family-search-bar.compact .family-search-toggle{width:36px;min-width:36px;flex:0 0 36px}.family-journal .planning-screen .family-search-bar{min-height:40px;border-radius:8px;background:transparent}.family-journal .planning-screen .family-search-bar.expanded{z-index:5;background:var(--surface)}.family-journal .family-search-input{font-size:16px}.family-journal .planning-screen .family-all-timeline{gap:10px}.family-journal .planning-screen .family-all-section{gap:12px}.family-journal .planning-screen .family-month-rail{position:relative;inset:auto;transform:none;width:fit-content;margin:0 0 8px auto;z-index:4}.family-journal .planning-screen .family-month-rail-trigger{width:auto;height:32px;min-height:32px;flex-direction:row;gap:5px;padding:4px 8px;box-shadow:none;border:0;border-radius:6px;background:transparent;color:var(--fg-secondary);font-weight:500}.family-journal .planning-screen .family-month-rail-panel{top:calc(100% + 4px);right:0;left:auto;transform:none;border-radius:10px}.family-journal .planning-screen :is(.family-all-combined,.family-all-moment){position:static}.family-journal .planning-screen .has-inline-search .family-month-rail{position:absolute;top:0;left:40px;right:auto;margin:0}.family-journal .planning-screen .has-inline-search .family-month-rail-trigger{height:40px}.family-journal .planning-screen .has-inline-search .family-month-rail-panel{left:0;right:auto}.family-journal .planning-screen .family-all-todo .family-month-rail{position:absolute;top:0;right:0;margin:0}.family-journal .planning-screen .family-all-todo .family-month-rail-trigger{height:40px}.family-journal .planning-screen .family-all-todo.has-month-navigation .family-search-bar{margin-right:64px}.app.family-journal .planning-screen .family-month-heading{font-size:13px;font-weight:500;color:var(--muted);margin:2px 0 12px;letter-spacing:.02em}.app.family-journal .planning-screen :is(.family-all-combined,.family-all-moment) .family-month-section.is-current-month:first-child>.family-month-heading{display:none}.app.family-journal .planning-screen .family-date-divider{margin:0 0 10px;gap:12px;color:var(--fg-secondary);font-size:14px}.family-journal .planning-screen .family-date-divider>span:first-child{display:none}.family-journal .planning-screen .family-date-divider strong{font-weight:550}.family-journal .planning-screen .family-date-divider>span:last-child{background:var(--border)}.family-journal .planning-screen .family-history-group+.family-history-group{margin-top:20px}.app.family-journal .planning-screen .family-moment-timeline{padding:0;gap:10px;border:0;border-radius:0;background:transparent;box-shadow:none}.family-journal .planning-screen .family-moment-timeline-head{align-items:center;justify-content:flex-start;gap:9px;flex-wrap:nowrap;min-height:36px}.app.family-journal .planning-screen .family-moment-author-pill{background:transparent;color:var(--fg);padding:0;border:0;border-radius:0;font-size:14px;font-weight:650;letter-spacing:.03em}.family-journal .planning-screen .family-moment-author-pill{min-width:0;overflow-wrap:anywhere}.family-journal .planning-screen .family-moment-timeline-time{font-size:12px;color:var(--muted)}.family-journal .planning-screen .family-moment-timeline-more{margin-left:auto}.family-journal .planning-screen .family-moment-timeline-menu{top:calc(100% + 4px);bottom:auto;z-index:8}.family-journal .planning-screen .family-moment-timeline-menu button{color:var(--fg)}.family-journal .planning-screen .family-moment-timeline-menu button:last-child{color:var(--danger)}.app.family-journal .planning-screen .family-moment-timeline-content{font-size:16px;line-height:1.75;color:var(--fg)}.family-journal .family-moment-timeline-content.markdown-body :is(h1,h2,h3){font:400 26px/1.4 "Journal Hand","Kaiti SC",KaiTi,var(--font-body);color:var(--fg);margin:0 0 6px}.family-journal .family-moment-timeline-content.markdown-body p{margin:0 0 8px}.family-journal .family-moment-timeline-content.markdown-body p:last-child{margin:0}.family-journal .planning-screen .family-moment-timeline-images{position:relative;gap:7px;margin:2px 3px 4px;padding:6px;background:var(--journal-photo-paper);box-shadow:var(--journal-photo-shadow);border-radius:0}.family-journal .planning-screen .family-moment-timeline-images:after{content:"";position:absolute;top:-9px;right:15px;width:45px;height:20px;background:url(/images/scrapbook/tape.png) center/contain no-repeat;pointer-events:none;transform:rotate(9deg)}.family-journal .planning-screen .family-moment-timeline-images:has(>:only-child){grid-template-columns:minmax(0,1fr)}.family-journal .planning-screen .family-moment-image-btn{width:100%;border:0;border-radius:0;background:transparent;padding:0;aspect-ratio:1}.family-journal .planning-screen .family-moment-image-btn:only-child{aspect-ratio:16/9}.family-journal .planning-screen .family-moment-image-btn img{width:100%;height:100%;max-height:none;object-fit:cover;border-radius:0}.app.family-journal .planning-screen .family-moment-timeline-bar{border:0;padding:0;margin:0}.family-journal .planning-screen .family-moment-action-btn{min-width:40px;min-height:36px;font-size:13px;font-weight:400;padding:0;gap:6px;color:var(--fg-secondary)}.family-journal .planning-screen .family-moment-action-btn svg{width:20px;height:20px;stroke-width:1.6}.family-journal .planning-screen .family-moment-action-btn.active{color:var(--accent-bright)}.family-journal .planning-screen .family-moment-pin-badge{gap:4px;display:inline-flex;align-items:center;padding:0;background:transparent;font-size:12px}.family-journal .family-moment-pin-badge svg{width:13px;height:13px}.family-journal .planning-screen .family-moment-timeline-comments{padding:10px 12px;border-radius:6px;background:var(--surface2);font-size:14px}.family-journal .planning-screen .family-comment-input{background:var(--surface);font-size:16px}.family-journal .planning-screen .family-all-todo .family-all-section{display:block;position:relative}.family-journal .planning-screen .family-all-todo .family-filter-bar{padding-right:90px;gap:2px;margin-bottom:14px}.family-journal .planning-screen .family-filter-chip{padding:6px 7px;min-height:36px;font-size:13px;border:0;background:transparent;border-radius:7px}.family-journal .planning-screen .family-filter-chip.active{background:var(--accent-dim);color:var(--accent-bright)}.family-recurrence-filter{position:absolute;top:0;right:0;width:88px}.family-journal .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.family-recurrence-filter select{width:100%;height:36px;font-size:12px;color:var(--fg-secondary);border:1px solid var(--border);border-radius:7px;padding:4px;background:var(--surface)}.family-journal .planning-screen .family-todo-list{gap:0}.app.family-journal .planning-screen .family-todo-card{padding:12px 0;border:0;border-bottom:1px solid var(--border-subtle);border-radius:0;background:transparent;box-shadow:none}.app.family-journal .planning-screen .family-todo-card.dragging{padding-inline:8px;background:var(--surface);box-shadow:var(--shadow-md)}.app.family-journal .planning-screen .family-todo-title{font-size:16px;line-height:1.6}.family-journal .planning-screen .family-todo-tags{gap:3px 7px;margin-top:4px}.family-journal .planning-screen .family-todo-tags :is(span,button){font-size:12px}.family-journal .planning-screen .owner-tag{background:transparent;color:var(--fg-secondary);padding:0;border:0}.family-journal .planning-screen .family-todo-check{width:24px;height:24px;margin-top:2px;border-radius:6px}.family-journal .planning-screen .family-todo-card-side{gap:0}.family-journal .planning-screen .family-todo-drag-handle,.family-journal .planning-screen .family-todo-more-btn{min-width:32px;width:32px;min-height:44px}.family-journal .planning-screen .family-label-caps{font-size:12px;letter-spacing:.02em;margin:8px 0;color:var(--muted)}.family-journal .health-space{gap:12px;padding-bottom:16px}.family-journal .health-toolbar{gap:8px}.family-journal .health-people{order:-1}.family-journal .health-person{min-height:36px;padding:5px 10px;font-size:14px}.family-journal .health-notes-button{margin-left:auto;font-size:12px}.family-journal .health-add-button{min-height:36px;padding:6px 10px;font-size:14px}.family-journal .health-section-title h3{font-size:17px;font-weight:550}.family-journal .health-section-title span{font-size:12px}.family-journal .health-record{gap:12px;padding-bottom:18px}.family-journal .health-record-body{padding:0 0 14px;border:0;border-bottom:1px solid var(--border);border-radius:0;background:transparent}.family-journal .health-record-title{font-size:16px;min-height:32px}.family-journal .health-record-meta,.family-journal .health-facility{font-size:12px;margin-bottom:3px}.family-journal .health-excerpt{font-size:14px}.family-journal .health-filters{margin-top:0;gap:8px;flex-wrap:nowrap}.family-journal .health-filters input,.family-journal .health-filters select{height:40px;font-size:14px;background:transparent;border-radius:7px}.family-journal .health-empty{border:0;background:transparent;padding:32px 12px}.family-journal .health-empty-mark{background:var(--accent-dim);color:var(--accent)}.family-journal .health-empty-mark svg{width:28px;height:28px}.family-journal .health-empty h3{font-size:20px}.family-journal .health-empty p{font-size:14px}.family-journal .family-empty{border:0;background:transparent;padding:32px 16px}.family-journal .family-empty h3{font-size:20px}.family-journal .family-empty p{font-size:14px}.family-journal .family-empty .empty-illustration{margin-bottom:14px}.family-journal .planning-screen .family-calendar-card{background:transparent;box-shadow:none;border:0;padding:0}.family-journal .planning-screen .family-day-panel{background:transparent;box-shadow:none;border:0;border-top:1px solid var(--border);border-radius:0;padding:12px 0}@media(max-width:360px){.family-journal .scroll-area{padding-inline:14px}.app.family-journal .page-header h1{font-size:32px}.page-header-journal .page-header-period{font-size:11px}.page-header-journal .page-header-title-row{gap:4px}.family-journal .planning-screen .family-filter-chip{padding-inline:5px;font-size:12px}.family-journal .planning-screen .family-view-tabs>.ui-tabs-trigger{padding-inline:8px}.family-journal .planning-screen .has-inline-search .family-month-rail-trigger{padding-inline:4px}}@media(min-width:768px){:root:has(.family-journal){--app-max-width: 720px}.family-journal .scroll-area{padding-inline:32px}.family-journal .planning-screen .family-moment-image-btn:only-child{max-height:360px}}.credential-input{min-width:0;padding:0;border:0;display:flex;flex-direction:column;gap:10px}.credential-input legend{margin-bottom:10px}.credential-input button{touch-action:manipulation}.credential-sequence{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px}.credential-slot{height:45px;display:grid;place-items:center;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface2);color:var(--muted);font:500 var(--text-xs)/1 var(--font-number)}.credential-slot.is-filled{color:var(--accent);border-color:var(--accent);background:var(--accent-dim)}.credential-slot svg{width:22px;height:22px}.credential-dot{width:7px;height:7px;border-radius:50%;background:currentColor}.credential-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.credential-symbol{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-width:0;min-height:68px;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface2);color:var(--fg-secondary);font-size:var(--text-sm);cursor:pointer;transition:background-color .12s ease,transform .12s ease,border-color .12s ease}.credential-symbol svg{width:25px;height:25px;color:var(--accent)}.credential-symbol:active:not(:disabled):not([aria-disabled=true]){background:var(--accent-dim);border-color:var(--accent)}.credential-input:disabled .credential-symbol,.credential-symbol[aria-disabled=true]{opacity:.6;cursor:default}.credential-tools{display:flex;justify-content:space-between;gap:4px}.credential-tools button,.auth-refresh{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:44px;padding:7px 8px;border:none;border-radius:var(--radius-xs);background:transparent;color:var(--fg-secondary);font-size:var(--text-sm);cursor:pointer}.credential-tools button:disabled{opacity:.4;cursor:default}.credential-tools svg,.auth-refresh svg{width:17px;height:17px}.credential-text-row{position:relative}.credential-text-row input{padding-right:52px;font-size:16px}.credential-reveal{position:absolute;top:4px;right:4px;width:44px;height:44px;display:grid;place-items:center;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--fg-secondary);cursor:pointer}.credential-reveal svg{width:20px;height:20px}.auth-help{font-size:var(--text-sm);color:var(--fg-secondary)}.auth-help summary{padding:12px 0;cursor:pointer;color:var(--accent)}.auth-help p{margin:0 0 8px;line-height:1.75;overflow-wrap:anywhere}.auth-default-hint{padding:0 12px;border-radius:var(--radius-sm);background:var(--accent-dim)}.auth-default-hint p:first-of-type{color:var(--fg);font-weight:600}.auth-feedback{margin:8px 0;font-size:var(--text-sm);line-height:1.6}.auth-lockout{padding:12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--warning-dim);color:var(--fg-secondary)}.auth-countdown{margin-top:4px;font-variant-numeric:tabular-nums;font-weight:650;color:var(--fg)}.auth-loading{padding:20px 0;color:var(--fg-secondary);font-size:var(--text-sm)}.auth-status-error{display:grid;gap:12px;padding:16px 0}.auth-status-error .btn-secondary{background:var(--accent-dim);border-color:transparent;color:var(--accent)}.auth-gate-intro>span{display:inline-block}.auth-sheet{max-height:90dvh}.auth-sheet .credential-input{margin-bottom:8px}.auth-sheet .confirm-actions{margin-top:12px}.auth-sheet .auth-gate-submit{margin-top:0}.auth-sheet-copy{margin:0 0 18px;font-size:var(--text-sm);color:var(--fg-secondary);line-height:1.7}.auth-steps{display:flex;justify-content:space-between;list-style:none;gap:8px;padding:0 0 16px}.auth-steps li{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:var(--text-xs)}.auth-steps li>span{display:grid;place-items:center;width:23px;height:23px;border-radius:50%;background:var(--surface3);font-variant-numeric:tabular-nums}.auth-steps li[aria-current]{color:var(--accent);font-weight:650}.auth-steps li[aria-current]>span{background:var(--accent-dim)}.auth-type-picker{display:grid;grid-template-columns:1fr 1fr;gap:8px;border:0;margin:0 0 18px;padding:0}.auth-type-picker legend{margin-bottom:8px}.auth-type-picker label{display:flex;align-items:center;gap:7px;position:relative;min-height:72px;padding:10px;border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;color:var(--fg-secondary);font-size:var(--text-sm)}.auth-type-picker label.is-selected{border-color:var(--accent);background:var(--accent-dim);color:var(--accent)}.auth-type-picker label:focus-within{outline:2px solid var(--accent);outline-offset:2px}.auth-type-picker input{width:14px;height:14px;accent-color:var(--accent);flex:0 0 auto}.auth-type-picker svg{width:18px;height:18px;flex:0 0 auto}.auth-type-picker small{display:block;font-size:var(--text-xs);color:var(--fg-secondary);margin-top:3px}.auth-save-hint{margin-top:12px;text-align:center}.auth-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.auth-attempts{margin-top:8px;padding-bottom:12px}.auth-attempts-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.auth-attempts-heading .list-caption{margin:0;font-size:var(--text-sm)}.auth-refresh{flex:0 0 auto;color:var(--accent)}.auth-refresh:disabled{opacity:.55;cursor:default}.auth-attempts-help,.auth-attempts-rule{color:var(--fg-secondary);font-size:var(--text-xs);line-height:1.75;padding:0 4px 10px}.auth-attempts-rule{color:var(--muted)}.auth-attempts-list{list-style:none;padding:0;margin:0;border:1px solid var(--border-subtle);border-radius:var(--radius-md);overflow:hidden;background:var(--surface)}.auth-attempt{padding:14px;border-bottom:1px solid var(--border-subtle)}.auth-attempt:last-child{border-bottom:0}.auth-attempt-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:8px}.auth-attempt code{min-width:0;font:600 var(--text-sm)/1.6 var(--font-number);overflow-wrap:anywhere;color:var(--fg)}.auth-locked-badge{flex:0 0 auto;padding:2px 7px;border-radius:var(--radius-xs);background:var(--warning-dim);color:var(--fg-secondary);font-size:var(--text-xs)}.auth-attempt dl{display:grid;gap:5px}.auth-attempt dl>div{display:grid;grid-template-columns:72px minmax(0,1fr);gap:8px;font-size:var(--text-xs)}.auth-attempt dt{color:var(--muted)}.auth-attempt dd{margin:0;color:var(--fg-secondary);overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.auth-attempt .auth-unlock-time dd{color:var(--accent)}.auth-attempts-empty{display:grid;place-items:center;gap:10px;padding:24px 16px;border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--fg-secondary);background:var(--surface);font-size:var(--text-sm);text-align:center}.auth-attempts-empty>svg{width:27px;height:27px;color:var(--accent)}.auth-show-more{width:100%;margin-top:12px}@media(hover:hover){.credential-symbol:hover:not(:disabled):not([aria-disabled=true]),.credential-tools button:hover:not(:disabled),.credential-reveal:hover:not(:disabled),.auth-refresh:hover:not(:disabled){background:var(--accent-dim)}}@media(max-width:359px){.auth-gate-card{padding:24px 18px}.credential-grid{gap:6px}.credential-sequence{gap:5px}.auth-type-picker svg{display:none}.auth-steps{gap:4px}.auth-steps li{gap:3px;font-size:var(--text-xs)}}@media(prefers-reduced-motion:reduce){.credential-symbol{transition:none}}.journal-app,.auth-gate{background:var(--bg) var(--journal-paper-image) repeat;background-size:256px}.journal-app{max-width:var(--app-max-width);font-size:16px;line-height:1.6}.journal-app .scroll-area{padding:max(12px,env(safe-area-inset-top)) 18px 28px;gap:16px;scrollbar-gutter:auto}.journal-app.family-journal .scroll-area{gap:12px}.journal-app .module-screen{gap:18px}.journal-app .page-header h1{color:var(--fg);font:400 34px/1.2 var(--journal-heading);letter-spacing:0;white-space:nowrap}.journal-app .page-header-title-row{gap:8px;min-height:44px}.journal-app:not(.family-journal) .page-header-copy{flex-direction:column;align-items:flex-start;gap:2px}.journal-app .page-header-period{color:var(--fg-secondary);font:400 12px/1.4 var(--font-body)}.journal-app .page-header-back{width:30px;min-width:30px;min-height:40px;padding:0}.journal-app .page-add-button,.journal-app .fab-menu.fab-menu-header .ui-button.fab{min-height:38px;height:38px;padding:6px 10px;gap:4px;border-radius:9px;font-size:14px}.journal-app .fab-menu.fab-menu-header .ui-button.fab svg{width:17px;height:17px}.journal-app .fab-menu-header .fab-action-item{padding:11px 14px}.journal-app .fab-menu-header .fab-action-item strong{font-size:15px}.journal-app .fab-menu-header .fab-action-item span{font-size:12px}.page-header .sync-status-popover .sync-status-time{display:block}.bottom-nav{background:var(--bg) var(--journal-paper-image) repeat;background-size:256px;border-top:1px solid var(--border-subtle)}.bottom-nav .nav-item svg{width:25px;height:25px;padding:0;border-radius:0;background:transparent}.bottom-nav .nav-item.active svg{color:var(--accent);background:transparent;fill:color-mix(in srgb,var(--accent) 12%,transparent)}.journal-app:where(:not(.family-journal)) :is(.card,.module-section,.discourse-actions){padding:16px 0 0;border:0;border-top:1px solid var(--border);border-radius:0;background:transparent;box-shadow:none}.journal-app :is(.card-title,.settings-members-head h2,.import-export-section-title,.backup-list-title,.discourse-actions h2){color:var(--fg);font:400 25px/1.4 var(--journal-heading);letter-spacing:0}.journal-app .card-head{gap:8px;margin-bottom:10px}.journal-app :is(.ui-tabs-segmented,.tab-row,.person-toggle){background:var(--surface2);border-radius:8px;padding:2px;gap:2px}.journal-app :is(.ui-tabs-trigger,.tab-btn,.person-btn,.range-btn){font-size:14px;min-height:36px;padding:6px 9px}.journal-app .ui-tabs-segmented>.ui-tabs-trigger[data-state=active],.journal-app :is(.tab-btn,.person-btn,.range-btn).active{background:var(--accent-dim);color:var(--accent-bright);box-shadow:none}.journal-app .range-buttons{gap:4px;margin:6px 0 12px}.journal-app .range-btn{border:0;background:transparent}.journal-app .range-btn.active{background:var(--accent-dim)}.journal-app .ui-button,.journal-app :is(.btn-secondary,.inline-add-btn,.edit-mode-btn){min-height:38px;font-size:14px}.journal-app :is(.ui-button-outline,.btn-secondary,.edit-mode-btn,.discourse-edit-toggle,.discourse-weight-toggle),.sheet :is(.ui-button-outline,.btn-secondary){background:var(--surface2);border-color:var(--border);color:var(--fg-secondary)}.journal-app :is(.edit-mode-btn,.discourse-edit-toggle).active{background:var(--accent);color:var(--on-accent)}.journal-app .inline-add-btn[data-action=manage]{background:transparent;color:var(--fg-secondary)}.journal-app .card-head-actions{gap:4px}.journal-app :is(.card-head-actions .inline-add-btn,.card-head-actions .edit-mode-btn){padding-inline:8px}.journal-app .finance-chart-tabs{margin-top:10px}.journal-app .finance-chart-tabs .ui-tabs-trigger{min-width:0;padding-inline:4px}.journal-app .chart-container{margin-block:8px 0}.journal-app .chart-empty{min-height:140px;background:transparent;font-size:14px}.journal-app :is(.net-overview-card,.cash-snapshot-card){padding:16px 16px 0;background:color-mix(in srgb,var(--surface) 88%,transparent);border:1px solid var(--border);border-top:2px solid var(--accent);border-radius:3px;box-shadow:var(--journal-photo-shadow)}.journal-app .hero-card :is(.card-title,.cash-surplus-label){font:500 13px/1.5 var(--font-body);color:var(--fg-secondary)}.journal-app .hero-card :is(.net-worth,.cash-surplus-value){margin-top:4px;font:550 38px/1.25 var(--font-number);font-variant-numeric:tabular-nums;color:var(--fg);letter-spacing:-.035em}.journal-app .hero-card .cash-surplus-value.negative{color:var(--danger)}.journal-app .hero-card .unit{font-size:13px;margin-left:6px}.journal-app .overview-change{margin:6px 0 14px;gap:6px;font-size:12px}.journal-app .change-badge{padding:1px 6px;border-radius:4px}.journal-app .overview-metrics{margin-inline:-16px;padding:11px 16px;background:var(--surface2);gap:12px}.journal-app .overview-metrics span{font-size:12px}.journal-app .overview-metrics strong{color:var(--fg);font-size:18px}.journal-app .overview-analysis{margin-inline:-16px;padding-inline:16px}.journal-app :is(.overview-analysis,.finance-secondary-details)>summary{font-size:13px;min-height:38px;padding:8px 0}.journal-app .hero-card .analysis-grid{gap:8px}.journal-app .hero-card .analysis-item{padding:8px 0}.journal-app .hero-card .analysis-item :is(span,small),.journal-app .contribution-item{font-size:12px}.journal-app .investment-returns-card{padding:12px 0;gap:8px;border:0;border-block:1px solid var(--border);border-radius:0;background:transparent}.journal-app .returns-entry-head{font-size:15px;font-weight:550}.journal-app .returns-entry-head svg{width:18px;height:18px}.journal-app .returns-entry-metrics{grid-template-columns:1fr 1fr;gap:14px}.journal-app .returns-entry-metrics :is(small,.returns-unit),.journal-app .returns-entry-note{font-size:12px}.journal-app .returns-entry-metrics strong{font-size:22px;font-weight:550}.journal-app .investment-returns-card+.card{border-top:0;padding-top:0}.journal-app .cash-snapshot-card .cash-balance-row{margin:12px -16px 0;padding:12px 16px;background:var(--surface2);display:grid;grid-template-columns:1fr 1fr;gap:10px}.journal-app .cash-snapshot-card .cash-balance-row .change-item{font-size:14px;display:flex;flex-wrap:wrap;gap:4px}.journal-app .cash-snapshot-card .cash-balance-row .arrow{font-size:14px;color:var(--accent)}.journal-app .donut-section{gap:14px;padding-top:8px}.journal-app .donut-legend-item{font-size:13px;padding-block:4px}.journal-app :is(.reconcile-toggle,.reconcile-description){font-size:14px}.journal-app .alignment-banner{padding:8px 10px;font-size:12px;border-radius:5px}.journal-app .card.finance-table-card{margin-inline:0;padding:16px 0 0;border-top:1px solid var(--border)}.journal-app .card.finance-table-card .card-head{margin-inline:0}.journal-app .ledger-wrapper{border-radius:3px;border-color:var(--border);background:var(--surface)}.journal-app .ledger-table :is(th,td){font-size:13px;font-variant-numeric:tabular-nums}.journal-app .net-ledger-card .data-table.ledger-table :is(th,td){font-size:13px}.journal-app .net-ledger-card .person-toggle{gap:18px;padding:0;background:transparent}.journal-app .net-ledger-card .person-btn{background:transparent;padding-inline:0}.journal-app .net-ledger-card .person-btn.active{box-shadow:inset 0 -2px var(--accent)}.journal-app :is(.balance-toolbar,.ledger-toolbar){margin:8px 0 10px}.journal-app :is(.balance-view-toggle button,.ledger-history-button){min-height:36px;font-size:13px}.journal-app :is(.balance-scroll-cue,.ledger-footer>span,.ledger-toolbar label){font-size:12px}.journal-app :is(.balance-toolbar,.ledger-toolbar) select{font-size:14px;min-height:36px}.journal-app .asset-hero-card{border-top:2px solid var(--accent);border-radius:3px;background:var(--surface);padding:16px}.journal-app .asset-hero-subtitle,.journal-app .asset-figure-label{font-size:12px}.journal-app .asset-yearly-item{background:var(--surface);border-radius:5px}.journal-app .asset-yearly-year{font-size:17px}.journal-app .discourse-tabs-list{width:fit-content;min-width:180px;align-self:flex-end}.journal-app .discourse-tab-content{gap:16px}.journal-app .discourse-hero-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 16px;padding:14px 0 0}.journal-app .discourse-hero-label{align-self:center;font:400 23px/1.4 var(--journal-heading);color:var(--fg)}.journal-app .discourse-hero-total{grid-column:2;grid-row:1;gap:6px}.journal-app .discourse-hero-total strong{font:550 30px/1.2 var(--font-number)}.journal-app .discourse-hero-tier{font-size:12px}.journal-app .discourse-hero-bar{grid-column:1/-1;height:3px}.journal-app .discourse-hero-hint{grid-column:1/-1;font-size:12px;line-height:1.6}.journal-app .discourse-hero-focus{display:none}.journal-app .discourse-focus-card{border:0;padding-top:0}.journal-app .discourse-focus-card .card-head{margin-bottom:2px}.journal-app .discourse-focus-tip{font-size:12px;margin:0 0 10px}.discourse-focus-list{display:grid;gap:0}.discourse-focus-choice{display:flex;align-items:center;gap:10px;padding:10px 0;min-height:44px;border:0;border-bottom:1px solid var(--border-subtle);background:transparent;color:var(--fg);font-size:15px;text-align:left;cursor:pointer}.discourse-focus-choice>svg{width:19px;height:19px;color:var(--muted);flex-shrink:0}.discourse-focus-choice>strong{margin-left:auto;color:var(--fg-secondary);font:500 15px var(--font-number)}.discourse-focus-choice[aria-pressed=true]{color:var(--accent-bright)}.discourse-focus-choice[aria-pressed=true]>svg{color:var(--accent)}.discourse-focus-choice:disabled{opacity:.5;cursor:default}.discourse-chart-detail>summary{font-size:13px;color:var(--fg-secondary);padding:10px 0 0;cursor:pointer}.journal-app .discourse-principle-card{padding:0;border:0}.journal-app .discourse-principle-summary{min-height:36px;margin:0;padding:0}.journal-app .discourse-principle-summary>span{flex-direction:row;flex-wrap:wrap;gap:0 8px;align-items:baseline}.journal-app .discourse-principle-summary strong{font-size:13px;font-weight:500}.journal-app .discourse-principle-summary small{font-size:11px}.journal-app .discourse-principle-item strong{font-size:15px}.journal-app .discourse-actions{padding:12px;background:var(--surface2);border:0;border-radius:5px}.journal-app .discourse-actions h2{font-size:23px;margin-bottom:6px}.journal-app .discourse-actions p{font-size:13px}.journal-app .discourse-actions .action-row{align-items:center;font-size:14px}.journal-app .discourse-actions .action-row button{min-height:36px;font-size:13px;border-radius:7px}.journal-app .discourse-module{padding-top:12px}.discourse-module-summary{display:flex;align-items:center;gap:10px;cursor:pointer;list-style:none;min-height:46px}.discourse-module-summary::-webkit-details-marker{display:none}.discourse-module-summary>svg{width:18px;height:18px;flex-shrink:0;color:var(--muted);transition:transform .15s}.discourse-module[open]>.discourse-module-summary>svg{transform:rotate(180deg)}.journal-app .discourse-module-title-row{flex:1;gap:8px}.journal-app .discourse-module-title-row h3{font-size:17px;font-weight:550}.journal-app .discourse-priority{width:25px;height:25px;font-size:12px;background:var(--surface2);color:var(--fg-secondary)}.journal-app .discourse-module-score{flex-direction:row;gap:5px;align-items:baseline}.journal-app .discourse-module-score strong{font-size:22px}.journal-app .discourse-module-score small{font-size:11px}.journal-app .discourse-focus-badge{font-size:11px;padding:1px 5px;background:var(--accent-dim);color:var(--accent);border-radius:4px}.journal-app .discourse-bottom-line{font-size:13px;margin:8px 0 12px}.journal-app .discourse-module-actions{gap:6px;flex-wrap:wrap}.journal-app :is(.discourse-edit-toggle,.discourse-focus-toggle,.discourse-weight-toggle){min-height:36px;padding:6px 8px;font-size:13px;border-radius:6px}.journal-app .discourse-dim-label{font-size:15px}.journal-app .discourse-dim-desc{font-size:13px;line-height:1.6}.journal-app .discourse-dim-row{padding:12px 0}.journal-app .settings-screen{gap:0}.journal-app .settings-members-card{padding:12px 0 0;border:0;border-top:1px solid var(--border);border-radius:0;background:transparent}.journal-app .settings-members-head{margin-bottom:6px}.journal-app .settings-members-head>span{font-size:12px}.journal-app .settings-member-row{min-height:64px;padding:10px 0;gap:10px}.journal-app .settings-member-avatar{width:34px;height:38px;border-radius:5px;background:var(--surface2);color:var(--accent);font-size:19px}.journal-app .settings-member-avatar{flex-basis:34px}.journal-app .settings-member-copy strong{font-size:16px;font-weight:550}.journal-app .settings-member-copy small,.journal-app .settings-member-status{font-size:12px}.journal-app .settings-member-status{color:var(--fg-secondary)}.journal-app .settings-member-row[data-current=true] .settings-member-status{color:var(--accent)}.journal-app .settings-add-member{width:auto;margin-top:8px;background:transparent;border:1px dashed var(--border);min-height:36px}.journal-app .list-caption{margin:22px 0 4px;font:400 24px/1.4 var(--journal-heading);color:var(--fg)}.journal-app .list-group-body{padding:0;border:0;border-block:1px solid var(--border);border-radius:0;background:transparent}.journal-app .list-row{min-height:52px;padding:11px 0;gap:10px}.journal-app .list-label{font-size:15px;line-height:1.5}.journal-app :is(.list-value,.list-sub,.list-sub-inline){font-size:12px;line-height:1.5}.journal-app .list-icon{width:24px;height:28px;background:transparent;color:var(--accent)}.journal-app .list-icon svg{width:20px;height:20px}.journal-app .list-icon.danger{color:var(--danger)}.journal-app .settings-screen .list-row:not(.member-row)>.list-icon{width:24px;height:28px;border-radius:0;background:transparent;color:var(--accent)}.journal-app .settings-screen .list-row:not(.member-row)>.list-icon.danger{color:var(--danger)}.settings-about{margin-top:18px}.settings-about>summary{cursor:pointer;color:var(--fg-secondary);font-size:13px;padding:8px 0}.journal-app .settings-meta{margin-top:24px;font:400 20px/1.5 var(--journal-heading);text-align:center;color:var(--muted)}.settings-security-log{margin-top:12px}.settings-security-log>summary{font-size:13px;cursor:pointer;color:var(--fg-secondary);padding:8px 0}.journal-app .auth-attempts-heading .list-caption{font:500 15px/1.5 var(--font-body)}.journal-app .auth-attempts-list,.journal-app .auth-attempts-empty{border-radius:5px}.journal-app .import-export-section{gap:12px}.journal-app .import-export-module-card{padding:12px;border-radius:4px;background:var(--surface)}.journal-app .import-export-module-head strong{font-size:16px}.journal-app .import-export-module-card p,.backup-summary{font-size:12px;color:var(--fg-secondary)}.journal-app .backup-card{border-radius:5px;padding:10px 12px}.journal-app .backup-list-title{font-size:23px}.sheet,.import-sheet,.clear-sheet{background:var(--bg) var(--journal-paper-image) repeat;background-size:256px;padding-inline:18px;border-radius:14px 14px 0 0;font-size:15px}.sheet.record-entry-sheet,.sheet.family-add-sheet{padding-inline:18px}.sheet-heading h3,.sheet h3{color:var(--fg);font:400 27px/1.4 var(--journal-heading)}.sheet .sheet-heading{padding-bottom:12px;margin-bottom:14px;border-bottom:1px solid var(--border)}.sheet :is(.form-group label,.form-label,.family-add-field-label){font-size:14px;color:var(--fg-secondary)}.sheet .form-section{background:var(--surface);border-radius:6px;padding:12px}.sheet :is(.btn-submit,.btn-secondary,.ui-button,.family-add-submit){font-size:15px;border-radius:8px}.sheet .family-add-footer{background:var(--bg)}.auth-gate{padding:28px 20px}.auth-gate-card{padding:28px 22px;border-radius:4px;border:1px solid var(--border);border-top:3px solid var(--accent);background:var(--surface);box-shadow:var(--journal-photo-shadow)}.auth-gate-mark{width:48px;height:48px;background:var(--accent-dim);color:var(--accent);border-radius:9px}.auth-gate-card h1{font:400 36px/1.25 var(--journal-heading)}.auth-gate-kicker{color:var(--fg-secondary);font-size:12px;letter-spacing:.08em}.auth-gate-intro{font-size:14px;margin-block:18px 24px}.auth-gate-submit{border-radius:8px;font-size:16px}.auth-gate-input{border-radius:7px}@media(max-width:360px){.journal-app .scroll-area{padding-inline:14px}.journal-app .page-header h1{font-size:29px}.journal-app .page-header-title-row{gap:5px}.journal-app .fab-menu.fab-menu-header .ui-button.fab{padding-inline:8px;font-size:13px}.journal-app .card-title{font-size:23px}.journal-app .hero-card :is(.net-worth,.cash-surplus-value){font-size:33px}.journal-app .discourse-module-title-row h3{font-size:15px}}@media(min-width:768px){:root{--app-max-width: 720px}.journal-app .scroll-area{padding-inline:32px;padding-top:20px}.journal-app .page-header h1{font-size:36px}}.journal-app .page-header h1{font-size:28px}.journal-app :is(.card-title,.settings-members-head h2,.import-export-section-title,.backup-list-title,.discourse-actions h2){font:600 18px/1.5 var(--font-body)}.journal-app :is(.ui-button,.btn-secondary,.inline-add-btn,.edit-mode-btn,.ui-tabs-trigger,.tab-btn,.person-btn,.range-btn,.page-add-button,.page-header-back){min-height:44px;height:auto}.journal-app .page-header-back{width:44px;min-width:44px}.journal-app .scroll-area{gap:12px}.journal-app .module-screen{gap:14px}.journal-app .family-main-tabs{margin-block:0 6px}.journal-app .family-main-tabs svg{display:none}.journal-app .bottom-nav .nav-item.active{background:var(--accent-dim);border-radius:8px}.journal-app .health-record-body{background:transparent;border-radius:0;padding:0 0 16px;border-width:0 0 1px}.journal-app .health-record-title{font-family:var(--font-body);font-size:17px}.journal-app .health-people{flex-wrap:wrap}.journal-app .health-person{min-height:44px;height:auto;white-space:normal}.journal-app .discourse-list-head h2{font:600 18px/1.5 var(--font-body)}.journal-app .trend-single{height:auto;aspect-ratio:auto}.journal-app .trend-single>svg{display:block;width:100%;height:auto}.journal-app .trend-compact{min-height:0}.journal-app .finance-full-trend>summary{min-height:44px;padding:12px 0;font-size:13px;cursor:pointer}.journal-app .hero-card .net-worth,.journal-app .hero-card .cash-surplus-value{overflow-wrap:anywhere;font-size:clamp(26px,8.5vw,38px)}.sync-status-banner{margin:8px 0 0;width:100%;background:color-mix(in srgb,var(--warning) 8%,var(--surface));border-radius:6px;color:var(--fg);font:400 13px/1.6 var(--font-body)}.sync-status-banner>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;padding:8px 10px;cursor:pointer;list-style:none}.sync-status-banner>div{padding:8px 12px}.sync-status-banner>summary>span{flex-shrink:0;color:var(--accent)}.sync-problem-entry{display:block;min-height:44px;border:0;background:none;color:var(--accent);font:inherit;text-align:left;width:100%;overflow-wrap:anywhere}.sync-comparison{display:grid;gap:12px}.sync-comparison p{margin:0}.sync-field h4{margin:12px 0 8px;font-size:15px}.sync-field dl{margin:0 0 12px;border:1px solid var(--border);border-radius:8px;overflow:hidden}.sync-field dl>div{display:grid;grid-template-columns:80px minmax(0,1fr);border-bottom:1px solid var(--border)}.sync-field dl>div:last-child{border:0}.sync-field dt,.sync-field dd{padding:10px;margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px}.sync-field dt{background:var(--surface2)}.sync-field-choices{display:grid;gap:8px}.sync-field-choices [aria-pressed=true]{border-color:var(--accent);background:var(--accent-dim)}.sheet-overlay{z-index:200}.sheet-overlay-high{z-index:220}.settings-current-identity{padding:0 0 18px}.settings-current-identity h2{font:600 18px/1.5 var(--font-body);margin:0 0 12px}.settings-current-identity label{display:flex;align-items:center;gap:14px;border:1px solid var(--border);padding:10px 12px;border-radius:8px}.settings-current-identity label>span{font-weight:600;flex:1}.settings-current-identity select{max-width:70%;min-height:44px;font:inherit;color:var(--accent);border:0;background:var(--surface2);padding:8px;border-radius:6px}.settings-theme-choice{display:flex;gap:4px}.settings-theme-choice button{min-height:44px;min-width:52px;border:0;background:transparent;color:var(--fg-secondary);border-radius:6px;font:inherit;font-size:14px}.settings-theme-choice button[aria-pressed=true]{background:var(--accent-dim);color:var(--accent)}.calendar-today{min-height:44px;background:none;border:0;color:var(--accent);font:inherit;font-size:13px;display:block;margin-left:auto}.family-calendar-day.today .family-calendar-day-num{outline:1px solid var(--accent);outline-offset:3px;border-radius:50%}.family-calendar-day.selected{background:var(--accent-dim);color:var(--accent)}.calendar-marker-legend{display:flex;gap:14px;flex-wrap:wrap;color:var(--fg-secondary);font-size:12px;padding-top:10px}.calendar-marker-legend>span{display:flex;align-items:center;gap:5px}.family-calendar-markers svg{background:transparent;border-radius:0;color:var(--accent);fill:currentColor}.draft-recovery{padding:12px;border:1px solid var(--border);border-radius:12px;margin-block:12px}.draft-recovery-values{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-block:8px}.draft-recovery-values button{padding:8px;text-align:left;overflow-wrap:anywhere;white-space:normal;max-height:160px;overflow:auto}.app.journal-app .page-header h1{font-size:28px;line-height:1.2}.app.journal-app .page-header{padding-block:10px}.app.journal-app .sheet-head h3{font-size:24px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.backup-compare{width:100%;border-collapse:collapse;margin-block:12px;font-size:14px}.backup-compare th,.backup-compare td{padding:8px;text-align:left;border-bottom:1px solid var(--border)}:root:not([data-theme=dark]) :is(.journal-app,.sheet,.bottom-nav,.auth-gate){background-blend-mode:soft-light}.app.journal-app .page-header{padding-block:4px}.journal-app .finance-context-bar{margin:-4px 0 0}.journal-app .hero-card .health-help{margin:6px 0;font-size:12px;line-height:1.5}.journal-app .hero-card .overview-change{margin-bottom:6px}.journal-app .finance-month-summary{margin:0}.journal-app .finance-month-summary>.health-help{display:none}.journal-app .finance-month-summary th,.journal-app .finance-month-summary td{padding-block:7px}.app.journal-app .planning-screen .family-view-tabs>.ui-tabs-trigger{min-height:44px;min-width:44px}.journal-app .sync-status-inline{flex-basis:44px}.journal-app .sync-status-inline>summary{width:44px;min-height:44px}.bottom-nav .nav-item.active svg{background:var(--accent-dim);padding:6px 10px;border-radius:9px}.app.journal-app .family-todo-drag-handle,.app.journal-app .family-todo-more-btn{min-width:44px;width:44px;min-height:44px}.app.journal-app .family-todo-check{position:relative;flex:0 0 44px;width:44px;height:44px;min-height:44px;border:0;background:transparent;display:grid;place-items:center}.app.journal-app .family-todo-check:before{content:"";position:absolute;width:20px;height:20px;border:1px solid var(--border);border-radius:5px;background:var(--surface)}.app.journal-app .family-todo-check.checked:before{background:var(--accent);border-color:var(--accent)}.app.journal-app .family-todo-check svg{position:relative;z-index:1;width:15px;height:15px}@media(max-width:340px){.app.journal-app .family-calendar-grid,.app.journal-app .family-calendar-weekdays{margin-inline:-11px}}.app.journal-app .hero-card{padding-top:12px}.app.journal-app .hero-card .net-worth{margin-bottom:4px}.app.journal-app .hero-card .health-help{font-size:12px;line-height:1.5;margin:3px 0}.app.journal-app .overview-metrics{padding-block:8px}.app.journal-app .net-worth-screen>.overview-analysis{margin:0;padding:0}.app.journal-app .net-worth-screen>.overview-analysis>summary{min-height:44px;padding:10px 0}.app.journal-app .module-screen{gap:10px}.app.journal-app .page-header{padding-block:0}.app.journal-app .finance-context-bar{margin-top:-8px}.app.journal-app .module-screen{gap:8px}.app.journal-app .trend-compact{position:relative;padding-top:4px}.app.journal-app .mini-trend-end{position:absolute;right:0;top:0;margin:0;font-size:12px}.app.journal-app .cash-trend-compact .chart-container{height:auto;min-height:0;aspect-ratio:auto}.app.journal-app .cash-trend-compact svg{display:block;width:100%;height:auto}.app.journal-app .hero-card{padding-top:10px}.app.journal-app .hero-card .net-worth{margin-bottom:0}.app.journal-app .overview-metrics{padding-block:6px}.app.journal-app .net-formula{font-size:12px;font-weight:400}.app.journal-app .cash-surplus-label{margin-top:0}.app.journal-app .cash-balance-row{margin-top:8px;padding-block:8px}.app.journal-app .finance-context-bar{margin-bottom:-6px}:root{--journal-paper-image: none;--app-max-width: 900px}.emerald-app{background:var(--bg);font:15px/1.6 var(--font-body)}.emerald-app .scroll-area{gap:12px;padding:max(12px,env(safe-area-inset-top)) 16px 28px}.emerald-app .module-screen{grid-template-columns:minmax(0,1fr);gap:20px;min-width:0;max-width:100%}.emerald-app .module-screen>*,.emerald-app .finance-full-ledger{min-width:0;max-width:100%}.emerald-app .page-header h1{color:var(--fg);font:650 28px/1.2 var(--journal-heading);letter-spacing:-.02em}.emerald-app.finance-report .page-header h1{font-size:26px}.emerald-app .page-header-title-row{gap:4px}.emerald-app .page-header-copy{min-width:0;flex:1}.emerald-app .page-header-actions{gap:4px}.emerald-app .page-add-button{min-height:44px;height:auto;padding:6px 8px;border-radius:9px;font-size:14px;white-space:nowrap}.emerald-app .page-add-button svg{width:17px;height:17px}.emerald-app .page-header .amount-visibility-btn,.emerald-app .page-header .sync-status-inline>summary{min-width:44px;min-height:44px}.emerald-app :is(.card-title,.settings-members-head h2,.discourse-list-head h2,.consensus-other-section h2){font:650 21px/1.4 var(--journal-heading);color:var(--fg);margin:0}.emerald-app .card{box-shadow:none}.emerald-app :is(.btn-secondary,.btn-submit,.ui-button,.ui-tabs-trigger,.person-btn){min-height:44px}.emerald-app .bottom-nav{background:var(--bg);border-top:1px solid var(--border)}.emerald-app .bottom-nav .nav-item{position:relative;min-height:48px;border-radius:12px}.emerald-app .bottom-nav .nav-item.active{background:var(--accent-dim)}.nav-hint{display:none;position:absolute;bottom:calc(100% + 6px);padding:5px 10px;border-radius:6px;background:var(--fg);color:var(--bg);font:13px/1.5 var(--font-body);white-space:nowrap;pointer-events:none;z-index:20}.nav-item:focus-visible .nav-hint,.nav-item[data-hint=true] .nav-hint{display:block}@media(hover:hover){.nav-item:hover .nav-hint{display:block}}.emerald-app .finance-context-bar{padding:0 0 9px;border-bottom:1.5px solid var(--accent);margin:0;min-height:44px;gap:8px}.emerald-app .finance-context-bar select{font-size:15px;min-height:44px;max-width:100%}.finance-latest{font:12px var(--font-body);color:var(--accent);background:transparent;border:0;min-height:44px;padding:0 4px}.emerald-app .finance-more-menu>summary{min-height:44px}.emerald-app :is(.net-overview-card,.cash-snapshot-card){padding:0 0 12px;border:0;border-bottom:1px solid var(--border);background:transparent;border-radius:0;box-shadow:none}.net-overview-main{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.emerald-app .hero-card :is(.card-title,.cash-surplus-label){color:var(--fg);font:400 14px/1.5 var(--font-body);margin:0}.emerald-app .hero-card :is(.net-worth,.cash-surplus-value){font:650 38px/1.2 Georgia,var(--journal-heading);letter-spacing:-.04em;color:var(--fg);margin:3px 0 0;font-variant-numeric:tabular-nums}.emerald-app .hero-card .currency{font:500 19px var(--font-body);margin-right:3px}.emerald-app .net-overview-card .overview-change{display:flex;flex-direction:column;gap:1px;align-items:flex-end;margin:0;color:var(--fg-secondary);font-size:12px}.emerald-app .overview-change strong{font-size:14px;font-weight:600}.emerald-app .overview-change strong small,.emerald-app .net-previous{font-size:12px}.emerald-app .net-recording-status{color:var(--fg-secondary);font:12px/1.5 var(--font-body);margin:7px 0}.net-balance-strip{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}.net-balance-strip>div{display:flex;flex-wrap:wrap;align-items:center;gap:4px 7px;font-size:12px}.net-balance-strip>div+div{border-left:1px solid var(--border);padding-left:12px}.net-balance-strip strong{font:650 17px/1.5 var(--font-number);color:var(--accent);white-space:nowrap}.net-balance-strip>div+div strong{color:var(--financial-debt)}.net-balance-strip svg{flex-shrink:0;color:var(--fg-secondary)}.cash-savings{display:flex;gap:6px;align-items:baseline;font-size:12px;color:var(--fg-secondary)}.cash-savings strong{font-size:19px;color:var(--accent)}.emerald-app .cash-surplus-value.negative{color:var(--danger)}.emerald-app .card.finance-table-card{padding:0;border:0;margin:0;width:100%;min-width:0;overflow:visible}.emerald-app .finance-table-card .card-head{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:center;justify-content:space-between;margin-bottom:4px}.emerald-app .finance-table-card .card-title{font-size:19px}.emerald-app .net-ledger-card .person-toggle{min-width:0;max-width:100%;overflow-x:auto;flex-shrink:1;gap:12px;border-bottom:1px solid var(--border);border-radius:0}.emerald-app .net-ledger-card .person-btn{padding:0 2px;font-size:13px;white-space:nowrap;flex-shrink:0}.emerald-app .balance-toolbar{margin:8px 0;gap:4px}.balance-scroll-controls{display:flex;align-items:center;gap:0}.balance-scroll-controls button{background:transparent;border:0;color:var(--accent);min-height:44px;min-width:44px;padding:4px;display:grid;place-items:center}.balance-scroll-controls button:disabled{color:var(--muted);opacity:.4;cursor:default}.emerald-app .balance-view-toggle{gap:0;padding:2px;border:1px solid var(--border);border-radius:24px}.emerald-app .balance-view-toggle button{font-size:12px;min-height:44px;padding:4px 9px;border-radius:22px}.emerald-app .balance-view-toggle button[aria-pressed=true]{background:var(--accent-dim);color:var(--accent-bright)}.emerald-app .balance-scroll-cue{font-size:11px}.emerald-app .ledger-wrapper{width:100%;max-width:100%;min-width:0;overflow-x:auto;border:0;border-radius:0;scrollbar-width:thin;scrollbar-color:var(--accent) var(--surface2)}.emerald-app .data-table.ledger-table{width:max-content;min-width:100%;table-layout:auto;border-collapse:separate;border-spacing:0;font:14px/1.45 var(--font-number)}.emerald-app .data-table.ledger-table :is(th,td){font-size:14px;padding:8px 10px;font-weight:400;background:var(--bg);color:var(--fg);border:0;border-bottom:1px solid var(--border-subtle);text-align:right;white-space:nowrap}.emerald-app .data-table.ledger-table :is(th,td):first-child{position:sticky;left:0;z-index:2;width:106px;min-width:106px;max-width:128px;white-space:normal;overflow-wrap:anywhere;text-align:left;border-right:1px solid var(--border);box-shadow:3px 0 5px color-mix(in srgb,var(--fg) 4%,transparent)}.emerald-app .data-table.ledger-table th:not(:first-child){position:static;width:auto}.emerald-app .data-table.ledger-table :is(th,td):not(:first-child){min-width:108px}.emerald-app .data-table.ledger-table thead th{background:var(--surface2);padding-block:4px;color:var(--fg)}.emerald-app .data-table.ledger-table thead th.selected-period{color:var(--accent-bright);background:var(--accent-dim)}.emerald-app .data-table.ledger-table thead small{display:block;font-size:11px;color:var(--fg-secondary)}.emerald-app .data-table.ledger-table .month-edit-btn{min-height:44px;font-size:14px;font-weight:600;width:100%;justify-content:end;align-content:center}.emerald-app .data-table.ledger-table .ledger-label button{min-height:44px;font-size:14px;gap:3px}.emerald-app .data-table.ledger-table .ledger-group :is(th,td){padding-block:0}.emerald-app .data-table.ledger-table .ledger-child :is(th,td){color:var(--fg-secondary);background:var(--surface)}.emerald-app .data-table.ledger-table .ledger-child th{padding-left:22px}.emerald-app .data-table.ledger-table .ledger-subtotal :is(th,td),.emerald-app .data-table.ledger-table .ledger-total :is(th,td){background:var(--accent-dim);color:var(--accent-bright);font-weight:650;border-top:1px solid var(--border);padding-block:10px}.emerald-app .data-table.ledger-table .ledger-subtotal.liability :is(th,td){color:var(--financial-debt);background:var(--financial-debt-bg)}.emerald-app .data-table.ledger-table .ledger-total :is(th,td){border-top-color:var(--accent)}.emerald-app .data-table.ledger-table .inline-metric-input{min-height:44px;width:108px;font-size:16px}.balance-position{display:flex;align-items:center;height:26px;padding:0 2px}.balance-position input{width:100%;height:26px;accent-color:var(--accent);margin:0;cursor:ew-resize}.emerald-app .ledger-footer{display:flex;flex-wrap:wrap;gap:0 12px;align-items:center;padding:2px 0}.emerald-app .ledger-detail-button{min-height:44px;padding:0;border:0;background:transparent;font:12px/1.5 var(--font-body);color:var(--accent)}.emerald-app .ledger-footer>span{font-size:11px;color:var(--fg-secondary)}.cash-income-filter{display:flex;align-items:center;font-size:13px}.cash-income-filter select{background:transparent;border:0;color:var(--fg);min-height:44px;max-width:112px;font:inherit}.cash-scope-note{font-size:12px;color:var(--fg-secondary);text-align:right;margin:0}.emerald-app .net-trend-card{padding-top:14px}.net-trend-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px}.net-trend-heading>span,.trend-period{font-size:12px;color:var(--fg-secondary)}.trend-period{margin:3px 0 0}.net-trend-toggle{font:12px var(--font-body);color:var(--accent);border:0;background:transparent;min-height:44px;padding:0}.emerald-app .overview-analysis{margin:0;padding:0}.emerald-app .finance-view-toggle button{min-height:44px}.emerald-app.family-journal .page-header h1{font:650 28px/1.2 var(--journal-heading)}.emerald-app.family-journal .family-main-tabs{border-bottom:1px solid var(--border)}.emerald-app.family-journal .family-main-tabs .ui-tabs-trigger{font-size:16px;min-height:44px}.emerald-app.family-journal .family-view-tabs{margin-left:auto;background:var(--surface2);border-radius:24px;padding:2px}.emerald-app.family-journal .family-view-tabs .ui-tabs-trigger{font:13px var(--font-body);min-height:44px;border-radius:22px}.emerald-app.family-journal .family-moment-timeline-content.markdown-body :is(h1,h2,h3){font:550 17px/1.65 var(--font-body)}.emerald-app .family-moment-timeline-content{font:15px/1.7 var(--font-body)}.emerald-app .family-timeline-date-header{font-family:var(--font-body)}.emerald-app .health-record-title{font-size:16px}.emerald-app .settings-current-identity{padding:16px;border:1px solid var(--border);background:var(--accent-dim);border-radius:12px}.emerald-app .settings-current-identity>h2{font:650 20px var(--journal-heading)}.emerald-app .settings-current-identity label{background:transparent;border:0;padding:8px 0 0}.emerald-app .settings-current-identity select{min-height:44px;background:var(--surface)}.emerald-app .settings-member-row{min-height:60px}.emerald-app .settings-list-row{min-height:52px}.emerald-app .list-caption{font:650 20px/1.4 var(--journal-heading)}.sheet :is(input,select,textarea){font-size:16px}.sheet .sheet-heading h3{font:650 23px/1.4 var(--journal-heading)}.sheet :is(.btn-submit,.btn-secondary,.sheet-close){min-height:44px}@media(max-width:350px){.emerald-app .scroll-area{padding-inline:12px}.emerald-app .page-header h1,.emerald-app.finance-report .page-header h1{font-size:23px}.emerald-app .page-header-title-row{flex-wrap:wrap}.emerald-app .page-header-actions{margin-left:auto}.emerald-app .hero-card :is(.net-worth,.cash-surplus-value){font-size:34px}.emerald-app .overview-change{align-items:flex-start!important}.net-balance-strip strong{font-size:15px}.net-overview-main{gap:6px}}@media(min-width:768px){.emerald-app{max-width:900px}.emerald-app .scroll-area{padding-inline:28px;gap:18px}.emerald-app .page-header h1,.emerald-app.finance-report .page-header h1{font-size:32px}.emerald-app .hero-card :is(.net-worth,.cash-surplus-value){font-size:46px}.emerald-app .finance-table-card .card-title{font-size:22px}.emerald-app .balance-view-toggle button,.emerald-app .balance-scroll-cue{font-size:14px}.emerald-app .balance-scroll-controls button{min-width:44px}}.emerald-app .consensus-warm{gap:22px}.consensus-context{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;border-bottom:1.5px solid var(--accent);padding-bottom:8px}.consensus-context label{display:flex;align-items:center;gap:6px;font-size:13px}.consensus-context select{background:transparent;color:var(--fg);border:0;font:550 14px var(--font-body);max-width:135px;min-height:44px;padding:4px}.consensus-context>span{font-size:12px;color:var(--fg-secondary)}.consensus-welcome{display:flex;justify-content:space-between;align-items:center;min-height:74px;margin-top:-8px;gap:4px}.consensus-welcome p{font:650 20px/1.5 var(--journal-heading);color:var(--fg);margin:0}.consensus-welcome img{width:104px;height:78px;object-fit:contain;flex-shrink:0}.narrow-only{display:none}.emerald-app .discourse-list-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px}.consensus-text-button{background:transparent;border:0;color:var(--accent);font:13px/1.5 var(--font-body);min-height:44px;padding:0;display:flex;align-items:center;gap:4px;white-space:nowrap}.consensus-text-button small{font-size:12px}.consensus-focus-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.consensus-focus-tile{display:flex;flex-direction:column;gap:10px;align-items:stretch;text-align:left;border:0;padding:15px 13px;border-radius:12px;color:var(--fg);background:var(--accent-dim);cursor:pointer;min-width:0}.consensus-focus-tile.focus-couple{background:var(--warm-focus)}.focus-tile-title{display:flex;align-items:center;gap:9px;min-height:30px}.focus-tile-title svg{color:var(--accent);flex-shrink:0}.focus-tile-title strong{font:550 15px/1.5 var(--font-body);overflow-wrap:anywhere}.focus-tile-score{font:12px/1.5 var(--font-body);color:var(--fg-secondary)}.focus-tile-score strong{color:var(--accent-bright);font:500 20px/1.5 var(--font-number);margin-left:2px}.focus-tile-score small{margin-left:3px;font-size:12px}.focus-tile-link{display:flex;align-items:center;gap:8px;color:var(--accent);font:13px/1.5 var(--font-body)}.consensus-no-focus{background:var(--surface2);padding:14px;border-radius:12px}.consensus-no-focus p{margin:0 0 8px;font-size:14px}.emerald-app .consensus-warm .discourse-actions{border:0;border-radius:0;padding:0;background:transparent}.emerald-app .consensus-warm .discourse-actions h2{margin:0;font-size:21px}.emerald-app .discourse-list-head .btn-secondary{background:transparent;border:1px solid var(--border);border-radius:10px;padding-inline:12px;color:var(--accent)}.emerald-app .discourse-action-item{display:flex;align-items:center;gap:9px;padding:8px 0;min-height:64px;border-bottom:1px solid var(--border-subtle)}.emerald-app .discourse-action-item>input{appearance:auto;-webkit-appearance:auto;accent-color:var(--accent);width:22px;height:22px;flex:0 0 22px;margin:11px}.emerald-app .discourse-action-item>button{display:flex;flex-direction:column;align-items:flex-start;flex:1;min-width:0;background:transparent;border:0;color:var(--fg);text-align:left;min-height:48px;padding:4px 0}.emerald-app .discourse-action-item>button>span{font:500 15px/1.5 var(--font-body);overflow-wrap:anywhere}.emerald-app .discourse-action-item>button>small{color:var(--fg-secondary);font:12px/1.5 var(--font-body);margin-top:3px}.emerald-app .discourse-action-item>svg{flex-shrink:0;color:var(--accent)}.emerald-app .discourse-actions details{padding:4px 0}.emerald-app .discourse-actions details>summary{font-size:13px;padding-block:10px;min-height:44px}.emerald-app .discourse-view-all{min-height:44px;color:var(--accent);background:transparent;font-size:13px;padding:0}.consensus-other-section h2{margin-bottom:8px!important}.consensus-other-list>button{display:flex;width:100%;align-items:center;gap:10px;min-height:48px;padding:7px 0;background:transparent;border:0;border-bottom:1px solid var(--border-subtle);text-align:left;color:var(--fg)}.consensus-other-list>button>svg{flex-shrink:0;color:var(--accent)}.consensus-other-list>button>span{font-size:14px;flex:1}.consensus-other-list>button>strong{font:400 17px var(--font-number);white-space:nowrap}.consensus-other-list small{font:12px var(--font-body);color:var(--fg-secondary);margin-left:3px}.consensus-distribution{border-radius:10px;background:var(--surface2);padding:0 12px}.consensus-distribution>summary{display:flex;align-items:center;gap:10px;min-height:48px;font-size:14px;color:var(--fg);list-style:none;cursor:pointer}.consensus-distribution>summary::-webkit-details-marker{display:none}.consensus-distribution>summary>svg:last-child{margin-left:auto}.consensus-distribution[open]>summary>svg:last-child{transform:rotate(90deg)}.consensus-distribution ul{padding:0 0 14px 18px;font-size:13px}.consensus-choice-list{display:grid;gap:4px;margin-block:12px}.consensus-choice-list>button{display:flex;align-items:center;gap:10px;min-height:52px;padding:10px 4px;border:0;border-bottom:1px solid var(--border-subtle);text-align:left;background:transparent;color:var(--fg);font:15px var(--font-body)}.consensus-choice-list>button>:last-child{margin-left:auto}.consensus-choice-list>button>span{font-size:12px;color:var(--fg-secondary)}.consensus-choice-list>button[aria-pressed=true]{color:var(--accent)}.consensus-choice-list>button:disabled{opacity:.55;cursor:default}@media(max-width:380px){.consensus-welcome p{font-size:20px}.narrow-only{display:inline}.consensus-text-button{font-size:12px}.focus-tile-title{gap:6px}.focus-tile-title svg{width:24px}.consensus-focus-tile{padding:12px 10px}}@media(max-width:340px){.consensus-focus-grid{gap:8px}.focus-tile-title{flex-wrap:wrap}.consensus-welcome img{width:104px}}@media(min-width:768px){.emerald-app .consensus-warm{max-width:680px;width:100%;margin-inline:auto;gap:24px}.consensus-welcome p{font-size:28px}.consensus-welcome img{width:144px;height:96px}.consensus-focus-tile{padding:20px}.focus-tile-title strong{font-size:18px}.consensus-focus-grid{gap:16px}}.emerald-app .discourse-action-item>.action-check-target{display:grid;place-items:center;width:44px;min-width:44px;height:44px;cursor:pointer}.emerald-app .action-check-target input{appearance:auto;accent-color:var(--accent);width:22px;height:22px;margin:0}.emerald-app .discourse-action-item>button{flex-direction:row;align-items:center;gap:8px}.emerald-app .discourse-action-item .action-copy{flex:1;display:flex;flex-direction:column;min-width:0}.emerald-app .discourse-action-item .action-copy small{color:var(--fg-secondary);font:12px/1.5 var(--font-body);margin-top:3px}.action-form-fields{border:0;padding:0;margin:0;min-width:0;display:grid;gap:12px}.discourse-stepper{width:44px;height:44px}.app.emerald-app{--page-inset: 16px}.app.emerald-app .page-header{background:var(--surface);border-bottom:1px solid var(--border);margin-inline:calc(-1 * var(--page-inset));margin-top:calc(-1*max(12px,env(safe-area-inset-top)));padding:max(8px,env(safe-area-inset-top)) var(--page-inset) 8px}.app.emerald-app :is(.page-add-button,.ui-button-primary,.btn-submit,.family-add-submit){background:var(--accent);color:var(--on-accent);border:1px solid var(--accent);box-shadow:none}.app.emerald-app .page-add-button{min-height:40px;height:40px;padding:0 12px;border-radius:10px;font-weight:600}.app.emerald-app :is(.ui-button-outline,.btn-secondary,.edit-mode-btn){background:var(--surface);border:1px solid var(--border-strong);color:var(--accent);border-radius:10px;box-shadow:none}.app.emerald-app .edit-mode-btn.active{background:var(--accent);color:var(--on-accent)}.app.emerald-app :is(.ui-tabs-segmented,.balance-view-toggle,.settings-theme-choice){background:var(--surface2);border:0;border-radius:var(--pill-radius);padding:3px;gap:2px}.app.emerald-app :is(.ui-tabs-segmented>.ui-tabs-trigger,.balance-view-toggle button,.settings-theme-choice button){border-radius:var(--pill-radius);border:0;background:transparent;color:var(--fg-secondary);font-weight:500}.app.emerald-app .ui-tabs-segmented>.ui-tabs-trigger[data-state=active],.app.emerald-app .balance-view-toggle button[aria-pressed=true],.app.emerald-app .settings-theme-choice button[aria-pressed=true]{background:var(--surface);color:var(--accent);font-weight:600;box-shadow:0 1px 2px color-mix(in srgb,var(--fg) 10%,transparent)}.app.emerald-app+.bottom-nav{background:var(--nav-bg);background-image:none;-webkit-backdrop-filter:blur(14px) saturate(1.2);backdrop-filter:blur(14px) saturate(1.2);border-top:1px solid var(--border);box-shadow:none;padding:6px 12px calc(6px + var(--safe-bottom));gap:8px}.app.emerald-app+.bottom-nav .nav-item{color:var(--nav-fg);background:transparent;min-height:44px;padding:0;justify-content:center;border-radius:12px;transition:background-color .16s ease,color .16s ease}.app.emerald-app+.bottom-nav .nav-item.active{background:var(--nav-selected);color:var(--nav-selected-fg)}@media(hover:hover){.app.emerald-app+.bottom-nav .nav-item:not(.active):hover{color:var(--fg);background:var(--surface2)}}.app.emerald-app+.bottom-nav .nav-item svg{width:24px;height:24px;padding:0;border-radius:0;background:transparent;color:inherit;fill:none}.app.emerald-app+.bottom-nav .nav-item.active svg{fill:color-mix(in srgb,var(--accent) 14%,transparent)}.app.emerald-app+.bottom-nav .nav-item:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app.emerald-app+.bottom-nav .nav-hint{background:var(--fg);color:var(--surface);border:0;box-shadow:var(--shadow-md)}.app.emerald-app :is(.card,.module-section){background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:16px;box-shadow:var(--surface-shadow)}.app.emerald-app :is(.net-overview-card,.cash-snapshot-card){padding:14px 16px}.app.emerald-app .net-overview-main{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:10px}.app.emerald-app .net-overview-main>*{min-width:0}.app.emerald-app .net-overview-card .net-worth{font-size:clamp(28px,8.7vw,34px);overflow-wrap:anywhere}.app.emerald-app .net-overview-card .overview-change{font-size:12px}.app.emerald-app .net-overview-card .overview-change strong{font-size:13px;white-space:nowrap}.app.emerald-app .net-overview-card .net-previous{display:flex;flex-direction:column;align-items:flex-end;font-size:12px;text-align:right}.app.emerald-app .net-overview-card .net-previous-amount{white-space:nowrap}.app.emerald-app .card.finance-table-card{padding:12px;overflow:visible}.app.emerald-app .finance-context-bar{margin-top:0;border-bottom:0;padding-bottom:0}.app.emerald-app .finance-context-bar select{border:1px solid var(--border-strong);border-radius:10px;background:var(--surface);padding-inline:8px}.app.emerald-app .net-ledger-card .person-toggle{background:transparent}.app.emerald-app .ledger-wrapper{border:0;border-top:1px solid var(--border-subtle);border-radius:0}.app.emerald-app .data-table.ledger-table :is(th,td){background:var(--surface)}.app.emerald-app .data-table.ledger-table thead th{background:var(--surface2)}.app.emerald-app .data-table.ledger-table thead th.selected-period{background:var(--accent-dim)}.app.emerald-app .data-table.ledger-table :is(.ledger-subtotal,.ledger-total) :is(th,td){background:var(--accent-dim)}.app.emerald-app .data-table.ledger-table .ledger-subtotal.liability :is(th,td){background:var(--financial-debt-bg)}.app.emerald-app .cash-snapshot-card .cash-balance-row{margin-inline:-16px;padding-inline:16px}.app.emerald-app.family-journal .family-view-tabs{border:0;background:var(--surface2);border-radius:var(--pill-radius)}.app.emerald-app.family-journal .family-view-tabs .ui-tabs-trigger{border-radius:var(--pill-radius)}.app.emerald-app.family-journal .family-view-tabs .ui-tabs-trigger[data-state=active]{background:var(--surface);color:var(--accent);box-shadow:0 1px 2px color-mix(in srgb,var(--fg) 10%,transparent)}.app.emerald-app .planning-screen :is(.family-moment-timeline,.family-todo-card,.health-record){background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--surface-shadow)}.app.emerald-app .planning-screen .family-moment-timeline{padding:12px}.app.emerald-app .planning-screen .family-todo-card{padding:10px 12px}.app.emerald-app .planning-screen .family-todo-list{gap:8px}.app.emerald-app .health-record{padding:12px}.app.emerald-app .health-record-body{border-bottom:0;padding-bottom:0}.app.emerald-app .list-group-body{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding-inline:14px}.app.emerald-app .list-group-body>.list-row:last-child{border-bottom:0}.app.emerald-app .settings-current-identity{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg)}.app.emerald-app .consensus-context{border-bottom:1px solid var(--border)}.app.emerald-app .consensus-focus-tile{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--surface-shadow)}.app.emerald-app .consensus-focus-tile.focus-couple{border-color:color-mix(in srgb,var(--financial-debt) 25%,var(--warm-focus))}.app.emerald-app .consensus-warm .discourse-actions{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:14px}.app.emerald-app .consensus-other-list{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding-inline:14px}.app.emerald-app .consensus-other-list>button:last-child{border-bottom:0}.app.emerald-app .discourse-list-head .btn-secondary{background:var(--surface);border-color:var(--border-strong)}.app.emerald-app .consensus-distribution{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg)}.app.emerald-app .consensus-no-focus{background:var(--surface);border:1px dashed var(--border-strong);border-radius:var(--radius-lg);padding:16px}.app.emerald-app .consensus-no-focus .btn-secondary{background:var(--accent-dim);border-color:transparent;color:var(--accent)}.app.emerald-app .health-person.ui-button{border-radius:var(--pill-radius);border:1px solid var(--border);background:var(--surface);color:var(--fg-secondary)}.app.emerald-app .health-person.ui-button.active{background:var(--accent-dim);border-color:transparent;color:var(--accent);font-weight:600}.app.emerald-app .planning-screen .family-filter-chip{border-radius:var(--pill-radius)}.app.emerald-app .planning-screen .family-filter-chip:is(.active,[aria-selected=true],[aria-pressed=true]){background:var(--accent-dim);color:var(--accent)}.app.emerald-app :is(.todo-filter-toolbar,.todo-filter-panel) select,.app.emerald-app .todo-filter-toolbar>label:first-child select{background-color:var(--surface);border:1px solid var(--border-strong);border-radius:10px;color:var(--fg)}.app.emerald-app .planning-screen .family-todo-priority-tag.high{background:var(--financial-debt-bg);color:var(--financial-debt);border-color:transparent}.app.emerald-app :is(.health-section-title h3,.sheet-section-title){font:650 var(--fs-title)/1.4 var(--journal-heading);color:var(--fg);letter-spacing:0}.app.emerald-app .page-header h1{font:650 var(--fs-page)/1.2 var(--journal-heading);letter-spacing:-.01em}.app.emerald-app .hero-card :is(.net-worth,.cash-surplus-value){font-family:var(--journal-heading);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.app.emerald-app .cash-snapshot-card .cash-surplus-value{font-size:var(--fs-figure)}.app.emerald-app :is(.balance-scroll-cue,.ledger-footer>span,.data-table.ledger-table thead small,.discourse-principle-summary small,.discourse-module-score small,.discourse-focus-badge,.page-header-period){font-size:var(--fs-caption)}.app.emerald-app :is(.alignment-banner,.discourse-focus-badge){border-radius:6px}:is(.sheet,.import-sheet,.clear-sheet){background:var(--bg);border-top-left-radius:var(--radius-xl);border-top-right-radius:var(--radius-xl)}.sheet .form-section{background:var(--surface);border:1px solid var(--border-subtle);border-radius:12px}.sheet :is(.btn-submit,.btn-secondary,.ui-button,.family-add-submit){border-radius:10px}@media(max-width:350px){.app.emerald-app{--page-inset: 12px}.app.emerald-app .card.finance-table-card{padding:10px}.app.emerald-app .balance-view-toggle button{padding-inline:6px}.app.emerald-app .net-overview-main{grid-template-columns:minmax(0,1fr);gap:4px}.app.emerald-app .net-overview-card .overview-change{flex-direction:row;flex-wrap:wrap;align-items:baseline!important;gap:2px 6px}.app.emerald-app .net-overview-card .net-previous{text-align:left}}@media(min-width:768px){.app.emerald-app{--page-inset: 28px}.app.emerald-app .net-overview-card .net-worth{font-size:46px}.app.emerald-app .net-overview-card .overview-change strong{font-size:14px}.app.emerald-app .net-overview-card :is(.overview-change,.net-previous){font-size:12px}}.ledger-hero{display:grid;gap:6px;padding:18px 18px 16px;border-radius:var(--radius-xl);background:var(--accent);color:var(--on-accent);box-shadow:0 10px 24px color-mix(in srgb,var(--accent) 22%,transparent)}.ledger-hero-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.app .ledger-hero-title{margin:0;font-size:15px;font-weight:500;color:color-mix(in srgb,var(--on-accent) 78%,transparent)}.ledger-hero-main{display:flex;align-items:flex-end;justify-content:space-between;gap:10px}.app .ledger-hero-value{margin:0;min-width:0;font:700 34px/1.1 var(--font-number);letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--on-accent);overflow-wrap:anywhere}.ledger-hero-value .currency{margin-right:2px;font-size:20px;font-weight:600;opacity:.8}.ledger-hero-spark{flex:none;color:color-mix(in srgb,var(--on-accent) 85%,transparent)}.app .ledger-hero-change{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:2px 0 0;font-size:14px;color:color-mix(in srgb,var(--on-accent) 80%,transparent)}.ledger-hero-change b{padding:1px 8px;border-radius:var(--pill-radius);background:color-mix(in srgb,var(--on-accent) 18%,transparent);color:var(--on-accent);font-weight:600;font-variant-numeric:tabular-nums}.ledger-hero-aside{white-space:nowrap}.ledger-hero-change b.negative{background:var(--financial-debt-bg);color:var(--financial-debt)}.app .ledger-hero-note{margin:0;font-size:13px;color:color-mix(in srgb,var(--on-accent) 72%,transparent)}.ledger-hero-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:10px 0 0;padding-top:12px;border-top:1px solid color-mix(in srgb,var(--on-accent) 20%,transparent)}.ledger-hero-stats>div{min-width:0;padding-inline:8px}.ledger-hero-stats>div:first-child{padding-left:0}.ledger-hero-stats>div+div{border-left:1px solid color-mix(in srgb,var(--on-accent) 16%,transparent)}.ledger-hero-stats dt{font-size:12px;color:color-mix(in srgb,var(--on-accent) 70%,transparent)}.ledger-hero-stats dd{margin:2px 0 0;font:600 16px/1.3 var(--font-number);font-variant-numeric:tabular-nums;color:var(--on-accent);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app .ledger-segmented,.app .net-worth-screen .balance-view-toggle,.app .cash-flow-screen .balance-view-toggle,.app .net-worth-screen .person-toggle{display:inline-flex;gap:2px;padding:3px;border:0;border-radius:var(--control-radius);background:var(--surface2)}.app .ledger-segmented{display:flex;width:100%;margin-top:10px}.app .ledger-segmented>button,.app .ledger-segmented>.ui-tabs-trigger,.app .net-worth-screen .balance-view-toggle>button,.app .cash-flow-screen .balance-view-toggle>button,.app .net-worth-screen .person-toggle>button{flex:1;min-height:32px;padding:4px 10px;border:0;border-radius:calc(var(--control-radius) - 3px);background:transparent;color:var(--fg-secondary);font-size:14px;font-weight:500;white-space:nowrap;box-shadow:none}.app .ledger-segmented>.ui-tabs-trigger{min-width:0;padding-inline:4px}.app .ledger-segmented>button[aria-pressed=true],.app .ledger-segmented>.ui-tabs-trigger[data-state=active],.app .net-worth-screen .balance-view-toggle>button[aria-pressed=true],.app .cash-flow-screen .balance-view-toggle>button[aria-pressed=true],.app .net-worth-screen .person-toggle>button[aria-pressed=true],.app .net-worth-screen .person-toggle>button.active{background:var(--surface);color:var(--accent);font-weight:600;box-shadow:0 1px 3px color-mix(in srgb,var(--fg) 12%,transparent)}.app .ledger-segmented>.ui-tabs-trigger:after{display:none}.ledger-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.app .ledger-section-head .card-title{margin:0}.ledger-link{padding:0;border:0;background:none;color:var(--accent);font-size:14px;font-weight:500}.app .ledger-trend-card .trend-period{margin:6px 0 0;font-size:12px;color:var(--muted);text-align:right}.ledger-mini-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.ledger-mini-card,.app .ledger-mini-grid .investment-returns-card{display:grid;align-content:start;gap:8px;width:100%;min-width:0;padding:14px 12px;border:1px solid var(--border);border-radius:var(--radius-xl);background:var(--surface);color:var(--fg);text-align:left;font:inherit}.ledger-mini-head{display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:14px;font-weight:600}.ledger-mini-head svg{width:16px;height:16px;color:var(--fg-secondary)}.ledger-mini-card>strong{font:700 24px/1.1 var(--font-number);color:var(--accent)}.ledger-mini-bar,.composition-mini-bar{display:block;height:6px;border-radius:var(--pill-radius);background:var(--surface2);overflow:hidden}.ledger-mini-bar i,.composition-mini-bar i{display:block;height:100%;border-radius:inherit;background:var(--accent)}.composition-mini-card.expense .composition-mini-bar i{background:var(--journal-ochre)}.ledger-mini-note{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.composition-mini-rows{display:grid;gap:7px}.composition-mini-row{display:grid;gap:3px}.composition-mini-label{display:flex;justify-content:space-between;gap:6px;font-size:12px;color:var(--fg-secondary)}.composition-mini-label>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.composition-mini-label b{font-weight:600;color:var(--fg);font-variant-numeric:tabular-nums}.app .ledger-mini-grid .returns-entry-head{font-size:14px}.app .ledger-mini-grid .returns-entry-head svg{width:16px;height:16px}.app .ledger-mini-grid .returns-entry-metrics{grid-template-columns:1fr;gap:6px}.app .ledger-mini-grid .returns-entry-metrics>span{display:grid;gap:1px}.app .ledger-mini-grid .returns-entry-metrics small{font-size:12px;color:var(--muted)}.app .ledger-mini-grid .returns-entry-metrics strong{font-size:17px}.app .ledger-mini-grid .returns-entry-note{font-size:12px;color:var(--muted)}.ledger-callout{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:12px 14px;border:1px solid color-mix(in srgb,var(--financial-debt) 22%,transparent);border-radius:var(--radius-lg);background:var(--financial-debt-bg);color:var(--financial-debt);font:inherit;font-size:14px;text-align:left}.ledger-callout b{flex:none;white-space:nowrap;font-weight:600}.app .net-worth-screen .card-head .card-title,.app .cash-flow-screen .card-head .card-title{font-size:18px}.ledger-v3-table{display:grid;gap:10px;min-width:0}.app .ledger-v3-table .ledger-section-head .card-title{font-size:18px}.ledger-v3-tools{display:flex;align-items:center;justify-content:space-between;gap:8px}.app .ledger-v3-tools .ledger-segmented{flex:none;width:auto;margin:0}.app .ledger-v3-tools .ledger-segmented>button{flex:none;min-height:30px;padding:3px 10px;font-size:13px}.ledger-segmented.with-label>span{align-self:center;padding:0 0 0 6px;font-size:12px;color:var(--muted);white-space:nowrap}.app .ledger-v3-table .table-edit-hint{margin:0;font-size:12px;color:var(--muted)}.ledger-v3-box{min-width:0;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);overflow:hidden}.ledger-v3-scroll{overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none}.ledger-v3-scroll::-webkit-scrollbar{display:none}.ledger-v3-scroll:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.app .ledger-v3-grid{width:max-content;min-width:100%;margin:0;border-collapse:separate;border-spacing:0;font-size:13px;font-variant-numeric:tabular-nums}.app .ledger-v3-grid :is(th,td){min-width:76px;padding:8px 9px;border:0;line-height:1.3;background:var(--surface);color:var(--fg);font-weight:400;text-align:right;white-space:nowrap;vertical-align:middle}.app .ledger-v3-grid td{font-family:var(--font-number)}.app .ledger-v3-grid :is(th,td):first-child{position:sticky;left:0;z-index:1;min-width:96px;max-width:128px;overflow:hidden;text-overflow:ellipsis;text-align:left}.app .ledger-v3-grid thead th{padding-block:0;background:var(--surface2);color:var(--fg-secondary);font-size:12px;font-weight:600}.app .ledger-v3-grid thead th:first-child{padding-block:10px}.app .ledger-v3-grid thead th.cur{color:var(--accent)}.app .ledger-v3-grid thead th>button:first-child{display:inline-flex;align-items:center;justify-content:flex-end;gap:3px;width:100%;min-height:38px;padding:0;border:0;background:none;color:inherit;font:inherit}.app .ledger-v3-grid thead th svg{width:12px;height:12px}.app .ledger-v3-grid .month-delete-btn{display:block;margin:0 0 6px auto;padding:0;border:0;background:none;color:var(--financial-debt);font-size:11px}.app .ledger-v3-grid .ledger-v3-group :is(th,td){background:color-mix(in srgb,var(--surface2) 45%,var(--surface));font-weight:600}.app .ledger-v3-grid .ledger-v3-group th button{display:inline-flex;align-items:center;gap:2px;min-height:24px;padding:0;border:0;background:none;color:inherit;font:inherit}.app .ledger-v3-grid .ledger-v3-group th button:disabled{opacity:1}.app .ledger-v3-grid .ledger-v3-group th svg{flex:none;width:13px;height:13px;color:var(--muted)}.app .ledger-v3-grid .ledger-v3-child th{padding-left:24px;color:var(--fg-secondary)}.app .ledger-v3-grid .ledger-v3-subtotal :is(th,td){border-top:1px solid var(--border);font-weight:600}.app .ledger-v3-grid :is(.ledger-v3-group,.ledger-v3-subtotal).debt :is(th,td){color:var(--financial-debt)}.app .ledger-v3-grid .ledger-v3-pair :is(th,td){color:var(--fg-secondary);font-size:12px}.app .ledger-v3-grid .ledger-v3-total :is(th,td){border-top:1px solid color-mix(in srgb,var(--accent) 25%,transparent);background:var(--accent-dim);color:var(--accent);font-weight:700}.app .ledger-v3-grid .ledger-v3-rate :is(th,td){color:var(--fg-secondary);font-size:12px}.app .ledger-v3-grid td.is-zero{color:color-mix(in srgb,var(--muted) 70%,transparent)}.ledger-delta{display:block;font-size:10px;font-weight:500;line-height:1.2}.ledger-delta.good{color:var(--accent)}.ledger-delta.bad{color:var(--financial-debt)}.app .ledger-v3-grid .inline-metric-input{width:96px;min-height:36px;font-size:16px;text-align:right}.ledger-v3-scrollbar{position:relative;height:4px;margin:8px 10px 4px;border-radius:4px;background:var(--surface2)}.ledger-v3-scrollbar i{position:absolute;top:0;bottom:0;border-radius:inherit;background:color-mix(in srgb,var(--accent) 35%,transparent)}.ledger-v3-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:32px;padding:0 6px 4px 10px;font-size:11px;color:var(--muted)}.ledger-v3-pager{display:inline-flex}.ledger-v3-pager button{display:grid;place-items:center;width:30px;height:30px;padding:0;border:0;background:none;color:var(--fg-secondary)}.ledger-v3-pager button:disabled{opacity:.3}.app .ledger-v3-foot select{min-height:28px;font-size:12px}.ledger-v3-actions{display:flex;flex-wrap:wrap;align-items:center;gap:2px 14px;font-size:12px;color:var(--muted)}.app .ledger-v3-actions button{min-height:32px;padding:0;border:0;background:none;color:var(--accent);font-size:13px;font-weight:500}.app .ledger-v3-actions button.active{font-weight:700}.app .ledger-v3-actions button:disabled{opacity:.4}.ledger-v3-actions>span{margin-left:auto}.agent-launcher{position:fixed;z-index:35;right:max(20px,calc((100vw - 900px)/2 + 20px));bottom:calc(var(--bottom-nav-height, 57px) + env(safe-area-inset-bottom,0px) + 20px);display:grid;place-items:center;width:54px;height:54px;padding:0;border:0;border-radius:50%;color:var(--on-accent);background:var(--accent);box-shadow:var(--shadow-md);cursor:pointer;transition:transform .16s ease,background .16s ease}.agent-launcher[hidden]{display:none}.agent-launcher:hover{background:var(--accent-bright);transform:translateY(-2px)}.agent-panel{position:fixed;z-index:70;inset:0 0 0 auto;width:400px;height:100dvh;display:flex;flex-direction:column;min-height:0;color:var(--fg);background:var(--surface);border-left:1px solid var(--border);font:15px/1.65 var(--font-body);outline:none;overflow:hidden}.agent-panel *,.agent-panel *:before,.agent-panel *:after{box-sizing:border-box}.agent-panel button{font-family:inherit;cursor:pointer}.agent-panel button:disabled{cursor:not-allowed;opacity:.5}.agent-header{display:flex;flex-shrink:0;align-items:center;gap:8px;min-height:68px;padding:max(12px,env(safe-area-inset-top)) 16px 8px 22px}.agent-header h2{margin:0;flex:1;font:650 18px/1.3 var(--font-body);letter-spacing:-.02em}.agent-header>div{display:flex;gap:0}.agent-header .ui-button{width:36px;min-width:36px;height:40px;padding:0}.agent-header .agent-back{display:none}.agent-identity{align-self:flex-start;padding:5px 10px;border-radius:7px;background:var(--surface2);display:flex;align-items:center;gap:6px;margin:0 22px 12px;color:var(--muted);font-size:12px}.agent-identity strong{color:var(--fg);font-weight:500}.agent-identity>span{display:none}.agent-messages{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:16px 20px 20px;scroll-behavior:smooth}.agent-welcome{padding:48px 0 20px}.agent-welcome-icon{color:var(--accent);margin-bottom:22px}.agent-welcome h3{font-size:21px;font-weight:550;line-height:1.5;margin:0 0 12px;letter-spacing:-.025em}.agent-welcome>p{color:var(--muted);font-size:14px;line-height:1.85;margin:0 0 32px}.agent-welcome>div:last-child{border-top:1px solid var(--border-subtle)}.agent-welcome button{display:flex;gap:10px;align-items:center;width:100%;min-height:55px;border:0;border-bottom:1px solid var(--border-subtle);background:transparent;color:var(--fg-secondary);text-align:left;padding:10px 0;font-size:13px}.agent-welcome button span{flex:1}.agent-welcome button:hover{color:var(--accent)}.agent-message{display:flex;align-items:flex-start;gap:9px;margin:0 0 20px;min-width:0}.agent-message-body{min-width:0;flex:1}.agent-message-user{justify-content:flex-end;padding-left:34px}.agent-message-user .agent-message-body{flex:0 1 auto;max-width:100%}.agent-bubble{overflow-wrap:anywhere}.agent-bubble p{margin:0 0 10px}.agent-bubble p:last-child{margin-bottom:0}.agent-bubble ul,.agent-bubble ol{padding-left:22px}.agent-bubble pre{white-space:pre-wrap}.agent-message-user .agent-bubble{background:var(--accent-dim);border-radius:12px 12px 3px;padding:12px 14px}.agent-message-assistant .agent-bubble{display:inline-block;padding:10px 12px;border-radius:10px;background:var(--surface2);max-width:100%}.agent-avatar{width:28px;height:28px;flex:0 0 28px;border-radius:50%;background:var(--accent);color:var(--on-accent);display:grid;place-items:center;margin-top:3px}.agent-message time{display:block;font-size:11px;color:var(--muted);margin-top:7px}.agent-message-user time{text-align:right}.agent-proposal{border:1px solid var(--border);border-radius:10px;padding:16px;margin-top:18px;background:var(--surface)}.agent-proposal h3{display:flex;flex-wrap:wrap;align-items:center;margin:0 0 12px;font-size:16px;line-height:1.5;font-weight:650}.agent-proposal h3>span{color:var(--fg-secondary);font-weight:450}.agent-proposal h3>svg{margin-left:auto;color:var(--accent)}.agent-proposal h4{margin:12px 0 4px;font-size:13px}.agent-action-fields>label{display:grid;grid-template-columns:48px minmax(0,1fr);gap:12px;padding:10px 0;border-top:1px solid var(--border-subtle);align-items:baseline}.agent-action-fields>label>span:first-child{color:var(--muted);font-size:14px}.agent-action-fields>label>span:last-child,.agent-action-fields strong{font-size:14px;font-weight:400;overflow-wrap:anywhere;white-space:pre-wrap}.agent-action-fields :is(input,select,textarea){border:1px solid var(--border);border-radius:5px;padding:7px;background:var(--surface);color:var(--fg);font:inherit;min-width:0;width:100%}.agent-action-fields textarea{resize:vertical}.agent-proposal-actions{padding-top:12px}.agent-proposal-actions>.ui-button{width:100%;border-radius:6px;font-size:13px;min-height:42px}.agent-proposal-actions>div{display:flex;justify-content:center;padding-top:4px}.agent-proposal-actions .ui-button-ghost{color:var(--accent);font-size:12px;min-height:38px}.agent-proposal-processed{background:var(--surface2)}.agent-proposal-processed .agent-action-fields{font-size:12px}.agent-composer{padding:12px 16px max(18px,env(safe-area-inset-bottom));flex-shrink:0;background:var(--surface);border-top:1px solid var(--border-subtle)}.agent-composer-row{display:flex;align-items:flex-end;gap:6px}.agent-composer-row .ui-button{flex:0 0 40px;min-width:40px;width:40px;height:40px;min-height:40px;padding:0}.agent-composer-row textarea{display:block;flex:1;min-width:0;min-height:42px;max-height:120px;padding:11px 12px;border:1px solid var(--border);border-radius:22px;font:13px/1.5 var(--font-body);color:var(--fg);background:var(--surface);resize:none}.agent-composer-row textarea::placeholder{color:var(--muted);font-size:12px}.agent-composer-row .agent-send{border-radius:50%}.agent-images{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.agent-images img{display:block;width:80px;height:80px;object-fit:cover;border-radius:6px}.agent-image-drafts{display:flex;gap:10px;margin:0 0 12px}.agent-image-drafts>div{position:relative}.agent-image-drafts img{width:52px;height:52px;border-radius:6px;object-fit:cover}.agent-image-drafts button{position:absolute;top:-7px;right:-7px;border:1px solid var(--border);border-radius:50%;background:var(--surface);color:var(--fg);display:grid;place-items:center;width:24px;height:24px}.agent-muted,.agent-status{color:var(--muted);font-size:12px}.agent-status{margin:7px 0}.agent-error{color:var(--danger);font-size:12px}.agent-notice{display:flex;gap:8px;align-items:center;padding:10px 18px;background:var(--danger-dim);color:var(--danger);font-size:12px}.agent-notice span{flex:1}.agent-notice button{color:inherit;background:transparent;border:0;padding:8px}.agent-setup{display:flex;gap:5px;flex-wrap:wrap;align-items:center;padding:12px 20px;background:var(--surface2);font-size:12px;color:var(--muted)}.agent-setup strong{display:block;width:100%;font-size:13px;color:var(--fg-secondary)}.agent-setup button{border:0;padding:5px 0;color:var(--accent);background:transparent;margin-left:auto}.agent-history,.agent-source-detail{flex:1;overflow:auto;padding:16px 22px}.agent-history h3{font-size:16px;font-weight:500}.agent-history>button,.agent-sources button{display:flex;gap:12px;align-items:center;width:100%;text-align:left;padding:14px 0;border:0;border-bottom:1px solid var(--border-subtle);color:var(--fg);background:transparent;font-size:13px}.agent-history button span,.agent-sources button span{flex:1}.agent-history small,.agent-sources small{display:block;font-size:11px;color:var(--muted);margin-top:4px}.agent-sources{margin-top:12px;color:var(--muted);font-size:12px}.agent-sources summary{cursor:pointer}.agent-saved-link{display:flex;align-items:center;border:0;background:transparent;color:var(--accent);padding:8px 0;font-size:12px}.agent-eyebrow{color:var(--muted);font-size:12px;margin-top:20px}.agent-source-detail h3{font-size:18px;font-weight:550}.agent-source-detail dl>div{padding:10px 0;border-bottom:1px solid var(--border-subtle)}.agent-source-detail dt{font-size:12px;color:var(--muted)}.agent-source-detail dd{margin:5px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}.agent-source-detail a{display:inline-flex;align-items:center;gap:5px;color:var(--accent);padding:10px 0}.agent-source-detail audio{max-width:100%}@media(min-width:1000px){body.agent-is-open{padding-right:400px}body.agent-is-open .app{max-width:min(900px,calc(100vw - 400px))}body.agent-is-open .bottom-nav{left:0;right:400px;margin-inline:auto;transform:none;width:calc(100vw - 400px);max-width:var(--app-max-width, 720px)}}@media(max-width:999px){.agent-panel{width:100%;border:0;z-index:90}.agent-header{padding-inline:12px;min-height:62px}.agent-header h2{text-align:center;font-size:18px}.agent-header .agent-back{display:inline-flex}.agent-header .agent-close{display:none}.agent-identity{align-self:center;justify-content:center;margin:2px 20px 18px}.agent-identity>span{display:none}.agent-messages{padding:16px 20px 20px}.agent-welcome{padding-top:60px;max-width:430px;margin:0 auto}.agent-proposal{padding:16px}.agent-action-fields>label{padding-block:10px}.agent-composer-row textarea{font-size:16px}.agent-panel .ui-button{min-height:44px}.agent-panel .agent-proposal-actions>.ui-button{min-height:44px}}@media(prefers-reduced-motion:reduce){.agent-launcher{transition:none}.agent-messages{scroll-behavior:auto}}.agent-message-assistant .agent-proposal{margin-left:-37px;width:calc(100% + 37px)}.agent-settings-form{display:flex;flex-direction:column;gap:16px;padding:4px 0 8px}.agent-settings-intro{margin:0;color:var(--fg-secondary);font-size:14px;line-height:1.7}.agent-settings-form fieldset{border:0;margin:0;padding:0;min-width:0;display:flex;flex-direction:column;gap:8px}.agent-settings-form fieldset>label{margin-top:12px;font-size:14px;font-weight:550;display:flex;align-items:center;gap:10px}.agent-settings-form fieldset>label>span:not(:only-child){margin-left:auto;font-size:12px;font-weight:400;color:var(--muted)}.agent-settings-form fieldset>input{width:100%;min-height:44px;border:1px solid var(--border);background:var(--surface);color:var(--fg);padding:10px 12px;border-radius:8px;font:16px/1.5 var(--font-body);box-sizing:border-box}.agent-settings-form small,.agent-settings-footnote{font-size:12px;line-height:1.65;color:var(--muted);overflow-wrap:anywhere}.agent-settings-footnote{margin:0}.agent-settings-form .agent-config-toggle{align-items:flex-start;margin-top:18px;min-height:44px}.agent-settings-form .agent-config-toggle input{accent-color:var(--accent);width:18px;height:18px;margin:3px 0 0}.agent-settings-form fieldset>label.agent-config-toggle>span{margin:0;font-size:14px;color:var(--fg)}.agent-config-toggle small{display:block;font-weight:400;margin-top:3px}.agent-config-clear{align-self:flex-start;border:0;background:transparent;color:var(--fg-secondary);padding:8px 0;min-height:36px;cursor:pointer;font-size:12px}.agent-config-clear:disabled{opacity:.5;cursor:not-allowed}.agent-config-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px}.agent-config-actions .ui-button{min-height:44px}.agent-config-notice{display:flex;align-items:flex-start;gap:8px;color:var(--accent);font-size:13px;margin:0}.agent-config-notice svg{flex-shrink:0;margin-top:3px}.agent-setup a{color:var(--accent);padding:6px 0}.agent-config-spinner{animation:agent-spin 1s linear infinite}@keyframes agent-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.agent-config-spinner{animation:none}}@media(max-width:640px){.sheet.agent-settings-sheet{max-height:95dvh}}html{scroll-behavior:smooth;overscroll-behavior:none}body{background:var(--bg);color:var(--fg);font:16px/1.65 var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;overscroll-behavior-y:none;-webkit-tap-highlight-color:transparent}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#7e808659;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#61636980}::selection{background:#14874e2e;color:var(--fg)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}:focus:not(:focus-visible){outline:none}
