:root{--paper: #f7f7f4;--sheet: #ffffff;--ink: #33362f;--graphite: #7a7f76;--rule: #e0e2da;--field: #f0f1ec;--planned-fill: #f0f1ec;--planned-stroke: #9aa098;--active-fill: #7fa3d1;--active-tint: #dde8f5;--active-stroke: #4c74a8;--done-fill: #bfd6c4;--done-stroke: #55795f;--overdue-fill: #e7bdb4;--overdue-stroke: #b0503f;--font-data: "IBM Plex Sans", system-ui, sans-serif;--font-display: "Newsreader", Georgia, serif;--radius: 2px;--panel-detail: 360px;--panel-attention: 300px;--nav-rail: 56px;--s1: 4px;--s2: 8px;--s3: 12px;--s4: 16px;--s5: 24px;--s6: 32px;--s7: 48px}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%;background:var(--paper)}body{font-family:var(--font-data);color:var(--ink);-webkit-font-smoothing:antialiased;font-size:13px}.tnum{font-feature-settings:"tnum"}a{color:var(--ink);text-decoration:underline;text-underline-offset:2px;cursor:pointer}a:hover{color:var(--overdue-stroke)}button{font-family:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.display{font-family:var(--font-display);font-weight:500}.app-frame{display:flex;flex-direction:column;height:100%;overflow:hidden}.app-shell{display:flex;flex:1;min-height:0;overflow:hidden}@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}.nav-rail{width:var(--nav-rail);flex:none;background:var(--sheet);border-right:1px solid var(--rule);display:flex;flex-direction:column;align-items:center;padding:12px 0;gap:4px}.nav-logo{font-family:var(--font-display);font-size:21px;font-weight:500;line-height:1;padding:6px 0 14px;border-bottom:1px solid var(--rule);width:32px;text-align:center}.nav-btn{width:36px;height:36px;border:none;background:transparent;border-radius:var(--radius);color:var(--graphite);display:flex;align-items:center;justify-content:center}.nav-btn:hover{background:var(--field)}.nav-btn.active{background:var(--ink);color:var(--paper)}.chip{display:inline-flex;align-items:center;gap:6px;border-radius:var(--radius);padding:3px 10px;font-size:12px;border:1px solid var(--rule)}.btn{border:1px solid var(--rule);background:var(--sheet);border-radius:var(--radius);padding:7px 14px;font-size:12.5px;color:var(--ink)}.btn:hover{background:var(--field)}.btn-primary{background:var(--ink);color:var(--paper);border-color:var(--ink);font-weight:600}.btn-primary:hover{background:var(--ink);opacity:.9}.dep-handle{width:9px;height:9px;flex:none;border-radius:50%;border:1.5px solid var(--graphite);background:var(--sheet);cursor:crosshair;opacity:.35;touch-action:none}.dep-handle:hover,.dep-src .dep-handle{opacity:1;border-color:var(--ink);background:var(--field)}.dep-drop{outline:2px dashed var(--ink);outline-offset:3px;border-radius:2px;background:var(--field)}.alloc-ghost{position:absolute;z-index:40;pointer-events:none;display:flex;align-items:center;gap:8px;background:var(--sheet);border:1.5px solid var(--ink);border-radius:var(--radius);box-shadow:0 4px 14px #0000002e;padding:4px 10px;font-size:11.5px;color:var(--ink);white-space:nowrap}.alloc-ghost .hint{color:var(--graphite);font-size:10.5px}.slot-drop{outline:2px solid var(--ink);outline-offset:2px}
