.description-ref{font:inherit;color:var(--accent);text-decoration:underline dotted}span.description-ref{cursor:default}button.description-ref{background:none;border:none;padding:0;cursor:pointer}button.description-ref:hover{text-decoration-style:solid}:root{color-scheme:light;--page: #dedede;--surface: #fcfcfb;--text-primary: #0b0b0b;--text-secondary: #52514e;--text-muted: #898781;--hairline: #e1e0d9;--border: rgba(11, 11, 11, .1);--accent: #2a78d6;--node-fill: var(--page);--node-stroke: var(--text-secondary);--edge: #c3c2b7;--edge-arrow: #c3c2b7;--edge-dim: #e1e0d9}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){color-scheme:dark;--page: #0d0d0d;--surface: #1a1a19;--text-primary: #ffffff;--text-secondary: #c3c2b7;--text-muted: #898781;--hairline: #2c2c2a;--border: rgba(255, 255, 255, .1);--accent: #3987e5;--edge: #383835;--edge-arrow: #55544f;--edge-dim: #2c2c2a}}:root[data-theme=dark]{color-scheme:dark;--page: #0d0d0d;--surface: #1a1a19;--text-primary: #ffffff;--text-secondary: #c3c2b7;--text-muted: #898781;--hairline: #2c2c2a;--border: rgba(255, 255, 255, .1);--accent: #3987e5;--edge: #383835;--edge-arrow: #55544f;--edge-dim: #2c2c2a}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:system-ui,-apple-system,Segoe UI,sans-serif;background:var(--page);color:var(--text-primary)}.app{display:flex;flex-direction:column;height:100vh}.app-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:16px 24px;border-bottom:1px solid var(--hairline);background:var(--surface)}.graph-watch-options{position:absolute;top:16px;right:16px;z-index:12}.watch-options-menu{position:absolute;top:100%;right:0;z-index:22;margin-top:6px;display:flex;flex-direction:column;align-items:stretch;gap:8px;min-width:220px;background:var(--surface);border:1px solid var(--hairline);border-radius:10px;padding:12px;box-shadow:0 4px 16px #0000002e}.app-header h1{margin:0 0 4px;font-size:1.3rem}.app-header-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.app-subtitle{margin:0;max-width:62ch;color:var(--text-secondary);font-size:.85rem}.app-header-actions,.app-header-collapsible{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.fit-button{font:inherit;font-size:.8rem;color:var(--text-primary);background:var(--page);border:1px solid var(--hairline);border-radius:6px;cursor:pointer;white-space:nowrap}.fit-button{padding:6px 12px}.fit-button:hover{border-color:var(--text-muted)}.indirect-toggle,.watch-budget,.date-filter{display:flex;align-items:center;gap:6px;font-size:.8rem;color:var(--text-secondary);white-space:nowrap}.indirect-toggle{cursor:pointer}.watch-budget-input,.date-filter-input{font:inherit;font-size:.8rem;padding:3px 6px;border:1px solid var(--hairline);border-radius:6px;background:var(--page);color:var(--text-primary)}.watch-budget-input{width:72px}.watch-budget-input-hours,.watch-budget-input-minutes{width:48px}.app-body{display:flex;flex-direction:column;flex:1;min-height:0}.graph-row{display:flex;flex:1;min-height:0;position:relative}.sidebar-column{position:relative;width:240px;flex-shrink:0;display:flex;flex-direction:column;border-right:1px solid var(--hairline);min-height:0}.mobile-panel-close{display:none}.header-node-search{display:flex;align-items:center;gap:8px}.header-node-search .node-search{padding:0;background:transparent}.header-node-search .node-search-input{width:220px}.header-node-search .node-search-suggestions{left:0;right:0}.filter-kind{font-size:.62rem;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);border:1px solid var(--hairline);border-radius:4px;padding:1px 5px;flex-shrink:0}.graph-canvas{position:relative;flex:1;min-width:0;overflow:hidden;background:var(--surface)}.graph-canvas svg{display:block;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.fab-button{width:48px;height:48px;display:flex;align-items:center;justify-content:center;font-size:1.3rem;background:var(--surface);color:var(--text-primary);border:1px solid var(--hairline);border-radius:999px;box-shadow:0 2px 10px #00000040;cursor:pointer}.graph-fit-fab{position:absolute;right:16px;bottom:16px;z-index:12}.tooltip{position:fixed;z-index:10;pointer-events:none;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:8px 10px;box-shadow:0 4px 16px #0000002e;max-width:280px;font-size:.8rem}.tooltip-title{font-weight:600;color:var(--text-primary);margin-bottom:2px}.tooltip-sub{color:var(--text-secondary);font-size:.75rem}.icon-button{flex-shrink:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;font-size:1.1rem;line-height:1;background:var(--page);color:var(--text-primary);border:1px solid var(--hairline);border-radius:999px;cursor:pointer}.icon-button[aria-expanded=true]{border-color:var(--accent);color:var(--accent)}@media (max-width: 860px){.app-header{flex-direction:column;align-items:stretch;gap:8px;padding:10px 12px}.mobile-search-row{display:flex;align-items:center;gap:8px}.mobile-search-row .node-search{flex:1 1 auto;min-width:0;padding:0;background:transparent}.mobile-search-row .node-search-input{width:100%}.mobile-search-row .node-search-suggestions{left:0;right:0}.hamburger-menu{display:flex;flex-direction:column;align-items:stretch;gap:8px;background:var(--surface);border:1px solid var(--hairline);border-radius:10px;padding:10px;box-shadow:0 4px 16px #0000002e}.hamburger-menu .fit-button{text-align:left}.graph-watch-options{top:12px;right:12px}.graph-fit-fab{bottom:104px}.fit-button,.indirect-toggle,.watch-budget{padding:4px 0}.graph-row{position:relative}.sidebar-column{position:absolute;width:0;min-width:0;padding:0;border:none;overflow:visible}.mobile-panel-close{display:flex;align-items:center;justify-content:center;width:36px;height:36px;font-size:1.3rem;line-height:1;background:var(--page);color:var(--text-primary);border:1px solid var(--hairline);border-radius:999px;cursor:pointer}input[type=checkbox]{width:20px;height:20px}.watch-budget-input-hours,.watch-budget-input-minutes{width:56px;padding:8px 6px}.fit-button{padding:10px 14px}}
