:root{--bg: #fbfbfa;--panel: #ffffff;--raised: #f4f4f2;--ink: #14140f;--muted: #6f6f68;--faint: #a3a39c;--line: #e6e6e1;--line-soft: #f0f0ec;--accent: #1d4ed8;--accent-ink: #ffffff;--accent-soft: #eaeffc;--pos: #0f7b4f;--neg: #c2352b;--warn: #b4690e;--info: #2563eb;--r: 6px;--r-sm: 4px;--r-lg: 10px;--sans: "Nunito Variable", "Noto Sans SC", ui-sans-serif, -apple-system, "PingFang SC", "Microsoft YaHei", sans-serif;--mono: "Nunito Variable", ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace;--ease: cubic-bezier(.22, .7, .2, 1);--fast: .16s var(--ease);--slow: .34s var(--ease);--pad: 20px;--gap: 14px}html{color-scheme:light dark}body{background:var(--bg);color:var(--ink);font:14px/1.55 var(--sans);font-feature-settings:"cv11","ss01";-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3{font-weight:560;letter-spacing:-.015em;line-height:1.25}h1{font-size:16px}h2{font-size:14px}.eyebrow{font-size:10.5px;font-weight:500;letter-spacing:.09em;text-transform:uppercase;color:var(--faint)}.num,.kpi-val,td.n,th.n{font-family:var(--mono);font-variant-numeric:tabular-nums;font-feature-settings:"tnum","zero"}.dim{color:var(--muted)}.faint{color:var(--faint)}.pos{color:var(--pos)}.neg{color:var(--neg)}.warn{color:var(--warn)}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--r)}.panel-head{display:flex;align-items:center;gap:10px;padding:12px var(--pad);border-bottom:1px solid var(--line-soft);min-height:44px}.panel-head h2{font-size:13px;font-weight:550}.panel-head .spacer{flex:1}.panel-body{padding:var(--pad)}.btn{font:inherit;font-size:12.5px;font-weight:500;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:var(--r-sm);padding:5px 11px;cursor:pointer;transition:background var(--fast),border-color var(--fast),color var(--fast);white-space:nowrap}.btn:hover{background:var(--raised);border-color:var(--faint)}.btn:active{transform:translateY(.5px)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.primary:hover{filter:brightness(1.08)}.btn:focus-visible,.seg>*:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.seg{position:relative;display:inline-flex;background:var(--raised);border:1px solid var(--line);border-radius:var(--r-sm);padding:2px;gap:2px}.seg>*{position:relative;z-index:1;font:inherit;font-size:12px;font-weight:500;color:var(--muted);background:none;border:0;border-radius:3px;padding:4px 10px;cursor:pointer;transition:color var(--fast)}.seg>*.on{color:var(--ink)}.seg>*:hover{color:var(--ink)}.seg .pill{position:absolute;z-index:0;top:2px;bottom:2px;background:var(--panel);border-radius:3px;box-shadow:0 0 0 1px var(--line);transition:transform var(--slow),width var(--slow);pointer-events:none}select,input[type=text],input[type=search],input[type=number],input[type=date]{font:inherit;font-size:12.5px;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:var(--r-sm);padding:5px 9px;outline:none;transition:border-color var(--fast)}select:hover,input:hover{border-color:var(--faint)}select{cursor:pointer}.chip{font-size:11px;font-weight:500;color:var(--muted);background:var(--raised);border:1px solid var(--line);border-radius:99px;padding:2px 9px;cursor:pointer;transition:all var(--fast)}.chip.on{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.tag{font-size:10.5px;font-weight:500;font-family:var(--mono);border-radius:3px;padding:1.5px 6px;border:1px solid currentColor;opacity:.9}table{width:100%;border-collapse:collapse;font-size:12.5px}thead th{position:sticky;top:0;z-index:2;background:var(--panel);text-align:left;font-size:10.5px;font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:var(--faint);padding:9px var(--pad);border-bottom:1px solid var(--line);white-space:nowrap;-webkit-user-select:none;user-select:none}thead th.sortable{cursor:pointer}thead th.sortable:hover{color:var(--ink)}thead th .caret{opacity:0;margin-left:4px;transition:opacity var(--fast)}thead th[data-dir] .caret{opacity:1;color:var(--accent)}tbody td{padding:9px var(--pad);border-bottom:1px solid var(--line-soft)}tbody tr{transition:background var(--fast)}tbody tr:hover{background:var(--raised)}tbody tr:last-child td{border-bottom:0}td.n,th.n{text-align:right}[data-reveal]{opacity:0;transform:translateY(6px)}[data-reveal].in{opacity:1;transform:none;transition:opacity .42s var(--ease) calc(var(--i, 0) * 28ms),transform .42s var(--ease) calc(var(--i, 0) * 28ms)}@keyframes kit-pulse{0%{opacity:1}50%{opacity:.25}to{opacity:1}}.live-dot{width:6px;height:6px;border-radius:50%;background:var(--pos);animation:kit-pulse 2.2s var(--ease) infinite}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}[data-reveal]{opacity:1;transform:none}}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--line);border-radius:99px;border:3px solid var(--bg)}::-webkit-scrollbar-thumb:hover{background:var(--faint)}::-webkit-scrollbar-track{background:transparent}.kit-theme{width:30px;height:30px;display:grid;place-items:center;background:none;border:1px solid transparent;border-radius:var(--r-sm);color:var(--muted);cursor:pointer;flex:none;transition:color var(--fast),background var(--fast),border-color var(--fast)}.kit-theme:hover{color:var(--ink);background:var(--raised)}.kit-theme svg{width:15px;height:15px}.kit-theme-float{position:fixed;right:16px;bottom:16px;z-index:9998;width:34px;height:34px;background:var(--panel);border-color:var(--line)}.kit-theme-float:hover{background:var(--raised)}@font-face{font-family:Nunito Variable;font-style:normal;font-weight:200 1000;font-display:swap;src:url(/assets/fonts/nunito-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito Variable;font-style:normal;font-weight:200 1000;font-display:swap;src:url(/assets/fonts/nunito-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Noto Sans SC;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/fonts/noto-sans-sc.woff2) format("woff2")}:root{color-scheme:light;--bg: #f6f6f7;--panel: #ffffff;--raised: #f0f0f1;--ink: #17171a;--muted: rgba(23, 23, 26, .72);--faint: rgba(23, 23, 26, .64);--hair: rgba(23, 23, 26, .14);--hair-soft: rgba(23, 23, 26, .08);--wash: rgba(23, 23, 26, .04);--accent: #7c6bd6;--accent-text: #6a57c9;--accent-solid: #6a57c9;--accent-ink: #ffffff;--accent-wash: rgba(124, 107, 214, .1);--tone-lilac-bg: rgba(124, 107, 214, .16);--tone-lilac-ink: #574899;--tone-neutral-bg: rgba(23, 23, 26, .08);--tone-neutral-ink: rgba(23, 23, 26, .72);--r-xs: 4px;--r-sm: 8px;--r-md: 10px;--r-lg: 12px;--r-xl: 16px;--r-full: 999px;--material: rgba(255, 255, 255, .74);--lift: 0 1px 2px rgba(23, 23, 26, .05), 0 8px 24px rgba(23, 23, 26, .06);--lift-sm: 0 1px 2px rgba(23, 23, 26, .06);--rule: 1px solid var(--hair-soft);--sans: "Nunito Variable", "Noto Sans SC", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--mono: "Nunito Variable", "Noto Sans SC", ui-rounded, "SF Pro Rounded", -apple-system, "Segoe UI", Roboto, sans-serif;--ease: cubic-bezier(.22, .7, .2, 1);--fast: .16s var(--ease);--slow: .32s var(--ease);--shell-pad: 28px;--side-w: 232px}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}html,body{overflow:hidden}body{background:var(--bg);color:var(--ink);font:14px/1.6 var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,input,textarea,select{font:inherit;color:inherit}button{background:none;border:0;cursor:pointer;-webkit-tap-highlight-color:transparent}img{display:block;max-width:100%}h1,h2,h3,h4{font-weight:560;letter-spacing:-.015em;line-height:1.28}h1{font-size:19px}h2{font-size:15px}h3{font-size:13.5px}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-xs)}.figure{font-family:var(--mono);font-variant-numeric:tabular-nums;font-feature-settings:"tnum";font-weight:600}.measure{color:var(--muted);font-weight:500}.measure b{font-weight:inherit;color:inherit}.measure>span{font-size:11px;font-weight:500}.quiet{color:var(--muted)}.hushed{color:var(--faint)}.label{font-size:10.5px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}.shell{display:grid;grid-template-columns:var(--side-w) 1fr;height:100%;overflow:hidden}.sidenav{display:flex;flex-direction:column;min-height:0;overflow-y:auto;gap:22px;padding:26px 18px;border-right:1px solid var(--hair);background:var(--panel)}.brandmark{display:flex;align-items:center;gap:10px}.brandmark .mark{width:34px;height:34px;border-radius:var(--r-md);object-fit:contain}.brandmark .wordmark{font-size:14.5px;font-weight:580;letter-spacing:-.02em}.navlist{display:flex;flex-direction:column;gap:2px}.navlist button{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:var(--r-md);color:var(--muted);font-size:14px;font-weight:500;letter-spacing:-.008em;transition:background var(--fast),color var(--fast)}.navlist button:hover{background:var(--wash);color:var(--ink)}.navlist button.on{background:var(--accent-wash);color:var(--accent-text);font-weight:580}.navlist svg{width:19px;height:19px;flex:none}.sidefoot{margin-top:auto;display:grid;gap:12px}.babycard{display:grid;gap:8px;padding:13px 14px;border-radius:var(--r-md);background:var(--raised)}.babycard.spotcard{position:relative;overflow:hidden}.babycard.spotcard>.cardspot{width:62px;right:-12px;top:-12px;opacity:.3}.babycard.spotcard>*:not(.cardspot){position:relative;z-index:1}.babycard .row{display:flex;align-items:center;gap:10px}.babycard .name{font-size:13.5px;font-weight:550}.babycard .age{font-size:11.5px;color:var(--muted)}.avatar{display:grid;place-items:center;flex:none;border-radius:var(--r-full);font-size:12px;font-weight:560;letter-spacing:.02em;background:var(--wash);color:var(--ink);width:32px;height:32px}.avatar{overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover}.avatar.sz-sm{width:24px;height:24px;font-size:10.5px}.avatar.sz-lg{width:42px;height:42px;font-size:14px}.avatar.avatar-dashed{background:transparent;border:1.5px dashed var(--accent-text);color:var(--accent-text)}.avatar.avatar-dashed svg{width:15px;height:15px}.birthfields{display:flex;gap:6px;flex:1;flex-wrap:wrap}.birthfield select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:9px 10px;border:none;border-radius:var(--r-md);background:var(--wash);color:var(--ink);font:inherit;font-size:13.5px;cursor:pointer}.birthfield select:disabled{opacity:.45;cursor:default}.avatar.tone-lilac{background:var(--tone-lilac-bg);color:var(--tone-lilac-ink)}.avatar.tone-slate,.avatar.tone-clay,.avatar.tone-sage{background:var(--tone-neutral-bg);color:var(--tone-neutral-ink)}.work{display:flex;flex-direction:column;min-width:0;min-height:0;height:100%}.workbar{display:flex;align-items:center;gap:12px;padding:0 var(--shell-pad);min-height:64px;border-bottom:1px solid var(--hair);background:#f6f6f7c7;backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);position:sticky;top:0;z-index:12}.workbar .grows{flex:1;min-width:0}.workbar h1{font-size:17px}.workbar .caption{font-size:12px;color:var(--faint);margin-top:1px}.identity{position:relative}.identity>button{display:flex;align-items:center;gap:9px;padding:5px 12px 5px 5px;border-radius:var(--r-full);border:1px solid var(--hair-soft);background:var(--panel);font-size:13px;box-shadow:var(--lift-sm);transition:border-color var(--fast),background var(--fast),transform var(--fast)}.identity>button:hover{border-color:var(--faint)}.identity .who{display:grid;text-align:left;line-height:1.25}.identity .who .nm{font-weight:540}.identity .who .rl{font-size:10.5px;color:var(--faint)}.identity svg.caret{width:13px;height:13px;color:var(--faint)}.work{position:relative;isolation:isolate}.work>.viewbg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;object-position:center;opacity:.34;z-index:0;pointer-events:none}.work>.viewbg.dense{opacity:.18}.work>.workbar,.work>.scrollarea{position:relative;z-index:1}.work>.identityfab{z-index:33}@media(prefers-reduced-motion:no-preference){.work>.viewbg{animation:bgfade .5s ease both}.work>.viewbg.dense{animation-name:bgfadealbum}}@keyframes bgfade{0%{opacity:0}to{opacity:.34}}@keyframes bgfadealbum{0%{opacity:0}to{opacity:.18}}[data-theme=dark] .work>.viewbg,[data-theme=dark] .work>.viewbg.dense{opacity:.14}@keyframes bgfadedark{0%{opacity:0}to{opacity:.14}}@media(prefers-reduced-motion:no-preference){[data-theme=dark] .work>.viewbg,[data-theme=dark] .work>.viewbg.dense{animation-name:bgfadedark}}.scrollarea{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:24px var(--shell-pad) 96px}.view{display:grid;gap:18px;max-width:1180px;margin:0 auto}.card{background:var(--panel);border-radius:var(--r-lg);box-shadow:0 0 0 1px var(--hair-soft)}.card-head{display:flex;align-items:center;gap:10px;padding:16px 20px 12px}.card-head+*{position:relative}.card-head:after{content:"";position:absolute;left:20px;right:20px;height:1px;background:var(--hair-soft);transform:translateY(12px)}.card-head .grows{flex:1;min-width:0}.card-body{padding:18px 20px 20px}.plainblock{position:relative;overflow:hidden;border-radius:var(--r-xl)}.demonote{margin:-4px 2px 16px;font-size:12.5px;line-height:1.6;color:var(--faint)}.blockhead{display:flex;align-items:center;gap:10px;padding:2px 2px 12px}.blockhead .grows{flex:1;min-width:0}.blockhead+*{position:relative}.blockhead:after{content:"";position:absolute;left:2px;right:2px;bottom:0;height:1px;background:var(--hair)}.blockbody{padding:16px 2px 4px}.action{display:inline-flex;align-items:center;gap:6px;padding:8px 15px;border-radius:var(--r-lg);border:1px solid var(--hair);background:var(--panel);font-size:13px;font-weight:560;letter-spacing:-.005em;white-space:nowrap;transition:background var(--fast),border-color var(--fast),color var(--fast),transform var(--fast)}.action:hover{background:var(--wash);border-color:var(--faint)}.action.lead{background:var(--accent-solid);border-color:transparent;color:var(--accent-ink);box-shadow:0 1px 2px #7c6bd64d}.action.lead:hover{filter:brightness(1.07);background:var(--accent-solid)}.action.plain{border-color:transparent}.action.risky:hover{color:#b4463c;border-color:#b4463c66}.action svg{width:15px;height:15px}.action.wide{padding:10px 18px;font-size:13.5px}.action[disabled]{opacity:.45;cursor:not-allowed}.iconbtn{width:32px;height:32px;display:grid;place-items:center;border-radius:var(--r-md);color:var(--muted);transition:background var(--fast),color var(--fast)}.iconbtn:hover{background:var(--wash);color:var(--ink)}.iconbtn svg{width:16px;height:16px}.pillrow{display:flex;flex-wrap:wrap;gap:6px}.pill{padding:7px 14px;border-radius:var(--r-full);border:1px solid transparent;background:var(--raised);font-size:12.5px;font-weight:500;color:var(--muted);transition:all var(--fast)}.pill:hover{background:var(--wash);color:var(--ink)}.pill.on{background:var(--accent-solid);color:var(--accent-ink);font-weight:560}.blank{display:grid;gap:6px;justify-items:center;padding:34px 18px;text-align:center;color:var(--faint);font-size:12.5px}.todaygrid{display:grid;grid-template-columns:1.15fr .85fr;gap:18px;align-items:start}.hero{position:relative;display:grid;gap:10px;padding:0;background:none;box-shadow:none}.hero .heroline{display:flex;align-items:center;gap:12px}.hero .heroname{font-size:20px;font-weight:620;letter-spacing:-.026em}.hero .herometa{font-size:12px;color:var(--muted);margin-top:1px}.hero .portrait{width:52px;height:52px;flex:none;border-radius:var(--r-full);overflow:hidden;background:var(--raised);display:grid;place-items:center}.hero .portrait img{width:100%;height:100%;min-height:0;object-fit:cover;object-position:50% 34%}.statrow{display:grid;grid-template-columns:repeat(4,1fr);background:none}.statcell{display:grid;gap:1px;padding:2px 14px 2px 0;position:relative}.statcell+.statcell{padding-left:14px}.statcell+.statcell:before{content:"";position:absolute;left:0;top:15%;bottom:15%;width:1px;background:var(--hair)}.statcell .k{font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.statcell .v{font-size:16px;font-weight:700;letter-spacing:-.02em;line-height:1.25;white-space:nowrap}.statcell .v .measure{font-size:inherit;font-weight:inherit}.statcell .v .measure b{color:var(--accent-text)}.statcell .v small{font-size:11px;font-weight:500;color:var(--muted);margin-left:3px}.timerpanel{display:grid;gap:16px;padding:20px;border-radius:var(--r-xl);background:var(--panel);box-shadow:0 0 0 1px var(--hair-soft)}.timerpanel.running{box-shadow:0 0 0 1px #7c6bd652;background:linear-gradient(180deg,var(--accent-wash),var(--panel) 62%)}.timerhead{display:flex;align-items:center;gap:10px}.timerhead .grows{flex:1}.clockface{display:flex;flex-direction:column;align-items:center;gap:4px;padding:2px 0}.clockface .digits{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:42px;font-weight:560;letter-spacing:-.035em;line-height:1}.clockface .since{font-size:12px;line-height:1.6;min-height:1.6em;color:var(--muted)}.timeractions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.dayline{display:grid;gap:0}.entry{display:grid;grid-template-columns:46px 30px minmax(0,1fr) auto;gap:10px;align-items:center;width:100%;padding:8px 20px;text-align:left;border-bottom:1px solid var(--hair-soft);transition:background var(--fast),transform var(--release)}.entry:last-child{border-bottom:0}.entry:hover{background:var(--wash)}.entry .when{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:12.5px;color:var(--muted)}.entry .what{min-width:0}.entry .what{display:flex;align-items:baseline;gap:8px;min-width:0}.entry .what .nm{font-size:13.5px;font-weight:540;letter-spacing:-.008em;flex:none}.entry .what .dt{font-size:12px;color:var(--muted);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.glyphdot{width:30px;height:30px;display:grid;place-items:center;border-radius:var(--r-full);background:var(--raised);color:var(--ink);flex:none}.glyphdot svg{width:16px;height:16px}.glyphdot.lead{background:var(--accent-wash);color:var(--accent-text)}.glyphdot.sz-lg{width:44px;height:44px}.glyphdot.sz-lg svg{width:21px;height:21px}.tallyrow{display:grid;grid-template-columns:repeat(var(--cols, 2),minmax(0,1fr));gap:10px}.tally{display:grid;gap:1px;padding:8px 10px;border-radius:var(--r-sm);background:var(--wash)}.tally .k{font-size:10.5px;color:var(--faint);line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tally .v{font-size:16px;font-weight:700;letter-spacing:-.02em;line-height:1.3}.tally .v .measure{font-size:inherit;font-weight:inherit}.tally .v .measure b{color:var(--accent-text)}.sleepweek{touch-action:pan-y;display:grid;grid-template-columns:30px minmax(0,1fr);grid-template-rows:auto 84px auto;column-gap:8px;row-gap:5px}.swaxis{grid-column:1;grid-row:2;position:relative}.swtick{position:absolute;right:0;transform:translateY(50%);display:flex;align-items:baseline;gap:1px;font-size:10px;color:var(--faint);line-height:1}.swtick small{font-size:8.5px;color:var(--faint)}.swvals,.swdays,.swcols{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.swvals{grid-column:2;grid-row:1}.swval{display:flex;align-items:baseline;justify-content:center;gap:1px;font-size:11px;font-weight:640;color:var(--muted);line-height:1.2;min-height:13px}.swval.now{color:var(--accent-text)}.swval small{font-size:8.5px;font-weight:500}.swplot{grid-column:2;grid-row:2;position:relative}.swline{position:absolute;left:0;right:0;height:1px;background:var(--hair-soft)}.swcols{position:absolute;top:0;right:0;bottom:0;left:0;align-items:end}.swcol{display:flex;justify-content:center;align-items:flex-end;height:100%;padding:0;background:none;border-radius:var(--r-xs);cursor:pointer;transition:background var(--fast)}.swcol:disabled{cursor:default}.swcol:not(:disabled):hover{background:var(--wash)}.swstem{width:100%;max-width:22px;border-radius:var(--r-xs);background:var(--wash)}.swstem.now{background:var(--accent)}.swdays{grid-column:2;grid-row:3}.swdays span{text-align:center;font-size:10.5px;color:var(--faint)}.swdays span.now{font-weight:640}.monthblock{display:grid;gap:12px}.monthhead{display:flex;align-items:baseline;gap:10px}.monthhead .mon{font-size:15px;font-weight:560;letter-spacing:-.01em}.monthhead .cnt{font-size:12px;color:var(--faint)}.monthhead .rule{flex:1;height:1px;background:var(--hair)}.frames{display:grid;grid-template-columns:repeat(auto-fill,minmax(196px,1fr));gap:14px}.frame{display:grid;gap:0;overflow:hidden;text-align:left;border-radius:var(--r-md);background:none;transition:transform var(--release)}.frame .shot{border-radius:var(--r-md)}.frame:hover{transform:translateY(-2px)}.frame:hover .shot{box-shadow:0 6px 18px #17171a1f}.frame .shot{aspect-ratio:4 / 5;background:var(--raised);position:relative;overflow:hidden}.frame .shot img{width:100%;height:100%;min-height:0;object-fit:cover;object-position:50% 34%}.frame .foot{display:grid;gap:3px;padding:9px 2px 4px}.frame .foot .cap{font-size:12.5px;font-weight:520;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.frame .foot .meta{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--faint)}.placeholder{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;gap:8px;align-content:center;justify-items:center;padding:16px;text-align:center;color:var(--faint);background:repeating-linear-gradient(45deg,var(--wash) 0 8px,transparent 8px 16px),var(--raised)}.placeholder .tagline{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase}.placeholder svg{width:22px;height:22px}.agestamp{position:absolute;left:8px;top:8px;padding:3px 8px;border-radius:var(--r-full);background:#ffffffe0;font-size:10.5px;font-weight:520;color:var(--ink);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.memberlist{display:grid;gap:0}.memberrow{display:grid;grid-template-columns:42px 1fr auto;gap:12px;align-items:center;padding:13px 18px;border-bottom:1px solid var(--hair-soft)}.memberrow:last-child{border-bottom:0}.facepick{position:relative;display:inline-flex}.facebtn{position:relative;display:inline-flex;padding:0;border-radius:var(--r-full);overflow:hidden;transition:transform var(--release)}.facebtn:active{transform:scale(.94);transition:transform var(--press)}.faceveil{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:#fff;background:#17171a75;opacity:0;transition:opacity var(--fast)}.faceveil svg{width:15px;height:15px}.facebtn:hover .faceveil,.facebtn:focus-visible .faceveil{opacity:1}.facereset{position:absolute;right:-3px;top:-3px;width:17px;height:17px;display:grid;place-items:center;border-radius:var(--r-full);background:var(--panel);color:var(--muted);box-shadow:0 0 0 1px var(--hair),var(--lift-sm);transition:color var(--fast),transform var(--release)}.facereset:hover{color:var(--ink)}.facereset:active{transform:scale(.88);transition:transform var(--press)}.facereset svg{width:10px;height:10px}@media(hover:none){.faceveil{opacity:.28}}.memberrow .nm{font-size:13.5px;font-weight:540;display:flex;align-items:center;gap:7px}.memberrow .rl{font-size:12px;color:var(--muted)}.badge{padding:2px 7px;border-radius:var(--r-xs);background:var(--accent-wash);color:var(--accent-text);font-size:10.5px;font-weight:530}.contrib{display:grid;gap:12px}.contribrow{display:grid;grid-template-columns:24px 1fr 58px;gap:10px;align-items:center}.contribrow .nm{font-size:12.5px}.contribrow .track{height:6px;border-radius:var(--r-full);background:var(--wash);overflow:hidden}.contribrow .fill{display:block;height:100%;min-width:2px;border-radius:var(--r-full);background:var(--plot-ink);transition:width var(--slow) var(--ease),background var(--fast)}.contribrow.on .fill{background:var(--accent)}.contribrow.on .nm{font-weight:600;color:var(--accent-text)}.contribrow.on .cnt{color:var(--accent-text);font-weight:600}.contribrow .cnt{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:12px;color:var(--muted);text-align:right}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#17171a4d;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fade var(--fast) both}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes riseup{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes slidein{0%{opacity:0;transform:translate(18px)}to{opacity:1;transform:none}}.confirmscrim{z-index:70}.confirmlayer{position:fixed;z-index:71;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));overflow-y:auto;overscroll-behavior:contain;pointer-events:none}.confirmbox{pointer-events:auto;width:min(360px,100%);max-height:100%;overflow-y:auto;padding:20px;display:grid;gap:8px;background:var(--panel);border-radius:var(--r-xl);box-shadow:var(--lift);animation:riseup var(--slow) both}.landing{position:fixed;z-index:90;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));overflow-y:auto;background:var(--bg)}.landingbg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.landingveil{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to bottom,#f6f6f72e,#f6f6f785)}.landingbox{position:relative;display:grid;gap:14px;justify-items:center;text-align:center;max-width:560px;animation:riseup var(--slow) both}.landingmark{width:88px;height:88px;object-fit:contain}.landingbox h1{font-family:Nunito Variable,Noto Sans SC,PingFang SC,sans-serif;font-weight:700;font-size:clamp(44px,9vw,72px);letter-spacing:.04em;color:#2c2c30}.landingsub{font-size:clamp(15px,2.4vw,19px);color:#3d3d42;font-weight:540}.landingcta{margin-top:8px;padding:13px 44px;font-size:15px;border-radius:var(--r-full)}.landingentries{display:flex;gap:28px;margin-top:10px;flex-wrap:wrap;justify-content:center}.landingentry{display:grid;justify-items:center}.landingentry .landingcta{margin-top:0;width:180px;justify-content:center;text-align:center}@media(max-width:560px){.landingentries{flex-direction:column;align-items:center;gap:18px}.landingentry .landingcta{width:min(260px,72vw)}}.onboardbox{text-align:left;max-height:86dvh;overflow-y:auto}.obsection{display:grid;gap:10px}.obsection+.obsection{margin-top:4px;padding-top:12px;border-top:1px solid var(--hair-soft)}.oblabel{font-size:13px;font-weight:600;color:var(--ink)}.brandhome{background:none;border-radius:var(--r-md);padding:6px 8px;margin:-6px -8px;text-align:left;cursor:pointer;transition:background var(--fast)}.brandhome:hover{background:var(--wash)}.homefab{display:none}@media(max-width:860px){.homefab{position:fixed;z-index:33;left:14px;top:calc(12px + env(safe-area-inset-top));display:grid;place-items:center;width:48px;height:48px;padding:6px;border-radius:var(--r-full);background:var(--material);box-shadow:0 0 0 1px var(--hair-soft),var(--lift-sm);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);transition:transform var(--release),box-shadow var(--fast)}.homefab img{width:32px;height:32px;object-fit:contain}.homefab:active{transform:scale(.9);transition:transform var(--press)}}.confirmtitle{font-size:15px;font-weight:560;letter-spacing:-.01em}.confirmbody{font-size:13px;line-height:1.55;color:var(--muted)}.confirmdetail{font-size:12px;line-height:1.5;color:var(--faint);padding:8px 10px;border-radius:var(--r-sm);background:var(--wash)}.confirmfoot{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.confirmfoot .action{min-width:76px;justify-content:center}.drawer{position:fixed;z-index:61;right:0;top:0;bottom:0;width:min(440px,100vw);display:flex;flex-direction:column;background:var(--panel);border-left:1px solid var(--hair-soft);animation:slidein var(--slow) both}.drawer-head{display:flex;align-items:center;gap:11px;padding:17px 20px 15px;border-bottom:1px solid var(--hair-soft)}.drawer-head .grows{flex:1;min-width:0}.drawer-body{flex:1;overflow-y:auto;padding:18px 20px 22px;display:grid;gap:18px;align-content:start}.drawer-foot{display:flex;gap:9px;padding:14px 20px calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--hair-soft);background:var(--panel)}.drawer-foot .grows{flex:1}.typegrid{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.typecell{display:grid;gap:3px;justify-items:center;padding:10px 4px 9px;border-radius:var(--r-md);border:1px solid transparent;text-align:center;transition:background var(--fast),transform var(--fast)}.typecell:hover{background:var(--wash)}.typecell.on{background:var(--accent-wash)}.typecell .nm{font-size:12px;font-weight:530;letter-spacing:-.005em;line-height:1.3}.formgrid{display:grid;gap:14px}.formrow{display:grid;gap:6px}.formrow>.label{color:var(--muted)}.textin,.areain,.datein{width:100%;padding:11px 13px;border-radius:var(--r-sm);border:1px solid transparent;background:var(--raised);font-size:14px;transition:background var(--fast),border-color var(--fast)}.textin:hover,.areain:hover,.datein:hover{background:var(--wash)}.textin:focus,.areain:focus,.datein:focus{background:var(--panel);border-color:var(--accent);outline:none}.textin::placeholder,.areain::placeholder{color:var(--faint)}.areain{min-height:82px;resize:vertical;line-height:1.6}.stepper{display:flex;align-items:center;gap:8px}.stepper .knob{width:38px;height:38px;display:grid;place-items:center;border-radius:var(--r-sm);border:1px solid transparent;background:var(--raised);color:var(--muted);transition:all var(--fast)}.stepper .knob:hover{background:var(--accent-wash);color:var(--accent-text)}.stepper .amount{flex:1;text-align:center;font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:17px;font-weight:500}.stepper .amount input{width:100%;text-align:center;border:0;background:none;font:inherit}.stepper .amount input:focus{outline:none}.stepper .suffix{font-size:11.5px;color:var(--faint)}.detaillist{display:grid;gap:0}.detailrow{display:grid;grid-template-columns:84px 1fr;gap:12px;padding:10px 0;border-bottom:1px solid var(--hair-soft);font-size:13px}.detailrow:last-child{border-bottom:0}.detailrow .k{color:var(--faint);font-size:12px}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:61;display:grid;place-items:center;padding:28px;animation:fade var(--fast) both}.lightbox .plate{display:grid;grid-template-columns:minmax(0,1fr) 268px;max-width:940px;width:100%;max-height:86vh;overflow:hidden;border-radius:var(--r-xl);background:var(--panel);animation:riseup var(--slow) both}.lightbox .big{background:var(--raised);position:relative;display:grid;place-items:center;min-height:320px}.lightbox .big img{width:100%;height:100%;max-height:86vh;object-fit:contain}.lightbox .side{display:grid;gap:14px;align-content:start;padding:20px;border-left:1px solid var(--hair-soft);overflow-y:auto}.promptbox{padding:11px 12px;border-radius:var(--r-sm);background:var(--raised);font-family:var(--mono);font-size:11px;line-height:1.6;color:var(--muted);word-break:break-word}.toastwrap{position:fixed;z-index:80;left:50%;bottom:26px;transform:translate(-50%);display:grid;gap:8px;justify-items:center;pointer-events:none}.toastwrap .toast{display:flex;align-items:center;gap:9px;padding:9px 15px;border-radius:var(--r-full);background:var(--ink);color:#fff;font-size:12.5px;box-shadow:0 14px 30px #17171a33;animation:riseup var(--slow) both}.toastwrap .toast svg{width:15px;height:15px}.addfab{position:fixed;right:26px;bottom:26px;z-index:30;width:54px;height:54px;display:grid;place-items:center;border-radius:var(--r-full);background:var(--accent-solid);color:var(--accent-ink);box-shadow:0 12px 28px #7c6bd659;transition:transform var(--fast),filter var(--fast)}.addfab:hover{filter:brightness(1.06);transform:translateY(-1px)}.addfab svg{width:24px;height:24px}.tabbar{display:none}@media(max-width:1080px){.todaygrid{grid-template-columns:1fr}.lightbox .plate{grid-template-columns:1fr;max-height:90vh;overflow-y:auto}.lightbox .side{border-left:0;border-top:1px solid var(--hair-soft)}}@media(max-width:860px){:root{--shell-pad: 16px}.shell{grid-template-columns:1fr}.sidenav{display:none}.workbar{min-height:58px}.workbar h1{font-size:16px}.scrollarea{padding-bottom:132px}.hero{gap:8px}.statcell{padding:2px 6px;justify-items:center;text-align:center}.statcell+.statcell{padding-left:6px}.statcell .k{font-size:10px;letter-spacing:.01em}.statcell .v{font-size:17px}.statcell .v small{font-size:11px;margin-left:2px}.typegrid{grid-template-columns:repeat(4,1fr);gap:6px}.entry{grid-template-columns:42px 28px minmax(0,1fr) auto;gap:8px;padding:7px 14px}.frames{grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:10px}.drawer{top:auto;left:0;width:100%;max-height:88vh;border-left:0;border-top-left-radius:var(--r-xl);border-top-right-radius:var(--r-xl);animation:riseup var(--slow) both}.addfab{bottom:86px;right:18px;width:50px;height:50px}.lightbox{padding:0}.lightbox .plate{max-height:100vh;height:100%;border-radius:0}.toastwrap{bottom:148px}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:32;display:grid;grid-template-columns:repeat(5,1fr);align-items:end;padding:7px 6px calc(6px + env(safe-area-inset-bottom));border-top:1px solid var(--hair);background:#ffffffd1;backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px)}.tabbar button{display:grid;gap:3px;justify-items:center;padding:5px 2px;border-radius:var(--r-md);color:var(--faint);font-size:10px;letter-spacing:.01em;transition:color var(--fast)}.tabbar button.on{color:var(--accent-text)}.tabbar svg{width:22px;height:22px}.tabbar .tabadd{padding:0;gap:0;align-self:center}.tabaddring{width:46px;height:46px;display:grid;place-items:center;margin-top:-14px;border-radius:var(--r-full);background:var(--accent-solid);color:var(--accent-ink);box-shadow:0 6px 16px #7c6bd657;transition:transform var(--fast),filter var(--fast)}.tabaddring svg{width:24px;height:24px}.addfab.deskonly{display:none}}@media(max-width:420px){.typegrid{grid-template-columns:repeat(3,1fr)}.clockface .digits{font-size:34px}}@media(max-width:360px){.timeractions{gap:6px}.timeractions .action{padding:8px 10px;gap:4px}}@media(max-width:300px){.timeractions .action{flex:1 0 100%;justify-content:center}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}}.typestrip{display:flex;gap:7px;overflow-x:auto;padding:2px 2px 4px;scrollbar-width:none;scroll-snap-type:x proximity}.typestrip::-webkit-scrollbar{display:none}.typetab{display:inline-flex;align-items:center;gap:6px;flex:none;min-height:36px;padding:6px 14px 6px 8px;border-radius:var(--r-lg);border:1px solid var(--hair);background:var(--panel);font-size:12.5px;font-weight:500;color:var(--muted);scroll-snap-align:center;transition:color var(--fast),border-color var(--fast),background var(--fast)}.typetab:hover{color:var(--ink);border-color:var(--faint)}.typetab.on{color:var(--accent-text);border-color:transparent;background:var(--accent-wash);font-weight:560}.typetab .glyphdot{background:transparent}.typetab.on .glyphdot{color:var(--accent-text)}.chartcard{overflow:hidden}.chartcap{display:flex;align-items:flex-start;gap:14px;padding:16px 18px 12px}.chartcap .grows{flex:1;min-width:0}.bignum{display:flex;align-items:baseline;gap:5px;margin-top:3px}.bignum .figure{font-size:32px;font-weight:620;letter-spacing:-.035em;line-height:1.02}.bigunit{font-size:13px;font-weight:500;color:var(--muted)}.chartsub{font-size:12px;margin-top:2px}.segtrack{display:inline-flex;flex:none;gap:2px;padding:2px;border-radius:var(--r-md);background:var(--raised)}.segtab{min-width:46px;padding:7px 15px;border-radius:var(--r-sm);font-size:13px;font-weight:510;color:var(--muted);transition:color var(--fast),background var(--fast),box-shadow var(--fast)}.segtab.on{color:var(--ink);background:var(--panel);font-weight:560;box-shadow:0 1px 3px #17171a1a}.plotwrap{padding:4px 14px 12px}.plotbox{width:100%}.plot{display:block;max-width:100%;overflow:visible}.plot .axisunit{fill:var(--faint);font-size:10px;font-family:var(--mono)}.plot .axisline{stroke:var(--hair-soft);stroke-width:1;vector-effect:non-scaling-stroke}.plot .axistext{fill:var(--faint);font-size:10.5px;font-family:var(--mono)}:root{--plot-ink: rgba(23, 23, 26, .26);--plot-ink-soft: rgba(23, 23, 26, .16)}.plot .tone-lead{fill:var(--accent)}.plot .tone-mute{fill:var(--plot-ink)}.plot .session{transition:fill var(--fast),opacity var(--fast)}.plot .session.tone-mute{opacity:.9}.plot .stackcol.layer-1{opacity:.72}.plot .stackcol.layer-2{opacity:.5}.plot .stackcol.layer-3{opacity:.32}.plot .trend{fill:none;stroke:var(--plot-ink);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.plot .dot{stroke-width:2;vector-effect:non-scaling-stroke}.plot .dot.tone-lead{fill:var(--accent);stroke:var(--accent)}.plot .dot.tone-mute{fill:var(--panel);stroke:var(--plot-ink)}.plot .band{fill:#17171a0d}.plot .stem{stroke:var(--hair);stroke-width:1.5;vector-effect:non-scaling-stroke}.linewrap{display:grid;gap:10px}.serieskeys{display:flex;gap:6px}.seriespill{padding:4px 11px;border-radius:var(--r-full);border:1px solid var(--hair);font-size:11.5px;font-weight:500;color:var(--muted);transition:all var(--fast)}.seriespill.on{color:var(--accent-text);border-color:transparent;background:var(--accent-wash);font-weight:550}.legend{display:flex;flex-wrap:wrap;gap:12px;padding:10px 2px 0;font-size:11.5px;color:var(--muted)}.legenditem{display:inline-flex;align-items:center;gap:6px}.legend .swatch{width:9px;height:9px;border-radius:var(--r-xs);background:var(--plot-ink)}.legend .swatch.tone-lead{background:var(--accent)}.legend .swatch.layer-0{background:var(--plot-ink)}.legend .swatch.layer-1{background:var(--plot-ink);opacity:.72}.legend .swatch.layer-2{background:var(--plot-ink);opacity:.5}.legend .swatch.layer-3{background:var(--plot-ink);opacity:.32}.legendnum{color:var(--faint)}.chartfoot{padding:10px 18px 14px;border-top:1px solid var(--hair-soft);font-size:11.5px}.plotblank{padding:52px 18px}.plotblank svg{width:24px;height:24px;color:var(--faint)}.breakdown{display:grid;gap:0}.breakhead{margin-bottom:6px}.breakrow{display:grid;grid-template-columns:104px minmax(0,1fr) 24px;gap:12px;align-items:center;padding:7px 0;border-bottom:1px solid var(--hair-soft);font-size:12.5px}.breakrow:last-of-type{border-bottom:0}.breakrow .when{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px}.breakrow .what{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.breakmore{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;margin-top:4px;padding:9px 10px;border-radius:var(--r-sm);font-size:11.5px;text-align:left;transition:background var(--fast)}.breakmore:hover{background:var(--wash)}.breakmore:active{background:var(--raised)}.breakmore-do{display:inline-flex;align-items:center;gap:3px;color:var(--accent-text);font-weight:520;white-space:nowrap}.breakmore-do svg{width:12px;height:12px;transform:rotate(90deg)}.pager{display:flex;align-items:center;gap:8px;padding:0 18px 10px}.pagebtn{width:34px;height:34px;display:grid;place-items:center;flex:none;border-radius:var(--r-full);background:var(--raised);color:var(--muted);transition:background var(--fast),color var(--fast),opacity var(--fast),transform var(--fast)}.pagebtn:hover{background:var(--accent-wash);color:var(--accent-text)}.pagebtn[disabled]{opacity:.35;cursor:not-allowed}.pagebtn[disabled]:hover{background:var(--raised);color:var(--muted)}.pagebtn svg{width:16px;height:16px}.pagelabel{flex:1;text-align:center;font-size:13px;font-weight:560;letter-spacing:-.01em;font-variant-numeric:tabular-nums}.plot .tappable{cursor:pointer}.plot rect.tappable:hover{opacity:1;filter:brightness(1.06)}.plot circle.tappable:hover{r:7}.plot .session.tappable:hover{opacity:1}.picksheet{position:fixed;z-index:62;left:50%;top:50%;transform:translate(-50%,-50%);width:min(420px,calc(100vw - 32px));max-height:min(70vh,560px);display:flex;flex-direction:column;overflow:hidden;border-radius:var(--r-xl);background:var(--panel);box-shadow:var(--lift);animation:riseup var(--slow) both}.pickhead{display:flex;align-items:center;gap:10px;padding:16px 18px 13px;border-bottom:1px solid var(--hair-soft)}.pickhead .grows{flex:1;min-width:0}.pickdate{font-size:12px;margin-top:1px}.picklist{overflow-y:auto;padding:4px 0 6px}.pickrow{display:grid;grid-template-columns:44px 30px minmax(0,1fr) auto;gap:10px;align-items:center;width:100%;padding:7px 18px;text-align:left;transition:background var(--fast)}.pickrow{transition:background var(--fast),transform var(--release)}.pickrow:hover{background:var(--wash)}.pickrow:active{background:var(--raised)}.pickrow .when{font-size:12.5px;color:var(--muted)}.pickrow .what{min-width:0;display:flex;align-items:baseline;gap:8px}.pickrow .what .nm{font-size:13px;font-weight:540;flex:none}.pickrow .what .dt{font-size:11.5px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.breakrow{width:100%;text-align:left;background:none;transition:background var(--fast),transform var(--release)}.breakrow:hover{background:var(--wash)}.breakrow:first-of-type{border-radius:var(--r-xs) var(--r-xs) 0 0}@media(max-width:860px){.pager{padding:0 14px 10px}.picksheet{left:0;top:auto;bottom:0;transform:none;width:100%;height:86dvh;max-height:none;border-radius:var(--r-xl) var(--r-xl) 0 0;padding-bottom:env(safe-area-inset-bottom);animation:riseup var(--slow) both}}.photofield{display:grid;gap:8px}.photorow{display:flex;flex-wrap:wrap;gap:8px}.photochip{position:relative;width:74px;height:74px;border-radius:var(--r-sm);overflow:hidden;background:var(--raised);flex:none}.photochip img{width:100%;height:100%;object-fit:cover}.photodrop{position:absolute;right:3px;top:3px;width:20px;height:20px;display:grid;place-items:center;border-radius:var(--r-full);background:#17171a9e;color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:background var(--fast)}.photodrop:hover{background:#17171ad1}.photodrop svg{width:12px;height:12px}.photoadd{width:74px;height:74px;display:grid;place-items:center;flex:none;border-radius:var(--r-sm);border:1px dashed var(--hair);background:var(--raised);color:var(--faint);transition:all var(--fast)}.photoadd:hover{border-color:var(--accent);color:var(--accent-text);background:var(--accent-wash)}.photoadd svg{width:20px;height:20px}.photohint{font-size:11.5px}.detailshots{display:flex;flex-wrap:wrap;gap:8px}.detailshot{width:78px;height:78px;border-radius:var(--r-sm);overflow:hidden;background:var(--raised);flex:none;transition:transform var(--fast)}.detailshot:hover{transform:translateY(-1px)}.detailshot img{width:100%;height:100%;object-fit:cover}.daybar{display:flex;align-items:center;gap:10px;padding:2px 0}.daypick{position:relative;flex:1;display:flex;justify-content:center}.daytitle{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--r-lg);border:1px solid transparent;background:var(--panel);box-shadow:var(--lift-sm);font-size:14px;font-weight:580;letter-spacing:-.012em;transition:background var(--fast),border-color var(--fast),transform var(--fast)}.daytitle:hover{border-color:var(--hair)}.daytitle.open{border-color:var(--accent);color:var(--accent-text)}.daytitle svg{width:14px;height:14px;color:var(--faint)}.daytitle.open svg{color:var(--accent-text);transform:rotate(180deg)}.daytext{font-variant-numeric:tabular-nums}.calpop{position:absolute;z-index:45;top:calc(100% + 8px);left:50%;transform:translate(-50%);width:292px;padding:12px;border-radius:var(--r-lg);border:1px solid var(--hair-soft);background:var(--panel);box-shadow:var(--lift);animation:calrise var(--fast) both}@keyframes calrise{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.calhead{display:flex;align-items:center;gap:8px;margin-bottom:8px}.calmonth{flex:1;text-align:center;font-size:13.5px;font-weight:570;font-variant-numeric:tabular-nums}.calnav{width:30px;height:30px;display:grid;place-items:center;flex:none;border-radius:var(--r-full);color:var(--muted);transition:background var(--fast),color var(--fast),opacity var(--fast)}.calnav:hover{background:var(--wash);color:var(--ink)}.calnav[disabled]{opacity:.3;cursor:not-allowed}.calnav[disabled]:hover{background:none;color:var(--muted)}.calnav svg{width:15px;height:15px}.calweek{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:2px}.calweek span{text-align:center;font-size:10.5px;font-weight:500;color:var(--faint);padding:4px 0}.calgrid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.calcell{position:relative;height:34px;display:grid;place-items:center;border-radius:var(--r-sm);font-size:12.5px;font-variant-numeric:tabular-nums;color:var(--ink);transition:background var(--fast),color var(--fast)}.calcell:hover:not([disabled]){background:var(--wash)}.calcell.outside{color:var(--faint)}.calcell[disabled]{opacity:.28;cursor:not-allowed}.calcell.istoday{font-weight:620}.calcell.istoday:after{content:"";position:absolute;top:2px;right:2px;bottom:2px;left:2px;border-radius:var(--r-sm);border:1px solid var(--hair);pointer-events:none}.calcell.on{background:var(--accent-solid);color:var(--accent-ink);font-weight:580}.calcell.on:after{border-color:transparent}.caldot{position:absolute;bottom:4px;width:3.5px;height:3.5px;border-radius:var(--r-full);background:var(--accent)}.calcell.on .caldot{background:var(--accent-ink)}.calfoot{display:flex;justify-content:center;margin-top:10px;padding-top:10px;border-top:1px solid var(--hair-soft)}@media(max-width:860px){.calpop{left:50%;width:min(300px,calc(100vw - 28px))}.daytitle{font-size:13.5px;padding:8px 14px}}.hero .heroline{width:100%;text-align:left;padding:6px;margin:-6px;border-radius:var(--r-lg);background:none;transition:background var(--fast)}.hero .heroline{transition:background var(--fast),transform var(--release)}.hero .heroline:hover{background:var(--wash)}.hero .heroname{display:inline-flex;align-items:center;gap:7px}.hero .heroname svg{width:14px;height:14px;color:var(--faint);opacity:0;transition:opacity var(--fast)}.hero .heroline:hover .heroname svg{opacity:1}.hero .herometa{display:block}.babyrow{width:100%;text-align:left;padding:2px;margin:-2px;border-radius:var(--r-sm);transition:background var(--fast)}.babyrow{transition:background var(--fast),transform var(--release)}.babyrow:hover{background:var(--wash)}.babyrow .grows{flex:1;min-width:0}.babyrow svg{width:13px;height:13px;color:var(--faint);flex:none}.portrait.sz-sm{width:36px;height:36px;flex:none;border-radius:var(--r-full);overflow:hidden;background:var(--raised);display:block}.portrait.sz-sm img{width:100%;height:100%;object-fit:cover;object-position:50% 34%}@media(hover:none){.hero .heroname svg{opacity:.55}}.tallywrap{display:grid;gap:14px}.tallywrap:not(.editing){cursor:default}.tally{position:relative}@keyframes tallywobble{0%{transform:rotate(-.45deg)}50%{transform:rotate(.45deg)}to{transform:rotate(-.45deg)}}.tally.wobble{display:flex;flex-direction:column;gap:4px;background:var(--panel);box-shadow:0 0 0 1px var(--hair) inset}.tally.wobble>.k{order:1}.tally.wobble>.v{order:2}.tally.wobble>.k,.tally.wobble>.v{animation:tallywobble 2.4s ease-in-out infinite}.tally.wobble:nth-child(2n)>.k,.tally.wobble:nth-child(2n)>.v{animation-delay:-1.2s}@media(prefers-reduced-motion:reduce){.tally.wobble>.k,.tally.wobble>.v{animation:none}}.tallydrop{position:absolute;right:-6px;top:-6px;z-index:2;width:22px;height:22px;display:grid;place-items:center;border-radius:var(--r-full);background:var(--ink);color:#fff;box-shadow:var(--lift-sm);transition:opacity var(--fast),transform var(--fast)}.tallydrop:hover{transform:scale(1.08)}.tallydrop[disabled]{opacity:.3;cursor:not-allowed}.tallydrop[disabled]:hover{transform:none}.tallydrop svg{width:12px;height:12px}.tallymove{order:3;display:inline-flex;gap:2px;margin-top:2px}.tallymove button{width:22px;height:22px;display:grid;place-items:center;border-radius:var(--r-xs);background:var(--wash);color:var(--muted);transition:background var(--fast),color var(--fast),opacity var(--fast)}.tallymove button:hover{background:var(--accent-wash);color:var(--accent-text)}.tallymove button[disabled]{opacity:.25;cursor:not-allowed}.tallymove button[disabled]:hover{background:var(--wash);color:var(--muted)}.tallymove svg{width:12px;height:12px}.tallyedit{display:grid;gap:10px;padding:14px;border-radius:var(--r-md);background:var(--raised)}.tallyeditbar{display:flex;align-items:center;gap:10px}.tallyeditbar .grows{flex:1}.tallyedit .pill{background:var(--panel)}.tallyedit .pill svg{width:12px;height:12px;margin-right:3px;vertical-align:-2px}.tallywarn{font-size:11.5px;color:var(--warnink, #9a5b28);background:#b4690e17;padding:7px 10px;border-radius:var(--r-xs)}.tallyhint{font-size:11.5px;color:var(--faint);text-align:center}@media(max-width:520px){.tallyrow{grid-template-columns:repeat(min(var(--cols, 2),2),minmax(0,1fr))}.tallyrow:has(>.tally:nth-child(3):last-child){grid-template-columns:minmax(0,1fr)}}:root{--spring: cubic-bezier(.34, 1.56, .64, 1);--press: .11s cubic-bezier(.4, 0, .2, 1);--release: .34s var(--spring)}button,.action,.pill,.typecell,.segtab,.typetab,.seriespill,.calcell,.pagebtn,.calnav,.iconbtn,.photoadd,.tallydrop{transition:transform var(--release),background var(--fast),border-color var(--fast),color var(--fast),box-shadow var(--fast),opacity var(--fast)}button:active:not([disabled]){transition:transform var(--press)}.iconbtn:active:not([disabled]),.calnav:active:not([disabled]),.pagebtn:active:not([disabled]),.tallydrop:active:not([disabled]),.tallymove button:active:not([disabled]),.photodrop:active:not([disabled]){transform:scale(.88)}.action:active:not([disabled]),.pill:active:not([disabled]),.segtab:active:not([disabled]),.typetab:active:not([disabled]),.seriespill:active:not([disabled]),.calcell:active:not([disabled]),.stepper .knob:active:not([disabled]),.photoadd:active:not([disabled]),.daytitle:active{transform:scale(.955)}.typecell:active,.frame:active,.breakrow:active,.pickrow:active,.memberrow .action:active{transform:scale(.975)}.entry:active,.heroline:active,.babyrow:active,.navlist button:active{transform:scale(.992)}.action.lead:active:not([disabled]){box-shadow:0 0 #7c6bd600}.addfab{transition:transform var(--release),filter var(--fast),box-shadow var(--fast)}.addfab:hover{transform:translateY(-2px);box-shadow:0 16px 34px #7c6bd661}.addfab:active{transform:translateY(0) scale(.93);transition:transform var(--press)}.tabaddring{transition:transform var(--release),filter var(--fast),box-shadow var(--fast)}.tabbar .tabadd:active .tabaddring{transform:scale(.9);transition:transform var(--press)}.segtab.on{transition:background var(--release),color var(--fast),box-shadow var(--fast)}@media(prefers-reduced-motion:reduce){button:active:not([disabled]),.addfab:active,.addfab:hover,.tabbar .tabadd:active .tabaddring{transform:none}}@keyframes entryIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.dayline .entry{animation:entryIn .24s cubic-bezier(.22,.7,.2,1) both;animation-delay:calc(var(--i, 0) * 18ms)}.dayline .entry:active{animation:none}@media(prefers-reduced-motion:reduce){.dayline .entry{animation:none}}:root[data-theme=dark]{color-scheme:dark;--bg: #101012;--panel: #17171a;--raised: #1e1e22;--ink: #f2f2f3;--muted: rgba(242, 242, 243, .72);--faint: rgba(242, 242, 243, .58);--hair: rgba(242, 242, 243, .11);--hair-soft: rgba(242, 242, 243, .06);--wash: rgba(242, 242, 243, .05);--accent: #9b8cf0;--accent-text: #b6a9f7;--accent-solid: #9b8cf0;--accent-ink: #14121d;--accent-wash: rgba(155, 140, 240, .16);--tone-lilac-bg: rgba(124, 107, 214, .22);--tone-lilac-ink: #c3b8fa;--tone-neutral-bg: rgba(242, 242, 243, .1);--tone-neutral-ink: rgba(242, 242, 243, .76);--material: rgba(23, 23, 26, .74);--lift: 0 1px 2px rgba(0, 0, 0, .5), 0 8px 24px rgba(0, 0, 0, .42);--lift-sm: 0 1px 2px rgba(0, 0, 0, .4)}:root[data-theme=dark] .workbar{background:#101012c7}:root[data-theme=dark] .tabbar{background:#17171ad1}:root[data-theme=dark] .agestamp{background:#17171adb;color:var(--ink)}:root[data-theme=dark] .toastwrap .toast{background:#2a2a30}:root[data-theme=dark] .tallydrop{background:#f2f2f3;color:#17171a}:root[data-theme=dark]{--plot-ink: rgba(242, 242, 243, .3);--plot-ink-soft: rgba(242, 242, 243, .18)}:root[data-theme=dark] .plot .band{fill:#f2f2f30f}:root[data-theme=dark] .placeholder{background:repeating-linear-gradient(45deg,var(--wash) 0 8px,transparent 8px 16px),var(--raised)}:root[data-theme] body,:root[data-theme] .card,:root[data-theme] .timerpanel,:root[data-theme] .tally,:root[data-theme] .drawer,:root[data-theme] .picksheet,:root[data-theme] .calpop{transition:background-color .28s var(--ease),color .28s var(--ease),box-shadow .28s var(--ease)}.identitybtn{display:flex;align-items:center;gap:9px;padding:5px 12px 5px 5px;border-radius:var(--r-lg);background:var(--panel);box-shadow:0 0 0 1px var(--hair-soft),var(--lift-sm);font-size:13px}.identitybtn:hover{box-shadow:0 0 0 1px var(--hair),var(--lift-sm)}.identitybtn .who{display:grid;text-align:left;line-height:1.25}.identitybtn .who .nm{font-weight:540}.identitybtn .who .rl{font-size:10.5px;color:var(--faint)}.identitybtn .caret svg{width:13px;height:13px;color:var(--faint);display:block}.identityfab{display:none}.settingsheet .drawer-body{gap:22px}.setgroup{display:grid;gap:9px}.sethint{font-size:11.5px;line-height:1.5}.segtrack.wide{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;width:100%}.action.wide{width:100%;justify-content:center}.setmembers{display:grid;gap:4px}.setmember{display:flex;align-items:center;gap:11px;width:100%;padding:9px 11px;border-radius:var(--r-sm);text-align:left;transition:background var(--fast),transform var(--release)}.setmember:hover{background:var(--wash)}.setmember.on{background:var(--accent-wash)}.setmember .grows{flex:1;min-width:0;display:grid}.setmember .nm{font-size:13.5px;font-weight:530}.setmember .rl{font-size:11.5px;color:var(--faint)}.setmember .tick{color:var(--accent-text)}.setmember .tick svg{width:16px;height:16px;display:block}div.setmember:hover{background:none}div.setmember.on{background:var(--accent-wash)}.setaccount{display:grid;gap:2px;padding:10px 12px;border-radius:var(--r-sm);background:var(--wash)}.setaccount .k{font-size:11px}.setaccount .v{font-size:13px;font-weight:530;word-break:break-all}.rolebox{width:min(400px,100%)}.rolelist{display:grid;gap:4px;margin:4px 0 2px}.rolecell{display:flex;align-items:center;gap:11px;width:100%;padding:9px 11px;border-radius:var(--r-sm);text-align:left;transition:background var(--fast)}.rolecell:hover{background:var(--wash)}.rolecell.on{background:var(--accent-wash)}.rolecell .grows{flex:1;min-width:0;display:grid}.rolecell .nm{font-size:13.5px;font-weight:530}.rolecell .rl{font-size:11.5px;color:var(--faint)}.rolenote{font-size:11px}.listnote{font-size:11.5px;line-height:1.5;padding:2px 2px 0}.rolemark{font-size:11.5px;padding-right:4px}@media(max-width:860px){.workbar{display:none}.scrollarea{padding-top:calc(72px + env(safe-area-inset-top))}.hero .heroline{position:fixed;z-index:33;left:14px;top:calc(12px + env(safe-area-inset-top));width:auto;max-width:calc(100vw - 92px);margin:0;padding:4px 15px 4px 4px;gap:10px;border-radius:var(--r-full);background:var(--material);box-shadow:0 0 0 1px var(--hair-soft),var(--lift-sm);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px)}.hero .heroline:hover{background:var(--material)}.hero .portrait{width:40px;height:40px}.hero .heroname{font-size:16px;gap:6px}.hero .heroname svg{width:12px;height:12px}.hero .herometa{font-size:11.5px;margin-top:1px}.hero .heroline .grows{min-width:0;overflow:hidden}.hero .heroname,.hero .herometa{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.identityfab{position:fixed;z-index:33;right:14px;top:calc(12px + env(safe-area-inset-top));display:grid;place-items:center;width:48px;height:48px;padding:4px;border-radius:var(--r-full);background:var(--material);box-shadow:0 0 0 1px var(--hair-soft),var(--lift-sm);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);transition:transform var(--release),box-shadow var(--fast)}.identityfab:active{transform:scale(.9);transition:transform var(--press)}.identityfab .avatar{width:40px;height:40px;font-size:14px}.settingsheet{max-height:86vh}}.typewrap{display:grid;gap:12px}@keyframes typewobble{0%{transform:rotate(-.5deg)}50%{transform:rotate(.5deg)}to{transform:rotate(-.5deg)}}.typewrap.sorting .typecell{background:var(--raised);cursor:grab;touch-action:none}.typewrap.sorting .typecell>.glyphdot,.typewrap.sorting .typecell>.nm{animation:typewobble 2.2s ease-in-out infinite}.typewrap.sorting .typecell:nth-child(2n)>.glyphdot,.typewrap.sorting .typecell:nth-child(2n)>.nm{animation-delay:-1.1s}.typecell.dragging{opacity:.45;cursor:grabbing}.typecell.over{background:var(--accent-wash);box-shadow:0 0 0 1.5px var(--accent) inset}.sortbar{display:flex;align-items:center;gap:10px;padding:11px 13px;border-radius:var(--r-md);background:var(--raised);font-size:12px}.sortbar .hushed{flex:1}@media(prefers-reduced-motion:reduce){.typewrap.sorting .typecell>.glyphdot,.typewrap.sorting .typecell>.nm{animation:none}}.avatartag{position:relative;display:inline-flex;flex:none}.avatartag-btn{display:inline-flex;padding:0;cursor:pointer;border-radius:var(--r-full);transition:transform var(--release)}.avatartag-btn:active{transform:scale(.88);transition:transform var(--press)}.avatartag-name{position:absolute;z-index:20;top:50%;white-space:nowrap;padding:4px 9px;border-radius:var(--r-xs);background:var(--ink);color:var(--bg);font-size:11.5px;font-weight:500;line-height:1.3;box-shadow:var(--lift-sm);pointer-events:none;animation:tagpop .16s var(--ease) both}.avatartag-name.left{right:calc(100% + 7px);transform:translateY(-50%)}.avatartag-name.right{left:calc(100% + 7px);transform:translateY(-50%)}@keyframes tagpop{0%{opacity:0;transform:translateY(-50%) scale(.94)}to{opacity:1;transform:translateY(-50%) scale(1)}}@media(prefers-reduced-motion:reduce){.avatartag-name{animation:none}}.glyphdot.art{background:linear-gradient(160deg,#7c6bd61a,#7c6bd60d)}.glyphdot.art img{width:80%;height:80%;object-fit:contain;display:block}.glyphdot.art>svg{display:none}.glyphdot.art.lead{background:linear-gradient(160deg,#7c6bd62e,#7c6bd614)}.entry .glyphdot.art img,.typetab .glyphdot.art img,.breakrow .glyphdot.art img{display:none}.entry .glyphdot.art>svg,.typetab .glyphdot.art>svg,.breakrow .glyphdot.art>svg{display:block}.entry .glyphdot.art,.typetab .glyphdot.art,.breakrow .glyphdot.art{background:var(--raised)}.typetab .glyphdot.art{background:transparent}.typecell>.glyphdot.art{width:46px;height:46px}.typecell>.glyphdot.art img{width:86%;height:86%}.drawer-head>.glyphdot.art{width:40px;height:40px}.timerhead>.glyphdot.art{width:40px;height:40px}.sceneart{display:block;width:100%;height:auto;object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none}.blank .sceneart{width:116px;margin-bottom:2px;opacity:.95}.plotblank .sceneart{width:104px}.timerpanel{position:relative;overflow:hidden}.timerpanel>.timermoon{position:absolute;z-index:0;right:-14px;top:-10px;width:132px;opacity:.3;transform:rotate(-8deg);transition:opacity var(--slow),transform var(--slow)}.timerpanel.running>.timermoon{opacity:.5;animation:moonbreath 5.5s var(--ease) infinite}.timerpanel>*:not(.cardsky):not(.timermoon){position:relative;z-index:1}.timerpanel>.cardsky{position:absolute;z-index:0;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;object-position:50% 38%;opacity:.26;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 26%,transparent 82%);mask-image:linear-gradient(to bottom,#000 0%,#000 26%,transparent 82%)}.timerpanel.running>.cardsky{opacity:.34}@keyframes moonbreath{0%,to{transform:rotate(-8deg) translateY(0) scale(1)}50%{transform:rotate(-8deg) translateY(-4px) scale(1.03)}}@media(max-width:860px){.timerpanel>.timermoon{width:104px;right:-10px;top:-8px}}@media(prefers-reduced-motion:reduce){.timerpanel.running>.timermoon{animation:none}}.artcard{position:relative;overflow:hidden}.artcard>.cardwash{position:absolute;z-index:0;left:0;right:0;top:0;width:100%;height:208px;object-fit:cover;object-position:50% 42%;opacity:.42;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 38%,transparent 100%);mask-image:linear-gradient(to bottom,#000 0%,#000 38%,transparent 100%)}@media(max-width:860px){.artcard>.cardwash{height:176px}}.artcard>*:not(.cardwash){position:relative;z-index:1}.card.softpattern,.plainblock.softpattern{background-image:radial-gradient(circle at 12% 18%,rgba(124,107,214,.07) 2px,transparent 2.5px),radial-gradient(circle at 62% 8%,rgba(124,107,214,.05) 1.5px,transparent 2px),radial-gradient(circle at 86% 32%,rgba(124,107,214,.06) 2px,transparent 2.5px),radial-gradient(circle at 34% 62%,rgba(124,107,214,.05) 1.5px,transparent 2px),radial-gradient(circle at 76% 78%,rgba(124,107,214,.06) 2px,transparent 2.5px),radial-gradient(circle at 18% 88%,rgba(124,107,214,.05) 1.5px,transparent 2px);background-size:180px 180px;background-repeat:repeat}.monthhead .monthspot{width:26px;height:26px;flex:0 0 auto;object-fit:contain;opacity:.9;align-self:center}.card.spotcard,.plainblock.spotcard{position:relative;overflow:hidden}.cardspot{position:absolute;z-index:0;right:-10px;top:-8px;width:88px;height:auto;opacity:.38;pointer-events:none;-webkit-user-select:none;user-select:none}.card.spotcard>*:not(.cardspot):not(.cardwash),.plainblock.spotcard>*:not(.cardspot):not(.cardwash){position:relative;z-index:1}@media(max-width:860px){.cardspot{width:72px;right:-8px;top:-6px}.monthhead .monthspot{width:22px;height:22px}}.drawer-head .headspot{width:36px;height:36px;flex:0 0 auto;object-fit:contain;opacity:.92}.drawer.detaildrawer{overflow:hidden}.drawer.detaildrawer>.drawerspot{position:absolute;z-index:0;right:-18px;bottom:-14px;width:148px;height:auto;opacity:.16;pointer-events:none;-webkit-user-select:none;user-select:none}.drawer.detaildrawer>*:not(.drawerspot){position:relative;z-index:1}@media(max-width:860px){.drawer.detaildrawer>.drawerspot{width:120px;right:-14px;bottom:-12px}.drawer-head .headspot{width:32px;height:32px}}
