:root{--paper:#fbf9f3;--paper-panel:#f2eee4;--paper-sunken:#eae5d8;--paper-edge:#e2dccb;--ink:#1e1c1a;--ink-soft:#45413b;--ink-muted:#6e6860;--ink-faint:#9a938a;--orange:#c0451c;--orange-deep:#a93b16;--orange-wash:#fbe7d2;--sun:#e3b85c;--amber:#e08a3e;--clay:#cc5b3e;--slate-blue:#7e9cb8;--plum:#8b7aa6;--violet:#6d5fb6;--moss:#7ba574;--moss-wash:#e7efe4;--moss-ink:#3f6a44;--tree-wood:#c9bfac;--tree-root:#ddd5c5;--sun-wash:#f7edd6;--amber-wash:#f6e4d2;--clay-wash:#f3ddd4;--slate-blue-wash:#e4eaef;--plum-wash:#e9e4ed;--sun-ink:#8a6311;--amber-ink:#9c551b;--clay-ink:#a8401f;--slate-blue-ink:#3f5c76;--plum-ink:#5e4e78;--success:#5c8a5e;--success-wash:#e4ede2;--warning:#c98a2e;--warning-wash:#f6ead2;--danger:#bb4a36;--danger-wash:#f3dcd5;--info:#5e7e9c;--info-wash:#e2e9ef;--surface-page:var(--paper);--surface-card:var(--paper);--surface-panel:var(--paper-panel);--surface-sunken:var(--paper-sunken);--surface-ink:var(--ink);--text-strong:var(--ink);--text-body:var(--ink-soft);--text-muted:var(--ink-muted);--text-faint:var(--ink-faint);--text-on-ink:var(--paper);--text-accent:var(--orange-deep);--link:var(--text-accent);--link-hover:#7f2c10;--border-hairline:var(--paper-edge);--border-strong:#d0c9b8;--border-ink:var(--ink);--action-primary:var(--ink);--action-primary-hover:#322e29;--action-secondary:var(--slate-blue);--action-secondary-hover:var(--slate-blue-ink);--action-accent:var(--orange);--action-accent-hover:var(--orange-deep);--focus-ring:var(--orange);--node:var(--ink);--node-line:#c9c1b2;--node-line-faint:#ded7c8;--surface-canvas-card:#fefdfb;--bubble-user-bg:var(--ink-soft);--bubble-user-fg:var(--paper);--rail-width:60px;--radius-xs:4px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--radius-2xl:32px;--radius-pill:999px;--radius-card:var(--radius-lg);--radius-btn:10px;--shadow-none:none;--shadow-xs:0 1px 2px #1e1c1a0a;--shadow-sm:0 2px 8px #1e1c1a0d;--shadow-md:0 8px 24px #1e1c1a0f;--shadow-lg:0 18px 48px #1e1c1a14;--shadow-focus:0 0 0 3px #c0451c59;--ease-soft:cubic-bezier(.22, .61, .36, 1);--ease-inkout:cubic-bezier(.4, 0, .2, 1);--ease-draw:cubic-bezier(.65, .05, .36, 1);--dur-fast:.14s;--dur-base:.24s;--dur-slow:.42s;--dur-draw:.9s;--z-base:0;--z-raised:10;--z-sticky:100;--z-overlay:1000;--z-modal:1100;--z-toast:1200;--space-0:0;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--space-24:96px;--space-32:128px;--space-40:160px;--measure:66ch;--measure-narrow:48ch;--container-max:1200px;--container-wide:1360px;--gutter:24px;--margin-page:clamp(24px, 6vw, 96px);--font-display:"Fraunces", "Spectral", Georgia, "Times New Roman", serif;--font-sans:"Figtree", "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-serif:var(--font-display);--font-mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--text-2xs:12px;--text-xs:13px;--text-sm:15px;--text-base:17px;--text-lg:20px;--text-xl:24px;--text-2xl:30px;--text-3xl:38px;--text-4xl:48px;--text-5xl:62px;--text-6xl:80px;--text-7xl:104px;--weight-light:300;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--leading-tight:1.04;--leading-snug:1.18;--leading-normal:1.5;--leading-relaxed:1.65;--tracking-tight:-.02em;--tracking-snug:-.01em;--tracking-normal:0;--tracking-wide:.12em;--tracking-wider:.18em;--display-weight:500;--display-optical:144;--label-eyebrow-size:var(--text-xs);--label-eyebrow-spacing:var(--tracking-wide)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;overflow:hidden}body{background:var(--surface-page);color:var(--text-body);font-family:var(--font-sans);font-size:var(--text-sm);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}button,input,textarea{font:inherit;color:inherit}::selection{background:var(--orange-wash);color:var(--ink)}input:focus-visible,textarea:focus-visible{outline:none}@media (pointer:coarse){.on-mouse{display:none}}@media not all and (pointer:coarse){.on-touch{display:none}}@media (prefers-reduced-motion:reduce){:root{--dur-fast:0s;--dur-base:0s;--dur-slow:0s;--dur-draw:0s}*,:before,:after{transition-duration:0s!important;animation-duration:0s!important}}.tooltip{z-index:var(--z-toast);pointer-events:none;align-items:center;gap:var(--space-2);max-width:280px;padding:6px var(--space-3);border-radius:var(--radius-sm);background:var(--ink);color:var(--text-on-ink);font-size:var(--text-xs);font-weight:var(--weight-medium);box-shadow:var(--shadow-md);animation:tooltip-in var(--dur-fast) var(--ease-soft);line-height:1.35;display:flex;position:fixed}.tooltip-right{transform:translateY(-50%)}.tooltip-left{transform:translate(-100%,-50%)}.tooltip-top{transform:translate(-50%,-100%)}.tooltip-bottom{transform:translate(-50%)}@keyframes tooltip-in{0%{opacity:0}to{opacity:1}}.kbd-group{flex-shrink:0;gap:3px;display:inline-flex}kbd{border-radius:var(--radius-xs);min-width:20px;height:20px;font-family:var(--font-sans);font-size:12px;font-weight:var(--weight-semibold);background:var(--paper-sunken);color:var(--ink);border:1px solid var(--border-strong);place-items:center;padding:0 5px;line-height:1;display:inline-grid}.tooltip kbd{background:color-mix(in srgb, var(--paper) 16%, transparent);color:var(--text-on-ink);border-color:color-mix(in srgb, var(--paper) 22%, transparent)}.agenda{background:var(--surface-card);border:1px solid var(--border-hairline);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);color:var(--ink);font-family:var(--font-sans);cursor:grab}.agenda input,.agenda textarea,.agenda select{font:inherit;color:inherit}.agenda input:focus-visible,.agenda textarea:focus-visible,.agenda button:focus-visible,.agenda select:focus-visible+.ag-chip{outline:2px solid var(--focus-ring,var(--ink));outline-offset:2px;border-radius:var(--radius-xs)}.agenda input,.agenda textarea{cursor:text;-webkit-user-select:text;user-select:text;background:0 0;border:0;outline:none;width:100%;padding:0}.agenda input[readonly],.agenda textarea[readonly]{cursor:inherit}.agenda ::placeholder{color:var(--ink-faint);opacity:.7}.ag-head{align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-5);background:var(--paper);border-bottom:1px solid var(--border-hairline);border-radius:var(--radius-md) var(--radius-md) 0 0;display:flex}.ag-titles{align-items:baseline;gap:var(--space-2);flex:1;min-width:0;display:flex}.ag-name{font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--weight-medium);color:var(--text-strong);flex:3;min-width:0}.ag-sep{color:var(--ink-faint)}.ag-day{font-size:var(--text-sm);color:var(--ink-muted);flex:1;min-width:60px}.ag-total{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink-muted);white-space:nowrap}.ag-compact{align-items:center;gap:var(--space-1);min-height:32px;padding:0 var(--space-3);border-radius:var(--radius-pill);border:1px solid var(--border-hairline);background:var(--surface-card);color:var(--ink);font:inherit;font-size:var(--text-xs);cursor:pointer;display:inline-flex;position:relative}.ag-compact:after{content:"";position:absolute;inset:-6px}.ag-compact.on{background:var(--ink);color:var(--text-on-ink);border-color:var(--ink)}.ag-row{border-bottom:1px solid var(--border-hairline);grid-template-columns:124px 92px minmax(220px,1fr) 170px 170px 180px;display:grid;position:relative}.agenda.compact .ag-row{grid-template-columns:124px 92px minmax(200px,1fr)}.ag-colhead{background:var(--paper)}.ag-colhead span{padding:var(--space-2) var(--space-3);font-size:var(--text-2xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wider);text-transform:uppercase;color:var(--ink-muted)}.ag-cell{padding:var(--space-3);min-width:0}.ag-title{font-weight:var(--weight-semibold);font-size:var(--text-sm);color:var(--text-strong)}.ag-desc{margin-top:var(--space-1);font-size:var(--text-xs);line-height:var(--leading-normal);color:var(--ink-soft);resize:none;display:block;overflow:hidden}.ag-small{font-size:var(--text-xs);line-height:var(--leading-normal);color:var(--ink-soft);resize:none;display:block;overflow:hidden}.ag-time{flex-direction:column;gap:2px;display:flex}.ag-start{font-weight:var(--weight-semibold);font-size:var(--text-sm);font-variant-numeric:tabular-nums}.ag-dur{align-items:center;gap:var(--space-1);font-size:var(--text-xs);color:var(--ink-muted);display:flex}.ag-dur input{font-variant-numeric:tabular-nums;width:34px}.ag-lock{border-radius:var(--radius-xs);width:22px;height:22px;color:var(--ink-faint);cursor:pointer;background:0 0;border:0;place-items:center;display:inline-grid;position:relative}.ag-lock:after{content:"";position:absolute;inset:-11px}.ag-lock.on{color:var(--ink);background:var(--paper-sunken)}.ag-chip-hit{cursor:pointer;align-items:center;min-height:44px;margin-top:-12px;display:inline-flex;position:relative}.ag-chip{padding:3px var(--space-2);border-radius:var(--radius-pill);background:var(--chip-wash);color:var(--chip-ink);font-size:var(--text-xs);font-weight:var(--weight-medium);white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.ag-chip i{background:var(--chip-dot);border-radius:50%;width:7px;height:7px}.ag-chip-hit select{opacity:0;cursor:pointer;width:100%;position:absolute;inset:0}.ag-chip-hit select:disabled{cursor:inherit}.ag-row-actions{right:var(--space-2);top:var(--space-2);border-radius:var(--radius-sm);background:var(--surface-card);box-shadow:var(--shadow-sm);border:1px solid var(--border-hairline);gap:2px;padding:2px;display:none;position:absolute}.ag-row:hover .ag-row-actions,.ag-row:focus-within .ag-row-actions{display:flex}.ag-row-actions button{border-radius:var(--radius-xs);width:26px;height:26px;color:var(--ink-muted);cursor:pointer;background:0 0;border:0;place-items:center;display:inline-grid;position:relative}.ag-row-actions button:hover:not(:disabled){background:var(--paper-sunken);color:var(--ink)}.ag-row-actions button:disabled{opacity:.35;cursor:default}.ag-add{justify-content:center;align-items:center;gap:var(--space-1);border-radius:0 0 var(--radius-md) var(--radius-md);width:100%;min-height:44px;color:var(--ink-muted);font:inherit;font-size:var(--text-xs);cursor:pointer;background:0 0;border:0;display:flex}.ag-add:hover{background:var(--paper);color:var(--ink)}.minimap .mm-agenda{fill:var(--paper-edge)}.is-touch .agenda:not(.selected) :is(input,textarea,select,button){pointer-events:none}.is-touch .agenda.selected{cursor:default}.is-touch .ag-row:hover .ag-row-actions{display:none}.is-touch .ag-row.active .ag-row-actions,.is-touch .ag-row:focus-within .ag-row-actions{display:flex}.is-touch .ag-row-actions{gap:var(--space-1)}.is-touch .ag-row-actions button{width:36px;height:36px}.is-touch .ag-row-actions button:after{content:"";position:absolute;inset:-4px}.is-touch .ag-compact{min-height:44px}.app{position:fixed;inset:0}.brand,.topbar-right,.toolbar,.zoombar{background:color-mix(in srgb, var(--paper) 88%, transparent);-webkit-backdrop-filter:blur(10px);border:1px solid var(--border-hairline);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}@media (prefers-reduced-transparency:reduce){.brand,.topbar-right,.toolbar,.zoombar{background:var(--paper);-webkit-backdrop-filter:none}}.topbar{top:var(--space-4);left:var(--space-4);right:var(--space-4);z-index:30;justify-content:space-between;align-items:center;gap:var(--space-3);pointer-events:none;display:flex;position:absolute}.topbar>*{pointer-events:auto}.brand,.topbar-right{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);min-height:56px;display:flex}.brand{gap:var(--space-2)}.brand-home{align-items:center;gap:var(--space-2);min-height:44px;padding:0 var(--space-1);cursor:pointer;border-radius:var(--radius-sm);font-family:var(--font-display);font-weight:var(--display-weight);font-size:var(--text-lg);letter-spacing:var(--tracking-snug);color:var(--text-strong);background:0 0;border:0;display:flex}.board-sep{color:var(--text-faint)}.brand .board-name{max-width:280px;min-height:44px;padding:0 var(--space-2);border-radius:var(--radius-sm);color:var(--text-muted);font-size:var(--text-sm);white-space:nowrap;text-overflow:ellipsis;cursor:text;transition:background-color var(--dur-fast) var(--ease-soft), color var(--dur-fast) var(--ease-soft);background:0 0;border:0;overflow:hidden}.brand .board-name:not(:disabled):hover{background:color-mix(in srgb, var(--paper-sunken) 40%, transparent);color:var(--text-strong)}.brand .board-name:disabled{cursor:default}.badge-readonly{border-radius:var(--radius-pill);background:var(--slate-blue-wash);color:var(--slate-blue-ink);font-size:var(--text-xs);font-weight:var(--weight-medium);padding:3px 10px}.status-denied i{background:var(--danger);box-shadow:0 0 0 3px var(--danger-wash)}.mark-edges{fill:none;stroke:var(--ink);stroke-opacity:.3;stroke-width:1.2px;stroke-linejoin:round}.status{align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--text-muted);display:flex}.status i{background:var(--ink-faint);border-radius:50%;width:8px;height:8px}.status-online i{background:var(--success);box-shadow:0 0 0 3px var(--success-wash)}.status-offline i{background:var(--warning);box-shadow:0 0 0 3px var(--warning-wash)}.avatars{display:flex}.avatar{width:32px;height:32px;color:var(--text-on-ink);font-size:var(--text-xs);font-weight:var(--weight-semibold);border:2px solid var(--paper);border-radius:50%;place-items:center;margin-left:-8px;display:grid}.avatar:first-child{margin-left:0}.board-name-input{width:220px;height:36px;padding:var(--space-2) 10px;border:1px solid var(--border-hairline);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--paper-sunken) 40%, transparent);font-size:var(--text-sm);color:var(--text-strong);transition:border-color var(--dur-fast) var(--ease-soft), box-shadow var(--dur-fast) var(--ease-soft)}.board-name-input:focus{border-color:var(--orange);box-shadow:0 0 0 2px var(--focus-ring);outline:none}.btn{min-height:36px;padding:0 var(--space-4);border-radius:var(--radius-btn);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;transition:background-color var(--dur-fast) var(--ease-soft), transform var(--dur-fast) var(--ease-soft);border:1px solid #0000}.btn:active{transform:translateY(1px)}.btn.accent{background:var(--action-accent);color:var(--paper)}.btn.accent:hover{background:var(--action-accent-hover)}.canvas{touch-action:none;cursor:default;background-color:var(--surface-page);position:absolute;inset:0;overflow:hidden}.canvas.panning{cursor:grabbing}.world{transform-origin:0 0;width:0;height:0;position:absolute;top:0;left:0}.links{pointer-events:none;position:absolute;top:0;left:0;overflow:visible}.link{fill:none;pointer-events:none;stroke-linecap:round;transition:stroke var(--dur-fast) var(--ease-soft)}.link-plain{stroke:var(--ink);stroke-opacity:.4;stroke-width:1.5px;stroke-dasharray:5 5}.link-done{stroke:var(--ink);stroke-opacity:.7;stroke-width:1.5px}.link-sel{stroke:var(--ink);stroke-width:2.5px}.link-draft{stroke:var(--orange);stroke-width:1.5px;stroke-dasharray:5 5}.link-hit{stroke:#0000;stroke-width:16px;pointer-events:stroke;cursor:pointer}.arrow-plain{fill:var(--ink);fill-opacity:.4}.arrow-done{fill:var(--ink);fill-opacity:.7}.arrow-sel{fill:var(--ink)}.arrow-draft{fill:var(--orange)}.note{padding:var(--space-4);border-radius:var(--radius-xs);background:var(--note-wash);border:1px solid color-mix(in srgb, var(--note-fill) 35%, transparent);border-top:4px solid var(--note-fill);box-shadow:var(--shadow-sm);color:var(--text-strong);cursor:grab;-webkit-user-select:none;user-select:none;transition:box-shadow var(--dur-fast) var(--ease-soft);display:flex;position:absolute}.note.task{padding-top:36px}.note:hover{box-shadow:var(--shadow-md)}.note:active{cursor:grabbing}.note.selected{outline:1.5px solid var(--ink);outline-offset:3px;z-index:2}.note.link-target{outline:2px dashed var(--orange);outline-offset:4px}.note.done .text{color:var(--text-muted);text-decoration:line-through;-webkit-text-decoration-color:var(--ink-faint);text-decoration-color:var(--ink-faint)}.note-body{gap:var(--space-2);flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.note .text{flex:1;min-height:0}.note .text.empty{text-align:center;color:var(--note-ink);font-style:italic;font-size:var(--text-xs);place-items:center;display:grid}.note .fit-area::placeholder{color:var(--note-ink);opacity:.8}.fit{text-align:center;width:100%;height:100%;min-height:0;line-height:1.25;font-weight:var(--weight-medium);flex-direction:column;justify-content:center;align-items:stretch;display:flex;position:relative;overflow:hidden}.fit-text,.fit-measure,.fit-area{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;line-height:inherit;text-align:center;color:inherit}.fit-text{max-height:100%;overflow:hidden}.fit-measure{visibility:hidden;pointer-events:none;position:absolute;top:0;left:0;right:0}.fit-area{resize:none;cursor:text;background:0 0;border:0;outline:none;width:100%;max-height:100%;margin:0;padding:0;display:block;overflow:hidden}.check{border-radius:var(--radius-xs);border:1.5px solid var(--note-ink);background:color-mix(in srgb, var(--paper) 60%, transparent);cursor:pointer;width:18px;height:18px;color:var(--paper);transition:background-color var(--dur-fast) var(--ease-soft);place-items:center;padding:0;display:grid;position:absolute;top:10px;left:12px}.check:after{content:"";position:absolute;inset:-13px}.check.on{background:var(--ink);border-color:var(--ink)}.handle{z-index:3;background:var(--paper);border:1.6px solid var(--ink);cursor:crosshair;opacity:0;width:14px;height:14px;transition:opacity var(--dur-fast) var(--ease-soft), transform var(--dur-fast) var(--ease-soft), background-color var(--dur-fast) var(--ease-soft);border-radius:50%;position:absolute}.handle:after{content:"";border-radius:50%;position:absolute;inset:-15px}.item.selected .handle,.canvas.tool-connect .handle{opacity:1}@media (hover:hover){.item:hover .handle{opacity:1}.handle:hover{background:var(--ink);transform:scale(1.3)}}.handle-top{top:-22px;left:calc(50% - 7px)}.handle-bottom{bottom:-22px;left:calc(50% - 7px)}.handle-left{top:calc(50% - 7px);left:-22px}.handle-right{top:calc(50% - 7px);right:-22px}.resize{cursor:nwse-resize;opacity:0;border-right:1.5px solid var(--note-ink,var(--ink));border-bottom:1.5px solid var(--note-ink,var(--ink));width:12px;height:12px;transition:opacity var(--dur-fast) var(--ease-soft);border-bottom-right-radius:2px;position:absolute;bottom:2px;right:2px}.item.selected .resize{opacity:.6}@media (hover:hover){.item:hover .resize{opacity:.6}}.resize:after{content:"";position:absolute;inset:-16px}.cursor{pointer-events:none;z-index:10;transition:transform 60ms linear;position:absolute;top:0;left:0}.cursor-arrow{stroke:var(--paper);stroke-width:1.5px;stroke-linejoin:round}.cursor span{color:var(--paper);font-size:var(--text-2xs);font-weight:var(--weight-semibold);padding:2px var(--space-2);border-radius:var(--radius-pill);white-space:nowrap;position:absolute;top:16px;left:14px}.empty-hint{align-items:center;gap:var(--space-2);text-align:center;pointer-events:none;flex-direction:column;width:min(420px,100% - 48px);display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.empty-hint .eyebrow{font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--text-muted)}.empty-hint h1{font-family:var(--font-display);font-weight:var(--display-weight);font-style:italic;font-size:var(--text-3xl);line-height:var(--leading-snug);letter-spacing:var(--tracking-snug);color:var(--text-strong);margin:0}.empty-hint .empty-keys{justify-content:center;align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--text-muted);display:flex}.empty-hint p{font-size:var(--text-base);line-height:var(--leading-relaxed);color:var(--text-body);margin:0}.toolbar{left:var(--space-4);z-index:20;align-items:center;gap:var(--space-1);padding:var(--space-2);flex-direction:column;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.tool{border-radius:var(--radius-btn);cursor:pointer;width:44px;height:44px;color:var(--text-strong);transition:background-color var(--dur-fast) var(--ease-soft);background:0 0;border:0;place-items:center;display:grid}.tool:hover:not(:disabled){background:color-mix(in srgb, var(--paper-sunken) 70%, transparent)}.tool:disabled{opacity:.5;cursor:not-allowed}.divider{background:var(--border-hairline);width:24px;height:1px;margin:var(--space-1) 0}.swatch{cursor:pointer;width:22px;height:22px;transition:box-shadow var(--dur-fast) var(--ease-soft);border:0;border-radius:50%;margin:5px 0;padding:0;position:relative}.swatch:after{content:"";position:absolute;inset:-11px}.swatch.active{box-shadow:0 0 0 2px var(--paper), 0 0 0 3.5px var(--ink)}.zoombar{right:var(--space-4);bottom:var(--space-4);z-index:20;padding:var(--space-1);align-items:center;gap:0;display:flex;position:absolute}.zoom-label{min-width:52px;height:44px;padding:0 var(--space-1);border-radius:var(--radius-btn);cursor:pointer;text-align:center;font-size:var(--text-xs);color:var(--text-muted);font-variant-numeric:tabular-nums;background:0 0;border:0}.zoom-label:hover{background:color-mix(in srgb, var(--paper-sunken) 70%, transparent);color:var(--text-strong)}.zoom-divider{width:1px;height:24px;margin:0 var(--space-1);background:var(--border-hairline)}@media (width<=640px){.brand .board-name,.board-sep{display:none}.topbar{top:var(--space-2);left:var(--space-2);right:var(--space-2)}.toolbar{left:var(--space-2)}.zoombar{right:var(--space-2);bottom:var(--space-2)}}.item{-webkit-user-select:none;user-select:none;position:absolute}.item.selected{outline:1.5px solid var(--ink);outline-offset:3px;z-index:2}.item.link-target{outline:2px dashed var(--orange);outline-offset:4px}.note.blocked{border-style:solid dashed dashed}.note-blocked{align-items:center;gap:var(--space-1);padding:1px var(--space-2);border-radius:var(--radius-pill);background:var(--paper);border:1px solid var(--ink-faint);color:var(--text-strong);font-size:var(--text-2xs);font-weight:var(--weight-medium);display:inline-flex;position:absolute;top:8px;right:10px}.note-meta{align-items:center;gap:var(--space-2);font-size:var(--text-2xs);color:var(--note-ink);flex-wrap:wrap;display:flex}.note-assignee{align-items:center;gap:var(--space-1);white-space:nowrap;text-overflow:ellipsis;max-width:100%;display:inline-flex;overflow:hidden}.note-assignee i{background:var(--note-ink);width:20px;height:20px;color:var(--paper);font-size:9px;font-style:normal;font-weight:var(--weight-semibold);border-radius:50%;flex:none;place-items:center;display:inline-grid}.note-due{padding:1px var(--space-2);border-radius:var(--radius-pill);border:1px solid color-mix(in srgb, var(--note-ink) 40%, transparent)}.note-due.overdue{border-color:var(--danger);color:var(--danger);background:var(--paper);font-weight:var(--weight-semibold)}.shape{cursor:grab}.shape-svg{position:absolute;inset:0;overflow:visible}.shape-svg *{stroke-width:1.5px}.shape-text{inset:var(--space-3) var(--space-4);position:absolute}.shape-text-ellipse{inset:16%}.shape-text-diamond{inset:27% 25%}.item-shape .shape-text{pointer-events:none}.item-shape .shape-text .fit-area{pointer-events:auto}.textbox{cursor:grab;color:var(--text-strong);line-height:1.3}.textbox .text,.textbox textarea{white-space:pre-wrap;word-break:break-word;width:100%;height:100%;font:inherit;color:inherit;overflow:hidden}.textbox .text.empty{color:var(--text-faint)}.textbox textarea{resize:none;background:0 0;border:0;outline:none;padding:0}.frame{background:color-mix(in srgb, var(--paper-panel) 70%, transparent);border:1px solid var(--paper-edge);border-radius:var(--radius-md);cursor:grab}.frame-title{padding-bottom:var(--space-1);max-width:100%;font-family:var(--font-display);font-size:var(--text-sm);color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;position:absolute;bottom:100%;left:0;overflow:hidden}.frame-title input{font:inherit;color:var(--text-strong);border:1px solid var(--border-hairline);border-radius:var(--radius-xs);background:var(--paper);padding:0 var(--space-1)}.image{cursor:grab;box-shadow:var(--shadow-sm);border-radius:var(--radius-xs);overflow:hidden}.image img{object-fit:contain;pointer-events:none;width:100%;height:100%;display:block}.image.selected{overflow:visible}.stroke{pointer-events:none}.stroke svg{position:absolute;top:0;left:0}.stroke-hit{fill:none;stroke:#0000;stroke-linecap:round;stroke-linejoin:round;pointer-events:stroke;cursor:grab}.stroke.selected{outline:1px dashed var(--ink-faint)}.link-relates{stroke-dasharray:2 4}.link-label{padding:2px var(--space-2);border-radius:var(--radius-pill);background:var(--paper);border:1px solid var(--border-hairline);color:var(--text-body);font-size:var(--text-2xs);white-space:nowrap;cursor:pointer;z-index:1;position:absolute;transform:translate(-50%,-50%)}.link-label.selected{border-color:var(--ink);color:var(--text-strong)}.comment-pin{z-index:3;min-width:32px;height:32px;padding:0 var(--space-2);background:var(--ink);color:var(--paper);border:2px solid var(--paper);box-shadow:var(--shadow-sm);font-size:var(--text-2xs);font-weight:var(--weight-semibold);cursor:pointer;border-radius:16px 16px 16px 4px;justify-content:center;align-items:center;gap:2px;display:inline-flex;position:absolute;transform:translate(-50%,-100%)}.comment-pin:after{content:"";position:absolute;inset:-8px}.comment-pin.resolved{background:var(--paper);color:var(--text-muted);border-color:var(--ink-faint)}.comment-pin.open{box-shadow:0 0 0 2px var(--paper), 0 0 0 3.5px var(--ink)}.overlay{pointer-events:none;position:absolute;top:0;left:0;overflow:visible}.marquee{fill:color-mix(in srgb, var(--ink) 4%, transparent);stroke:var(--ink);stroke-width:1px;stroke-dasharray:4 3;vector-effect:non-scaling-stroke}.draw-preview{fill:none;stroke:var(--ink);stroke-width:1.5px;stroke-dasharray:5 4;vector-effect:non-scaling-stroke}.pen-preview{fill:none;stroke:var(--ink);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.guide{stroke:var(--orange);stroke-width:1px;vector-effect:non-scaling-stroke}.canvas.tool-note,.canvas.tool-shape,.canvas.tool-text,.canvas.tool-frame,.canvas.tool-comment,.canvas.tool-pen,.canvas.tool-connect,.canvas.tool-connect .item{cursor:crosshair}.tool.on{background:var(--ink);color:var(--paper)}.tool.on:hover{background:var(--ink-soft)}.tool-sub{padding:var(--space-1) 0;border-top:1px solid var(--border-hairline);border-bottom:1px solid var(--border-hairline);flex-direction:column;gap:2px;display:flex}.tool.small{width:44px;height:36px}.topbar-btn{min-height:44px;padding:0 var(--space-3);border-radius:var(--radius-btn);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-strong);cursor:pointer;transition:background-color var(--dur-fast) var(--ease-soft);background:0 0;border:0}.topbar-btn:hover{background:color-mix(in srgb, var(--paper-sunken) 70%, transparent)}.topbar-btn.on{background:var(--ink);color:var(--paper)}.menu-wrap{position:relative}.menu{right:0;top:calc(100% + var(--space-2));z-index:30;min-width:240px;padding:var(--space-1);background:var(--paper);border:1px solid var(--border-hairline);border-radius:var(--radius-md);box-shadow:var(--shadow-md);flex-direction:column;display:flex;position:absolute}.menu button{min-height:44px;padding:0 var(--space-3);text-align:left;border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--text-strong);cursor:pointer;justify-content:space-between;align-items:center;gap:var(--space-4);background:0 0;border:0;display:flex}.menu button:hover,.menu button:focus-visible{background:color-mix(in srgb, var(--paper-sunken) 60%, transparent)}.menu button.danger{color:var(--danger)}.menu .kbd-group kbd{color:var(--text-muted);border-color:var(--border-hairline);font-weight:var(--weight-medium);background:0 0}.menu-divider{height:1px;margin:var(--space-1) var(--space-2);background:var(--border-hairline)}.context-menu{z-index:var(--z-overlay);min-width:248px;position:fixed;top:auto;right:auto}.context-menu:focus{outline:none}button.avatar{cursor:pointer;padding:0}.avatar.following{box-shadow:0 0 0 2px var(--ink)}.follow-banner{z-index:20;align-items:center;gap:var(--space-3);padding:var(--space-1) var(--space-1) var(--space-1) var(--space-4);background:var(--paper);border-radius:var(--radius-pill);box-shadow:var(--shadow-sm);font-size:var(--text-sm);color:var(--text-strong);border:2px solid;display:flex;position:absolute;top:84px;left:50%;transform:translate(-50%)}.props,.side-panel,.comment-thread{z-index:25;background:var(--paper);border:1px solid var(--border-hairline);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);position:absolute}.props{right:var(--space-4);width:280px;max-height:calc(100% - 260px);padding:var(--space-3) var(--space-4) var(--space-4);gap:var(--space-3);flex-direction:column;display:flex;top:88px;overflow:auto}.props-head,.side-head{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.props-title,.side-head h2{font-family:var(--font-display);font-weight:var(--display-weight);font-size:var(--text-base);color:var(--text-strong);margin:0}.props-actions{align-items:center;gap:2px;display:flex}.prop-swatches{flex-wrap:wrap;gap:6px;display:flex}.prop-swatches .swatch{margin:5px}.prop-row{gap:var(--space-1);display:flex}.prop-row.wrap{flex-wrap:wrap}.prop-chip{min-height:36px;padding:0 var(--space-3);border:1px solid var(--border-hairline);border-radius:var(--radius-pill);color:var(--text-body);font-size:var(--text-xs);font-weight:var(--weight-medium);cursor:pointer;background:0 0;position:relative}.prop-chip:after{content:"";position:absolute;inset:-4px 0}.prop-chip:hover{border-color:var(--ink-faint)}.prop-chip.on{background:var(--ink);border-color:var(--ink);color:var(--paper)}.prop-fields{gap:var(--space-3);flex-direction:column;display:flex}.prop-label{gap:var(--space-1);font-size:var(--text-xs);color:var(--text-muted);flex-direction:column;display:flex}.prop-check{align-items:center;gap:var(--space-2);min-height:44px;font-size:var(--text-sm);color:var(--text-strong);cursor:pointer;display:flex}.prop-check input,.task-row input{width:18px;height:18px;accent-color:var(--ink)}.side-panel{right:var(--space-4);top:88px;bottom:var(--space-4);width:340px;padding:var(--space-3) var(--space-4) var(--space-4);gap:var(--space-3);flex-direction:column;display:flex;overflow:hidden}.task-list{flex-direction:column;flex:1;margin:0;padding:0;list-style:none;display:flex;overflow:auto}.task-row{align-items:center;gap:var(--space-2);border-bottom:1px solid var(--border-hairline);padding-left:var(--space-1);display:flex}.task-main{min-width:0;min-height:52px;padding:var(--space-2);text-align:left;cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:0;flex-direction:column;flex:1;justify-content:center;gap:2px;display:flex}.task-main:hover:not(.static){background:color-mix(in srgb, var(--paper-sunken) 50%, transparent)}.task-main.static{cursor:default}.task-text{font-size:var(--text-sm);color:var(--text-strong);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.task-row.done .task-text{color:var(--text-muted);text-decoration:line-through}.task-empty{padding:var(--space-4) var(--space-2)}.comment-thread{width:320px;padding:var(--space-3) var(--space-4) var(--space-4);gap:var(--space-3);flex-direction:column;display:flex}.comment-messages{gap:var(--space-3);flex-direction:column;max-height:260px;margin:0;padding:0;list-style:none;display:flex;overflow:auto}.comment-messages p{font-size:var(--text-sm);color:var(--text-body);white-space:pre-wrap;word-break:break-word;margin:2px 0 0}.comment-author{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--text-strong)}.comment-compose{gap:var(--space-2);flex-direction:column;align-items:flex-end;display:flex;position:relative}.comment-compose textarea{resize:vertical;width:100%;height:auto;min-height:60px}.mention-list{padding:var(--space-1);background:var(--paper);border:1px solid var(--border-hairline);border-radius:var(--radius-sm);min-width:180px;box-shadow:var(--shadow-md);margin:0;list-style:none;position:absolute;bottom:calc(100% + 4px);left:0}.mention-list button{text-align:left;width:100%;min-height:40px;padding:0 var(--space-2);border-radius:var(--radius-xs);cursor:pointer;font-size:var(--text-sm);background:0 0;border:0}.mention-list button:hover{background:var(--paper-sunken)}.bottom-right{right:var(--space-4);bottom:var(--space-4);z-index:20;align-items:flex-end;gap:var(--space-2);flex-direction:column;display:flex;position:absolute}.bottom-right .zoombar{position:static}.minimap{background:var(--paper);border:1px solid var(--border-hairline);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);cursor:pointer;touch-action:none;display:block}.minimap rect{fill:var(--ink-faint)}.minimap .mm-frame{fill:var(--paper-sunken)}.minimap .mm-note{fill:var(--ink-muted)}.minimap .mm-view{fill:color-mix(in srgb, var(--ink) 5%, transparent);stroke:var(--ink);stroke-width:1.2px}.toast{left:50%;bottom:var(--space-6);z-index:40;padding:var(--space-2) var(--space-4);border-radius:var(--radius-pill);background:var(--ink);color:var(--paper);font-size:var(--text-sm);box-shadow:var(--shadow-md);position:absolute;transform:translate(-50%)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}@media (width<=640px){.props,.side-panel{left:var(--space-2);right:var(--space-2);width:auto;top:auto;bottom:var(--space-2);max-height:50%}.minimap{display:none}.topbar-btn{padding:0 var(--space-2)}.follow-banner{top:72px}.brand,.topbar-right{padding:var(--space-1) var(--space-2);gap:var(--space-1);min-height:52px}.brand-home span{display:none}.status{padding:0 var(--space-1);gap:0;font-size:0}.avatar.me{display:none}.topbar .btn.accent{padding:0 var(--space-3)}}@media (hover:hover){.canvas.tool-select .item:not(.selected):not(.frame):hover{outline:1px solid var(--border-strong);outline-offset:3px}.canvas.tool-select .frame:not(.selected):hover{outline:1px dashed var(--border-strong);outline-offset:0}}.tool-hint{left:50%;bottom:var(--space-6);z-index:25;align-items:center;gap:var(--space-3);max-width:calc(100% - 2 * var(--space-4));padding:var(--space-2) var(--space-2) var(--space-2) var(--space-4);border-radius:var(--radius-pill);background:var(--paper);border:1px solid var(--border-hairline);box-shadow:var(--shadow-sm);font-size:var(--text-sm);color:var(--text-body);pointer-events:none;display:flex;position:absolute;transform:translate(-50%)}.tool-hint-esc{align-items:center;gap:var(--space-1);padding-left:var(--space-3);border-left:1px solid var(--border-hairline);color:var(--text-muted);font-size:var(--text-xs);white-space:nowrap;display:inline-flex}@media (width<=640px){.tool-hint{bottom:var(--space-16);font-size:var(--text-xs)}.tool-hint-esc{display:none}}.page-dialog.shortcuts{width:min(760px,100%)}.shortcuts-grid{gap:var(--space-2) var(--space-8);margin-top:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));display:grid}.shortcuts-group{margin:var(--space-4) 0 var(--space-1);font-size:var(--label-eyebrow-size);font-weight:var(--weight-semibold);letter-spacing:var(--label-eyebrow-spacing);text-transform:uppercase;color:var(--text-muted)}.shortcuts-grid dl{margin:0}.shortcuts-row{justify-content:space-between;align-items:center;gap:var(--space-3);border-bottom:1px solid var(--border-hairline);min-height:36px;padding:var(--space-1) 0;display:flex}.shortcuts-row dt{font-size:var(--text-sm);color:var(--text-body);flex:1}.shortcuts-row dd{justify-content:flex-end;gap:var(--space-1);flex-wrap:wrap;max-width:60%;margin:0;display:flex}.shortcuts-alt{align-items:center;gap:var(--space-1);display:inline-flex}.shortcuts-or{font-size:var(--text-xs);color:var(--text-faint)}.shortcuts-mouse{font-size:var(--text-xs);color:var(--text-muted);align-self:center}.is-touch .canvas{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.is-touch button{touch-action:manipulation}.is-touch .toolbar .tool:not(.small){width:48px;height:48px}.is-touch .handle{width:18px;height:18px}.is-touch .handle:after{inset:-13px}.is-touch .handle-top{top:-28px;left:calc(50% - 9px)}.is-touch .handle-bottom{bottom:-28px;left:calc(50% - 9px)}.is-touch .handle-left{top:calc(50% - 9px);left:-28px}.is-touch .handle-right{top:calc(50% - 9px);right:-28px}.is-touch .resize{width:16px;height:16px}.is-touch .canvas.tool-select.zoomed-out .handle,.is-touch .menu .kbd-group,.is-touch .tool-hint-esc{display:none}.is-touch .menu button{min-height:48px}.is-touch button,.is-touch .canvas{-webkit-tap-highlight-color:transparent}@media (hover:none){.menu button:hover:not(:focus-visible){background:0 0}}.topbar-btn.icon{place-items:center;width:44px;padding:0;display:grid}.selbar{z-index:19;padding:var(--space-1);background:var(--paper);border:1px solid var(--border-hairline);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);align-items:center;gap:2px;display:flex;position:absolute}.selbar-btn{align-items:center;gap:var(--space-2);min-height:44px;padding:0 var(--space-3);border-radius:var(--radius-btn);cursor:pointer;white-space:nowrap;color:var(--text-strong);font-size:var(--text-sm);font-weight:var(--weight-medium);background:0 0;border:0;display:inline-flex}.selbar-btn:active,.selbar .tool:not(.on):active{background:color-mix(in srgb, var(--paper-sunken) 70%, transparent)}.selbar .tool.danger{color:var(--danger)}.is-phone .selbar-btn{justify-content:center;width:44px;padding:0}.is-phone .selbar-label{display:none}.edit-bar{z-index:40;position:absolute;left:50%;transform:translate(-50%)}.edit-bar .page-btn{box-shadow:var(--shadow-md)}.tool-hint.active{pointer-events:auto;padding-right:var(--space-1)}.tool-hint .page-btn{min-height:44px}.context-menu.sheet{left:var(--space-2);right:var(--space-2);min-width:0;top:auto;bottom:calc(var(--space-2) + env(safe-area-inset-bottom));max-height:70vh;overflow-y:auto}.is-touch:not(.is-phone) .toolbar{left:calc(var(--space-4) + env(safe-area-inset-left))}.is-phone .topbar{top:calc(var(--space-2) + env(safe-area-inset-top))}.is-phone .toolbar{top:auto;bottom:calc(var(--space-2) + env(safe-area-inset-bottom));left:var(--space-2);right:var(--space-2);padding:var(--space-1);overscroll-behavior-x:contain;scrollbar-width:none;flex-direction:row;justify-content:flex-start;overflow-x:auto;transform:none}.is-phone .toolbar::-webkit-scrollbar{display:none}.is-phone .toolbar .tool{flex:none}.is-phone .toolbar .tool:not(.small){width:44px;height:44px}.is-phone .toolbar .divider{width:1px;height:24px;margin:0 var(--space-1);flex:none}.is-phone .tool-sub{padding:0 var(--space-1);border-top:0;border-bottom:0;border-left:1px solid var(--border-hairline);border-right:1px solid var(--border-hairline);flex-direction:row}.is-phone .tool.small{width:40px;height:44px}.is-phone .bottom-right{display:none}.is-phone .tool-hint{left:var(--space-2);right:var(--space-2);max-width:none;bottom:calc(80px + env(safe-area-inset-bottom));border-radius:var(--radius-lg);justify-content:space-between;transform:none}.is-phone .toast{bottom:calc(80px + env(safe-area-inset-bottom))}.is-phone .props,.is-phone .side-panel{bottom:calc(var(--space-2) + env(safe-area-inset-bottom))}.is-phone .side-panel{max-height:65%}.is-phone .comment-thread{right:var(--space-2);width:auto;bottom:calc(var(--space-2) + env(safe-area-inset-bottom));max-height:70%;overflow-y:auto;left:var(--space-2)!important;top:auto!important}.is-phone .follow-banner{max-width:calc(100% - 2 * var(--space-2))}.edit-bar:has(.edit-row-actions){align-items:center;gap:var(--space-2);display:flex}.edit-row-actions{position:static}.page{padding:var(--space-12) var(--margin-page);background:var(--surface-page);position:fixed;inset:0;overflow-y:auto}.page>*{max-width:880px;margin-left:auto;margin-right:auto}.page-center{place-items:center;display:grid}.page-card{width:min(440px,100%);padding:var(--space-10) var(--space-8);background:var(--paper);border:1px solid var(--border-hairline);border-radius:var(--radius-card);gap:var(--space-4);flex-direction:column;display:flex}.page-eyebrow{font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--text-muted)}.page-title{font-family:var(--font-display);font-weight:var(--display-weight);font-size:var(--text-3xl);line-height:var(--leading-snug);letter-spacing:var(--tracking-snug);color:var(--text-strong);margin:0}.page-lead{font-size:var(--text-base);line-height:var(--leading-relaxed);color:var(--text-body);margin:0}.page-lead strong{color:var(--text-strong);font-weight:var(--weight-semibold)}.page-note{font-size:var(--text-xs);color:var(--text-muted);margin:0}.page-note a{color:var(--link);transition:color var(--dur-base) var(--ease-soft);text-decoration:none}.page-note a:hover,.page-note a:focus-visible{color:var(--link-hover)}.page-banner{margin-bottom:var(--space-6);padding:var(--space-3) var(--space-4);background:var(--warning-wash);border-radius:var(--radius-sm);color:var(--ink-soft)}.page-error{padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);background:var(--danger-wash);color:var(--ink-soft);font-size:var(--text-sm);margin:0}.page-btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:44px;padding:0 var(--space-5);border-radius:var(--radius-btn);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;transition:background-color var(--dur-fast) var(--ease-soft), border-color var(--dur-fast) var(--ease-soft), transform var(--dur-fast) var(--ease-soft);border:1px solid #0000;text-decoration:none;display:inline-flex}.page-btn:active{transform:translateY(1px)}.page-btn:disabled{opacity:.5;cursor:not-allowed}.page-btn.accent{background:var(--action-accent);color:var(--paper)}.page-btn.accent:hover:not(:disabled){background:var(--action-accent-hover)}.page-btn.primary{background:var(--action-primary);color:var(--paper)}.page-btn.primary:hover:not(:disabled){background:var(--action-primary-hover)}.page-btn.outline{border-color:var(--border-strong);color:var(--text-strong);background:0 0}.page-btn.outline:hover{border-color:var(--border-ink)}.page-btn.ghost{color:var(--text-body);background:0 0}.page-btn.ghost:hover{background:var(--paper-sunken)}.page-logout{min-height:36px;padding:0 var(--space-3)}.page-icon-btn{border-radius:var(--radius-sm);width:44px;height:44px;color:var(--text-muted);cursor:pointer;transition:background-color var(--dur-fast) var(--ease-soft), color var(--dur-fast) var(--ease-soft);background:0 0;border:0;flex:none;place-items:center;display:grid}.page-icon-btn:hover{background:color-mix(in srgb, var(--paper-sunken) 40%, transparent);color:var(--text-strong)}.page-form{gap:var(--space-3);flex-direction:column;display:flex}.page-label{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--ink-soft)}.page-input,.page-select{width:100%;min-height:44px;padding:var(--space-2) 10px;border:1px solid var(--border-hairline);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--paper-sunken) 40%, transparent);font-size:var(--text-sm);color:var(--text-strong);transition:border-color var(--dur-fast) var(--ease-soft), box-shadow var(--dur-fast) var(--ease-soft)}.page-select{cursor:pointer;width:auto}.page-input:focus,.page-select:focus{border-color:var(--orange);box-shadow:0 0 0 2px var(--focus-ring);outline:none}.page-input::placeholder{color:var(--text-muted)}.page-divider{align-items:center;gap:var(--space-3);font-size:var(--text-xs);color:var(--text-muted);display:flex}.page-divider:before,.page-divider:after{content:"";background:var(--border-hairline);flex:1;height:1px}.page-head{justify-content:space-between;align-items:flex-end;gap:var(--space-4);margin-bottom:var(--space-8);flex-wrap:wrap;display:flex}.page-actions{align-items:center;gap:var(--space-2);display:flex}.page-list{border-top:1px solid var(--border-hairline);flex-direction:column;padding:0;list-style:none;display:flex}.page-row{align-items:center;gap:var(--space-2);border-bottom:1px solid var(--border-hairline);display:flex}.page-row-main{min-width:0;padding:var(--space-4) var(--space-2);color:inherit;border-radius:var(--radius-sm);transition:background-color var(--dur-fast) var(--ease-soft);flex-direction:column;flex:1;gap:2px;text-decoration:none;display:flex}.page-row-main:hover{background:color-mix(in srgb, var(--paper-sunken) 40%, transparent)}.page-row-name{font-family:var(--font-display);font-weight:var(--display-weight);font-size:var(--text-xl);color:var(--text-strong);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.page-row-meta{font-size:var(--text-xs);color:var(--text-muted)}.page-empty{padding:var(--space-16) 0;text-align:center}.page-empty h2{margin:0 0 var(--space-2);font-family:var(--font-display);font-weight:var(--display-weight);font-style:italic;font-size:var(--text-2xl);color:var(--text-strong)}.page-empty p{color:var(--text-body);margin:0}.page-overlay{z-index:var(--z-modal);padding:var(--space-4);background:color-mix(in srgb, var(--ink) 18%, transparent);place-items:center;display:grid;position:fixed;inset:0}.page-dialog{width:min(560px,100%);max-height:calc(100vh - 32px);padding:var(--space-8);gap:var(--space-4);background:var(--paper);border:1px solid var(--border-hairline);border-radius:var(--radius-card);box-shadow:var(--shadow-lg);flex-direction:column;display:flex;overflow-y:auto}.page-dialog:focus{outline:none}.page-dialog-head{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.page-dialog-title{font-family:var(--font-display);font-weight:var(--display-weight);font-size:var(--text-xl);color:var(--text-strong);margin:0}.page-subtitle{margin:var(--space-2) 0 0;font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-strong)}.page-share-row{gap:var(--space-2);padding:var(--space-3) 0;border-top:1px solid var(--border-hairline);flex-direction:column;display:flex}.page-share-label{gap:var(--space-2);font-size:var(--text-sm);color:var(--text-strong);flex-direction:column;display:flex}.page-share-add{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.page-share-person{flex:12rem;min-width:0}.page-share-actions{gap:var(--space-2);display:flex}.page-members{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.page-member{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.page-member-name{color:var(--text-strong);font-weight:var(--weight-medium);flex-direction:column;min-width:0;display:flex}@media (width<=640px){.page{padding:var(--space-6) var(--space-4)}.page-card,.page-dialog{padding:var(--space-6) var(--space-5)}}.page-templates{gap:var(--space-2);margin-bottom:var(--space-6);flex-direction:column;display:flex}.page-template-row{gap:var(--space-2);flex-wrap:wrap;display:flex}.tpl-desc{display:none}@media (hover:none) and (pointer:coarse){.page-template-row{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));display:grid}.page-template-row .page-btn.accent{grid-column:1/-1;justify-self:start}.tpl-btn{justify-content:center;align-items:flex-start;gap:var(--space-1);padding:var(--space-3) var(--space-4);text-align:left;flex-direction:column}.tpl-desc{font-size:var(--text-xs);font-weight:var(--weight-regular);line-height:var(--leading-normal);color:var(--ink-muted);display:block}}
