:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--blue:#007aff;--blue-ink:#06c;--green:#34c759;--green-ink:#1e7b34;--teal:#30b0c7;--teal-ink:#00778a;--orange:#ff9500;--orange-ink:#c93400;--pink:#ff2d55;--pink-ink:#d1003f;--indigo:#5856d6;--indigo-ink:#4745c4;--purple:#af52de;--purple-ink:#8944ab;--gray:#8e8e93;--gray-ink:#636366;--red:#ff3b30;--bg:#fff;--surface:#f5f5f7;--surface-2:#fff;--field:#fff;--text:#1d1d1f;--muted:#6e6e73;--border:#e8e8ed;--accent:#0071e3;--accent-text:#fff;--accent-ink:var(--blue-ink);--error:#d70015;--off:var(--orange);--off-ink:var(--orange-ink);--as:var(--purple);--as-ink:var(--purple-ink);--leave:var(--blue);--leave-ink:var(--blue-ink);--ok:var(--green-ink);--warn-bg:#fff4e5;--warn-text:var(--orange-ink);--control:color-mix(in srgb, var(--muted) 40%, var(--border));--track:#e8e8ed;--radius:16px;--radius-sm:10px;--tabbar-h:48px;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:16px;line-height:1.5}[data-tab=roster],[data-section=roster]{--sec:var(--blue);--sec-ink:var(--blue-ink)}[data-tab=me],[data-section=me]{--sec:var(--green);--sec-ink:var(--green-ink)}[data-tab=tasks],[data-section=tasks]{--sec:var(--teal);--sec-ink:var(--teal-ink)}[data-tab=off],[data-section=off]{--sec:var(--orange);--sec-ink:var(--orange-ink)}[data-tab=swap],[data-section=swap]{--sec:var(--pink);--sec-ink:var(--pink-ink)}[data-tab=staff],[data-section=staff]{--sec:var(--indigo);--sec-ink:var(--indigo-ink)}[data-tab=settings],[data-section=settings]{--sec:var(--gray);--sec-ink:var(--gray-ink)}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0}.shell{max-width:560px;padding:16px 16px max(24px, env(safe-area-inset-bottom));flex-direction:column;gap:16px;margin:0 auto;display:flex}.appbar{background:var(--bg);border-bottom:1px solid var(--border);padding-top:env(safe-area-inset-top)}.appbar-in,.tabbar-in{max-width:1100px;margin:0 auto;padding:0 16px}.appbar-in.full,.tabbar-in.full{max-width:1360px}.appbar-in{justify-content:space-between;align-items:center;gap:12px;min-height:56px;display:flex}.brand{align-items:center;gap:10px;min-width:0;display:flex}.brand-mark{background:#000;border-radius:50%;flex:none;width:40px;height:40px;display:block}.brand>div{min-width:0}.brand h1{letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;margin:0;font-size:1rem;line-height:1.2}.brand-sub{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:.75rem;line-height:1.2;overflow:hidden}.appbar-aside{align-items:center;gap:8px;min-width:0;display:flex}.appbar-aside select{flex:0 150px;min-width:84px;min-height:40px}.user-chip{border:1px solid var(--border);background:var(--surface-2);border-radius:10px;flex-direction:column;flex:none;align-items:flex-end;max-width:150px;padding:4px 10px;line-height:1.25;text-decoration:none;display:flex}.user-chip strong,.user-chip span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.user-chip strong{font-size:.9rem}.user-chip span{color:var(--accent-ink);font-size:.72rem}@media (width<=480px){.user-chip{max-width:112px}}.tabbar{z-index:10;background:var(--bg);border-bottom:1px solid var(--border);position:sticky;top:0}h2{margin:0;font-size:1.35rem}p{margin:0}.muted{color:var(--muted)}.small{font-size:.875rem}.error{color:var(--error)}button{font:inherit;border-radius:var(--radius-sm);border:1px solid var(--border);cursor:pointer;min-height:44px;padding:0 16px;font-weight:500}button.primary{background:var(--accent);color:var(--accent-text);border-color:var(--accent);font-weight:600}button.secondary{background:var(--field);color:var(--text)}@media (hover:hover){button.primary:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 85%, #000);border-color:color-mix(in srgb, var(--accent) 85%, #000)}button.secondary:hover:not(:disabled),.chip:hover:not(:disabled):not(.on){border-color:color-mix(in srgb, var(--accent-ink) 55%, var(--border))}}:focus-visible{outline:2px solid var(--accent-ink);outline-offset:2px}input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:0;border-color:var(--accent-ink)}button:disabled{opacity:.6}.fallback summary{color:var(--muted);cursor:pointer;padding:4px 0}form{flex-direction:column;gap:8px;margin-top:12px;display:flex}input{font:inherit;border-radius:var(--radius-sm);border:1px solid var(--control);background:var(--field);min-height:44px;color:var(--text);padding:0 12px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:8px;padding:16px;display:flex}dl{grid-template-columns:auto 1fr;gap:4px 16px;margin:8px 0 0;display:grid}dt{color:var(--muted)}dd{margin:0}.badge{border:1px solid var(--border);white-space:nowrap;border-radius:999px;padding:0 10px;font-size:.8rem;font-weight:600;display:inline-block}.role-manager,.role-admin{background:color-mix(in srgb, var(--accent) 14%, transparent);color:var(--accent-ink);border-color:color-mix(in srgb, var(--accent-ink) 40%, transparent)}code{font-size:.875em}a{color:inherit}.shell.wide{max-width:1100px}.shell.wide.full{max-width:1360px}.tabs{scrollbar-width:none;gap:2px;display:flex;overflow-x:auto}.tabs a{min-height:calc(var(--tabbar-h) - 12px);border-radius:var(--radius-sm);color:var(--muted);white-space:nowrap;align-items:center;margin:6px 0;padding:0 14px;font-size:.875rem;font-weight:500;text-decoration:none;display:inline-flex}.tabs a:hover{color:var(--text);background:var(--surface-2)}.tab-short{display:none}@media (width<=400px){.tabs{gap:0}.tabs a{padding:0 9px;font-size:.8125rem}.tab-long{display:none}.tab-short{display:inline}}.tabs a.on{color:var(--sec-ink,var(--accent-ink));background:color-mix(in srgb, var(--sec,var(--accent)) 14%, transparent);font-weight:600}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 16px;display:flex}h3{margin:0;font-size:1.05rem}.card h3:not(.muted){color:var(--sec-ink,var(--text))}label{color:var(--muted);flex-direction:column;gap:4px;font-size:.9rem;display:flex}label input,label select{color:var(--text)}select{font:inherit;border-radius:var(--radius-sm);border:1px solid var(--control);background:var(--field);min-height:48px;color:var(--text);padding:0 8px}fieldset{border:0;margin:0;padding:0}legend{color:var(--muted);padding:0 0 4px;font-size:.9rem}.row{flex-direction:row;align-items:center;gap:8px;margin-top:0;display:flex}.row>input,.row>label{flex:1;min-width:0}.row.between{justify-content:space-between}.actions{flex-wrap:wrap;gap:8px;display:flex}.actions.column{flex-direction:column}button.danger{color:var(--error);border-color:var(--error)}button.primary.danger{background:var(--error);color:#fff}button.icon{min-width:48px;color:var(--text);background:0 0;padding:0}button.small-btn{min-height:40px;padding:0 12px}button.icon-btn{min-width:40px;min-height:40px;color:var(--accent-ink);background:0 0;border-color:#0000;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}button.icon-btn.danger{color:var(--error)}button.icon-btn[aria-pressed=true]{background:color-mix(in srgb, var(--accent) 22%, transparent)}button.icon-btn:disabled{color:var(--muted);opacity:.45;cursor:default}@media (hover:hover){button.icon-btn:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 12%, transparent)}button.icon-btn.danger:hover:not(:disabled){background:color-mix(in srgb, var(--error) 12%, transparent)}}button.with-icon{justify-content:center;align-items:center;gap:8px;display:inline-flex}button.icon-text{min-height:40px;color:var(--accent-ink);background:0 0;border-color:#0000;flex:none;gap:4px;padding:0 10px 0 6px;font-size:.85rem;font-weight:600}button.icon-text.danger{color:var(--error)}button.icon-text:disabled{color:var(--muted);opacity:.45;cursor:default}@media (hover:hover){button.icon-text:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 12%, transparent)}button.icon-text.danger:hover:not(:disabled){background:color-mix(in srgb, var(--error) 12%, transparent)}}button.switch{background:0 0;border-color:#0000;flex:none;justify-content:center;align-items:center;min-width:44px;min-height:40px;padding:0;display:inline-flex}button.switch>span{background:color-mix(in srgb, var(--muted) 55%, transparent);border-radius:999px;width:36px;height:20px;transition:background .15s;position:relative}button.switch>span:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .15s;position:absolute;top:2px;left:2px}button.switch[aria-checked=true]>span{background:var(--accent)}button.switch[aria-checked=true]>span:after{transform:translate(16px)}button.switch:disabled{opacity:.45;cursor:default}@media (prefers-reduced-motion:reduce){button.switch>span,button.switch>span:after{transition:none}}.inactive{opacity:.6}.backdrop{z-index:20;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.sheet{background:var(--surface);color:var(--text);border-radius:var(--radius);flex-direction:column;gap:12px;width:min(480px,100%);max-height:90vh;padding:16px;display:flex;overflow-y:auto}.sheet form{margin-top:0}.sheet-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.sheet-head h2{font-size:1.1rem}@media (width<=600px){.backdrop{align-items:flex-end}.sheet{border-radius:var(--radius) var(--radius) 0 0;padding-bottom:max(16px, env(safe-area-inset-bottom))}}.chips{flex-wrap:wrap;gap:6px;display:flex}.chips legend{width:100%}.chip{background:var(--field);min-height:44px;color:var(--text);padding:0 14px}.chip.on{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.kind-chips .chip{min-height:36px;padding:0 12px;font-size:.875rem}.kind-chips legend{align-items:center;gap:2px;display:flex}.kinds-editor{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);flex-direction:column;gap:8px;width:100%;padding:10px;display:flex}.kind-row{align-items:flex-start;gap:4px;display:flex}.kind-name{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.kind-name input{min-height:40px}.kind-name label.check{min-height:32px;color:var(--muted);gap:8px}.kind-name label.check input{width:18px;height:18px}.kind-keep{flex:none;width:40px}.kind-add{border-top:1px dashed var(--border);padding-top:8px}.kind-hidden{flex-wrap:wrap;align-items:center;gap:4px 8px;margin:0;display:flex}button.link-btn{min-height:32px;color:var(--accent-ink);font-size:inherit;background:0 0;border-color:#0000;padding:0 4px}.kinds-editor>button.small-btn{align-self:flex-end}.chip-sub{opacity:.75;font-size:.75rem;font-weight:400}.week-nav{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.week-label{min-width:112px;color:var(--text);background:0 0;border-color:#0000;flex-direction:column;justify-content:center;align-items:center;padding:0 8px;line-height:1.2;display:flex}.week-label:hover{border-color:var(--border)}.week-nav button{white-space:nowrap}.week-nav button:not(.icon):not(.week-label):not(.icon-btn):not(.zoom-level){padding:0 12px}.zoom-ctl{align-items:center;display:inline-flex}button.zoom-level{min-width:48px;min-height:40px;color:var(--text);font-variant-numeric:tabular-nums;background:0 0;border-color:#0000;padding:0 4px;font-size:.8rem}button.zoom-level:disabled{color:var(--muted);cursor:default}@media (hover:hover){button.zoom-level:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 12%, transparent)}}.status-bar{gap:10px}.badge.week-draft{background:var(--surface-2)}.badge.week-published{background:color-mix(in srgb, var(--ok) 14%, transparent);color:var(--ok);border-color:color-mix(in srgb, var(--ok) 45%, transparent)}.badge.week-locked{background:color-mix(in srgb, var(--muted) 22%, transparent);border-color:color-mix(in srgb, var(--muted) 50%, transparent)}.grid-wrap{max-height:calc(100vh - var(--tabbar-h) - 24px);max-height:calc(100dvh - var(--tabbar-h) - 24px);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--border) transparent;position:relative;overflow:auto}table.roster{border-collapse:separate;border-spacing:0;width:100%;min-width:560px;font-size:.8125rem}table.roster th,table.roster td{text-align:center;border-bottom:1px solid var(--border);padding:3px;font-weight:400}table.roster thead th{z-index:2;background:var(--bg);color:var(--muted);padding:6px 2px;font-weight:600;position:sticky;top:0}table.roster .today{background:color-mix(in srgb, var(--accent) 9%, transparent)}table.roster thead th.today{background:color-mix(in srgb, var(--accent) 12%, var(--bg));color:var(--accent-ink)}table.roster .name-col{z-index:1;background:var(--surface);text-align:left;border-right:1px solid var(--border);min-width:110px;max-width:150px;padding:4px 8px;font-size:.9rem;position:sticky;left:0}table.roster tr.block-head th,table.roster tr.block-head td{background:color-mix(in srgb, var(--bg) 60%, var(--surface));font-weight:600}table.roster tr.block-head .name-col{background:color-mix(in srgb, var(--bg) 60%, var(--surface))}.dept-pill{color:var(--accent-ink);letter-spacing:.08em;text-transform:uppercase;padding:1px 0;font-size:.75rem;font-weight:700;display:inline-block}table.roster thead .name-col{z-index:3;background:var(--bg);color:var(--muted);font-size:.8rem}.name-sub{color:var(--muted);font-size:.7rem;font-weight:400;line-height:1.2;display:block}table.roster tr.me .name-col{font-weight:700}table.roster tr.me td{background:color-mix(in srgb, var(--accent) 6%, transparent)}@media (hover:hover){table.roster tbody tr:not(.block-head):not(.day-notes):hover>*{background-color:color-mix(in srgb, var(--accent) 7%, var(--surface))}}@media (width<=480px){table.roster .name-col{min-width:84px;max-width:112px;padding:4px 6px;font-size:.85rem}}.cell{border-radius:var(--radius-sm);width:100%;min-width:64px;min-height:48px;color:var(--text);background:0 0;border:1px solid #0000;flex-direction:column;justify-content:center;align-items:center;padding:2px;line-height:1.15;display:flex;position:relative}button.cell:disabled{opacity:1;cursor:default}button.cell.s-empty:not(:disabled):hover{border-color:var(--border)}.cell .main{font-weight:700}.cell .sub{color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:.6875rem;font-weight:500}.cell.s-work{background:var(--surface-2);border-color:var(--border)}.cell.s-work .main{color:var(--text)}.cell.s-work .sub{color:var(--accent-ink)}.cell.s-off,.swatch.s-off{background:color-mix(in srgb, var(--off) 14%, var(--surface-2));border-color:color-mix(in srgb, var(--off) 45%, transparent);color:var(--off-ink)}.cell.s-leave,.swatch.s-leave{background:color-mix(in srgb, var(--leave) 14%, var(--surface-2));border-color:color-mix(in srgb, var(--leave) 45%, transparent);color:var(--leave-ink)}.cell.s-as,.swatch.s-as{background:color-mix(in srgb, var(--as) 14%, var(--surface-2));border-color:color-mix(in srgb, var(--as) 45%, transparent);color:var(--as-ink)}.cell.s-urgent,.swatch.s-urgent{background:color-mix(in srgb, var(--error) 16%, var(--surface-2));border-color:color-mix(in srgb, var(--error) 50%, transparent)}.cell .sub.urgent-shift{text-decoration:line-through}.cell.urgent-pending{border:1px dashed var(--error)}.urgent-mark{color:var(--error);margin-left:2px;font-weight:700}@media (hover:hover){button.cell:not(.s-empty):not(:disabled):hover{border-color:var(--accent-ink)}}button.cell.dirty{border:2px dashed var(--accent-ink)}button.cell.invalid{border:2px solid var(--error)}.cell .cell-note{max-width:88px;color:var(--text);overflow-wrap:anywhere;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:1px;font-size:.68rem;font-style:italic;line-height:1.15;display:-webkit-box;overflow:hidden}.note-dot{background:var(--muted);border-radius:50%;width:6px;height:6px;position:absolute;top:4px;right:4px}.save-bar{z-index:2;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px;padding-bottom:max(12px, env(safe-area-inset-bottom));flex-direction:column;gap:8px;display:flex;position:sticky;bottom:0;box-shadow:0 -4px 16px #00000014}.card.list ul,ul.plain{margin:0;padding:0;list-style:none}ul.plain li{padding:2px 0}.list-item{text-align:left;width:100%;color:var(--text);border:0;border-top:1px solid var(--border);background:0 0;border-radius:0;justify-content:space-between;align-items:center;gap:8px;padding:8px 0;display:flex}.tags{flex-wrap:wrap;justify-content:flex-end;gap:4px;display:flex}.danger-zone{border-top:1px solid var(--border);flex-wrap:wrap;gap:8px;padding-top:12px;display:flex}.setting-item{border-top:1px solid var(--border);flex-direction:column;gap:8px;margin-top:0;padding-top:12px;display:flex}.setting-list{margin:0;padding:0;list-style:none}.setting-list li{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;padding:6px 0;display:flex}.time-row{align-items:center;gap:8px;display:flex}.time-row>span:first-child{flex:none;width:44px}.time-row input{flex:1;min-width:0;padding:0 6px}.note-text{white-space:pre-line;overflow-wrap:anywhere}.note-edit{flex-direction:column;gap:8px;display:flex}.note-edit textarea{resize:vertical;width:100%}.shift-name{font-weight:600}.frame{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);flex-direction:column;gap:8px;padding:10px;display:flex}.frame input{background:var(--surface)}.day-chips{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.day-chips .chip{min-height:40px;padding:0;font-size:.9rem}.day-chips .chip.taken{color:var(--muted);background:0 0;border-style:dashed}details.card summary{cursor:pointer;font-weight:600}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.cal-head{justify-content:space-between;align-items:center;gap:8px;display:flex}table.calendar{border-collapse:collapse;table-layout:fixed;width:100%}table.calendar th{color:var(--muted);padding:2px 0;font-size:.8rem;font-weight:600}table.calendar th.wk{width:30px;font-size:.7rem;font-weight:400}table.calendar td{text-align:center;padding:1px}table.calendar button.day{width:100%;min-width:0;min-height:44px;color:var(--text);background:0 0;border-color:#0000;border-radius:8px;padding:0}table.calendar button.day:hover{border-color:var(--border)}table.calendar button.day.other{color:var(--muted);opacity:.6}table.calendar button.day.today{border:2px solid var(--accent-ink);font-weight:700}table.calendar tr.selected td{background:color-mix(in srgb, var(--accent) 12%, transparent)}table.calendar tr.selected td:first-of-type{border-radius:8px 0 0 8px}table.calendar tr.selected td:last-child{border-radius:0 8px 8px 0}.my-head{flex-direction:column;gap:8px;display:flex}ol.days{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.day{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);align-items:flex-start;gap:12px;padding:12px;display:flex}.day.s-empty{border-style:dashed}.day.s-off{background:color-mix(in srgb, var(--off) 16%, var(--surface-2));border-color:color-mix(in srgb, var(--off) 55%, var(--border))}.day.s-leave{background:color-mix(in srgb, var(--leave) 16%, var(--surface-2));border-color:color-mix(in srgb, var(--leave) 50%, var(--border))}.day.s-as{background:color-mix(in srgb, var(--as) 16%, var(--surface-2));border-color:color-mix(in srgb, var(--as) 50%, var(--border))}.day.s-urgent{background:color-mix(in srgb, var(--error) 10%, var(--surface-2));border-color:color-mix(in srgb, var(--error) 45%, var(--border))}.day-actions{flex-wrap:wrap;margin:2px 0 0 -6px;display:flex}.urgent-card h4{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:12px 0 4px;font-size:.8rem}.urgent-card details{border-top:1px solid var(--border);margin-top:10px;padding-top:8px}.urgent-card summary{cursor:pointer;color:var(--muted);min-height:32px;font-size:.9rem}.urgent-card details ul.queue{margin-top:8px}.urgent-card ul.queue .actions{align-items:center;gap:4px 8px}.urgent-card ul.queue .icon-text{margin-left:-6px}.urgent-form .sheet-extra{display:block}.day.today{border:2px solid var(--accent-ink)}.day-date{background:color-mix(in srgb, var(--text) 7%, transparent);text-align:center;border-radius:10px;flex-direction:column;flex:none;align-items:center;width:60px;padding:6px 4px;line-height:1.25;display:flex}.day.today .day-date,.day.today .day-date strong{background:var(--accent);color:var(--accent-text)}.day-body{flex-direction:column;gap:2px;min-width:0;display:flex}.day-body .note{overflow-wrap:anywhere}.today-tag{white-space:nowrap;font-size:.68rem;font-weight:600}.day-body strong,.day-body span{font-variant-numeric:tabular-nums}@media (orientation:landscape) and (height<=520px){.shell,.shell.wide{max-width:none;padding-left:max(16px, env(safe-area-inset-left));padding-right:max(16px, env(safe-area-inset-right))}ol.days{flex-direction:row;gap:4px;padding-bottom:4px;overflow-x:auto}.day{flex-direction:column;flex:1 0 84px;gap:6px;padding:8px}.day-date{align-self:stretch;width:auto}.appbar-in,.tabbar-in{max-width:none;padding-left:max(16px, env(safe-area-inset-left));padding-right:max(16px, env(safe-area-inset-right))}.tabbar{position:static}.grid-wrap{max-height:calc(100dvh - 16px)}}textarea{font:inherit;border-radius:var(--radius-sm);border:1px solid var(--control);background:var(--field);color:var(--text);resize:vertical;padding:10px 12px}label.check{min-height:44px;color:var(--text);flex-direction:row;align-items:center;gap:10px}label.check input{width:22px;height:22px;min-height:0}.row.wrap{flex-wrap:wrap}.row.wrap>label{flex:96px}.ok{color:var(--ok)}.warn{background:var(--warn-bg);color:var(--warn-text);border-radius:8px;padding:8px 12px}.warn-text{color:var(--warn-text)}.segmented{border-radius:var(--radius-sm);background:var(--track);border:0;align-self:flex-start;gap:2px;padding:3px;display:inline-flex}.segmented a,.segmented button{min-height:40px;color:var(--muted);white-space:nowrap;background:0 0;border:0;border-radius:8px;align-items:center;padding:0 14px;text-decoration:none;display:inline-flex}.segmented .on{background:var(--field);color:var(--text);font-weight:600;box-shadow:0 1px 3px #0000001f}ol.off-days li{display:flex}button.off-day{text-align:left;width:100%;min-height:56px;color:var(--text)}button.off-day:disabled{opacity:.55}button.off-day.tone-free{border-color:var(--ok)}button.off-day.tone-free strong{color:var(--ok)}button.off-day.tone-ok{background:color-mix(in srgb, var(--off) 22%, var(--surface-2))}button.off-day.tone-wait{border-style:dashed;border-color:var(--warn-text)}button.off-day.tone-full strong{color:var(--muted)}button.off-day.today{border-width:2px}.badge.req-approved{background:color-mix(in srgb, var(--ok) 14%, transparent);color:var(--ok);border-color:color-mix(in srgb, var(--ok) 45%, transparent)}.badge.req-pending_manager{background:var(--warn-bg);color:var(--warn-text);border-color:#0000}.badge.req-rejected{background:color-mix(in srgb, var(--error) 12%, transparent);color:var(--error);border-color:color-mix(in srgb, var(--error) 45%, transparent)}.badge.req-blocked,.badge.req-cancelled{color:var(--muted)}ul.requests li,ul.queue li{border-top:1px solid var(--border);flex-direction:column;gap:2px;padding:10px 0;display:flex}ul.requests li:first-child,ul.queue li:first-child{border-top:0;padding-top:0}ul.queue .actions{margin-top:6px}.quote{overflow-wrap:anywhere}ol.quota-days{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.qday{border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:4px;min-width:0;padding:10px;display:flex}.qday.k-closed{opacity:.7;border-style:dashed}.qday.k-blocked{background:color-mix(in srgb, var(--error) 8%, var(--surface-2))}.qday.k-fixed{border-color:var(--leave)}.qday.over{border:2px solid var(--warn-text)}.qday-head{justify-content:space-between;align-items:baseline;gap:6px;display:flex}.qday-count{font-size:1.25rem}.qday .names li{overflow-wrap:anywhere;justify-content:space-between;align-items:center;gap:6px;display:flex}.qday .names li+li{margin-top:4px}.qday-actions{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.qday-actions .chip{min-height:40px;padding:0 12px}.stepper{align-items:center;gap:4px;display:inline-flex}.stepper button{min-width:40px;padding:0}.stepper span{text-align:center;min-width:24px}@media (width>=900px){ol.quota-days{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.qday-head{flex-direction:column}}table.calendar button.day{position:relative}.dot{background:var(--muted);border-radius:50%;width:7px;height:7px;display:inline-block}table.calendar button.day .dot{position:absolute;bottom:4px;left:50%;transform:translate(-50%)}.dot-free{background:var(--ok)}.dot-full{background:var(--muted)}.dot-blocked{background:var(--error)}.dot-mine{background:var(--off);outline:1px solid var(--text)}.legend{flex-wrap:wrap;gap:4px 12px;display:flex}.badge.off-badge{background:color-mix(in srgb, var(--off) 35%, transparent)}.approved-mark{color:var(--ok);font-weight:700}.cell.clash{outline:2px solid var(--error);outline-offset:-2px}.cell .sub.clash{color:var(--error);font-weight:600}.clash-list{margin:4px 0;padding-left:20px}.warn p{margin:0}.coverage-wrap{max-height:none}table.roster.coverage td{white-space:nowrap;padding:8px 2px}table.roster.coverage td.short{background:color-mix(in srgb, var(--error) 14%, transparent);color:var(--error);font-weight:700}table.roster.coverage td.short .warn-text{color:inherit}.setting-list li.rule-item,.setting-list li.zone-item{flex-direction:column;align-items:stretch}.rule-min{align-items:flex-end}.rule-min label{flex:0 120px}.zone-item .row>input{flex:1}table.roster.compact{width:auto;min-width:0}table.roster.compact th,table.roster.compact td{padding:1px}table.roster.compact thead th{padding:4px 1px;font-size:.75rem;line-height:1.2}table.roster.compact thead th a{min-width:34px;color:inherit;border-radius:6px;padding:4px 0;text-decoration:none;display:block}table.roster.compact thead th a:hover{background:color-mix(in srgb, var(--accent) 10%, transparent)}table.roster.compact .daynum{font-size:.95rem}table.roster.compact .name-col{min-width:96px;max-width:128px}table.roster.compact .cell{border-radius:6px;min-width:34px;min-height:40px;font-size:.7rem}table.roster.compact .cell .sub{text-overflow:clip;max-width:34px;font-size:.65rem;overflow:hidden}table.roster.compact .note-dot{width:5px;height:5px;top:2px;right:2px}table.roster.compact .wk-start{box-shadow:inset 2px 0 0 var(--border)}table.roster .unpub,.swatch.unpub{background-image:repeating-linear-gradient(135deg, transparent 0 5px, color-mix(in srgb, var(--muted) 16%, transparent) 5px 6px)}.swatch{border:1px solid var(--border);vertical-align:-2px;border-radius:4px;width:14px;height:14px;display:inline-block}.month-label{border:1px solid #0000;min-height:48px}.month-label:hover{border-color:#0000}.notices{gap:6px}.notice-group{margin:4px 0 0;font-weight:600}.notice-list li{border-top:1px solid var(--border);overflow-wrap:anywhere;justify-content:space-between;align-items:flex-start;gap:8px;padding:6px 0;display:flex}.notice-list li>span{flex:1;min-width:0;padding-left:14px;position:relative}.notice-list li>span:before{content:"";background:var(--accent-ink);border-radius:50%;width:6px;height:6px;position:absolute;top:calc(.75em - 3px);left:0}.notice-list li.for-me{border-left:4px solid var(--accent-ink);background:color-mix(in srgb, var(--accent) 6%, transparent);padding-left:8px;font-weight:600}.notice-list li button{flex:none}.badge.for-me-tag{background:var(--accent);color:var(--accent-text);border-color:var(--accent);font-size:.75rem}@media (width<=600px),(orientation:landscape) and (height<=520px){.card.notices{gap:2px;padding:8px 10px}.notices h3{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:.75rem}.notices .small-btn{min-height:32px;padding:0 10px;font-size:.8rem}.notice-group{margin-top:2px;font-size:.72rem}.notice-list li{align-items:center;gap:5px;padding:3px 0;font-size:.8rem;line-height:1.35}.notice-list li>span{padding-left:10px}.notice-list li>span:before{width:5px;height:5px;top:calc(.675em - 2.5px)}.notice-list li.for-me{border-left-width:3px;padding-left:6px}.notices .badge{padding:0 6px;font-size:.68rem}.notices>p.small{font-size:.72rem}}table.calendar button.day.in-range{background:color-mix(in srgb, var(--accent) 14%, transparent);border-radius:0}table.calendar button.day.range-end{background:var(--accent);color:var(--accent-text);opacity:1;border-radius:8px}.range-cal p{margin:6px 0 0}dl.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;display:grid}@media (width>=700px){dl.stats{grid-template-columns:repeat(4,minmax(0,1fr))}}.stat{border:1px solid var(--border);background:var(--surface-2);border-radius:10px;flex-direction:column;gap:2px;min-width:0;padding:10px 12px;display:flex}.stat dt,.stat-label{color:var(--muted);font-size:.75rem}.stat dd,.stat-value{font-variant-numeric:tabular-nums;font-size:1.35rem;font-weight:700;line-height:1.2}.stat dd small{color:var(--muted);font-size:.75rem;font-weight:400}.leave-card{border-color:color-mix(in srgb, var(--accent-ink) 35%, var(--border));background:linear-gradient(90deg, color-mix(in srgb, var(--accent) 16%, var(--surface-2)), var(--surface-2));gap:2px}.leave-card .stat-label{letter-spacing:.06em;text-transform:uppercase;color:var(--accent-ink);font-weight:600}.leave-card.negative{border-color:var(--error);background:color-mix(in srgb, var(--error) 8%, var(--surface-2))}.leave-card.negative .stat-label,.leave-card.negative .stat-value{color:var(--error)}table.roster.leave{min-width:320px}table.roster.leave td{padding:6px 4px}table.roster.leave tr.negative td{background:color-mix(in srgb, var(--error) 10%, transparent)}.leave-allowed{flex-flow:wrap;justify-content:center;align-items:center;gap:6px;margin-top:0}.leave-allowed input{text-align:center;width:104px;min-height:40px;padding:0 6px}table.roster tr.day-notes td{vertical-align:top;padding:4px 2px}.day-note{overflow-wrap:anywhere;max-width:110px;margin:0 auto;font-size:.72rem;line-height:1.2;display:block}.day-note+.day-note{border-top:1px dashed var(--border);margin-top:4px;padding-top:4px}.day-note.draft{color:var(--muted);font-style:italic}.day-note-btn{border:1px dashed var(--border);width:100%;min-height:40px;color:var(--text);background:0 0;border-radius:8px;padding:2px}.setting-groups{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin:0;padding:0;list-style:none;overflow:hidden}.setting-groups li+li{border-top:1px solid var(--border)}.setting-groups a{justify-content:space-between;align-items:center;gap:12px;min-height:60px;padding:10px 16px;text-decoration:none;display:flex}.setting-groups a>span:first-child{flex-direction:column;gap:2px;min-width:0;display:flex}.setting-groups a:hover{background:color-mix(in srgb, var(--accent) 6%, transparent)}.setting-groups .chevron{color:var(--muted);font-size:1.4rem}.back-link{min-height:40px;color:var(--muted);align-items:center;text-decoration:none;display:inline-flex}.setting-section{color:var(--muted);margin:16px 0 6px;font-size:.85rem;font-weight:600}.setting-groups .setting-empty{padding:12px 16px}.setting-groups+details.card{margin-top:8px}.tab-badge{background:var(--red);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:18px;height:18px;margin-left:6px;padding:0 5px;font-size:.7rem;font-weight:700;line-height:1;display:inline-flex}.swap-change{background:var(--surface-2);overflow-wrap:anywhere;border-radius:8px;flex-direction:column;padding:6px 10px;display:flex}ul.queue .swap-change,ul.requests .swap-change{margin-top:4px}.swap-preview{flex-direction:column;gap:4px;display:flex}.swap-days{gap:2px}.swap-picker{flex-direction:column;gap:10px;display:flex}.swap-picker>p{margin:0}.sheet-extra{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:4px 10px;margin-top:12px;padding-top:10px;display:flex}.choices{flex-direction:column;gap:6px;display:flex}label.choice{border:1px solid var(--border);border-radius:var(--radius);min-height:52px;color:var(--text);cursor:pointer;flex-direction:row;align-items:center;gap:12px;padding:6px 12px}label.choice.on{border-color:var(--accent-ink);background:color-mix(in srgb, var(--accent) 10%, transparent)}label.choice input{width:20px;height:20px;min-height:0;accent-color:var(--accent);flex:none}label.choice>span{flex-direction:column;min-width:0;display:flex}@media (width<=600px){.tabs.many{gap:0}.tabs.many a{padding:0 9px;font-size:.8125rem}.tabs.many .tab-long{display:none}.tabs.many .tab-short{display:inline}}@media (width<=400px){.tabs.many a{padding:0 7px}.tab-badge{margin-left:4px}.tabs.crowded a{padding:0 6px;font-size:.78rem}}.task-card.task-collapsed{padding-top:4px;padding-bottom:4px}.task-card.task-focus{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.task-head{align-items:center;gap:4px;display:flex}.task-head h3{flex:1;min-width:0}button.task-toggle{width:100%;min-height:44px;color:inherit;font:inherit;text-align:left;background:0 0;border-color:#0000;align-items:center;gap:8px;padding:0;display:flex}.task-name{overflow-wrap:anywhere;flex:1;min-width:0}.task-toggle .badge{flex:none}.task-sum,.task-count{color:var(--muted);flex:none;font-size:.85rem;font-weight:400}.task-chevron{color:var(--muted);flex:none;transition:transform .15s}[aria-expanded=true]>.task-chevron{transform:rotate(180deg)}@media (prefers-reduced-motion:reduce){.task-chevron{transition:none}}.task-head .icon-btn{margin-right:-8px}.task-body{flex-direction:column;gap:8px;display:flex}button.task-done-toggle{min-height:40px;color:var(--muted);background:0 0;border-color:#0000;align-self:flex-start;align-items:center;gap:4px;padding:0 4px;font-size:.85rem;display:inline-flex}.task-meta{overflow-wrap:anywhere}.task-progress{align-items:center;gap:10px;display:flex}.task-bar{background:var(--surface-2);border:1px solid var(--border);border-radius:999px;flex:1;height:8px;overflow:hidden}.task-bar span{background:var(--accent);height:100%;display:block}.task-done .task-bar span{background:var(--ok)}.task-missed .task-bar span{background:var(--error)}.task-items,.task-missed-list,.task-edit-items{margin:0;padding:0;list-style:none}.task-items li{border-top:1px solid var(--border);flex-direction:column;gap:2px;padding:4px 0;display:flex}.task-row{align-items:center;gap:8px;display:flex}label.task-check{min-width:0;min-height:44px;color:var(--text);cursor:pointer;flex-direction:row;flex:1;align-items:center;gap:12px;font-size:1rem}label.task-check input{width:24px;height:24px;min-height:0;accent-color:var(--accent);flex:none}label.task-check input:disabled{cursor:default}.task-items li.done .task-text{color:var(--muted);text-decoration:line-through}.task-items li.missed .task-text{font-weight:600}.task-by,.task-note-form{overflow-wrap:anywhere;margin:0 0 4px 36px}.task-note{color:var(--text)}.task-edit-text{overflow-wrap:anywhere;flex:1;min-width:0;padding:10px 0}form.task-item-form{gap:4px;margin:4px 0}.task-item-form .row.between>label{flex:none}.task-item-form .actions{flex-wrap:nowrap}button.task-note-btn:not(.has-note){color:var(--muted)}.task-others>summary{cursor:pointer;min-height:44px;color:var(--accent-ink);align-items:center;font-weight:600;display:flex}.task-others>.card+.card{margin-top:12px}dl.task-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0;display:grid}.task-stat-done dd{color:var(--ok)}.task-stat-missed dd{color:var(--error)}@media (width<=480px){dl.task-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}.task-missed-list li{border-top:1px solid var(--border);overflow-wrap:anywhere;padding:8px 0}.task-table-wrap{overflow-x:auto}.task-table{border-collapse:collapse;width:100%}.task-table th,.task-table td{border-top:1px solid var(--border);text-align:right;font-variant-numeric:tabular-nums;padding:8px 6px}.task-table thead th{color:var(--muted);border-top:0;font-size:.8rem;font-weight:600}.task-table th:first-child{text-align:left;overflow-wrap:anywhere;font-weight:500}.setting-list.task-templates li{flex-wrap:wrap;gap:0 8px}.task-template-tools{flex:none;align-items:center;margin-left:auto;display:flex}.task-template-link{min-width:0;color:var(--text);overflow-wrap:anywhere;flex-direction:column;flex:200px;gap:2px;padding:6px 0;text-decoration:none;display:flex}form.task-form{gap:12px;margin-top:0}.task-times{flex-wrap:wrap;align-items:flex-end;gap:8px;display:flex}.task-times label{flex:120px}.task-edit-items li{border-top:1px solid var(--border);flex-direction:column;gap:2px;padding:8px 0;display:flex}.task-edit-items .row.between>label,.task-edit-tools{flex:none}.task-edit-items li:first-child{border-top:0;padding-top:0}.task-staff-pick>summary{cursor:pointer;min-height:44px;color:var(--accent-ink);align-items:center;display:flex}ol.push-steps{flex-direction:column;gap:4px;margin:0;padding-left:20px;display:flex}.export-slot{display:contents}.shift-section{flex-direction:column;gap:12px;display:flex}.note-more summary{cursor:pointer;align-items:center;min-height:32px;display:inline-flex}.shift-card{gap:0}.shift-card.off .shift-heading h4,.shift-card.off .shift-frame{color:var(--muted)}.shift-head{align-items:center;gap:10px;display:flex}.shift-heading{flex:1;min-width:0}.shift-heading h4{overflow-wrap:anywhere;margin:0;font-size:1.125rem;font-weight:700;line-height:1.25}.badge.shift-on{background:color-mix(in srgb, var(--ok) 14%, transparent);border-color:color-mix(in srgb, var(--ok) 40%, transparent);color:var(--ok)}.badge.shift-off{color:var(--muted)}.shift-frame{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:12px;padding-top:12px;display:flex}.day-dots{gap:3px;display:flex}.day-dots>span{background:var(--bg);width:22px;height:22px;color:var(--muted);border-radius:6px;place-items:center;font-size:.6875rem;font-weight:600;display:grid}.day-dots>span.on{background:var(--accent);color:var(--accent-text)}.shift-time{font-variant-numeric:tabular-nums;white-space:nowrap;margin-left:auto;font-size:.9375rem;font-weight:600}.shift-time small{color:var(--muted);font-size:.6875rem;font-weight:500}.shift-card .warn{margin-top:12px}button.add-dashed{border:1px dashed var(--control);width:100%;color:var(--muted);background:0 0}@media (hover:hover){button.add-dashed:hover{color:var(--text);border-color:var(--accent-ink)}}.copy-shifts>summary{cursor:pointer;align-items:center;min-height:32px;font-weight:600;display:flex}.copy-shifts .setting-item{border-top:0;padding-top:4px}.frame-name{flex:1;font-size:.875rem;font-weight:600}.sheet-form{margin-top:0}.sheet-foot{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;margin-top:8px;padding-top:12px;display:flex}.brand-mark.custom{object-fit:cover;background:#fff}.logo-preview{flex-wrap:wrap;align-items:center;gap:20px;margin-bottom:8px;display:flex}.logo-big{object-fit:cover;border:1px solid var(--border);background:#000;border-radius:50%;width:96px;height:96px}.appbar-sample{background:var(--surface);border:1px solid var(--border);letter-spacing:.06em;text-transform:uppercase;border-radius:12px;align-items:center;gap:10px;padding:8px 12px;font-size:1rem;display:inline-flex}
