:root{color-scheme:dark;--bg: #0f172a;--panel: #1e293b;--border: #334155;--text: #e2e8f0;--muted: #94a3b8;--accent: #38bdf8;--free: #334155;--under: #eab308;--normal: #16a34a;--over: #dc2626}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif;background:var(--bg);color:var(--text)}.app{max-width:1200px;margin:0 auto;padding:1.5rem}.app-header h1{font-size:1.4rem;margin:0 0 1rem}.tabs{display:flex;gap:.5rem;border-bottom:1px solid var(--border);margin-bottom:1.25rem;flex-wrap:wrap}.tab{background:none;border:none;color:var(--muted);padding:.6rem .9rem;cursor:pointer;font-size:.9rem;border-bottom:2px solid transparent}.tab:hover{color:var(--text)}.tab.is-active{color:var(--accent);border-bottom-color:var(--accent)}.error{color:var(--over)}.field-inline{display:block;margin-bottom:1rem;font-size:.9rem;color:var(--muted)}select,input,button{font:inherit;color:var(--text);background:var(--panel);border:1px solid var(--border);border-radius:.4rem;padding:.4rem .6rem}button{cursor:pointer}button:hover{border-color:var(--accent)}.timeline{overflow-x:auto}.timeline-grid{display:grid;align-items:center}.timeline-header{position:sticky;top:0;background:var(--bg);z-index:1;padding-bottom:.3rem;border-bottom:1px solid var(--border)}.timeline-week-label{font-size:.68rem;color:var(--muted);text-align:center}.timeline-week-label.is-current{color:var(--accent);font-weight:600}.timeline-label{font-size:.85rem;padding:.3rem .5rem .3rem 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.timeline-row{position:relative;min-height:34px;border-bottom:1px solid rgba(51,65,85,.4)}.timeline-track{position:relative;height:26px}.timeline-bar{position:absolute;top:0;height:24px;border-radius:.3rem;background:var(--accent);color:#04202e;font-size:.68rem;display:flex;align-items:center;justify-content:center;cursor:default;overflow:hidden;white-space:nowrap}.timeline-bar.bar-planned{background:var(--muted);color:#0b1220}.timeline-bar.bar-active{background:var(--accent)}.timeline-bar.bar-done{background:#475569;color:#cbd5e1}.timeline-empty{color:var(--muted);padding:1rem 0}.legend{display:flex;gap:1rem;margin-bottom:.75rem;font-size:.8rem;color:var(--muted);flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:.35rem}.swatch{width:.8rem;height:.8rem;border-radius:.2rem;display:inline-block}.summary-scroll{overflow-x:auto}.summary-table{border-collapse:collapse;font-size:.78rem}.summary-table th,.summary-table td{padding:.3rem .4rem;text-align:center;border-bottom:1px solid rgba(51,65,85,.4);min-width:30px}.summary-table th.is-current{color:var(--accent)}.summary-person-col,.summary-role-col{text-align:left;white-space:nowrap;position:sticky;background:var(--bg)}.summary-person-col{left:0;min-width:140px}.summary-role-col{left:140px;min-width:110px;color:var(--muted)}.load-free{background:transparent;color:var(--muted)}.load-under{background:color-mix(in srgb,var(--under) 30%,transparent)}.load-normal{background:color-mix(in srgb,var(--normal) 25%,transparent)}.load-over{background:color-mix(in srgb,var(--over) 35%,transparent)}.swatch.load-free{background:var(--free)}.swatch.load-under{background:var(--under)}.swatch.load-normal{background:var(--normal)}.swatch.load-over{background:var(--over)}.allocation-form{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;margin-bottom:.5rem;padding:.9rem;background:var(--panel);border-radius:.5rem}.allocation-form input,.allocation-form select{flex:1 1 140px;min-width:110px}.allocation-form-actions{display:flex;gap:.5rem}.form-errors{color:var(--over);font-size:.85rem;margin:.5rem 0 1rem}.allocations-table{width:100%;border-collapse:collapse;font-size:.85rem;margin-top:1rem}.allocations-table th,.allocations-table td{text-align:left;padding:.45rem .5rem;border-bottom:1px solid rgba(51,65,85,.4)}.row-actions{display:flex;gap:.35rem;white-space:nowrap}.row-actions button{padding:.2rem .5rem;font-size:.78rem}.status-badge{padding:.1rem .5rem;border-radius:1rem;font-size:.72rem}.status-planned{background:#94a3b840;color:var(--muted)}.status-active{background:#38bdf840;color:var(--accent)}.status-done{background:#47556966;color:#cbd5e1}
