:root{--ratio: 1.6180339887}:root,[data-ratio],[data-density]{--space-3xs: calc(1rem*pow(var(--ratio), -2)) ;--space-2xs: calc(1rem*pow(var(--ratio), -1.5)) ;--space-xs: calc(1rem*pow(var(--ratio), -1)) ;--space-sm: calc(1rem*pow(var(--ratio), -.5)) ;--space-md: 1rem;--space-lg: calc(1rem*pow(var(--ratio), .5)) ;--space-xl: calc(1rem * var(--ratio));--space-2xl: calc(1rem*pow(var(--ratio), 1.5)) ;--space-3xl: calc(1rem*pow(var(--ratio), 2)) ;--space-4xl: calc(1rem*pow(var(--ratio), 2.5)) ;--space-5xl: calc(1rem*pow(var(--ratio), 3)) ;--space-6xl: calc(1rem*pow(var(--ratio), 3.5)) ;--space-7xl: calc(1rem*pow(var(--ratio), 4)) ;--gap-control: var(--space-2xs);--gap-component: var(--space-sm);--pad-component: var(--space-xl);--gap-siblings: var(--space-xl);--gap-group: var(--space-3xl);--space-section: clamp(var(--space-4xl), 2.4rem + 3vw, var(--space-5xl));--text-caption: var(--space-sm);--text-body: var(--space-md);--text-lead: var(--space-lg);--leading-body: clamp(1.4, var(--ratio), 1.7);--radius-sm: var(--space-3xs);--radius-md: var(--space-2xs);--radius-lg: var(--space-sm);--radius-xl: var(--space-lg);--radius-full: 9999px;--shadow-1: 0 1px 2px rgb(0 0 0 / .06), 0 0 0 1px rgb(0 0 0 / .04);--shadow-2: 0 var(--space-3xs) var(--space-md) rgb(0 0 0 / .08), 0 0 0 1px rgb(0 0 0 / .04);--shadow-3: 0 var(--space-xs) var(--space-xl) rgb(0 0 0 / .1), 0 0 0 1px rgb(0 0 0 / .04);--shadow-4: 0 var(--space-md) var(--space-3xl) rgb(0 0 0 / .14), 0 0 0 1px rgb(0 0 0 / .04);--container-prose: calc(16rem*pow(var(--ratio), 2)) }[data-density=compact]{--gap-control: var(--space-3xs);--gap-component: var(--space-xs);--pad-component: var(--space-lg);--gap-siblings: var(--space-lg);--gap-group: var(--space-2xl)}:root{--icon-sm: 1rem;--icon-md: 1.25rem;--icon-lg: 1.5rem;--icon-xl: 2rem;--control-sm: 2rem;--control-md: 2.5rem;--control-lg: 3rem;--focus-ring: 2px;--focus-offset: 2px;--z-base: 0;--z-raised: 10;--z-sticky: 100;--z-dropdown: 200;--z-overlay: 300;--z-modal: 400;--z-toast: 500;--z-tooltip: 600;--icon-pad-adjust: .85}@media (pointer: coarse){:root{--control-sm: 2.75rem;--control-md: 2.75rem}}:root{--bg: #ffffff;--bg-soft: #f6f7f9;--surface: #ffffff;--surface-raised: #ffffff;--text: #16181d;--muted: #5f6673;--line: #e3e5ea;--grid-line: #eef0f3;--weekend: #f3f4f7;--invalid: #e9ebef;--accent: #1d2330;--accent-ink: #ffffff;--accent-soft: rgb(29 35 48 / .07);--danger: #b4322c;--scrim: rgb(10 12 16 / .4);--cat-teal: #0b9488;--cat-amber: #b16f23;--cat-lake: #098db2;--cat-clay: #bd6254;--cat-iris: #8670c0;--cat-moss: #57914a;--cat-indigo: #5d7dc8;--cat-rose: #b95f7d;--cat-olive: #8b8318;--cat-plum: #a864a2;--cat-none: #7d838e;color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #121418;--bg-soft: #1a1d22;--surface: #16191d;--surface-raised: #23272e;--text: #e8eaee;--muted: #a0a7b2;--line: #2a2e35;--grid-line: #1f2328;--weekend: #171a1f;--invalid: #23272e;--accent: #e8eaee;--accent-ink: #121418;--accent-soft: rgb(232 234 238 / .08);--danger: #f07a7a;--scrim: rgb(0 0 0 / .55);--cat-teal: #20a89b;--cat-amber: #c08343;--cat-lake: #32a0c5;--cat-clay: #cd7769;--cat-iris: #9784ce;--cat-moss: #6da361;--cat-indigo: #7190d6;--cat-rose: #c9748f;--cat-olive: #9c963e;--cat-plum: #b879b2;--cat-none: #8b919b;--shadow-2: 0 0 0 1px rgb(255 255 255 / .08);--shadow-3: 0 0 0 1px rgb(255 255 255 / .08);--shadow-4: 0 0 0 1px rgb(255 255 255 / .1);color-scheme:dark}}:root[data-theme=dark]{--bg: #121418;--bg-soft: #1a1d22;--surface: #16191d;--surface-raised: #23272e;--text: #e8eaee;--muted: #a0a7b2;--line: #2a2e35;--grid-line: #1f2328;--weekend: #171a1f;--invalid: #23272e;--accent: #e8eaee;--accent-ink: #121418;--accent-soft: rgb(232 234 238 / .08);--danger: #f07a7a;--scrim: rgb(0 0 0 / .55);--cat-teal: #20a89b;--cat-amber: #c08343;--cat-lake: #32a0c5;--cat-clay: #cd7769;--cat-iris: #9784ce;--cat-moss: #6da361;--cat-indigo: #7190d6;--cat-rose: #c9748f;--cat-olive: #9c963e;--cat-plum: #b879b2;--cat-none: #8b919b;--shadow-2: 0 0 0 1px rgb(255 255 255 / .08);--shadow-3: 0 0 0 1px rgb(255 255 255 / .08);--shadow-4: 0 0 0 1px rgb(255 255 255 / .1);color-scheme:dark}*{box-sizing:border-box}html,body,#root{block-size:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:var(--text-body);line-height:var(--leading-body);-webkit-font-smoothing:antialiased}body.is-dragging{user-select:none;-webkit-user-select:none;cursor:grabbing}body.is-dragging .bar{cursor:grabbing}button,input,select,textarea{font:inherit;color:inherit}h1,h2{text-box:trim-both cap alphabetic}:focus-visible{outline:var(--focus-ring) solid var(--accent);outline-offset:var(--focus-offset)}.visually-hidden{position:absolute;inline-size:1px;block-size:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.swatch{display:inline-block;flex:none;inline-size:var(--space-xs);block-size:var(--space-xs);border-radius:25%}.muted{color:var(--muted)}.small{font-size:var(--text-caption)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.count{color:var(--muted);font-variant-numeric:tabular-nums}.hint{margin:0;color:var(--muted);font-size:var(--text-caption);line-height:1.5}.app{display:flex;flex-direction:column;block-size:100%}.body{display:flex;flex:1;min-block-size:0}.main{display:flex;flex-direction:column;flex:1;min-inline-size:0}.grid-scroll{flex:1;overflow:auto;padding-inline:var(--space-lg);padding-block-end:var(--space-lg)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--gap-control);block-size:var(--control-sm);padding-inline:var(--space-sm);font-size:var(--text-caption);font-weight:550;line-height:1;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);color:var(--text);cursor:pointer;text-decoration:none;white-space:nowrap;text-box:trim-both cap alphabetic}.btn:hover{background:var(--bg-soft)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.primary:hover{filter:brightness(1.06)}.btn.danger{color:var(--danger)}.icon-btn{display:inline-grid;place-items:center;inline-size:var(--control-sm);block-size:var(--control-sm);border:0;border-radius:var(--radius-md);background:transparent;cursor:pointer;font-size:var(--icon-md);line-height:1;color:var(--muted)}.icon-btn:hover:not(:disabled){background:var(--bg-soft);color:var(--text)}.icon-btn:disabled{opacity:.35;cursor:default}.link-btn{border:0;background:none;padding:0;cursor:pointer;color:var(--text);text-decoration:underline;text-underline-offset:.2em;font-size:var(--text-caption);font-weight:550;min-block-size:1.5rem}.link-btn:disabled{color:var(--muted);cursor:default;opacity:.6}.segmented{display:inline-flex;block-size:var(--control-sm);padding:2px;border-radius:var(--radius-md);background:var(--bg-soft);border:1px solid var(--line)}.segmented button{padding-inline:var(--space-sm);border:0;border-radius:var(--radius-sm);background:transparent;font-size:var(--text-caption);font-weight:500;line-height:1;color:var(--muted);cursor:pointer;white-space:nowrap;font-variant-numeric:tabular-nums}.segmented button:hover{color:var(--text)}.segmented button.on{background:var(--surface-raised);color:var(--text);font-weight:600;box-shadow:var(--shadow-1)}.check-label{display:inline-flex;align-items:center;gap:var(--gap-control);font-size:var(--text-caption);cursor:pointer;white-space:nowrap;min-block-size:1.5rem}.check-label input{inline-size:var(--icon-sm);block-size:var(--icon-sm);margin:0;flex:none;accent-color:var(--accent)}.toolbar{display:flex;flex-wrap:wrap;align-items:center;column-gap:var(--gap-siblings);row-gap:var(--gap-component);padding-block:var(--space-sm);padding-inline:var(--space-lg);border-block-end:1px solid var(--line)}.tb-group{display:flex;flex-wrap:wrap;align-items:center;gap:var(--gap-component)}.tb-end{margin-inline-start:auto}.app-title{margin:0;font-size:var(--text-lead);font-weight:650;line-height:1.4;letter-spacing:-.005em}.period-nav{display:flex;align-items:center;gap:var(--gap-control)}.period{min-inline-size:7.5em;text-align:center;font-size:var(--text-body);font-weight:600;font-variant-numeric:tabular-nums}.layer-key{display:inline-block;flex:none;inline-size:var(--icon-sm);block-size:var(--space-xs);border-radius:var(--radius-sm)}.layer-key.known{border:1px dashed var(--muted);background:var(--bg)}.layer-key.confirmed{background:color-mix(in oklch,var(--muted) 22%,var(--bg));border-inline-start:3px solid var(--muted)}.grid{min-inline-size:55rem;isolation:isolate;user-select:none;-webkit-user-select:none;font-size:var(--text-caption);line-height:1.5;--bar-h: var(--space-lg);--lane-gap: var(--gap-control);--lane-h: calc(var(--bar-h) + var(--lane-gap));--row-pad: var(--gap-control)}.view-year{--label-w: var(--space-4xl)}.view-month{--label-w: calc(var(--space-7xl) * var(--ratio))}.grid-head{display:flex;position:sticky;inset-block-start:0;z-index:var(--z-sticky);background:var(--bg);border-block-end:1px solid var(--line)}.head-label{font-weight:650;color:var(--text);align-self:center;padding-block-start:0}.head-days{flex:1;display:grid;grid-template-columns:repeat(31,1fr)}.head-day{display:flex;flex-direction:column;align-items:center;justify-content:center;padding-block:var(--space-2xs);color:var(--muted);font-variant-numeric:tabular-nums;line-height:1.3}.head-day.weekend{color:var(--text)}.head-day.invalid{opacity:.4}.row{display:flex;border-block-end:1px solid var(--line)}.row-label{inline-size:var(--label-w);flex:none;min-inline-size:0;display:flex;align-items:center;gap:var(--gap-control);block-size:calc(var(--bar-h) + var(--row-pad) * 2);padding-inline-end:var(--gap-component);font-weight:600;color:var(--muted)}.row-label.as-link{border:0;background:none;cursor:pointer;text-align:start;font-size:inherit}.row-label.as-link:hover{color:var(--accent)}.track{position:relative;flex:1;cursor:crosshair;touch-action:none;min-block-size:calc(var(--row-pad) * 2 + var(--lanes, 1) * var(--lane-h) - var(--lane-gap))}.cells{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;grid-template-columns:repeat(31,1fr)}.cell{border-inline-start:1px solid var(--grid-line)}.cell.weekend{background:var(--weekend)}.cell.invalid{background:repeating-linear-gradient(-45deg,var(--invalid) 0 3px,transparent 3px 7px);cursor:not-allowed}.cell.today{background:var(--accent-soft);box-shadow:inset var(--focus-ring) 0 0 var(--accent)}.bar{position:absolute;z-index:var(--z-base);inset-block-start:calc(var(--row-pad) + var(--lane) * var(--lane-h));block-size:var(--bar-h);display:flex;align-items:center;border-radius:var(--radius-sm);font-size:var(--text-caption);font-weight:550;line-height:1;overflow:hidden;white-space:nowrap;cursor:grab;transition:box-shadow .12s ease}.bar-text{padding-inline:var(--space-2xs);overflow:hidden;text-overflow:ellipsis;min-inline-size:0;flex:1}.bar-solid{background:color-mix(in oklch,var(--c) 20%,var(--bg));border-inline-start:3px solid var(--c);color:var(--text);font-weight:600}.bar-known{background:var(--bg);border:1px dashed var(--c);color:var(--muted);font-weight:500}.bar-known.chosen{border-style:solid;color:var(--text);background:color-mix(in oklch,var(--c) 8%,var(--bg))}.bar-draft{background:var(--accent-soft);border:1px dashed var(--accent);color:var(--text)}.bar.clip-start{border-start-start-radius:0;border-end-start-radius:0;border-inline-start-width:0}.bar.clip-end{border-start-end-radius:0;border-end-end-radius:0;border-inline-end-width:0}.bar .check{margin-inline-end:var(--space-3xs);font-weight:700;color:var(--c)}.bar .cont{opacity:.7;margin-inline-end:var(--space-3xs);font-weight:700}.bar .cont-end{padding-inline-end:var(--space-3xs);margin:0}.bar:hover{box-shadow:var(--shadow-1)}.bar.selected{z-index:var(--z-raised);box-shadow:0 0 0 var(--focus-offset) var(--bg),0 0 0 calc(var(--focus-offset) + var(--focus-ring)) var(--accent)}.bar.dragging{z-index:var(--z-raised);box-shadow:var(--shadow-2)}.handle{position:absolute;inset-block:0;inline-size:var(--space-2xs);cursor:ew-resize}.handle-start{inset-inline-start:0}.handle-end{inset-inline-end:0}.legend{display:flex;flex-wrap:wrap;align-items:center;column-gap:var(--space-lg);row-gap:var(--space-2xs);padding-block:var(--space-sm);padding-inline:var(--space-lg);border-block-start:1px solid var(--line)}.legend-title{font-size:var(--text-caption);font-weight:650}.legend-actions{display:flex;gap:var(--gap-component)}.legend-items{display:contents}.cat-check.off{color:var(--muted)}.cat-check.off .swatch{opacity:.35}.panel{inline-size:calc(var(--space-7xl) * var(--ratio) * 2);flex:none;overflow-y:auto;display:flex;flex-direction:column;gap:var(--gap-siblings);padding:var(--space-lg);border-inline-start:1px solid var(--line);background:var(--surface)}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:var(--gap-component)}.panel-head h2{margin:0;font-size:var(--text-lead);font-weight:600;line-height:1.4}.panel-head .icon-btn{margin-inline-end:calc(var(--space-2xs) * -1)}.fields{display:flex;flex-direction:column;gap:var(--gap-siblings)}.field{display:flex;flex-direction:column;gap:var(--space-2xs);min-inline-size:0}.field-group{display:flex;flex-direction:column;gap:var(--space-2xs)}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap-component)}.field-label{font-size:var(--text-caption);font-weight:600;color:var(--muted);line-height:1.5}.field input,.field select,.field textarea{inline-size:100%;min-inline-size:0;block-size:var(--control-md);padding-inline:var(--space-sm);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--bg)}.field input[type=date]{padding-inline:var(--space-xs)}.field textarea{block-size:auto;padding-block:var(--space-xs);resize:vertical;line-height:var(--leading-body)}.field .segmented{block-size:var(--control-md)}.field .segmented button{flex:1;font-size:var(--text-body)}.select-wrap{position:relative;display:flex;align-items:center}.select-wrap .swatch{position:absolute;inset-inline-start:var(--space-sm);pointer-events:none}.select-wrap select{padding-inline-start:calc(var(--space-sm) + var(--space-xs) + var(--gap-control))}.input-with-action{display:flex;gap:var(--gap-control)}.input-with-action .btn{block-size:var(--control-md)}.panel-actions{display:flex;justify-content:space-between;gap:var(--gap-component)}.panel-actions .btn{block-size:var(--control-md);padding-inline:var(--space-lg);font-size:var(--text-body)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-overlay);background:var(--scrim);display:flex;align-items:flex-start;justify-content:center;padding-block-start:var(--space-section);padding-inline:var(--space-md)}.dialog{position:relative;z-index:var(--z-modal);inline-size:min(var(--container-prose),100%);max-block-size:80vh;display:flex;flex-direction:column;gap:var(--gap-siblings);padding:var(--pad-component);background:var(--surface-raised);border-radius:var(--radius-xl);box-shadow:var(--shadow-4)}.dialog-body{overflow-y:auto}.cat-list{display:flex;flex-direction:column;gap:var(--gap-component);align-items:flex-start}.cat-row{inline-size:100%}.cat-row.archived{opacity:.55}.cat-main{display:flex;align-items:center;gap:var(--gap-control)}.cat-main input{flex:1;min-inline-size:0;block-size:var(--control-sm);padding-inline:var(--space-xs);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--bg)}.cat-main .count{inline-size:5.5em;text-align:end;font-size:var(--text-caption)}.swatch-btn{inline-size:var(--icon-lg);block-size:var(--icon-lg);flex:none;cursor:pointer;border:2px solid transparent;border-radius:var(--radius-sm)}.swatch-btn.current{border-color:var(--text)}.palette{display:grid;grid-template-columns:repeat(10,var(--icon-lg));gap:var(--gap-control);padding-block:var(--gap-component);padding-inline-start:calc(var(--icon-lg) + var(--gap-control))}.deleted-list{display:flex;flex-direction:column}.deleted-row{display:flex;justify-content:space-between;align-items:center;gap:var(--gap-component);padding-block:var(--gap-component);border-block-end:1px solid var(--line)}.row-actions{display:flex;flex-wrap:wrap;gap:var(--gap-control)}.data-tab{display:flex;flex-direction:column;gap:var(--gap-component)}.data-tab p{margin:0}.toast{position:fixed;inset-inline-start:50%;inset-block-end:var(--space-4xl);transform:translate(-50%);z-index:var(--z-toast);display:flex;align-items:center;gap:var(--gap-component);padding-block:var(--space-xs);padding-inline:var(--space-md);border-radius:var(--radius-lg);background:var(--text);color:var(--bg);box-shadow:var(--shadow-3);font-size:var(--text-caption)}.toast .link-btn{color:var(--bg);text-decoration:underline}@media (max-width: 40rem){.panel{position:fixed;top:0;right:0;bottom:0;left:0;inline-size:auto;z-index:var(--z-modal);border:0}.tb-end{margin-inline-start:0}}.grid.read-only .track{cursor:default}.bar.locked{cursor:pointer}.segmented button:disabled{opacity:.4;cursor:not-allowed}.fields-set{border:0;margin:0;padding:0;min-inline-size:0}.fields-set:disabled input,.fields-set:disabled select,.fields-set:disabled textarea{background:var(--bg-soft);color:var(--muted)}.form-error{margin:0;color:var(--danger);font-size:var(--text-caption);line-height:1.5}.account{display:flex;align-items:center;gap:var(--gap-control)}.avatar{display:inline-grid;place-items:center;flex:none;inline-size:var(--icon-lg);block-size:var(--icon-lg);border-radius:var(--radius-full);background:var(--bg-soft);border:1px solid var(--line);font-size:var(--text-caption);font-weight:650;color:var(--muted);object-fit:cover}.signin{display:grid;place-items:center;min-block-size:100%;padding:var(--space-lg)}.signin-card{inline-size:min(calc(16rem * var(--ratio)),100%);display:flex;flex-direction:column;gap:var(--gap-component);padding:var(--pad-component);border:1px solid var(--line);border-radius:var(--radius-xl);background:var(--surface-raised);box-shadow:var(--shadow-2)}.signin-card p{margin:0}.signin-btn{block-size:var(--control-md);font-size:var(--text-body)}.dev-login{display:flex;flex-direction:column;gap:var(--gap-component);padding-block-start:var(--gap-component);border-block-start:1px solid var(--line)}.dev-login input{block-size:var(--control-md);padding-inline:var(--space-sm);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--bg)}.members{display:flex;flex-direction:column;gap:var(--gap-siblings)}.member-group{display:flex;flex-direction:column;gap:var(--gap-control)}.member-group h3{margin:0 0 var(--space-3xs);font-size:var(--text-caption);font-weight:650;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.member-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--gap-component);padding-block:var(--gap-control);border-block-end:1px solid var(--line)}.member-who{min-inline-size:0;flex:1 1 12rem}.member-controls{display:flex;align-items:flex-end;gap:var(--gap-component)}.access-select{display:flex;flex-direction:column;gap:var(--space-3xs)}.access-select select{block-size:var(--control-sm);padding-inline:var(--space-xs);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--bg);font-size:var(--text-caption)}.invite-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--gap-component)}.invite-email{flex:1 1 14rem}.invite-email input{block-size:var(--control-sm);font-size:var(--text-caption)}
