:root{--paper:#faf9f5;--surface:#fff;--panel:#fdfdf9;--ink:#182c27;--muted:#52615b;--green:#234d40;--green-hover:#173b30;--sage:#e7eee3;--line:#d8ddd5;--line-field:#758779;--roster-head:#f4f6f0;--roster-today:#e5eddf;--roster-row:#e1e5dd;--roster-col:#e7eae3;--warn:#7a390d;--warn-bg:#fff0dc;--error:#a12732;--error-bg:#fff0f0;--blue:#204d79;--blue-bg:#eaf2fa;--bar-bg:#f5ecd9;--bar-ink:#685020;--disabled-bg:#e8eae5;--disabled-ink:#67736b;--focus:#245bd7;--shadow:#182c2733;--backdrop:#182c2755;--radius:10px;--radius-control:7px;--radius-cell:5px;--radius-table:8px;--radius-dialog:18px;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;color:var(--ink);background:var(--paper);font-synthesis:none;font:16px/1.5 system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit;color:inherit}button{border:1px solid var(--line);border-radius:var(--radius-control);cursor:pointer;background:0 0;min-height:48px;padding:11px 16px;font-weight:600;line-height:1.3}button:hover{background:var(--sage)}button:active{background:color-mix(in srgb, var(--sage) 78%, var(--green))}button:disabled{cursor:not-allowed;background:var(--disabled-bg);color:var(--disabled-ink);border-color:var(--line)}.primary{background:var(--green);color:var(--surface);border-color:var(--green)}.primary:hover{background:var(--green-hover)}.primary:active{background:color-mix(in srgb, var(--green-hover) 84%, var(--ink))}:focus-visible{outline:3px solid var(--focus);outline-offset:3px}h1,h2,.brand{letter-spacing:-.03em;font-family:Georgia,Times New Roman,serif;font-weight:500}h1{margin:var(--s2) 0 var(--s4);font-size:34px;line-height:1.15}h2{font-size:25px;line-height:1.25}.brand{color:var(--green);font-size:30px;line-height:1.05}.brand small{letter-spacing:.24em;text-transform:uppercase;margin-top:5px;font:10px/1.6 system-ui;display:block}.muted,small{color:var(--muted)}.overline{text-transform:uppercase;letter-spacing:.11em;font-size:11px;font-weight:700}.workspace{grid-template-columns:190px minmax(0,1fr);min-height:100dvh;display:grid}nav{padding:var(--s5) var(--s4);border-right:1px solid var(--line);gap:var(--s3);flex-direction:column;display:flex}nav button{text-align:left;border:0}nav button[aria-current]{background:var(--sage);color:var(--green);font-weight:600}nav p{margin-top:auto;font-size:13px}main{padding:var(--s6);min-width:0}.login{max-width:460px;margin:var(--s7) auto}.login form{margin-bottom:var(--s5)}.heading{justify-content:space-between;gap:var(--s5);align-items:flex-start;display:flex}.actions{gap:var(--s3);margin:var(--s4) 0;flex-wrap:wrap;display:flex}.notice{background:var(--sage);border-radius:var(--radius);margin:var(--s4) 0;padding:14px 16px;font-size:14px;line-height:1.55}.notice.warn{background:var(--warn-bg);color:var(--warn)}.notice.error{background:var(--error-bg);color:var(--error)}.notice.info{background:var(--blue-bg);color:var(--blue)}.error{background:var(--error-bg);color:var(--error);padding:var(--s4);border-radius:var(--radius);line-height:1.5}.error button{margin-left:var(--s4)}.error strong{margin-bottom:3px;display:block}.filters{gap:var(--s4);margin:var(--s5) 0;flex-wrap:wrap;display:flex}.filters label{flex:1;min-width:140px}label,.field{margin:var(--s4) 0;font-size:14px;font-weight:600;display:block}.field>span{margin-bottom:var(--s2);display:block}input,select,textarea{background:var(--surface);border:1px solid var(--line-field);border-radius:var(--radius-control);width:100%;min-height:48px;margin-top:var(--s2);padding:11px 12px;display:block}textarea{resize:vertical;min-height:96px}fieldset{padding:var(--s2) 0;border:0}.check{gap:var(--s3);align-items:center;display:flex}.check input{width:20px;min-height:20px;margin:0}.two{gap:var(--s4);grid-template-columns:1fr 1fr;display:grid}.editor{gap:var(--s5);grid-template-columns:minmax(0,1.6fr) minmax(220px,1fr);display:grid}.editor aside{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);align-self:start}.time-field{justify-content:space-between;align-items:center;gap:var(--s3);background:var(--surface);border:1px solid var(--line-field);border-radius:var(--radius-control);font-variant-numeric:tabular-nums;width:100%;display:flex}.time-field small{font-size:12px;font-weight:400}.roster-scroll{border:1px solid var(--line);border-radius:var(--radius-table);max-height:65vh;overflow:auto}table{border-collapse:separate;border-spacing:0;font-variant-numeric:tabular-nums;width:100%;min-width:1040px;font-size:12px}th,td{border-right:1px solid var(--roster-col);border-bottom:1px solid var(--roster-row)}th{text-align:center;padding:15px 8px;font-weight:500}td{text-align:center;vertical-align:middle;min-width:100px;padding:6px}thead th{background:var(--roster-head);z-index:2;position:sticky;top:0}th.today,td.today{background:var(--roster-today)}tr>th:first-child{background:var(--paper);z-index:1;text-align:left;overflow-wrap:anywhere;min-width:190px;max-width:205px;padding:10px 12px;font-size:13px;font-weight:550;line-height:1.35;position:sticky;left:0}thead th:first-child{z-index:3;background:var(--roster-head)}th small,.shift small{margin-top:4px;font-weight:400;display:block}th small{color:var(--muted);margin-top:3px;font-size:11px}.shift{text-align:left;font-variant-numeric:tabular-nums;border:1px solid var(--line);border-radius:var(--radius-cell);width:100%;min-height:48px;margin-bottom:6px;padding:9px 5px;font-size:11px;line-height:1.3;display:block}.shift small{font-size:10px}.shift.fixed{cursor:default}.foh{background:var(--sage);color:var(--green);border-color:color-mix(in srgb, var(--green) 28%, transparent)}.kitchen{background:var(--blue-bg);color:var(--blue);border-color:color-mix(in srgb, var(--blue) 28%, transparent)}.bar{background:var(--bar-bg);color:var(--bar-ink);border-color:color-mix(in srgb, var(--bar-ink) 28%, transparent)}.foh:hover,.foh:active{background:color-mix(in srgb, var(--sage) 82%, var(--green))}.kitchen:hover,.kitchen:active{background:color-mix(in srgb, var(--blue-bg) 82%, var(--blue))}.bar:hover,.bar:active{background:color-mix(in srgb, var(--bar-bg) 82%, var(--bar-ink))}.add{color:var(--muted);border:0;padding:6px;font-size:11px;font-weight:400}details{border-bottom:1px solid var(--line);padding:var(--s4) 0}summary{cursor:pointer;min-height:32px;font-weight:600}.token{overflow-wrap:anywhere;padding:var(--s4);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin:var(--s3) 0;display:block}dialog{border-radius:var(--radius-dialog);background:var(--paper);color:var(--ink);padding:var(--s5);width:min(390px,100vw - 24px);max-height:calc(100dvh - 24px);box-shadow:0 20px 80px var(--shadow);border:0;margin:auto;overflow:auto}dialog::backdrop{background:var(--backdrop)}.time-preview{font-variant-numeric:tabular-nums;margin:var(--s4) 0;font-size:42px;display:block}.wheel{scroll-snap-type:y mandatory;border-block:1px solid var(--line);height:168px;padding-block:56px;overflow-y:auto}.wheel button{scroll-snap-align:center;font-variant-numeric:tabular-nums;border:0;width:100%;height:56px;font-size:26px;font-weight:400;display:block}.wheel button[aria-pressed=true]{background:var(--sage);color:var(--green);border-radius:var(--s2);font-weight:700}.wheel+p{font-size:13px}dialog .two{text-align:center}dialog .actions{grid-template-columns:1fr 1fr;display:grid}@media (width<=800px){.workspace{display:block}nav{border-right:0;border-bottom:1px solid var(--line);padding:var(--s3);flex-direction:row;align-items:center;overflow:auto}nav .brand,nav p{display:none}main{padding:var(--s4)}.heading{flex-direction:column}.editor{grid-template-columns:1fr}.filters{gap:var(--s3)}.login{margin:var(--s5) auto}.two{gap:var(--s3)}h1{font-size:30px}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}.notice strong{margin-bottom:var(--s1);display:block}.notice p{margin:var(--s1) 0}.notice ul{margin:var(--s2) 0 0;padding-left:20px}.notice li{margin:var(--s1) 0}.shift.changed{background:var(--warn-bg);color:var(--warn);border-color:color-mix(in srgb, var(--warn) 28%, transparent)}.empty{text-align:center;padding:var(--s7) 0}.empty p{color:var(--muted);margin:var(--s3) 0 var(--s5)}
