:root{--paper: #f3f5f4;--surface: #ffffff;--ink: #17282c;--muted: #5a6b70;--line: #d8dfdd;--accent: #0b5d5e;--accent-ink: #ffffff;--optimal: #1e7b4f;--over: #b3261e;--avail: #2f5f9e;--optimal-bg: #e3f2ea;--over-bg: #fbe7e5;--avail-bg: #e4ecf7;color-scheme:light}@media (prefers-color-scheme: dark){:root{--paper: #12201f;--surface: #182a29;--ink: #e8efed;--muted: #9db0ad;--line: #2b4140;--accent: #4fb8b0;--accent-ink: #0c1f1e;--optimal: #6cd19a;--over: #ff8f86;--avail: #8db4ea;--optimal-bg: #1d3a2e;--over-bg: #43201e;--avail-bg: #1f3350;color-scheme:dark}}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Instrument Sans,system-ui,sans-serif;font-size:15px;line-height:1.45}.page{max-width:1280px;margin:0 auto;padding:32px 24px 64px}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}button,input{font:inherit;color:inherit}button:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.top{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}h1{margin:0;font-size:28px;font-weight:700;letter-spacing:-.01em}.sub{margin:4px 0 0;color:var(--muted);max-width:60ch}.primary{background:var(--accent);color:var(--accent-ink);border:0;border-radius:6px;padding:10px 16px;font-weight:600;cursor:pointer}.primary:disabled{opacity:.6;cursor:default}.ghost{background:transparent;border:1px solid var(--line);border-radius:6px;padding:10px 16px;cursor:pointer}.stats{display:grid;grid-template-columns:repeat(5,1fr);margin:28px 0 24px;background:var(--surface);border:1px solid var(--line);border-radius:8px}.stat{padding:18px 22px;border-right:1px solid var(--line)}.stat:last-child{border-right:0}.stat-value{font-size:30px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.stat-label{color:var(--muted);font-size:13px;margin-top:2px}.stat.alert .stat-value{color:var(--over)}.toolbar{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:12px}.toolbar input[type=search]{width:min(360px,100%);padding:9px 12px;border:1px solid var(--line);border-radius:6px;background:var(--surface)}.chips{display:flex;gap:6px;flex-wrap:wrap}.chip{background:transparent;border:1px solid var(--line);border-radius:999px;padding:6px 14px;cursor:pointer;color:var(--muted)}.chip.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}.banner{background:var(--over-bg);color:var(--over);padding:10px 14px;border-radius:6px;margin:0 0 12px}.table-wrap{background:var(--surface);border:1px solid var(--line);border-radius:8px;overflow-x:auto}table{width:100%;border-collapse:collapse;min-width:980px}th{text-align:left;font-weight:600;font-size:13px;color:var(--muted);padding:12px 14px;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:middle}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:color-mix(in srgb,var(--accent) 5%,transparent)}.num{text-align:right;font-variant-numeric:tabular-nums}.strong,.name{font-weight:600}.role{color:var(--muted);font-size:13px}.empty{text-align:center;color:var(--muted);padding:40px 14px}tfoot td{font-weight:700;border-top:2px solid var(--line);border-bottom:0;font-variant-numeric:tabular-nums}.util-col{width:200px}.util{display:flex;align-items:center;gap:10px}.track{position:relative;flex:1;height:8px;background:var(--line);border-radius:4px;overflow:hidden}.fill{height:100%;border-radius:4px}.fill.Optimal{background:var(--optimal)}.fill.Overallocated{background:var(--over)}.fill.Available{background:var(--avail)}.pct{width:48px;text-align:right;font-variant-numeric:tabular-nums;font-size:13px}.badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:13px;font-weight:600}.badge.Optimal{background:var(--optimal-bg);color:var(--optimal)}.badge.Overallocated{background:var(--over-bg);color:var(--over)}.badge.Available{background:var(--avail-bg);color:var(--avail)}.row-actions{white-space:nowrap;text-align:right}.link{background:none;border:0;color:var(--accent);cursor:pointer;padding:4px 6px;font-weight:500}.link.danger{color:var(--over)}.link:hover{text-decoration:underline}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a181880;display:grid;place-items:center;padding:16px;z-index:10}.dialog{background:var(--surface);width:min(640px,100%);border-radius:10px;padding:24px;display:grid;gap:14px;max-height:95vh;overflow:auto}.dialog h2{margin:0;font-size:20px}.dialog label{display:grid;gap:4px;font-size:13px;color:var(--muted);font-weight:500}.dialog input{padding:9px 10px;border:1px solid var(--line);border-radius:6px;background:var(--paper);color:var(--ink);font-size:15px}.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.row.four{grid-template-columns:repeat(4,1fr)}.preview{margin:0;color:var(--muted)}.preview strong{color:var(--ink)}.error{margin:0;color:var(--over)}.actions{display:flex;justify-content:flex-end;gap:8px}@media (max-width: 860px){.stats{grid-template-columns:repeat(2,1fr)}.stat{border-bottom:1px solid var(--line)}.row,.row.four{grid-template-columns:1fr 1fr}}@media (max-width: 520px){.row,.row.four{grid-template-columns:1fr}}.nav{display:flex;align-items:center;gap:4px;padding:0 24px;background:var(--surface);border-bottom:1px solid var(--line);overflow-x:auto}.nav .brand{font-weight:700;margin-right:20px;padding:14px 0;white-space:nowrap}.nav a{padding:14px 12px;color:var(--muted);text-decoration:none;font-weight:500;border-bottom:2px solid transparent;white-space:nowrap}.nav a:hover{color:var(--ink)}.nav a[aria-current=page]{color:var(--accent);border-bottom-color:var(--accent)}a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.name-link{color:var(--ink);font-weight:600;text-decoration:none}.name-link:hover{color:var(--accent);text-decoration:underline}.crumb{display:inline-block;margin-bottom:14px;color:var(--accent);text-decoration:none;font-weight:500}.crumb:hover{text-decoration:underline}.muted{color:var(--muted)}.spaced{margin-top:24px}.pct.wide{width:70px}:root{--warn: #8a5a00;--warn-bg: #fbefd5;--idle: #4d5d62;--idle-bg: #e8ecea}@media (prefers-color-scheme: dark){:root{--warn: #f0c36a;--warn-bg: #43361a;--idle: #b4c4c1;--idle-bg: #26393a}}.badge.Planning,.badge.Not-started{background:var(--idle-bg);color:var(--idle)}.badge.Active,.badge.In-progress{background:var(--avail-bg);color:var(--avail)}.badge.On-hold,.badge.In-review{background:var(--warn-bg);color:var(--warn)}.badge.Completed,.badge.Done{background:var(--optimal-bg);color:var(--optimal)}h1 .badge{font-size:13px;vertical-align:middle;margin-left:8px}.block{margin-top:28px}.block h2{font-size:18px;margin:0 0 10px}.block-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.block-head h2{margin:0}.team{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}.team li{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:8px 12px}.module{background:var(--surface);border:1px solid var(--line);border-radius:8px;margin-bottom:16px;overflow:hidden}.module-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:14px 16px 10px;flex-wrap:wrap}.module-head h3{margin:0;font-size:16px}.table-wrap.flat{border:0;border-top:1px solid var(--line);border-radius:0}.pages-table{min-width:720px}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;background:var(--paper);padding:2px 6px;border-radius:4px}.inline-select{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:6px;padding:5px 8px;font-size:14px}.dialog select,.dialog textarea{padding:9px 10px;border:1px solid var(--line);border-radius:6px;background:var(--paper);color:var(--ink);font:inherit;font-size:15px}.dialog select:focus-visible,.dialog textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.badge.Scheduled{background:var(--idle-bg);color:var(--idle)}.badge.Cancelled{background:var(--over-bg);color:var(--over)}.nowrap{white-space:nowrap}.filters{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.filters select,.date-filter input{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:6px;padding:8px 10px;font:inherit}.date-filter{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:14px}
