:root{--ink:#1b2026;--secondary:#50565e;--muted:#6f757d;--border:#cbd2db;--grid:#e1e5ea;--weekend:#f3f5f8;--accent:#1f68bc;--bar:#3a7bcb;--late:#c13c3b;color:var(--ink);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px}body{margin:0}.demo{padding:12px 20px 40px}.demo-header{flex-wrap:wrap;align-items:baseline;gap:16px;display:flex}.brand{color:var(--ink);font-size:1.15rem;font-weight:700;text-decoration:none}.demo-tag,.muted,.small{color:var(--muted)}.founder-link{color:var(--accent);margin-left:auto;font-weight:600}.hint{color:var(--secondary);margin:10px 0}code{background:var(--weekend);border-radius:3px;padding:1px 4px}button{font:inherit;border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;border-radius:5px;padding:5px 12px}button:disabled{opacity:.5;cursor:default}button.quiet{color:var(--accent);background:#fff}.formula-bar{border:1px solid var(--border);border-radius:6px;flex-wrap:wrap;align-items:center;gap:8px;padding:8px;display:flex}.formula-bar label{min-width:90px;font-weight:600}.formula-bar input{border:1px solid var(--border);border-radius:4px;flex:300px;padding:6px 8px;font:14px ui-monospace,Menlo,Consolas,monospace}.formula-bar input[aria-invalid=true]{border-color:var(--late)}.formula-error{color:var(--late);flex-direction:column;flex-basis:100%;gap:2px;display:flex}.formula-echo mark{color:var(--late);background:0 0;-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.fx{color:var(--accent);font-style:italic;font-weight:700}.toolbar{align-items:center;gap:8px;margin:10px 0;display:flex}.message{color:var(--late)}.grid-wrap{border:1px solid var(--border);border-radius:6px;overflow-x:auto}.grid{border-collapse:collapse;white-space:nowrap}.grid th,.grid td{border-bottom:1px solid var(--grid);text-align:left;height:26px;padding:0 8px}.grid th{color:var(--secondary);background:#fff;font-weight:600;position:sticky;top:0}.grid .num{text-align:right}.grid tr.parent{font-weight:700}.grid tr.selected td{background:#eef4fb}.grid th.formula-col{cursor:pointer}.grid th.formula-col.selected{color:var(--accent);box-shadow:inset 0 -2px var(--accent)}.grid td.formula-cell{background:#fafbfc}.grid td.timeline-col,.grid th.timeline-col{border-left:1px solid var(--border);padding:0}.cell-input{font:inherit;box-sizing:border-box;background:0 0;border:1px solid #0000;width:100%;min-width:60px;padding:3px 4px}.cell-input:hover{border-color:var(--grid)}.cell-input:focus{border-color:var(--accent);background:#fff;outline:none}.num .cell-input{text-align:right;width:80px}select{font:inherit;background:0 0;border:1px solid #0000}.error-cell{color:var(--late);cursor:help}.timeline{display:block}.timeline .weekend{fill:var(--weekend)}.timeline .today{stroke:var(--late);stroke-width:1px;stroke-dasharray:2 2}.timeline .month{fill:var(--secondary);font-size:10px}.timeline .day{fill:var(--muted);text-anchor:middle;font-size:10px}.bar{fill:var(--bar)}.bar.late,.milestone.late{fill:var(--late)}.parent-bar,.milestone{fill:var(--ink)}.signup{flex-wrap:wrap;gap:8px;max-width:560px;margin-top:28px;display:flex}.signup h2{flex-basis:100%;margin:0;font-size:1.1rem}.signup input{font:inherit;border:1px solid var(--border);border-radius:5px;flex:240px;padding:6px 8px}.signup p{flex-basis:100%;margin:0}.cell-input[type=date]{width:122px;min-width:0}.grid select{max-width:112px}.grid th,.grid td{padding:0 6px}.grid .name-col{min-width:160px}
