:root{--ink: #1f2421;--ink-soft: #4b5450;--paper: #faf9f6;--rule: #d8d4cb;--good: #2b6b3f;--good-bg: #e5f2e8;--bad: #8a3b2b;--bad-bg: #f3e6e0}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--paper);color:var(--ink)}.app{max-width:1400px;margin:0 auto;padding:24px 28px 80px}header h1{margin:0 0 4px;font-size:1.5em}.subtitle{margin:0 0 20px;color:var(--ink-soft);font-size:.9em}.scenario-bar{display:flex;flex-wrap:wrap;gap:20px;align-items:center;margin-bottom:20px;padding:14px 16px;background:#fff;border:1px solid var(--rule);border-radius:6px}.scenario-bar label{display:flex;align-items:center;gap:8px}.new-scenario{display:flex;gap:8px;align-items:center}.new-scenario input,.new-scenario select,.scenario-bar select{padding:5px 8px;border:1px solid var(--rule);border-radius:4px}button{padding:6px 14px;border:1px solid var(--ink);background:var(--ink);color:#fff;border-radius:4px;cursor:pointer;font-size:.9em}.example-hint{margin:-12px 0 16px;color:var(--ink-soft);font-size:.82em}.grid-scroll{overflow-x:auto;border:1px solid var(--rule);border-radius:6px;margin-bottom:24px;background:#fff}.roster-grid{border-collapse:collapse;font-size:.82em;white-space:nowrap}.roster-grid th,.roster-grid td{border:1px solid var(--rule);padding:4px 6px;text-align:center}.staff-col{position:sticky;left:0;background:#fff;text-align:left!important;min-width:160px;z-index:1}.staff-name{font-weight:600}.staff-meta{color:var(--ink-soft);font-size:.85em}.date-col .weekday{font-weight:600}.date-col .daynum{color:var(--ink-soft)}.role-row td{background:#f0eee7;text-align:left;font-weight:600;font-size:.9em;letter-spacing:.03em}.cell select{border:none;background:transparent;font-size:.95em;width:56px}.cell.unavailable{background:#efe6d0}.optimizer-panel,.agent-panel{margin-bottom:20px}.agent-messages{display:flex;flex-direction:column;gap:8px;margin:12px 0;max-height:280px;overflow-y:auto}.agent-message{font-size:.92em;line-height:1.5;padding:8px 10px;border-radius:6px;background:#f0eee7}.agent-message.user{background:#fff;border:1px solid var(--rule)}.agent-message-label{font-size:.78em;font-weight:600;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.03em;margin-bottom:4px}.agent-message p{margin:0 0 8px}.agent-message p:last-child{margin-bottom:0}.markdown ul,.markdown ol{margin:6px 0;padding-left:20px;max-width:none}.markdown li{margin-bottom:2px}.markdown{overflow-x:auto}.markdown table{border-collapse:collapse;width:100%;margin:8px 0;font-size:.95em}.markdown th,.markdown td{border:1px solid var(--rule);padding:5px 8px;text-align:left}.markdown th{background:#f0eee7;font-weight:600}.markdown code{background:#f0eee7;padding:.1em .35em;border-radius:3px;font-size:.9em}.markdown strong{font-weight:600}.markdown h1,.markdown h2,.markdown h3,.markdown h4{font-size:1em;margin:8px 0 4px}.agent-input{display:flex;gap:8px}.agent-input input{flex:1;padding:7px 10px;border:1px solid var(--rule);border-radius:4px}.optimizer-actions{display:flex;gap:10px;margin:8px 0}.optimizer-actions button{background:#fff;color:var(--ink)}.optimizer-actions button:first-child{background:var(--ink);color:#fff}.optimizer-result{margin-top:12px;padding-top:12px;border-top:1px solid var(--rule)}.optimizer-result.bad{color:var(--bad)}.diff-list{list-style:none;padding:0;margin:8px 0;font-size:.85em;font-family:SF Mono,Consolas,monospace;max-height:200px;overflow-y:auto}.diff-list .added{color:var(--good)}.diff-list .removed{color:var(--bad)}.dashboard{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px}.card{background:#fff;border:1px solid var(--rule);border-radius:6px;padding:16px 18px}.card h3{margin:0 0 10px;font-size:1em}.rn-strip{display:flex;flex-wrap:wrap;gap:3px;margin-bottom:8px}.rn-day{width:14px;height:14px;border-radius:3px;display:inline-block}.rn-day.ok{background:var(--good)}.rn-day.bad{background:var(--bad)}.good{color:var(--good)}.bad{color:var(--bad)}.warn{color:var(--bad);font-size:.9em}.projection-table{width:100%;border-collapse:collapse;font-size:.9em;margin-bottom:8px}.projection-table th,.projection-table td{padding:4px 6px;text-align:left;border-bottom:1px solid var(--rule)}.projection-table tr.good td:first-child{border-left:3px solid var(--good)}.projection-table tr.bad td:first-child{border-left:3px solid var(--bad)}.hint{color:var(--ink-soft);font-size:.82em}.total-cost{font-size:1.6em;font-weight:600;margin:0 0 10px}.cost-breakdown{display:flex;gap:24px}.cost-breakdown ul{list-style:none;padding:0;margin:4px 0;font-size:.9em}.violations{padding-left:18px;font-size:.88em}.loading{padding:60px;text-align:center;color:var(--ink-soft)}
