:root{--ink: #1d2733;--muted: #5f6b78;--line: #d5dbe2;--strong: #7c8a99;--paper: #ffffff;--page: #f3f5f8;--accent: #0f6e78;--day: #fff1c2;--day-ink: #7a5300;--night: #dfe4ff;--night-ink: #2b3a9e;--leave: #fde2e2;--leave-ink: #b42318;--short: #b42318;--extra: #2b5fd9;font-family:-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--page)}*{box-sizing:border-box}body{margin:0;background:var(--page)}h1{font-size:20px;margin:0}h2{font-size:18px;margin:0 0 12px}h3{font-size:14px;margin:16px 0 6px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.brand{color:var(--accent);font-weight:800;letter-spacing:.04em}button,.button{font:inherit;font-size:14px;padding:8px 14px;border-radius:8px;border:1px solid var(--line);background:var(--paper);color:var(--ink);cursor:pointer;display:inline-flex;align-items:center;gap:6px}button:hover:not(:disabled),.button:hover{border-color:var(--strong)}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}button.link{border:0;background:none;padding:0;color:var(--accent);text-decoration:underline;font-size:inherit}input,select,textarea{font:inherit;font-size:15px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink)}label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted)}.row{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;margin-top:12px}.row.end{justify-content:flex-end}.card{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:20px}.error{color:var(--short)}.small{font-size:13px;color:var(--muted)}.start{max-width:560px;margin:48px auto;padding:0 16px;display:grid;gap:16px}.start h1{font-size:28px}.lede{margin:0;color:var(--muted)}.editor{padding:12px 16px 32px}.bar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:12px}.period{color:var(--muted)}.actions{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}.tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:12px;position:sticky;left:0}.tool{flex-direction:column;gap:0;min-width:72px;padding:6px 12px}.tool b{font-size:16px}.tool small{font-size:11px;color:var(--muted)}.tool.on{outline:3px solid var(--accent);outline-offset:1px}.tool.m-A{background:var(--day)}.tool.m-P{background:var(--night)}.tool.m-RO,.tool.m-PTO,.tool.m-CME{background:var(--leave)}.hint{color:var(--muted);font-size:13px}.scroll{overflow:auto;max-height:calc(100vh - 170px);background:var(--paper);border:1px solid var(--line);border-radius:12px}table.grid{border-collapse:separate;border-spacing:0;font-size:12px;-webkit-user-select:none;user-select:none}.grid th,.grid td{border-right:1px solid var(--line);border-bottom:1px solid var(--line);text-align:center;padding:0}.grid td{width:30px;min-width:30px;height:30px;cursor:pointer;touch-action:none}.grid td:hover{background:#eef6f7}.grid tbody th,.grid thead th:first-child{position:sticky;left:0;z-index:2;background:var(--paper);text-align:left;padding:0 10px;white-space:nowrap;min-width:130px}.grid tbody th small{color:var(--muted);font-weight:400}.grid thead th{position:sticky;background:#f8fafc;z-index:1;font-weight:600}.grid thead tr.months th{top:0;height:26px;font-size:13px}.grid thead tr.nums th{top:26px;height:24px}.grid thead tr.dow th{top:50px;height:20px;color:var(--muted);font-weight:400;font-size:11px}.grid thead th:first-child{z-index:3;background:#f8fafc}.grid .wk{border-left:2px solid var(--strong)}.grid th.hol{color:var(--leave-ink)}.grid th.hol i{font-style:normal;display:block;font-size:9px;line-height:8px}.grid tr.band th{background:#eef1f5;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.06em;height:24px}.grid td span{font-weight:700;font-size:12px}.grid td.m-A{background:var(--day);color:var(--day-ink)}.grid td.m-P{background:var(--night);color:var(--night-ink)}.grid td.m-RO,.grid td.m-PTO,.grid td.m-CME{background:var(--leave);color:var(--leave-ink)}.grid td.m-PTO span,.grid td.m-CME span{font-size:9px}.grid td.flag{box-shadow:inset 0 0 0 2px var(--short)}.grid tr.tot th{font-weight:600}.grid tr.tot td{cursor:default;font-weight:700;background:#f8fafc}.grid tr.tot td.short{color:var(--short);background:#fff1f0}.grid tr.tot td.extra{color:var(--extra)}.grid tr.tot td.full{color:var(--muted);font-weight:400}span.short{color:var(--short);font-weight:600}span.extra{color:var(--extra);font-weight:600}.notes{margin-top:16px;max-width:900px;display:grid;gap:8px}.notes textarea{width:100%}.sheet{position:fixed;inset:0;background:#0f192366;display:grid;place-items:start center;overflow:auto;padding:40px 16px;z-index:10}.card.wide{width:min(640px,100%)}.person{display:grid;grid-template-columns:70px 1fr 120px auto auto auto;gap:6px;margin-bottom:6px}.person.add{grid-template-columns:70px 1fr 120px auto;margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}@media(max-width:560px){.person,.person.add{grid-template-columns:1fr 1fr}}@media print{@page{size:landscape;margin:8mm}body,:root{background:#fff}.actions,.tools,.notes .small,.notes button{display:none!important}.editor{padding:0}.scroll{overflow:visible;max-height:none;border:0}.grid thead th,.grid tbody th{position:static}.grid td{width:18px;min-width:18px;height:20px}table.grid{font-size:9px}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
