: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}.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}.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-scroll,.stats-scroll{overflow-x:auto;padding-bottom:10px}.week-grid{display:grid;grid-template-columns:repeat(var(--day-count),224px);gap:12px;min-width:calc(var(--day-count) * 224px + (var(--day-count) - 1) * 12px)}.day-column{min-width:0;border:1px solid var(--line);border-radius:16px;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 16px 40px #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:7px;height:7px;margin-left:7px;border-radius:999px;background:var(--accent-2);box-shadow:0 0 0 4px #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:10px;border-bottom:1px solid var(--line);border-radius:15px 15px 0 0;background:var(--soft)}.day-body{display:grid;gap:0;padding:8px;background:repeating-linear-gradient(180deg,rgba(100,116,139,.08) 0,rgba(100,116,139,.08) 1px,transparent 1px,transparent calc((var(--five-min-height, 2px) * 12))),var(--panel)}.week-block,.gap,.day-end{width:100%;border:0;border-radius:12px;text-align:left;transition:transform .16s ease,box-shadow .16s ease,opacity .16s ease}.week-block{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 78px 58px;gap:0;align-items:stretch;min-width:0;min-height:20px;padding:0;border:1px solid rgba(15,23,42,.08);border-radius:8px;background:var(--block-bg);color:var(--block-text);box-shadow:none;overflow:hidden;cursor:pointer}.week-block:hover{transform:none;box-shadow:inset 0 0 0 1px #ffffff47,0 4px 14px #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-title{display:flex;align-items:center;min-width:0;padding:3px 7px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;font-size:12px;line-height:1.1;cursor:grab}.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:78px;background:#ffffff08;line-height:1}.week-block-times span{display:grid;place-items:center;min-height:0;padding:1px 3px;font-size:10px}.week-block-times input,.week-block-duration.is-editable input{width:100%;min-width:0;height:100%;padding:0 3px;border:0;border-radius:0;background:transparent;color:inherit;font-size:9px;line-height:1;text-align:center;font-variant-numeric:tabular-nums;outline:none}.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:2px solid rgba(0,0,0,.05)}.week-block-times input+input{border-top:2px solid rgba(0,0,0,.05)}.week-block-duration{display:grid;place-items:center;min-width:58px;padding:1px 4px;font-style:normal;font-size:10px;line-height:1;background:#00000014}.week-block-duration.is-editable{grid-template-columns:1fr 1fr;gap:0;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 7px 3px;opacity:.75;font-size:10px}.week-block.is-compact .week-block-title,.week-block.is-compact .week-block-duration,.week-block.is-compact .week-block-times span{font-size:9px}.resize-trigger{display:none}.week-block.is-editing .resize-trigger{position:absolute;left:0;right:0;z-index:2;display:block;height:4px;background:#ffffff57;cursor:ns-resize}.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:8px;background:#64748b0f;color:var(--muted);font-size:11px;cursor:pointer;opacity:.74}.gap.is-editable,.gap:hover{opacity:1}.day-end{display:flex;justify-content:space-between;align-items:center;min-height:26px;padding:4px 8px;border-radius:7px;background:repeating-linear-gradient(90deg,transparent,transparent 6px,rgba(100,116,139,.22) 6px,rgba(100,116,139,.22) 10px);color:var(--muted);font-size:12px}.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-table{min-width:max(1120px,calc(280px + var(--day-count, 7) * 132px));border-collapse:separate;border-spacing:0;background:linear-gradient(90deg,rgba(37,99,235,.035),transparent 34%,rgba(15,118,110,.04)),var(--panel);border:1px solid var(--line);border-radius:16px;overflow:hidden}.stats-table thead th{position:sticky;top:var(--sticky-top);z-index:4;background:color-mix(in srgb,var(--panel) 88%,var(--soft))}.stats-table th,.stats-table td{min-width:120px;padding:12px 14px;border-bottom:1px solid var(--line);border-right:1px solid rgba(100,116,139,.12);white-space:nowrap;text-align:center}.stats-table tbody tr:nth-child(odd){background:linear-gradient(90deg,#2563eb0e,#0f766e09)}.stats-table tbody tr:nth-child(2n){background:linear-gradient(90deg,rgba(100,116,139,.035),transparent)}.stats-table th:first-child{min-width:280px;text-align:left}.stats-table th:first-child,.stats-table td:first-child{position:sticky;left:0;z-index:5;background:color-mix(in srgb,var(--panel) 88%,var(--soft))}.stats-table thead th:first-child{z-index:7}.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 .service-row{background:linear-gradient(90deg,#64748b1f,#2563eb0f)}.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}.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}#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{font-size:calc(1rem * var(--mobile-week-scale, 1));min-width:calc(var(--day-count) * 214px + (var(--day-count) - 1) * 10px);grid-template-columns:repeat(var(--day-count),214px);gap:10px}.week-scroll,.stats-scroll{max-height:calc(100vh - 152px);overflow:auto;overscroll-behavior:contain}.day-column header,.stats-table thead th{top:0}.screen-head{margin-bottom:8px}.mobile-scale-actions{display:inline-flex}.screen-head h1{font-size:24px}.stats-table{min-width:max(760px,calc(168px + 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}
