:root{color-scheme:light dark;--bg: #f8fafc;--surface: rgba(255, 255, 255, .86);--panel: #ffffff;--text: #101827;--muted: #64748b;--line: #e2e8f0;--soft: #f1f5f9;--accent: #0f766e;--accent-2: #2563eb;--danger: #b91c1c;--shadow: 0 12px 36px rgba(15, 23, 42, .08);--radius: 18px;--sticky-top: 66px;--bs-body-bg: var(--bg);--bs-body-color: var(--text);--bs-border-color: var(--line);--bs-tertiary-bg: var(--soft);--bs-emphasis-color: var(--text);--bs-secondary-color: var(--muted);--bs-font-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif}@media(prefers-color-scheme:dark){:root:not([data-theme-mode=light]){--bg: #09090b;--surface: rgba(24, 24, 27, .86);--panel: #18181b;--text: #f8fafc;--muted: #a1a1aa;--line: #27272a;--soft: #111113;--accent: #2dd4bf;--accent-2: #60a5fa;--danger: #f87171;--shadow: 0 12px 36px rgba(0, 0, 0, .32)}}:root[data-theme-mode=dark]{--bg: #09090b;--surface: rgba(24, 24, 27, .86);--panel: #18181b;--text: #f8fafc;--muted: #a1a1aa;--line: #27272a;--soft: #111113;--accent: #2dd4bf;--accent-2: #60a5fa;--danger: #f87171;--shadow: 0 12px 36px rgba(0, 0, 0, .32)}html,body{min-height:100%;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}.btn{--bs-btn-border-radius: 12px;--bs-btn-padding-x: .8rem;--bs-btn-padding-y: .45rem}.btn-dark{--bs-btn-bg: #111827;--bs-btn-border-color: #111827;--bs-btn-hover-bg: #0f172a;--bs-btn-hover-border-color: #0f172a}:root[data-theme-mode=dark] .btn-dark{--bs-btn-bg: #f8fafc;--bs-btn-border-color: #f8fafc;--bs-btn-color: #111827;--bs-btn-hover-bg: #e2e8f0;--bs-btn-hover-border-color: #e2e8f0;--bs-btn-hover-color: #111827}@media(prefers-color-scheme:dark){:root:not([data-theme-mode=light]) .btn-dark{--bs-btn-bg: #f8fafc;--bs-btn-border-color: #f8fafc;--bs-btn-color: #111827;--bs-btn-hover-bg: #e2e8f0;--bs-btn-hover-border-color: #e2e8f0;--bs-btn-hover-color: #111827}}.app-shell{min-height:100vh}.form-control,.form-select{border-color:var(--line);border-radius:12px;background-color:var(--panel);color:var(--text)}.form-control:focus,.form-select:focus{border-color:var(--accent-2);box-shadow:0 0 0 .2rem #2563eb24}.form-label{width:100%;color:var(--muted);font-size:13px}.form-label .form-control,.form-label .form-select{margin-top:6px;color:var(--text);font-size:15px}.topbar{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:minmax(170px,1fr) auto minmax(220px,1fr);gap:16px;align-items:center;padding:14px 20px;border-bottom:1px solid var(--line);background:var(--surface);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.mobile-nav{display:none}.brand{display:flex;gap:10px;align-items:center;min-width:0}.brand-mark{width:34px;height:34px;border-radius:12px;background:linear-gradient(135deg,#111827,#2563eb 56%,#0f766e);box-shadow:var(--shadow)}.brand strong{display:block;letter-spacing:0}.brand small,.screen-head p,.picker-item small,.day-column header span{color:var(--muted)}.app-tabs{display:inline-flex;gap:4px;padding:4px;border:1px solid var(--line);border-radius:14px;background:var(--soft)}.app-tabs .nav-link{padding:8px 12px;border-radius:10px;color:var(--muted)}.app-tabs .nav-link.active,.app-btn.active{background:var(--panel);color:var(--text);box-shadow:0 4px 16px #0f172a14}.top-actions{display:flex;justify-content:flex-end;align-items:center;gap:8px}.top-actions .week-head-actions{display:inline-flex;align-items:center;gap:8px}.icon-button,.small-button{padding:8px 10px;border:1px solid var(--line);border-radius:12px;white-space:nowrap}.small-button{border:1px solid var(--line);background:transparent;color:var(--text);box-shadow:none}.app-btn{display:inline-flex;align-items:center;gap:6px}#edit-mode.active{border-color:var(--accent-2);background:var(--panel);color:var(--accent-2);box-shadow:0 0 0 3px #2563eb1f}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;padding:0}.sync-status{display:inline-grid;place-items:center;width:34px;height:34px;min-width:34px;padding:0;border:1px solid var(--line);border-radius:999px;background:var(--soft)}.sync-dot{width:11px;height:11px;border-radius:999px;background:#94a3b8;box-shadow:0 0 0 4px #94a3b829}.sync-status.is-saved .sync-dot{background:#16a34a;box-shadow:0 0 0 4px #16a34a29}.sync-status.is-syncing .sync-dot,.sync-status.is-server .sync-dot{background:#2563eb;box-shadow:0 0 0 4px #2563eb29}.sync-status.is-dirty .sync-dot{background:#d97706;box-shadow:0 0 0 4px #d9770629}.sync-status.is-offline .sync-dot{background:#64748b;box-shadow:0 0 0 4px #64748b29}.sync-status.is-error .sync-dot{background:#dc2626;box-shadow:0 0 0 4px #dc262629}.main{display:grid;grid-template-columns:minmax(0,1fr);gap:0;padding:18px}.app-shell.is-week .main{min-height:0;padding:0}.app-shell.is-week{display:grid;grid-template-rows:auto minmax(0,1fr);height:100dvh;overflow:hidden}.app-shell.is-week .view,.app-shell.is-week .week-screen{min-height:0;height:100%;overflow:hidden}.activity-picker{display:none;position:sticky;top:84px;align-self:start;max-height:calc(100vh - 104px);overflow:auto;padding:14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow)}.activity-picker.is-picker-visible{display:block}.app-shell.has-picker .main{grid-template-columns:250px minmax(0,1fr);gap:18px}.app-shell.has-picker .view{grid-column:2}.activity-picker.is-picker-disabled{box-shadow:none}.selected-purchase{display:grid;grid-template-columns:12px minmax(0,1fr);gap:10px;align-items:center;width:100%;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--soft);color:var(--text);text-align:left}.selected-purchase:hover,.selected-purchase:focus{border-color:var(--accent-2)}.selected-purchase.is-muted{pointer-events:none;opacity:.7}.selected-purchase strong,.selected-purchase small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.selected-purchase small,.picker-hint{color:var(--muted);font-size:12px}.picker-actions{display:grid;margin-top:10px}.picker-hint{margin-top:10px;line-height:1.35}.picker-head,.screen-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}.week-head-actions{display:inline-flex;align-items:center;gap:8px}.mobile-scale-actions{display:none;gap:6px}.screen-head h1{margin:0;font-size:clamp(24px,3vw,34px)}.screen-head p{margin:3px 0 0}.picker-list,.picker-tree{display:grid;gap:6px}.picker-item,.picker-tree-item{display:grid;grid-template-columns:12px minmax(0,1fr) auto;gap:9px;align-items:center;width:100%;padding:9px 10px;border:1px solid transparent;border-radius:12px;background:transparent;color:var(--text);text-align:left}.picker-item:hover,.picker-item.is-selected,.picker-tree-item:hover,.picker-tree-item.is-selected{border-color:var(--line);background:var(--soft)}.picker-tree-node{display:grid;gap:6px}.picker-tree-item{padding-left:calc(10px + (var(--level, 1) - 1) * 18px)}.picker-tree-item.is-group{background:#64748b0f}.picker-tree-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.picker-item>span:first-child,.activity-marker{width:10px;height:10px;border-radius:999px;background:var(--marker, var(--accent))}.picker-item.system>span:first-child,.picker-tree-item.system .activity-marker{height:2px;border-radius:0;background:var(--muted)}.view{min-width:0}.warnings{display:grid;gap:6px;margin-bottom:14px;padding:12px;border:1px solid rgba(185,28,28,.24);border-radius:14px;background:#b91c1c14;color:var(--danger)}.week-screen{min-width:0}.week-scroll{overflow-x:auto;padding-bottom:10px}.stats-scroll{padding-bottom:10px}.week-scroll{box-sizing:border-box;height:100%;overflow:auto;padding:12px 18px calc(12px + env(safe-area-inset-bottom));scroll-padding:12px 18px calc(12px + env(safe-area-inset-bottom))}.week-grid{--week-unit: 1rem;display:grid;grid-template-columns:repeat(var(--day-count),14em);gap:.75em;min-width:calc(var(--day-count) * 14em + (var(--day-count) - 1) * .75em)}.day-column{min-width:0;border:1px solid var(--line);border-radius:1em;background:var(--panel);box-shadow:var(--shadow);overflow:hidden}.day-column:focus{outline:none}.day-column.is-today{border-color:color-mix(in srgb,var(--accent-2) 55%,var(--line));box-shadow:0 1em 2.5em #2563eb29}.day-column.is-today header{background:linear-gradient(90deg,#2563eb29,#0f766e1a),var(--soft)}.day-column.is-today header strong:after{content:"";display:inline-block;width:.4375em;height:.4375em;margin-left:.4375em;border-radius:999px;background:var(--accent-2);box-shadow:0 0 0 .25em #2563eb24;vertical-align:middle}.day-column.is-extra{outline:2px solid rgba(185,28,28,.22)}.day-column header{position:sticky;top:var(--sticky-top);z-index:3;display:flex;justify-content:space-between;align-items:center;padding:.625em;border-bottom:1px solid var(--line);border-radius:.9375em .9375em 0 0;background:var(--soft)}.day-body{position:relative;display:grid;gap:0;padding:.5em;background:var(--panel)}.day-start-offset,.day-end-offset{min-height:0;pointer-events:none}.time-rule{position:absolute;left:.5em;right:.5em;z-index:0;border-top:1px solid rgba(100,116,139,.12);pointer-events:none}.current-time-marker{--current-time-core: rgba(37, 99, 235, .5);--current-time-strong: rgba(59, 130, 246, .5);--current-time-edge: rgba(147, 197, 253, .22);--current-time-ring: rgba(219, 234, 254, .42);--current-time-glow: rgba(37, 99, 235, .3);--current-time-haze: rgba(96, 165, 250, .16);position:absolute;left:0;right:0;z-index:4;height:.25em;pointer-events:none;transform:translateY(-50%);background:linear-gradient(90deg,var(--current-time-edge),var(--current-time-core) 28%,var(--current-time-strong) 50%,var(--current-time-core) 72%,var(--current-time-edge));box-shadow:0 0 0 1px var(--current-time-ring),0 .0625em .25em var(--current-time-glow),0 0 .75em var(--current-time-glow),0 0 1.5em var(--current-time-haze)}:root[data-theme-mode=dark] .current-time-marker{--current-time-core: rgba(255, 255, 255, .5);--current-time-strong: rgba(255, 255, 255, .5);--current-time-edge: rgba(255, 255, 255, .22);--current-time-ring: rgba(255, 255, 255, .42);--current-time-glow: rgba(255, 255, 255, .3);--current-time-haze: rgba(255, 255, 255, .16)}@media(prefers-color-scheme:dark){:root:not([data-theme-mode=light]) .current-time-marker{--current-time-core: rgba(255, 255, 255, .5);--current-time-strong: rgba(255, 255, 255, .5);--current-time-edge: rgba(255, 255, 255, .22);--current-time-ring: rgba(255, 255, 255, .42);--current-time-glow: rgba(255, 255, 255, .3);--current-time-haze: rgba(255, 255, 255, .16)}}.week-block.is-current-activity>.current-time-marker{position:absolute;z-index:4}.week-block,.gap,.day-start,.day-end{position:relative;z-index:1;box-sizing:border-box;width:100%;border:0;border-radius:.75em;text-align:left;transition:transform .16s ease,box-shadow .16s ease,opacity .16s ease;overflow:hidden}.week-block{display:grid;grid-template-columns:minmax(0,1fr) 3.375em 2.5em;gap:0;align-items:stretch;min-width:0;min-height:0;padding:0;border:1px solid rgba(15,23,42,.08);border-radius:.5em;background:var(--block-bg);color:var(--block-text);box-shadow:inset 0 1px #ffffff42,inset 0 -1px #0f172a2e;overflow:hidden;cursor:pointer;user-select:none;-webkit-user-select:none;touch-action:pan-x pan-y}.week-block.is-editing{grid-template-columns:minmax(0,1fr) 4.25em 2.5em}.week-block:hover{transform:none;box-shadow:inset 0 0 0 1px #ffffff47,inset 0 -1px #0f172a33,0 .25em .875em #0f172a21}.week-block.has-overlap{outline:2px solid rgba(220,38,38,.88);outline-offset:-2px;box-shadow:inset 0 0 0 1px #ffffff3d,0 0 0 4px #dc262624}.week-block.is-current-activity{z-index:3;outline:2px solid color-mix(in srgb,var(--block-text) 44%,#2563eb);outline-offset:-2px;box-shadow:inset 0 0 0 1px #ffffff57,inset 0 -1px #0f172a29,0 .5em 1.4em color-mix(in srgb,var(--block-ink) 28%,transparent),0 0 0 .25em #2563eb1a}.week-block.is-current-activity:after{content:"";position:absolute;top:-45%;right:-18%;bottom:-45%;left:-18%;z-index:0;background:linear-gradient(115deg,transparent 12%,rgba(255,255,255,.28) 35%,transparent 58%),radial-gradient(circle at 78% 18%,rgba(15,118,110,.24),transparent 34%),radial-gradient(circle at 16% 82%,rgba(37,99,235,.2),transparent 38%);opacity:.72;mix-blend-mode:soft-light;pointer-events:none}.week-block.is-current-activity>*:not(.current-time-marker){position:relative;z-index:1}.week-block.is-outside-day{outline:2px solid rgba(220,38,38,.9);outline-offset:-2px;box-shadow:inset 0 0 0 1px #ffffff42,inset 0 -1px #0f172a33,0 0 0 4px #dc262629}.week-block-title{display:flex;align-items:center;min-width:0;padding:.1875em .4375em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;font-size:.75em;line-height:1.1;cursor:pointer;touch-action:pan-x pan-y}.week-block.is-editing .week-block-title{cursor:grab;touch-action:none}.week-block.is-editing .week-block-title:active{cursor:grabbing}.week-block-times,.week-block-times span,.week-block-duration{font-variant-numeric:tabular-nums;white-space:nowrap}.week-block-times{display:grid;grid-template-rows:1fr 1fr;min-width:3.375em;background:#ffffff08;line-height:1}.week-block.is-editing .week-block-times{min-width:4.25em}.week-block-times.has-single-time{grid-template-rows:1fr}.week-block-times span{display:grid;place-items:center;min-height:0;padding:.0625em .1875em;font-size:.625em}.week-block-times input,.week-block-duration.is-editable input{width:100%;min-width:0;height:100%;padding:0 .1875em;border:0;border-radius:0;background:transparent;color:inherit;font-size:.5625em;line-height:1;text-align:center;font-variant-numeric:tabular-nums;outline:none}.week-block-duration.is-editable input{font-size:.9em}.week-block-times input:focus,.week-block-duration.is-editable input:focus{background:#ffffff47;box-shadow:inset 0 0 0 1px #ffffff6b}.week-block-duration.is-editable input{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.week-block-duration.is-editable input::-webkit-outer-spin-button,.week-block-duration.is-editable input::-webkit-inner-spin-button{margin:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.week-block-times span+span{border-top:1px solid rgba(0,0,0,.05)}.week-block-times input+input{border-top:1px solid rgba(0,0,0,.05)}.week-block-duration{display:grid;place-items:center;min-width:2.5em;padding:.0625em .25em;font-style:normal;font-size:.625em;line-height:1;background:#00000014}.week-block-duration.is-editable{grid-template-columns:1fr 1fr;gap:0;min-width:2.5em;padding:0}.week-block-duration.is-editable input+input{border-left:1px solid rgba(0,0,0,.08)}.week-block small{grid-column:1 / -1;padding:0 .4375em .1875em;opacity:.75;font-size:.625em}.resize-trigger{display:none}.week-block.is-editing .resize-trigger{position:absolute;left:0;right:0;z-index:2;display:block;height:.25em;background:#ffffff57;cursor:ns-resize;touch-action:none}.week-block.is-editing .resize-trigger-start{top:0}.week-block.is-editing .resize-trigger-end{bottom:0}.gap{display:grid;place-items:center;border:1px dashed rgba(100,116,139,.28);border-radius:.5em;background:#64748b0f;color:var(--muted);cursor:pointer;opacity:.74}.gap.is-current-gap{z-index:2;border-color:#64748b6b;background:linear-gradient(115deg,#94a3b81f,#94a3b80a),radial-gradient(circle at 78% 20%,rgba(37,99,235,.08),transparent 36%),#64748b12;box-shadow:inset 0 0 0 1px #ffffff29,0 .5em 1.2em #64748b1f;opacity:1}.gap>*:not(.current-time-marker){position:relative;z-index:1}.gap>span:not(.current-time-marker){font-size:.6875em}.gap.is-editable,.gap:hover{opacity:1}.day-start,.day-end{display:flex;justify-content:space-between;align-items:center;min-height:1.625em;padding:.25em .5em;border-radius:.4375em;background:repeating-linear-gradient(90deg,transparent,transparent .375em,rgba(100,116,139,.22) .375em,rgba(100,116,139,.22) .625em);color:var(--muted);font-size:.75em}.day-start{margin-bottom:.25em;background:linear-gradient(90deg,#0f766e1a,#2563eb14)}.after-day-gap{background:#64748b0a}.activity-tree{display:grid;gap:6px}.activity-row{display:grid;grid-template-columns:12px minmax(0,1fr) auto auto;gap:10px;align-items:center;min-height:54px;padding:10px 12px;padding-left:calc(12px + (var(--level) - 1) * 12px);border:1px solid var(--line);border-left:4px solid var(--marker);border-radius:12px;background:linear-gradient(90deg,rgba(100,116,139,.08) 0 1px,transparent 1px 25%,rgba(100,116,139,.08) 25% calc(25% + 1px),transparent calc(25% + 1px) 50%,rgba(100,116,139,.08) 50% calc(50% + 1px),transparent calc(50% + 1px) 75%,rgba(100,116,139,.08) 75% calc(75% + 1px),transparent calc(75% + 1px)),var(--panel)}.activity-row.is-group{background:linear-gradient(90deg,rgba(100,116,139,.08) 0 1px,transparent 1px 25%,rgba(100,116,139,.08) 25% calc(25% + 1px),transparent calc(25% + 1px) 50%,rgba(100,116,139,.08) 50% calc(50% + 1px),transparent calc(50% + 1px) 75%,rgba(100,116,139,.08) 75% calc(75% + 1px),transparent calc(75% + 1px)),linear-gradient(180deg,var(--panel),var(--soft))}.activity-row{margin-left:calc((var(--level) - 1) * 18px)}.activity-row.is-archived{opacity:.56}.activity-main{min-width:0}.activity-main strong,.activity-main small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-main small{color:var(--muted)}.stats-screen{--stats-content-width: max(1120px, calc(412px + var(--day-count, 7) * 132px))}.stats-table{--stats-row-bg: var(--panel);--stats-row-alt-bg: color-mix(in srgb, var(--panel) 94%, var(--text));--stats-head-bg: color-mix(in srgb, var(--panel) 72%, var(--soft));--stats-left-bg: var(--stats-row-bg);--stats-left-alt-bg: var(--stats-row-alt-bg);--stats-summary-bg: var(--stats-row-bg);--stats-summary-alt-bg: var(--stats-row-alt-bg);--stats-free-bg: color-mix(in srgb, var(--panel) 91%, var(--accent-2));--stats-total-bg: color-mix(in srgb, var(--panel) 90%, var(--accent-2));--stats-total-alt-bg: color-mix(in srgb, var(--panel) 86%, var(--accent-2));--stats-weekend-bg: color-mix(in srgb, var(--panel) 96%, var(--accent-2));min-width:var(--stats-content-width, max(1120px, calc(280px + var(--day-count, 7) * 132px)));border-collapse:separate;border-spacing:0;background:var(--panel);border-radius:16px;overflow:hidden}.stats-scroll{overflow-x:auto;overflow-y:visible;overscroll-behavior-x:contain}@media(min-width:861px){.stats-screen{width:min(100%,var(--stats-content-width));margin-inline:auto}}.stats-title-block{display:grid;gap:0;margin-bottom:18px}.stats-title-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center}.stats-title{margin:0;font-size:clamp(24px,3vw,34px);line-height:1.1;letter-spacing:0}.stats-hierarchy-toggle{position:relative;display:inline-flex;align-items:center;gap:8px;min-height:32px;padding:5px 8px 5px 6px;border:1px solid color-mix(in srgb,var(--line) 82%,transparent);border-radius:999px;background:color-mix(in srgb,var(--panel) 90%,var(--accent-2));color:color-mix(in srgb,var(--text) 76%,var(--muted));font-size:12px;font-weight:700;line-height:1;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none}.stats-hierarchy-toggle input{position:absolute;inline-size:1px;block-size:1px;opacity:0;pointer-events:none}.stats-toggle-track{display:inline-flex;align-items:center;width:32px;height:18px;padding:2px;border-radius:999px;background:color-mix(in srgb,var(--muted) 20%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--line) 76%,transparent)}.stats-toggle-track span{width:14px;height:14px;border-radius:999px;background:color-mix(in srgb,var(--text) 80%,var(--panel));box-shadow:0 1px 4px #0f172a2e;transition:transform .16s ease,background .16s ease,box-shadow .16s ease}.stats-hierarchy-toggle input:checked+.stats-toggle-track{background:color-mix(in srgb,var(--accent-2) 42%,transparent)}.stats-hierarchy-toggle input:checked+.stats-toggle-track span{transform:translate(14px);background:#fff;box-shadow:0 1px 4px #0f172a33,0 0 10px color-mix(in srgb,var(--accent-2) 50%,transparent)}.stats-hierarchy-toggle:focus-within{outline:2px solid color-mix(in srgb,var(--accent-2) 50%,transparent);outline-offset:2px}.stats-quote{position:relative;width:100%;max-width:none;box-sizing:border-box;margin:3px 0 0;padding:10px 14px 10px 16px;border-left:3px solid rgba(37,99,235,.5);border-radius:0 14px 14px 0;background:linear-gradient(90deg,rgba(37,99,235,.09),rgba(15,118,110,.045) 58%,transparent),var(--panel);box-shadow:inset 1px 0 #ffffff3d,0 0 1.4rem #2563eb14}.stats-quote:before{content:"";position:absolute;inset:8px auto 8px -3px;width:3px;border-radius:999px;background:linear-gradient(180deg,#60a5fa2e,#2dd4bf80,#60a5fa2e);box-shadow:0 0 .6rem #2563eb38,0 0 1.2rem #2dd4bf24;animation:stats-quote-pulse 4.8s ease-in-out infinite}.stats-quote blockquote{margin:0;color:var(--text);font-size:15px;line-height:1.45}.stats-quote span{color:var(--accent-2);font-weight:700;text-shadow:0 0 .55rem rgba(37,99,235,.22),0 0 1.2rem rgba(45,212,191,.12);animation:stats-word-glow 5.6s ease-in-out infinite}.stats-quote span+span{color:var(--accent);animation-delay:1.2s}.stats-quote figcaption{margin-top:4px;color:var(--muted);font-size:12px}@keyframes stats-quote-pulse{0%,to{box-shadow:0 0 .45rem #2563eb2e,0 0 1rem #2dd4bf1a}50%{box-shadow:0 0 .85rem #2563eb47,0 0 1.55rem #2dd4bf2e}}@keyframes stats-word-glow{0%,to{text-shadow:0 0 .35rem rgba(37,99,235,.16),0 0 .9rem rgba(45,212,191,.08)}50%{text-shadow:0 0 .7rem rgba(37,99,235,.28),0 0 1.35rem rgba(45,212,191,.16)}}@media(prefers-reduced-motion:reduce){.stats-quote:before,.stats-quote span{animation:none}}@media(max-width:860px){.stats-title-row{grid-template-columns:minmax(0,1fr) auto}.stats-hierarchy-toggle{max-width:46vw;padding-right:7px;font-size:11px}.stats-hierarchy-toggle>span:last-child{overflow:hidden;text-overflow:ellipsis}.stats-quote{width:100%;max-width:none;box-sizing:border-box}}.stats-table thead th{top:var(--sticky-top);z-index:8;color:color-mix(in srgb,var(--text) 74%,var(--muted));font-size:.9375em;letter-spacing:.012em;text-transform:uppercase;background:var(--stats-head-bg);box-shadow:0 1px 0 var(--line)}.stats-table thead th{border-top:1px solid var(--line)}.stats-table thead th:first-child{border-left:1px solid var(--line);border-radius:16px 0 0;overflow:hidden}.stats-table thead th:last-child{border-right:1px solid var(--line);border-radius:0 16px 0 0;overflow:hidden}.stats-fixed-header{position:fixed;z-index:18;overflow:hidden;pointer-events:none}.stats-fixed-header-table{margin:0;border-radius:0;pointer-events:auto}.stats-fixed-header-table tbody{display:none}.stats-sort{display:inline-flex;align-items:center;justify-content:center;gap:4px;width:100%;padding:0;border:0;background:transparent;color:inherit;font:inherit;font-weight:800;text-align:inherit}.stats-table th:first-child .stats-sort{justify-content:flex-start}.stats-sort-indicator{display:inline-flex;align-items:center;justify-content:center;width:1em;margin-left:2px;color:var(--accent-2);font-weight:900;line-height:1}.stats-table th,.stats-table td{min-width:120px;height:48px;padding:12px 14px;border-bottom:1px solid var(--line);border-right:1px solid rgba(100,116,139,.12);white-space:nowrap;text-align:center;vertical-align:middle;box-sizing:border-box}.stats-table tbody:not(.stats-summary-body):not(.stats-sleep-body) th:first-child{border-left:1px solid var(--line)}.stats-table tbody:not(.stats-summary-body):not(.stats-sleep-body) td:last-child{border-right:1px solid var(--line)}.stats-table td{--value-k: 0;--value-scale: calc(.8 + var(--value-k) * .45);color:color-mix(in srgb,var(--text) 82%,var(--muted));font-family:ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,Menlo,monospace;font-size:.9375em;line-height:1;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1,"kern" 1;letter-spacing:0}.stats-table tbody:not(.stats-summary-body):not(.stats-sleep-body) td.is-value{color:color-mix(in srgb,var(--text) calc(38% + var(--value-k) * 62%),transparent)}.stats-table .stats-value{display:inline-block;line-height:1;transform:scale(var(--value-scale));transform-origin:center}.stats-table .stats-empty-mark{display:inline-block;line-height:1;transform:scale(.78);transform-origin:center}.stats-table tbody:not(.stats-summary-body):not(.stats-sleep-body) td.is-value:before{content:"";position:absolute;top:.375rem;right:.5rem;bottom:.375rem;left:.5rem;z-index:-1;border-radius:.45rem;background:color-mix(in srgb,var(--accent-2) calc(var(--value-k) * 44%),transparent)}.stats-table tbody:not(.stats-summary-body):not(.stats-sleep-body) td.is-value[style*="--value-k:1"]{color:#fff;font-weight:750;text-shadow:0 1px 0 rgba(15,23,42,.28)}.stats-table td:not(:last-child){font-weight:500}.stats-table td:last-child{color:var(--text);background:var(--stats-total-bg);font-weight:600}.stats-table td strong{font:inherit}.stats-table td.is-empty{color:color-mix(in srgb,var(--muted) 34%,transparent);font-weight:400}.stats-table tbody tr:nth-child(odd){--stats-left-bg: color-mix(in srgb, var(--stats-row-bg) 94%, var(--accent-2));background:var(--stats-row-bg)}.stats-table tbody tr:nth-child(2n){--stats-left-bg: color-mix(in srgb, var(--stats-row-alt-bg) 94%, var(--accent-2));background:var(--stats-row-alt-bg)}.stats-table tbody tr:nth-child(2n) td:last-child{background:var(--stats-total-alt-bg)}.stats-table td.is-weekend{background:var(--stats-weekend-bg)}.stats-table tbody tr:nth-child(2n) td.is-weekend{background:color-mix(in srgb,var(--stats-weekend-bg) 96%,var(--text))}.stats-table .stats-sleep-body tr,.stats-table .stats-summary-body tr{--stats-left-bg: var(--stats-summary-bg);background:var(--stats-summary-bg)}.stats-table .stats-summary-body tr{font-weight:650}.stats-table .stats-sleep-body tr:nth-child(2n),.stats-table .stats-summary-body tr:nth-child(2n){--stats-left-bg: var(--stats-summary-alt-bg);background:var(--stats-summary-alt-bg)}.stats-table .stats-summary-body tr.is-free-row{--stats-left-bg: var(--stats-free-bg);background:var(--stats-free-bg)}.stats-table .stats-sleep-body tr:first-child th,.stats-table .stats-sleep-body tr:first-child td,.stats-table .stats-summary-body tr:first-child th,.stats-table .stats-summary-body tr:first-child td{border-top:.25rem solid var(--bg);box-shadow:inset 0 1px color-mix(in srgb,var(--accent-2) 18%,var(--line))}.stats-table .stats-sleep-body tr:first-child td:last-child,.stats-table .stats-summary-body tr:first-child td:last-child{border-right-color:transparent}.stats-table .stats-sleep-body th,.stats-table .stats-sleep-body td,.stats-table .stats-summary-body th,.stats-table .stats-summary-body td{border-bottom-color:color-mix(in srgb,var(--line) 72%,transparent)}.stats-table .stats-sleep-body th:first-child,.stats-table .stats-summary-body th:first-child{border-left:1px solid var(--line)}.stats-table .stats-sleep-body td:last-child,.stats-table .stats-summary-body td:last-child{border-right:1px solid var(--line)}.stats-table .stats-summary-body tr:last-child th:first-child{border-radius:0 0 0 16px;overflow:hidden}.stats-table .stats-summary-body tr:last-child td:last-child{border-radius:0 0 16px;overflow:hidden}.stats-table th:first-child{min-width:280px;text-align:left}.stats-table th:first-child,.stats-table td:first-child{position:relative;z-index:5;background:var(--stats-left-bg);box-shadow:1px 0 0 var(--line)}.stats-table.is-left-fixed th:first-child,.stats-table.is-left-fixed td:first-child{transform:translate(var(--stats-left-shift, 0px))}.stats-table thead th:first-child{z-index:10;color:color-mix(in srgb,var(--accent-2) 56%,var(--text));background:color-mix(in srgb,var(--stats-head-bg) 86%,var(--accent-2))}.stats-table thead th:last-child{color:var(--accent-2);background:color-mix(in srgb,var(--stats-head-bg) 82%,var(--accent-2))}.stats-table .stats-summary-body td:last-child{background:var(--stats-total-bg)}.stats-table .stats-sleep-body tr:nth-child(2n) td:last-child,.stats-table .stats-summary-body tr:nth-child(2n) td:last-child{background:var(--stats-total-alt-bg)}.stats-table .stats-summary-body tr.is-free-row td:last-child{background:color-mix(in srgb,var(--stats-free-bg) 86%,var(--accent-2))}.stats-table .stats-sleep-body td.is-weekend,.stats-table .stats-summary-body td.is-weekend{background:var(--stats-weekend-bg)}.stats-table .stats-sleep-body tr:nth-child(2n) td.is-weekend,.stats-table .stats-summary-body tr:nth-child(2n) td.is-weekend{background:color-mix(in srgb,var(--stats-weekend-bg) 96%,var(--text))}.stats-table .stats-summary-body tr.is-free-row td.is-weekend{background:color-mix(in srgb,var(--stats-free-bg) 96%,var(--accent-2))}.stats-table .stats-sleep-body th:first-child,.stats-table .stats-sleep-body td:first-child,.stats-table .stats-summary-body th:first-child,.stats-table .stats-summary-body td:first-child{background:var(--stats-left-bg)}.stats-table tbody th{padding-left:calc(10px + (var(--level, 1) - 1) * 20px)}.stats-table .activity-marker{display:inline-block;margin-right:8px;vertical-align:middle}.stats-table .direct-icon{margin-right:6px;color:var(--muted);font-size:12px}.stats-table tr.is-direct th{color:var(--muted);font-weight:500}.warn-col{color:var(--danger)}.stats-table thead th.is-weekend{color:color-mix(in srgb,var(--accent-2) 78%,var(--text));background:color-mix(in srgb,var(--stats-head-bg) 92%,var(--accent-2))}.activity-select-button{display:grid;grid-template-columns:12px minmax(0,1fr) auto;gap:10px;align-items:center;width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--soft);color:var(--text);text-align:left}.activity-select-button strong,.activity-select-button small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-select-button small{color:var(--muted)}.modal-backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.modal-backdrop-button{border:0}.app-svelte-modal{display:block;pointer-events:none}.app-svelte-modal .modal-dialog{pointer-events:auto}::view-transition-old(root),::view-transition-new(root){animation-duration:.18s}.app-modal{border:1px solid var(--line);border-radius:22px;background:var(--panel);color:var(--text);box-shadow:var(--shadow);overflow:hidden}.modal-header,.modal-body{border-color:var(--line)}.modal-title{font-size:20px;line-height:1.2}.btn-close{filter:none}:root[data-theme-mode=dark] .btn-close{filter:invert(1) grayscale(100%) brightness(200%)}@media(prefers-color-scheme:dark){:root:not([data-theme-mode=light]) .btn-close{filter:invert(1) grayscale(100%) brightness(200%)}}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.duration-field{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;padding:0;border:0}.duration-field legend{grid-column:1 / -1;margin:0;color:var(--muted);font-size:13px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.dialog-actions.wrap{flex-wrap:wrap}.color-grid{display:grid;gap:10px;margin:10px 0}.color-family{display:grid;grid-template-columns:92px minmax(0,1fr);gap:10px;align-items:center;padding:8px;border:1px solid var(--line);border-radius:12px;background:#64748b0d}.color-family-title{color:var(--muted);font-size:12px;font-weight:600}.color-family-swatches{display:grid;grid-template-columns:repeat(8,minmax(22px,1fr));gap:6px}.color-swatch{aspect-ratio:1;min-height:22px;padding:0;border:1px solid var(--line);border-radius:8px;background:var(--swatch)}.color-swatch.is-selected{outline:2px solid var(--accent-2);outline-offset:2px}.check-line{display:flex;align-items:center;gap:8px}.danger-text{color:var(--danger)}.auth-screen{display:grid;min-height:100vh;place-items:center;padding:20px}.auth-box{width:min(420px,100%);padding:24px;border:1px solid var(--line);border-radius:22px;background:var(--panel);box-shadow:var(--shadow)}.toast{position:fixed;left:50%;bottom:20px;z-index:80;max-width:min(420px,calc(100vw - 24px));padding:10px 14px;border-radius:999px;background:var(--text);color:var(--bg);opacity:0;transform:translate(-50%,8px);transition:opacity .16s ease,transform .16s ease}.toast.is-visible{opacity:1;transform:translate(-50%)}@media(min-width:861px){:root{--sticky-top: 0px}}@media(max-width:860px){:root{--sticky-top: 47px}body{padding-bottom:62px}body:has(.app-shell.is-week){padding-bottom:0}.topbar{grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:6px 8px}.brand-mark{width:28px;height:28px;border-radius:9px}.brand strong{line-height:1.05}.brand small,.desktop-tabs{display:none}.mobile-nav{position:fixed;left:50%;bottom:14px;z-index:50;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;width:min(360px,calc(100vw - 28px));padding:4px;border:1px solid var(--line);border-radius:20px;background:var(--surface);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);transform:translate(-50%)}.mobile-nav .nav-link{display:grid;gap:2px;place-items:center;padding:5px 4px;border-radius:15px;color:var(--muted);font-size:10px}.mobile-nav .nav-link i{font-size:15px}.mobile-nav .nav-link.active{background:var(--panel);color:var(--text);box-shadow:0 6px 18px #0f172a1f}.top-actions{justify-content:flex-end;overflow-x:visible;gap:6px}.top-actions .week-head-actions{gap:6px}#edit-mode{padding:0}.sync-status,.icon-button{width:32px;height:32px;min-width:32px}.main{grid-template-columns:1fr;padding:10px}.app-shell.has-picker .main{grid-template-columns:1fr}.app-shell.has-picker .view{grid-column:auto}.activity-picker{display:none;position:static;max-height:none}.activity-picker.is-picker-visible{display:none}.week-grid{--week-unit: calc(1rem * var(--mobile-week-scale, 1));font-size:calc(1rem * var(--mobile-week-scale, 1));min-width:calc(var(--day-count) * 13.375em + (var(--day-count) - 1) * .625em);grid-template-columns:repeat(var(--day-count),13.375em);gap:.625em}.week-block:not(.is-editing) .week-block-title{padding-inline:.375em}.week-scroll{overflow:auto;overscroll-behavior:contain}.stats-scroll{overflow-x:auto;overflow-y:visible;overscroll-behavior-x:contain}.week-scroll{box-sizing:border-box;height:100%;max-height:none;padding:6px 10px calc(70px + env(safe-area-inset-bottom));scroll-padding:6px 10px calc(70px + env(safe-area-inset-bottom))}.day-column header,.stats-table thead th{top:0}.screen-head{margin-bottom:8px}.mobile-scale-actions{display:inline-flex}.screen-head h1,.stats-title{font-size:24px}.stats-title-block{margin-bottom:14px}.stats-quote{padding:9px 11px 9px 13px}.stats-quote blockquote{font-size:13px}.stats-table{min-width:max(760px,calc(254px + var(--day-count, 7) * 86px));font-size:12px}.stats-table th,.stats-table td{min-width:82px;padding:8px 9px}.stats-table th:first-child{min-width:168px;max-width:168px;white-space:normal;line-height:1.15}.stats-table tbody th{padding-left:calc(8px + (var(--level, 1) - 1) * 10px)}.gap.is-editable{display:grid}.form-grid{grid-template-columns:1fr}.color-grid{gap:8px}.color-family{grid-template-columns:1fr}.color-family-swatches{grid-template-columns:repeat(8,minmax(24px,1fr))}}:root[data-glow-effects=on] body:before,:root[data-glow-effects=on] body:after{content:"";position:fixed;inset:-20vh -12vw auto;z-index:0;height:48vh;pointer-events:none;opacity:.42;filter:blur(34px) saturate(118%)}:root[data-glow-effects=on] body:before{background:radial-gradient(circle at 18% 22%,rgba(37,99,235,.18),transparent 34%),radial-gradient(circle at 74% 18%,rgba(15,118,110,.14),transparent 30%)}:root[data-glow-effects=on] body:after{inset:auto -16vw -26vh;height:42vh;opacity:.24;background:radial-gradient(circle at 22% 80%,rgba(15,118,110,.16),transparent 34%),radial-gradient(circle at 82% 70%,rgba(37,99,235,.14),transparent 32%)}:root[data-glow-effects=on] .day-column.is-today,:root[data-glow-effects=on] .app-modal{box-shadow:0 16px 42px #0f172a1a,0 0 0 1px #2563eb14,0 0 36px #2563eb1a}:root[data-glow-effects=on] .week-block:not(.has-overlap):hover{box-shadow:inset 0 0 0 1px #ffffff42,0 6px 18px color-mix(in srgb,var(--block-ink) 24%,transparent)}:root[data-glow-effects=off] body:before,:root[data-glow-effects=off] body:after{display:none}
