:root{--text:#56625d;--text-h:#0f1a16;--page:#eef3f0;--bg:#fff;--border:#dce5e0;--accent:#2f6f5e;--accent-bg:#2f6f5e1a;--band:#1f4f42;--band-text:#fff;--band-link:#cfe8dd;--card-shadow:0 1px 2px #0f2a230f,0 4px 14px #0f2a230f;--role-violet:#a233f5;--role-teal:#0a8168;--role-blue:#1d68c7;--role-indigo:#4f46e5;--role-cyan:#0e7490;--role-green:#3f7d1f;--role-amber:#8a6100;--role-orange:#b4400c;--role-rose:#c02a51;--role-pink:#b01f8f;--role-brown:#7c5237;--role-slate:#53616f;--positive:#0a8168;--warning:#a04b00;--sans:system-ui,"Segoe UI",Roboto,sans-serif;font:16px/1.5 var(--sans);--buncss-light:initial;--buncss-dark: ;color-scheme:light dark;color:var(--text);background:var(--page);-webkit-font-smoothing:antialiased}@media (prefers-color-scheme:dark){:root{--buncss-light: ;--buncss-dark:initial;--text:#9fb0a8;--text-h:#eef3f0;--page:#0d1210;--bg:#151c19;--border:#24302b;--accent:#6cc4a6;--accent-bg:#6cc4a621;--band:#17382f;--band-link:#cfe8dd;--card-shadow:none;--role-violet:#c084fc;--role-teal:#2dd4a7;--role-blue:#7cb2f8;--role-indigo:#a5b4fc;--role-cyan:#4dd6f0;--role-green:#9bd66a;--role-amber:#f0b445;--role-orange:#fb923c;--role-rose:#fb7196;--role-pink:#f472c8;--role-brown:#d1a184;--role-slate:#b6bec9;--positive:#2dd4a7;--warning:#f0b445}}[data-role-colour=violet]{--role-colour:var(--role-violet)}[data-role-colour=teal]{--role-colour:var(--role-teal)}[data-role-colour=blue]{--role-colour:var(--role-blue)}[data-role-colour=indigo]{--role-colour:var(--role-indigo)}[data-role-colour=cyan]{--role-colour:var(--role-cyan)}[data-role-colour=green]{--role-colour:var(--role-green)}[data-role-colour=amber]{--role-colour:var(--role-amber)}[data-role-colour=orange]{--role-colour:var(--role-orange)}[data-role-colour=rose]{--role-colour:var(--role-rose)}[data-role-colour=pink]{--role-colour:var(--role-pink)}[data-role-colour=brown]{--role-colour:var(--role-brown)}[data-role-colour=slate]{--role-colour:var(--role-slate)}body{margin:0}a{color:var(--accent)}h1,h2{color:var(--text-h);font-weight:700}.app-status{text-align:center;padding:3rem 1rem}.app-header{display:flex;color:var(--band-text);background:var(--band);justify-content:space-between;align-items: center;gap:1rem;padding:.625rem 1rem}.app-brand{display:inline-flex;flex-shrink:0}.app-brand svg{border-radius:7px;box-shadow:0 0 0 1px #ffffff2e}.app-header-end{display:inline-flex;align-items: center;gap:1rem;min-width:0}.app-nav{display:inline-flex;align-items: center;gap:1rem;font-size:.875rem}.auth-status{display:inline-flex;align-items: center;gap:.5rem;min-width:0;font-size:.875rem}.auth-email{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-header a{color:var(--band-link);text-decoration:none}.app-header a.app-brand,.app-header a:hover{color:var(--band-text)}.app-header .button{white-space:nowrap;color:var(--band-text);background:#ffffff14;border-color:#ffffff40;flex-shrink:0}.app-header .button:hover{background:#ffffff29}.app-header :focus-visible{outline:2px solid var(--band-text);outline-offset:2px}.button{display:inline-block;font:inherit;color:var(--accent);background:var(--accent-bg);border:1px solid var(--border);text-decoration:none;cursor:pointer;border-radius:8px;padding:.5rem 1rem}.button--small{padding:.25rem .625rem;font-size:.875rem}.button:disabled{opacity:.55;cursor:not-allowed}.icon-button{display:inline-grid;font:inherit;cursor:pointer;border-radius:50%;flex:none;place-items: center;width:30px;height:30px;padding:0}.icon-button svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;width:17px;height:17px}.icon-button--filled{color:var(--bg);background:var(--accent);border:none;width:34px;height:34px}.icon-button--filled svg{stroke-width:2.2}.icon-button--plain{color:var(--accent);border:1px solid var(--border);background:0 0}.icon-button--plain:hover,.icon-button--plain[aria-pressed=true]{background:var(--accent-bg);border-color:var(--accent)}.icon-button--plain:focus-visible{background:var(--accent-bg);border-color:var(--accent)}.icon-button:disabled{opacity:.55;cursor:not-allowed}.dialog{box-sizing:border-box;border:1px solid var(--border);background:var(--bg);color:var(--text);overflow-y:auto;border-radius:10px;width:min(100%,26rem);max-height:85dvh;margin:auto;padding:1.25rem}.dialog::backdrop{background:#00000073}.dialog-title{margin:0 0 .75rem;font-size:1.125rem}.rota-edit-summary{color:var(--text-h);margin:0 0 1rem}.rota-edit-field{display:block;margin-bottom:.875rem;font-size:.875rem}.rota-edit-field input,.rota-edit-field select{display:block;box-sizing:border-box;font:16px/1.4 var(--sans);color:var(--text-h);background:var(--bg);border:1px solid var(--border);border-radius:6px;width:100%;margin-top:.25rem;padding:.5rem}.rota-edit-field input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.rota-edit-field select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.rota-edit-note{margin:-.5rem 0 .875rem;font-size:.8125rem}.rota-edit-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1.25rem}.chip{--chip:var(--role-slate);position:relative;display:inline-flex;border:1.5px solid var(--chip);color:var(--chip);background:var(--bg);cursor:pointer;align-items: center;gap:5px;padding:3px 10px;font-family:inherit;font-size:13px;font-weight:600;line-height:1.35}.chip--pill{border-radius:12px}.chip--tag{border-radius:3px;font-style:italic}.chip:hover:not(.selected){background:color-mix(in srgb,var(--chip)14%,transparent)}.chip.selected{background:var(--chip);color:#fff}.chip--static{cursor:default}.chip--static:hover:not(.selected){background:var(--bg)}.chip-remove{display:inline-flex;font:inherit;color:inherit;cursor:pointer;opacity:.7;background:0 0;border:none;border-radius:50%;justify-content:center;align-items: center;width:20px;height:20px;margin:-4px -5px -4px 0;padding:0;font-style:normal}.chip-remove:hover{opacity:1;background:color-mix(in srgb,var(--chip)18%,transparent)}.chip-remove:focus-visible{opacity:1;background:color-mix(in srgb,var(--chip)18%,transparent)}@media (prefers-reduced-motion:no-preference){.chip--enter{animation:.25s cubic-bezier(.3,1.6,.5,1) chip-enter}}@keyframes chip-enter{0%{opacity:0;transform:scale(.6)}}.chip-select{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;padding:0}.chip:has(>.chip-select[aria-pressed=true]){background:var(--chip);color:#fff}.shift-list{background:var(--bg);border:1px solid var(--border);box-shadow:var(--card-shadow);overflow:hidden;border-radius:14px;width:-moz-fit-content;width:fit-content;min-width:min(100%,40rem);max-width:100%}.shift-row{display:flex;border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:baseline;gap:4px 14px;padding:12px 14px}.shift-row:last-child{border-bottom:none}.shift-month{letter-spacing:.06em;text-transform:uppercase;color:var(--band-text);background:var(--band);margin:0;padding:6px 14px;font-size:.75rem;font-weight:700}.shift-row.closed .shift-when,.shift-row.closed .shift-note{opacity:.55}.shift-expand-cell{flex-shrink:0;align-self: flex-start;width:26px;margin-right:-8px}.shift-expand{display:flex;color:var(--text);cursor:pointer;opacity:.75;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items: center;width:26px;height:26px;margin:-3px 0;padding:0}.shift-expand:hover{border-color:var(--border);background:var(--bg);opacity:1}.shift-expand:focus-visible{border-color:var(--border);background:var(--bg);opacity:1}.shift-expand:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.shift-expand svg{transition:transform .15s}.shift-expand[aria-expanded=true] svg{transform:rotate(90deg)}.shift-role-groups{display:flex;flex-direction:column;flex-basis:100%;gap:8px;min-width:0}.shift-role-group{display:flex;flex-direction:column;gap:4px;min-width:0}.shift-role-name{letter-spacing:.02em;color:var(--text);opacity:.8;font-size:12px;font-weight:600}.shift-role-people{display:flex;flex-wrap:wrap;gap:6px}.shift-when{display:flex;flex-direction:column;flex-shrink:0;align-self: flex-start;align-items: flex-start;gap:1px;width:5rem}.shift-date{color:var(--text-h);font-size:15px;font-weight:600}.shift-time{font-variant-numeric:tabular-nums;color:var(--text);opacity:.75;font-size:12px}.shift-when-editable{font:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;margin:-2px -4px;padding:2px 4px}.shift-when-editable:hover{border-color:var(--border);background:var(--bg)}.shift-when-editable:focus-visible{border-color:var(--border);background:var(--bg)}.shift-when-editable:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.shift-note{color:var(--text);font-style:italic}.shift-row.unallocated{background-image:repeating-linear-gradient(-45deg,#0000 0 13px,#8080801f 13px 14px)}.shift-people{display:flex;flex-wrap:wrap;flex:1;gap:6px;min-width:0}.shift-unallocated{display:flex;flex-direction:column;flex:1;gap:6px;min-width:0}.shift-unfilled{color:var(--warning);font-size:13px;font-weight:600}.shift-row.unfilled,.shift-row.filled{border-left:5px solid var(--edge);padding-left:11px}.shift-row.unfilled{--edge:var(--warning)}.shift-row.filled{--edge:var(--positive)}.planned-list{display:flex;list-style:none;flex-wrap:wrap;gap:6px;margin:0;padding:0}.shift-actions{display:flex;flex-wrap:wrap;gap:6px}.shift-actions,.shift-closure{align-self: flex-start}.chip{--chip:var(--role-colour,var(--role-slate));user-select:none}.chip.has-group{border-top-right-radius:3px}.chip.pinned{display:inline-flex;cursor:default;user-select:auto;align-items: center;gap:5px}.chip.pinned:hover{background:var(--bg)}.chip.draft{cursor:default;user-select:auto;border-style:dashed}.chip.draft:hover{background:0 0}.chip.draft.draft-stale{opacity:.4;transition:opacity .15s}.shift-row.drop-target{outline:2px dashed var(--accent);outline-offset:-3px}.chip.lifted{opacity:.45;border-style:dashed}.chip.chip-inert{opacity:.4;cursor:default}.chip.chip-inert:hover{background:0 0}.shift-add{color:var(--text);border:1.5px dashed var(--border);cursor:pointer;background:0 0;border-radius:12px;padding:3px 10px;font-family:inherit;font-size:13px;font-weight:600;line-height:1.35}.shift-add:hover{color:var(--accent);border-color:var(--accent)}.shift-icon{width:26px;height:26px}.shift-icon svg{width:15px;height:15px}.shift-move-here{align-self: center}.chip-menu,.shift-error{flex-basis:100%;margin:8px 0 0}.chip-menu{display:flex;flex-wrap:wrap;align-items: center;gap:6px;margin-left:auto}.chip-menu-name{color:var(--text-h);font-size:13px;font-weight:600}.shift-error{color:var(--accent);font-size:13px}.chip-group-dot{position:absolute;box-shadow:0 0 0 1.5px var(--bg);border-radius:50%;width:8px;height:8px;top:-3px;right:-3px}@media (min-width:700px){.shift-row{padding:14px 18px}.shift-row.unfilled,.shift-row.filled{padding-left:15px}.shift-when{width:5.5rem}.chip{padding:4px 12px;font-size:14px}}.shape-form-hint{margin:0 0 .875rem;font-size:.8125rem}.shape-form-seat{display:flex;justify-content:space-between;align-items: center;gap:.75rem;margin-bottom:.875rem;font-size:.875rem}.shape-form-role{color:var(--role-colour,var(--text-h));flex:auto;min-width:0;font-weight:600}.shape-form-seat input[type=number]{box-sizing:border-box;font:16px/1.4 var(--sans);color:var(--text-h);text-align:right;background:var(--bg);border:1px solid var(--border);border-radius:6px;flex:none;width:5rem;padding:.5rem}.shape-form-seat input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.shape-form-error{color:var(--role-rose);margin:0 0 .75rem;font-size:.875rem}.shape-form-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1.25rem}.rota-viewer{max-width:640px;margin:0 auto;padding:16px}.rota-heading{display:flex;justify-content:space-between;align-items: center;gap:12px;margin-bottom:16px}.rota-viewer h1{margin:0;font-size:22px}.rota-search-wrap{position:relative;margin-bottom:12px}.rota-search-input-wrap{display:flex;border:1px solid var(--border);background:var(--bg);cursor:text;border-radius:10px;align-items: center;transition:border-color .15s}.rota-search-input-wrap:hover{border-color:var(--text-h)}.rota-search-input-wrap.open,.rota-search-input-wrap:focus-within{border-color:var(--accent);border-width:2px}.rota-search{color:var(--text-h);outline:none;background:0 0;border:none;flex:1;min-width:0;padding:9px 12px;font-family:inherit;font-size:16px}.rota-search::placeholder{color:var(--text)}.rota-search-clear{display:flex;cursor:pointer;color:var(--text);background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items: center;width:28px;height:28px;margin-right:4px;padding:0}.rota-search-clear:hover{background:var(--accent-bg);color:var(--text-h)}.rota-search-dropdown{position:absolute;z-index:100;list-style:none;background:var(--bg);border:1px solid var(--border);overflow-y:auto;border-radius:4px;max-height:280px;margin:0;padding:6px 0;top:calc(100% + 4px);left:0;right:0;box-shadow:0 2px 4px #00000014,0 4px 16px #0000001f}.rota-search-option{color:var(--text-h);cursor:pointer;padding:8px 16px;font-size:14px}.rota-search-option.active{background:var(--accent-bg)}.rota-search-option.selected{font-weight:600}.rota-search-no-options{color:var(--text);padding:8px 16px;font-size:14px}.upcoming-strip{display:flex;color:var(--band-text);background:var(--accent);border-radius:10px;flex-wrap:wrap;align-items:baseline;gap:4px 6px;margin-bottom:16px;padding:10px 14px;font-size:14px}.upcoming-strip-label{flex-shrink:0;font-weight:700}.upcoming-none{opacity:.85;font-style:italic}.calendar-copy{display:inline-flex;color:var(--band);background:var(--bg);cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:999px;align-self: center;align-items: center;gap:5px;margin-left:auto;padding:4px 10px;transition:background .15s,color .15s,border-color .15s;font-family:inherit;font-size:12px;font-weight:600}.calendar-copy:hover{background:color-mix(in srgb,var(--accent)12%,var(--bg))}.calendar-copy svg{flex-shrink:0}.calendar-copy.copied{color:var(--band-text);background:var(--band)}.calendar-copy.failed{color:var(--text-h);background:var(--bg)}@media (prefers-color-scheme:dark){.upcoming-strip{color:var(--bg)}.calendar-copy{color:var(--accent)}}.rota-notice{color:var(--accent);margin:0 0 12px;font-size:13px}.rota-edit-hint,.rota-edit-banner{border-radius:6px;margin-bottom:12px;padding:10px 14px;font-size:13px}.rota-edit-hint{background:color-mix(in srgb,var(--border)45%,transparent);margin-top:0}.rota-edit-banner:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.rota-edit-banner{display:flex;background:var(--accent-bg);color:var(--text-h);flex-wrap:wrap;justify-content:space-between;align-items: center;gap:8px}@media (min-width:700px){.rota-viewer{padding:24px}.rota-viewer h1{margin-bottom:20px;font-size:28px}.rota-search-wrap{width:260px;margin-bottom:16px}.upcoming-strip{margin-bottom:24px}}.grid-filter{display:flex;flex-wrap:wrap;gap:.375rem;margin-bottom:.5rem}.grid-chip{border:1px solid var(--border);color:var(--text);font:inherit;cursor:pointer;background:0 0;border-radius:999px;padding:.125rem .5rem;font-size:.75rem}.grid-chip--on{border-color:var(--accent);color:var(--accent);background:var(--accent-bg)}.grid-scroll{overflow-x:auto;border:1px solid var(--border);border-radius:8px;width:-moz-fit-content;width:fit-content;max-width:100%}.response-grid{border-collapse:collapse;font-size:.8125rem}.response-grid th,.response-grid td{text-align:center;white-space:nowrap;padding:.375rem .5rem;font-weight:400}.grid-date{display:table-cell;color:var(--text-h);min-width:3.75rem;line-height:1.25}.grid-date-day,.grid-date-note{display:block;color:var(--text);font-size:.6875rem}.grid-date--closed,.grid-cell--closed{opacity:.5}.response-grid th.grid-name-cell{position:sticky;z-index:1;text-align:left;background:var(--bg);color:var(--text-h);white-space:normal;max-width:11rem;padding-right:1rem;left:0}@media (min-width:48rem){.response-grid th.grid-name-cell{white-space:nowrap;min-width:12rem;max-width:none}}.grid-stats th,.grid-stats td{color:var(--text-h)}.grid-stats{border-bottom:2px solid var(--border)}thead .grid-name-cell,.grid-stats .grid-name-cell{font-size:.75rem}.response-grid thead th{border-bottom:1px solid var(--border);vertical-align:bottom}.grid-num--ok{color:var(--positive)}.grid-num--short{color:#b91c1c;font-weight:500}.grid-cell--yes{color:var(--positive)}.grid-row+.grid-row th,.grid-row+.grid-row td,.grid-details+.grid-row th,.grid-details+.grid-row td{border-top:1px solid var(--border)}.grid-row--open .grid-cell{background:var(--accent-bg)}.response-grid .grid-row--open th.grid-name-cell{background-color:var(--accent-bg)}.grid-toggle{font:inherit;color:var(--text);cursor:pointer;background:0 0;border:0;margin-right:.375rem;padding:0}.grid-name{color:var(--accent);text-decoration:none}.grid-name-link{color:inherit;text-decoration:none}.grid-name-link:hover{text-decoration:underline}.grid-tag{border:1px solid var(--border);color:var(--text);border-radius:4px;margin-left:.5rem;padding:.0625rem .375rem;font-size:.6875rem}.grid-tag--replied{border-color:var(--positive);color:var(--positive)}.grid-details td{text-align:left;white-space:normal;background:var(--accent-bg);padding:.25rem .75rem .75rem}.members{list-style:none;max-width:34rem;margin:0;padding:0}.member+.member{margin-top:.5rem}.member-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:.375rem}.member-name{color:var(--accent);text-decoration:none}a.member-name:hover{text-decoration:underline}.member-note{color:var(--text);font-size:.75rem}.member-link{display:flex;flex-wrap:wrap;align-items: center;gap:.5rem;margin-top:.25rem}.member-link-url{border:1px solid var(--border);background:var(--bg);overflow-wrap:anywhere;border-radius:4px;flex:14rem;min-width:0;padding:.25rem .5rem;font-size:.6875rem}.grid-hidden{position:absolute;overflow:hidden;clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0}@media (prefers-color-scheme:dark){.grid-num--short{color:#f87171}}.round-bleed{--bleed:max(0px,(100vw - 67rem)/2);display:flex;margin-inline:calc(-1*var(--bleed));justify-content:center}.round-bleed>.round{box-sizing:border-box;min-width:calc(100% - 2*var(--bleed));max-width:100%}.round-head{display:flex;justify-content:space-between;align-items: flex-start;gap:1rem}.round-head h2{margin:0}.round-caption{margin:1rem 0 0;font-size:.75rem}.round-section{display:flex;color:var(--text-h);justify-content:space-between;align-items:baseline;gap:.5rem;margin:1.5rem 0 .5rem;font-size:.875rem;font-weight:500}.round-progress{color:var(--text);font-size:.8125rem;font-weight:400}.round-message{margin:1.5rem 0 0}.round-message--error{color:#b91c1c;background:#b91c1c1a;border:1px solid #b91c1c4d;border-radius:6px;padding:.75rem 1rem}.round-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.send-field{display:block;font-size:.875rem}.send-field input{display:block;box-sizing:border-box;font:16px/1.4 var(--sans);color:var(--text-h);background:var(--bg);border:1px solid var(--border);border-radius:6px;width:100%;margin-top:.25rem;padding:.5rem}.send-field input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.send-note{margin:.75rem 0 0;font-size:.8125rem}.send-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1.25rem}.send-report{border:1px solid var(--border);border-radius:8px;margin-top:1rem;padding:.75rem .875rem;font-size:.8125rem}.send-report-head{display:flex;color:var(--text-h);flex-wrap:wrap;justify-content:space-between;align-items: center;gap:.5rem}.send-report-error,.send-failures{color:#b91c1c;margin:.5rem 0 0}.send-failures{padding-left:1.25rem}.send-failures li+li{margin-top:.25rem}@media (prefers-color-scheme:dark){.send-report-error,.send-failures{color:#f87171}.round-message--error{color:#f87171;background:#f871711f;border-color:#f8717159}}.setup-needed{text-align:center;max-width:32rem;margin:0 auto;padding:3rem 1rem}.setup-needed h2{margin:0 0 .5rem;font-size:1.25rem}.setup-needed p{margin:.25rem 0}.drag-list{list-style:none;margin:0;padding:0}.drag-handle{display:inline-flex;color:var(--text);cursor:grab;touch-action:none;background:0 0;border:0;border-radius:6px;flex:none;justify-content:center;align-items: center;width:1.75rem;height:1.75rem;padding:0}.drag-handle svg{fill:currentColor}.drag-handle:hover:not(:-webkit-any(:disabled,[aria-disabled=true])){color:var(--text-h);background:var(--accent-bg)}.drag-handle:hover:not(:-moz-any(:disabled,[aria-disabled=true])){color:var(--text-h);background:var(--accent-bg)}.drag-handle:hover:not(:is(:disabled,[aria-disabled=true])){color:var(--text-h);background:var(--accent-bg)}.drag-handle:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.drag-handle:disabled,.drag-handle[aria-disabled=true]{cursor:default;opacity:.35}.drag-list--dragging{cursor:grabbing;user-select:none}.drag-list--dragging .drag-handle{cursor:grabbing}.drag-list--dragging>li{transition:transform .15s}.drag-list--dragging>li.drag-held{position:relative;z-index:1;transition:none}@media (prefers-reduced-motion:reduce){.drag-list--dragging>li{transition:none}}.save-status{color:var(--text);transition:opacity .4s;font-size:.75rem}.save-status--saved{color:var(--positive)}.save-status--idle{opacity:0}.settings-section-head{display:flex;justify-content:space-between;align-items: flex-start;gap:1rem;margin-bottom:1rem}.settings-section-head h2{margin:0}.settings-section-title{display:flex;align-items: center;gap:.75rem}.settings-section--incomplete{border-color:var(--role-rose);box-shadow:inset 4px 0 0 var(--role-rose),var(--card-shadow)}.settings-needed{display:inline-block;vertical-align:middle;color:var(--role-rose);background:color-mix(in srgb,var(--role-rose)14%,transparent);border-radius:999px;margin-left:.5rem;padding:.0625rem .5rem;font-size:.75rem;font-weight:600}.settings-section-action{white-space:nowrap;flex:none}.settings-section--closed .settings-section-head{align-items: center;margin-bottom:0}.settings-toggle{display:inline-flex;font:inherit;color:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;align-items: center;gap:.5rem;margin:0 0 0 -.25rem;padding:.125rem .25rem}.settings-toggle:hover{border-color:var(--border)}.settings-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.settings-toggle svg{flex:none;transition:transform .15s}.settings-toggle[aria-expanded=true] svg{transform:rotate(90deg)}@media (prefers-reduced-motion:reduce){.settings-toggle svg{transition:none}}.settings-summary{color:var(--text);font-size:.875rem;font-weight:400}.settings-blurb{margin:.25rem 0 0;font-size:.875rem}.settings-empty,.settings-caption{margin:0;font-size:.875rem}.settings-caption{margin-top:.75rem}.settings-error{color:var(--role-rose);margin:0 0 .75rem;font-size:.875rem}.settings-facts{margin:0}.settings-fact{display:flex;border-top:1px solid var(--border);align-items:baseline;gap:.75rem;padding:.5rem 0}.settings-fact:first-child{border-top:none}.settings-fact dt{color:var(--text-h);flex:none;width:8rem;font-weight:600}.settings-fact dd{font-variant-numeric:tabular-nums;margin:0}.settings-unset{font-style:italic}.settings-field{display:block;margin-bottom:.875rem;font-size:.875rem}.settings-field input[type=text],.settings-field input[type=number],.settings-field input[type=time],.settings-field select{display:block;box-sizing:border-box;font:16px/1.4 var(--sans);color:var(--text-h);background:var(--bg);border:1px solid var(--border);border-radius:6px;width:100%;margin-top:.25rem;padding:.5rem}.settings-field input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.settings-field select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.settings-hint{margin:-.625rem 0 .875rem;font-size:.8125rem}.settings-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1.25rem}.settings-pattern-lines{list-style:none;margin:0;padding:0}.settings-pattern-lines code{word-break:break-all;font:.8125rem ui-monospace,SFMono-Regular,Menlo,monospace}.settings-field textarea{margin-top:.25rem}.override{border:1px solid var(--border);border-radius:12px;margin:0 0 .75rem;padding:.75rem .875rem}.override:focus-within{border-color:var(--accent)}.override--fresh{animation:.6s ease-out override-arrive}@keyframes override-arrive{0%{box-shadow:0 0 0 4px var(--accent-bg)}}@media (prefers-reduced-motion:reduce){.override--fresh{animation:none}}.override-head{display:flex;align-items: center;gap:.5rem}.override-number{display:inline-flex;color:var(--accent);background:var(--accent-bg);border-radius:50%;flex:none;justify-content:center;align-items: center;width:1.5rem;height:1.5rem;font-size:.8125rem;font-weight:700}.override-title{color:var(--text-h);flex:auto;font-weight:600}.override-remove{display:inline-grid;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:50%;flex:none;place-items: center;width:28px;height:28px;padding:0}.override-remove svg{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;width:20px;height:20px}.override-remove:hover{color:var(--warning)}.override-remove:focus-visible{color:var(--warning)}.override-confirm{display:inline-flex;color:var(--text-h);flex-wrap:wrap;align-items: center;gap:.375rem;font-size:.8125rem}.override-confirm-remove{color:var(--bg);background:var(--warning);border-color:var(--warning)}.override-part{border-radius:8px;margin-top:.625rem;padding:.625rem .75rem}.override-part--match{background:color-mix(in srgb,var(--role-blue)7%,transparent);border-left:3px solid var(--role-blue)}.override-part--set{background:color-mix(in srgb,var(--accent)6%,transparent);border-left:3px solid var(--accent)}.override-part-title{letter-spacing:.06em;text-transform:uppercase;color:var(--text);margin:0 0 .375rem;font-size:.6875rem;font-weight:700}.override-part--match .override-rule{width:100%}.override-description{color:var(--text-h);margin:.5rem 0 .25rem;font-size:.875rem}.override-description code,.override-rule{word-break:break-all;font:.8125rem ui-monospace,SFMono-Regular,Menlo,monospace}.override-rule{box-sizing:border-box;color:var(--text-h);background:var(--bg);border:1px solid var(--border);resize:vertical;border-radius:6px;flex:auto;min-width:0;padding:.375rem .5rem}.override-rule:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.override--dragging{background:var(--bg);border-color:var(--accent);box-shadow:0 4px 14px color-mix(in srgb,var(--text-h)14%,transparent)}.override-badge{display:inline-block;white-space:nowrap;color:var(--role-blue);background:color-mix(in srgb,var(--role-blue)14%,transparent);border-radius:999px;padding:0 .5rem;font-size:.75rem;font-weight:400}.override-badge--time{color:var(--role-teal);background:color-mix(in srgb,var(--role-teal)14%,transparent)}.override-problems{color:var(--role-rose);margin:.5rem 0 .25rem;padding-left:1.25rem;font-size:.8125rem}.override-reading{min-height:1.75rem}.override-props{display:grid;grid-template-columns:auto 1fr;align-items: start;gap:.625rem 1rem;font-size:.875rem}.override-props>label,.override-label{color:var(--text-h);padding-top:.25rem}.override-props input[type=time],.override-props select,.override-adder select,.override-adder input{font:.875rem/1.4 var(--sans);color:var(--text-h);background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:.25rem .375rem}.override-off{display:inline-block;padding-top:.25rem;font-style:italic}.override-shape{max-width:18rem}.override-pins{display:flex;flex-wrap:wrap;align-items: center;gap:.375rem}.override-pin .chip{--chip:var(--role-colour,var(--role-slate));cursor:default}.override-adder{display:flex;flex-wrap:wrap;align-items: center;gap:.375rem;margin-top:.5rem}.override-adder .settings-hint{flex-basis:100%;margin:0}@media (max-width:30rem){.override-props{grid-template-columns:1fr}}.pattern-calendar{container-type:inline-size}.pattern-calendar-nav{display:flex;flex-wrap:wrap;align-items: center;gap:.375rem;margin-bottom:.5rem;font-size:.8125rem}.pattern-calendar-step{border:1px solid var(--border);background:var(--bg);color:var(--text-h);font:inherit;cursor:pointer;border-radius:6px;width:1.75rem;height:1.75rem;font-size:1rem;line-height:1}.pattern-calendar-step:hover{border-color:var(--accent);color:var(--accent)}.pattern-calendar-home{color:var(--accent);font:inherit;text-decoration:underline;cursor:pointer;background:0 0;border:0;padding:0;font-size:.75rem}.pattern-calendar-note{margin-left:auto;font-size:.75rem}.pattern-calendar-months{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}@container (width<=36rem){.pattern-calendar-months{grid-template-columns:repeat(2,minmax(0,1fr))}.pattern-calendar-month:nth-child(3){display:none}}@container (width<=20rem){.pattern-calendar-months{grid-template-columns:minmax(0,1fr)}.pattern-calendar-month:nth-child(2){display:none}}.pattern-calendar-month h4{color:var(--text-h);margin:0 0 .25rem;font-size:.75rem}.pattern-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;gap:2px;font-size:.6875rem}.pattern-calendar-dow{padding-bottom:2px;font-size:.625rem}.pattern-calendar-day{position:relative;display:flex;font-variant-numeric:tabular-nums;border-radius:6px;flex-direction:column;justify-content:center;align-items: center;height:1.75rem}.pattern-calendar-day.before{opacity:.35}.pattern-calendar-day.on{background:var(--accent-bg);color:var(--accent);font-weight:700}.pattern-calendar-day.on:hover{background:var(--accent);color:#fff;outline:none}.pattern-calendar-day.on:focus-visible{background:var(--accent);color:#fff;outline:none}.pattern-calendar-day.today{box-shadow:inset 0 0 0 1.5px var(--text-h)}.pattern-calendar-dots{display:flex;gap:2px;height:4px}.pattern-calendar-dots i{background:currentColor;border-radius:50%;width:4px;height:4px}.pattern-calendar-tip{display:none;position:absolute;z-index:5;background:var(--text-h);color:var(--bg);text-align:left;white-space:nowrap;pointer-events:none;border-radius:8px;flex-direction:column;padding:.375rem .5625rem;font-size:.75rem;font-weight:400;line-height:1.5;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.pattern-calendar-tip b{font-weight:600}.pattern-calendar-day:hover .pattern-calendar-tip{display:flex}.pattern-calendar-day:focus-visible .pattern-calendar-tip{display:flex}.rota-defaults-card{margin-top:.25rem}.shift-pattern-text{display:block;box-sizing:border-box;color:var(--text-h);background:var(--bg);border:1px solid var(--border);resize:vertical;border-radius:6px;width:100%;margin-top:.25rem;padding:.5rem;font:14px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace}.shift-pattern-text:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.shift-pattern-lines{list-style:none;margin:0 0 1rem;padding:0;font-size:.875rem}.shift-pattern-lines li{display:flex;color:var(--text-h);gap:.5rem;padding:.1875rem 0}.shift-pattern-lines li:before{content:"✓";color:var(--positive);font-weight:700}.shift-pattern-lines li.problem{color:var(--role-rose)}.shift-pattern-lines li.problem:before{content:"✕";color:var(--role-rose)}.shift-pattern-lines code{word-break:break-all;font:.8125rem ui-monospace,SFMono-Regular,Menlo,monospace}.shift-pattern-lines li.warning{color:var(--text)}.shift-pattern-lines li.warning:before{content:"!";color:var(--text)}.shift-pattern-heading{margin:1rem 0 .5rem;font-size:.875rem}.rota-defaults-shape{max-width:24rem}.define-rota-intro{margin:0 0 1.25rem;font-size:.875rem}.define-rota-form{display:flex;flex-direction:column;gap:1rem}.define-rota-fields{display:flex;flex-wrap:wrap;align-items: flex-end;gap:.75rem}.define-rota-field{display:flex;flex-direction:column;gap:.25rem;font-size:.75rem}.define-rota-field input{font:16px/1.4 var(--sans);color:var(--text-h);background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:.5rem}.define-rota-field input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.define-rota-count{width:5rem}.define-rota-note{color:var(--text);margin:0 0 1rem;font-size:.8125rem}.define-rota-link{color:var(--accent);font:inherit;text-decoration:underline;cursor:pointer;background:0 0;border:0;align-self: center;margin-top:1.125rem;padding:0;font-size:.8125rem}.define-rota-warning{color:#92400e;background:#b453091a;border:1px solid #b453094d;border-radius:6px;margin:0 0 1rem;padding:.75rem 1rem;font-size:.875rem}.define-rota-headline{color:var(--text-h);margin:0 0 .75rem;font-weight:600}.define-rota-month h4{color:var(--text);text-transform:uppercase;letter-spacing:.04em;margin:.75rem 0 .25rem;font-size:.75rem}.define-rota-shifts{list-style:none;font-variant-numeric:tabular-nums;margin:0;padding:0;font-size:.875rem}.define-rota-shift{display:grid;grid-template-columns:9rem auto 1fr;border-bottom:1px solid var(--border);color:var(--text-h);gap:.75rem;padding:.25rem 0}.define-rota-shift.defined{color:var(--text);opacity:.7}.define-rota-shift-note{justify-self:end;font-size:.75rem;font-style:italic}.define-rota-shift-tags{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.25rem}.define-rota-shift-tag{color:var(--accent);background:var(--accent-bg);border-radius:999px;padding:0 .5rem;font-size:.75rem}.define-rota-shift-moved{font-size:.75rem;font-style:italic}.define-rota-shift--clash{background:#b453090f}.define-rota-shift-tag--clash{color:#92400e;background:#b4530924}.define-rota-override-warnings{list-style:none;margin:0 0 .75rem;padding:0;font-size:.8125rem}.define-rota-override-warnings li{color:#92400e;background:#b453091a;border-radius:6px;margin-bottom:.375rem;padding:.375rem .75rem}.define-rota-actions{display:flex}.define-rota-error{color:#b91c1c;background:#b91c1c1a;border:1px solid #b91c1c4d;border-radius:6px;margin:1.25rem 0 0;padding:.75rem 1rem}.define-rota-result{color:var(--text-h);margin:1.5rem 0 .5rem}.define-rota-dates{font-variant-numeric:tabular-nums;margin:0;padding:0 0 0 1.5rem}.define-rota-dates li{padding:.125rem 0}.rule-cards{display:flex;list-style:none;flex-direction:column;gap:.75rem;margin:0;padding:0}.rule-card{--rule-colour:var(--role-slate);position:relative;display:flex;overflow:hidden;border:1px solid var(--border);background:var(--bg);border-radius:12px;flex-direction:column;gap:.625rem;padding:.875rem 1rem .875rem 1.25rem;transition:box-shadow .2s,opacity .25s,transform .25s}.rule-card:before{content:"";position:absolute;background:var(--rule-colour);width:5px;inset:0 auto 0 0}.rule-card:hover,.rule-card:focus-within{box-shadow:0 6px 20px -12px #00000059}.rule-card--compact{gap:.5rem;padding:.75rem .75rem .75rem 1rem}.rule-card-head{display:flex;align-items: center;gap:.5rem}.rule-card-name{color:var(--text-h);flex:auto;margin:0;font-size:1rem}.rule-card--compact .rule-card-name{font-size:.9375rem}.rule-card-description{margin:-.25rem 0 0;font-size:.8125rem}.rule-card-remove{display:inline-grid;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:50%;flex:none;place-items: center;width:28px;height:28px;padding:0}.rule-card-remove svg{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;width:20px;height:20px}.rule-card-remove:hover{color:var(--warning);background:color-mix(in srgb,var(--warning)12%,transparent)}.rule-card-remove:focus-visible{color:var(--warning);background:color-mix(in srgb,var(--warning)12%,transparent)}.rule-card-confirm{position:absolute;display:flex;color:var(--text-h);background:color-mix(in srgb,var(--bg)85%,transparent);backdrop-filter:blur(3px);opacity:0;pointer-events:none;flex-wrap:wrap;justify-content:center;align-items: center;gap:.5rem;padding:.5rem;transition:opacity .2s;font-size:.875rem;inset:0}.rule-card--asking .rule-card-confirm{opacity:1;pointer-events:auto}.button.rule-card-confirm-remove{color:var(--bg);background:var(--warning);border-color:var(--warning)}.rule-card--leaving{opacity:.4;transform:translate(1rem)}@media (prefers-reduced-motion:no-preference){.rule-card--fresh{animation:.5s cubic-bezier(.2,.9,.3,1.2) rule-card-arrive}}@keyframes rule-card-arrive{0%{opacity:0;transform:translateY(-.75rem)scale(.97)}}.typed-number{display:inline-flex;align-items:baseline}.typed-number input{font:inherit;font-variant-numeric:tabular-nums;color:inherit;text-align:center;field-sizing:content;background:0 0;border:none;border-radius:6px;width:auto;min-width:1ch;padding:0 .125rem}.typed-number input:hover:not(:disabled){background:color-mix(in srgb,var(--rule-colour)10%,transparent)}.typed-number input:focus{outline:2px solid var(--rule-colour);background:var(--bg)}.rule-figure{color:var(--rule-colour);font-size:1.625rem;font-weight:700;line-height:1.1}.percent-ring{display:flex;align-items: center;gap:1rem}.percent-ring-dial{cursor:grab;touch-action:none;outline:none;flex:none;width:92px;height:92px}.percent-ring-dial.dragging{cursor:grabbing}.percent-ring-dial[aria-disabled=true]{cursor:default;opacity:.6}.percent-ring-track,.percent-ring-fill{fill:none;stroke-width:10}.percent-ring-track{stroke:var(--border)}.percent-ring-fill{stroke:var(--rule-colour);stroke-linecap:round;transition:stroke-dashoffset .12s}.percent-ring-knob{fill:var(--bg);stroke:var(--rule-colour);stroke-width:3;transition:cx .12s,cy .12s}.percent-ring-dial:focus-visible .percent-ring-fill{filter:drop-shadow(0 0 4px var(--rule-colour))}.percent-ring-figure{color:var(--text-h);font-size:2rem;font-weight:700}.typed-number-suffix{color:var(--rule-colour);font-size:.6em}.rule-card--compact .percent-ring-dial{width:72px;height:72px}.rule-card--compact .percent-ring-figure{font-size:1.5rem}.rule-stepper-row,.growing-slider-figure{display:flex;flex-wrap:wrap;align-items: center;gap:.5rem}.rule-stepper-button{display:inline-grid;font:inherit;color:var(--text-h);background:var(--bg);border:1px solid var(--border);cursor:pointer;user-select:none;touch-action:manipulation;border-radius:50%;place-items: center;width:30px;height:30px;padding:0;font-size:1.125rem;line-height:1}.rule-stepper-button:hover:not(:disabled){border-color:var(--rule-colour);color:var(--rule-colour)}.rule-stepper-button:disabled{cursor:default;opacity:.4}.rule-stepper-label{font-size:.875rem}.gap-strip{display:flex;align-items: center;gap:4px;margin-top:.5rem}.gap-strip>span:not(.gap-strip-span){border-radius:4px;flex:none;width:14px;height:14px}.gap-strip-worked{background:var(--rule-colour)}.gap-strip-free{background:var(--border)}@media (prefers-reduced-motion:no-preference){.gap-strip>span{animation:.2s ease-out chip-enter}}.gap-strip-span{text-align:center;color:var(--text-h);background:repeating-linear-gradient(90deg,var(--border)0 6px,transparent 6px 10px)center/100% 2px no-repeat;flex:auto;max-width:12rem;font-size:.75rem}.growing-slider input[type=range]{accent-color:var(--rule-colour);width:100%;margin:.375rem 0 0}.growing-slider-scale{display:flex;font-variant-numeric:tabular-nums;justify-content:space-between;font-size:.6875rem}.growing-slider-end{display:inline-block;transition:transform .3s,color .3s}.growing-slider-end.grew{color:var(--rule-colour);font-weight:700;transform:scale(1.4)}.scope-switch{display:inline-flex;border:1px solid var(--border);border-radius:999px;flex:none;padding:2px}.scope-switch button{font:inherit;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:999px;padding:.125rem .625rem;transition:background .2s,color .2s;font-size:.75rem}.scope-switch button.on{color:#fff;background:var(--rule-colour)}.scope-switch button:disabled{cursor:default}.rule-option{display:flex;align-items: center;gap:.5rem;font-size:.875rem}.rule-option-label{color:var(--text-h);font-weight:600}.scope-editor{display:flex;flex-direction:column;gap:.5rem}.scope-editor-row{display:flex;flex-wrap:wrap;align-items: center;gap:.375rem}.chip.chip--stale{border-style:dashed}.scope-add{font:inherit;color:var(--text);border:1px dashed var(--border);cursor:pointer;appearance:none;background:0 0;border-radius:999px;width:auto;max-width:10rem;padding:.1875rem .625rem;font-size:.8125rem}.scope-add:hover:not(:disabled){color:var(--rule-colour);border-color:var(--rule-colour)}.scope-add:focus-visible{color:var(--rule-colour);border-color:var(--rule-colour)}.rule-card-coverage{margin:0;font-size:.75rem}.rule-inline-confirm{border:1px solid var(--border);border-radius:8px;padding:.5rem .625rem;font-size:.8125rem}.rule-inline-confirm p{margin:0 0 .375rem}.rule-card-note{font:inherit;color:var(--text-h);background:0 0;border:none;border-bottom:1px dashed #0000;width:100%;padding:.25rem 0;font-size:.8125rem;font-style:italic}.rule-card-note:hover,.rule-card-note:focus{border-bottom-color:var(--border);outline:none}.rule-flag{color:var(--text-h);background:var(--accent-bg);border-radius:6px;align-self: flex-start;margin:0;padding:.125rem .5rem;font-size:.8125rem}.rule-library{display:grid;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));list-style:none;gap:.625rem;margin:0 0 1rem;padding:0}.rule-library-kind{display:flex;font:inherit;text-align:left;color:inherit;background:var(--bg);border:1px solid var(--border);border-top:4px solid var(--rule-colour);cursor:pointer;border-radius:10px;flex-direction:column;gap:.25rem;width:100%;height:100%;padding:.75rem;transition:transform .2s,border-color .2s,box-shadow .2s}.rule-library-kind:hover:not(:disabled){border-color:var(--rule-colour);transform:translateY(-3px);box-shadow:0 8px 18px -12px #0006}.rule-library-kind:focus-visible{border-color:var(--rule-colour);transform:translateY(-3px);box-shadow:0 8px 18px -12px #0006}.rule-library-kind:disabled{cursor:progress}.rule-library-label{color:var(--text-h);font-weight:600}.rule-library-description{font-size:.8125rem}.draft-rules-head{display:flex;justify-content:space-between;align-items: center;gap:.5rem;margin-bottom:.75rem}.draft-rules-head h2{color:var(--text-h);margin:0;font-size:15px}.draft-rules .settings-empty{font-size:.8125rem}@media (prefers-reduced-motion:reduce){.rule-card,.rule-library-kind,.percent-ring-fill,.percent-ring-knob,.growing-slider-end{transition:none}}.loading{display:flex;text-align:center;animation:.2s .3s both loading-appear;flex-direction:column;align-items: center;gap:.75rem;padding:5rem 1rem}.loading p{margin:0}.loading--inline{display:inline-flex;color:var(--text);animation:none;flex-direction:row;gap:.4rem;padding:0;font-size:.8125rem}@keyframes loading-appear{0%{opacity:0}to{opacity:1}}.loading-column{transform-box:fill-box;transform-origin:50% 0;animation:1.2s ease-in-out infinite loading-fill}.loading-column:nth-child(2){animation-delay:-1.05s}.loading-column:nth-child(3){animation-delay:-.9s}.loading-column:nth-child(4){animation-delay:-.75s}@keyframes loading-fill{0%,to{transform:scaleY(.36);opacity:.4}50%{transform:scaleY(1);opacity:1}}@media (prefers-reduced-motion:reduce){.loading-column{animation-name:loading-glow;animation-duration:1.6s}.loading-column:nth-child(2){transform:scaleY(.64)}.loading-column:nth-child(4){transform:scaleY(.36)}}@keyframes loading-glow{0%,to{opacity:.4}50%{opacity:1}}.draft-panel-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items: center;gap:8px;margin-bottom:6px}.draft-panel-title{color:var(--text-h);margin:0;font-size:15px}.draft-panel-state{color:var(--text-h);margin:0;font-size:14px}.draft-panel-when{color:var(--text)}.draft-panel-error{color:var(--accent);margin:8px 0 0;font-size:13px}.draft-panel-controls{display:flex;flex-wrap:wrap;gap:8px}.button.draft-panel-allocate{color:var(--bg);background:var(--accent);border-color:var(--accent)}.draft-panel-moved{border:1px solid var(--accent);border-radius:8px;margin:8px 0 0;padding:8px 10px}.draft-panel-moved-lead{color:var(--text-h);margin:0;font-size:13px}.draft-panel-changes{color:var(--text);margin:6px 0 0;padding-left:18px;font-size:13px;line-height:1.5}.draft-panel-change-date{color:var(--text-h);font-variant-numeric:tabular-nums}.allocate-lead{margin:0 0 .75rem}.allocate-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.25rem}.button.allocate-button{color:var(--bg);background:var(--accent);border-color:var(--accent)}.draft-panel-moved-count{color:var(--text);margin:6px 0 0;font-size:13px;line-height:1.5}.draft-panel .shift-list{margin-top:1.25rem}.draft-panel-loading{margin:1.25rem 0 0;font-size:.875rem}.draft-panel-head,.draft-panel-state,.draft-panel-error,.draft-panel-moved,.draft-panel-loading{max-width:40rem}.allocation-head-row{display:flex;justify-content:space-between;align-items: flex-start;gap:1rem}.allocation-head h2{margin-bottom:.5rem}.in-flight-span{color:var(--text-h);font-variant-numeric:tabular-nums;margin:0 0 .25rem}.in-flight-round,.allocation-loading{margin:0;font-size:.875rem}.allocation-error{color:#b91c1c;background:#b91c1c1a;border:1px solid #b91c1c4d;border-radius:6px;margin:1.5rem 0 0;padding:.75rem 1rem}.button.discard-button{color:#b91c1c;background:#b91c1c1a;border-color:#b91c1c4d;flex:none}.discard-lead{margin:0 0 .75rem}.discard-loss{color:#b91c1c;background:#b91c1c1a;border:1px solid #b91c1c4d;border-radius:6px;margin:0 0 .75rem;padding:.75rem 1rem}.discard-note{margin:0 0 1.25rem;font-size:.875rem}.discard-actions{display:flex;justify-content:flex-end;gap:.75rem}@media (max-width:30rem){.allocation-head-row{flex-wrap:wrap}}.draft-with-rules{display:grid;grid-template-columns:minmax(0,1fr)19rem;align-items: start;gap:1rem;margin-top:1.5rem}.draft-with-rules>.organiser-panel{margin-top:0}.draft-with-rules .draft-rules{position:sticky;top:1rem}@media (max-width:56rem){.draft-with-rules{grid-template-columns:minmax(0,1fr)}.draft-with-rules .draft-rules{position:static}}.history-controls{display:flex;flex-wrap:wrap;align-items: center;gap:.75rem 1.5rem;margin-bottom:.75rem}.history-modes{display:flex;gap:1rem}.history-mode,.history-sort{display:flex;align-items: center;gap:.375rem}.history-scroll{overflow-x:auto;border:1px solid var(--border);border-radius:8px;width:-moz-fit-content;width:fit-content;max-width:100%}.history-grid{border-collapse:collapse;font-size:.875rem}.history-grid th,.history-grid td{border-bottom:1px solid var(--border);text-align:center;white-space:nowrap;padding:.375rem .75rem}.history-grid th[scope=row],.history-grid thead th:first-child{text-align:left}.history-row--inactive th{opacity:.6}.history-band{display:inline-block;border-radius:999px;padding:.0625rem .5rem;font-size:.75rem}.history-band--not_sent{opacity:.5}.history-band--no_response,.history-band--unavailable,.history-band--low{background:color-mix(in srgb,var(--warning)22%,transparent)}.history-band--ok{background:color-mix(in srgb,var(--warning)8%,transparent)}.history-band--good{background:color-mix(in srgb,var(--positive)18%,transparent)}.role-card{position:relative;background:var(--bg);border:1px solid var(--border);box-shadow:inset 4px 0 0 var(--role-colour,var(--role-slate));border-radius:10px;margin:0 0 .5rem;padding:.5rem .625rem .5rem .875rem}.role-card:focus-within{border-color:var(--accent)}.role-card--new{border-style:dashed}.role-card--dragging{border-color:var(--accent);box-shadow:inset 4px 0 0 var(--role-colour,var(--role-slate)),0 4px 14px color-mix(in srgb,var(--text-h)14%,transparent)}.role-card-main{display:flex;align-items: center;gap:.5rem}.role-card-place{font-variant-numeric:tabular-nums;text-align:center;color:var(--text);flex:none;width:1.25rem;font-size:.8125rem;font-weight:700}.role-card-name{font:600 1rem/1.4 var(--sans);color:var(--role-colour,var(--text-h));background:0 0;border:1px solid #0000;border-radius:6px;flex:auto;min-width:0;padding:.25rem .375rem}.role-card-name:hover{border-color:var(--border)}.role-card-name:focus-visible{border-color:var(--accent);outline:none}.role-card-holders{font-variant-numeric:tabular-nums;flex:none;font-size:.8125rem}.role-card-discard{display:inline-grid;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:50%;flex:none;place-items: center;width:28px;height:28px;padding:0}.role-card-discard svg{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;width:20px;height:20px}.role-card .settings-swatches{margin:.375rem 0 0 1.75rem}.role-card .settings-warning,.role-card .settings-error{margin:.5rem 0 0 1.75rem}.unknown-roles{border:1px dashed var(--border);border-radius:14px;margin:.75rem 0 0;padding:.625rem .75rem;font-size:.875rem}.unknown-roles-lede{margin:0 0 .5rem;font-size:.8125rem}.unknown-roles ul{list-style:none;margin:0;padding:0}.unknown-roles li{display:flex;align-items: center;gap:.75rem;padding:.25rem 0}.unknown-roles-name{color:var(--text-h);font-weight:600}.unknown-roles-count{flex:1;font-size:.8125rem}.roles-sync{min-height:1.25rem;margin:.25rem 0 0;font-size:.8125rem}.roles-sync--ok{color:var(--positive)}.roles-sync--error{color:var(--role-rose)}.config-locked{border:1px dashed var(--border);border-radius:14px;margin:1.5rem 0 0;padding:1rem 1.5rem;font-size:.875rem}.settings-warning{color:var(--text-h);background:var(--accent-bg);border-radius:6px;margin:-.5rem 0 .875rem;padding:.5rem .625rem;font-size:.8125rem}.settings-swatches{display:flex;border:none;flex-wrap:wrap;gap:.375rem;margin-inline-start:0;margin-inline-end:0;padding:0}.settings-swatches legend{margin-bottom:.25rem;padding:0}.settings-swatch{display:inline-flex;border:1px solid var(--border);cursor:pointer;border-radius:999px;align-items: center;gap:.375rem;padding:.25rem .5rem .25rem .25rem;font-size:.75rem}.settings-swatch:has(input:checked){border-color:var(--role-colour);color:var(--text-h)}.settings-swatch:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:1px}.settings-swatch input{position:absolute;opacity:0;width:1px;height:1px}.settings-swatches--compact .settings-swatch{padding:.25rem}.settings-swatches--compact .settings-swatch-name,.settings-swatches-legend{position:absolute;overflow:hidden;clip-path:inset(50%);white-space:nowrap;width:1px;height:1px}.settings-swatch-dot{background:var(--role-colour);border-radius:50%;width:.875rem;height:.875rem}.volunteers-head{display:flex;justify-content:space-between;align-items: flex-start;gap:1rem}.volunteers-head h2{margin:0}.volunteers-sync{display:flex;flex-direction:column;flex:none;align-items: flex-end;gap:.25rem}.volunteers-sync-caption{text-align:right;margin:0;font-size:.75rem}.volunteers-sync-caption--ok{color:var(--positive)}.volunteers-sync-caption--error{color:#b91c1c}.volunteers-message{margin:1.5rem 0 0}.volunteers-message--error{color:#b91c1c;background:#b91c1c1a;border:1px solid #b91c1c4d;border-radius:6px;padding:.75rem 1rem}.roster-counts{display:grid;grid-template-columns:repeat(auto-fill,minmax(6.5rem,1fr));gap:.5rem;margin:1rem 0 0}.roster-count{border:1px solid var(--border);border-radius:8px;padding:.375rem .625rem}.roster-count dt{font-size:.75rem}.roster-count dd{font-variant-numeric:tabular-nums;color:var(--text-h);margin:0;font-size:1.25rem;line-height:1.2}.roster-count-note{display:block;color:var(--text);font-size:.6875rem;line-height:1.4}.roster-count--split{grid-column:span 2}.gender-bar{display:flex;overflow:hidden;border-radius:999px;gap:2px;height:.625rem;margin:.375rem 0 .25rem}.gender-bar-part{flex-basis:0}.gender-bar-part--male,.gender-legend-item--male:before{background:var(--role-blue)}.gender-bar-part--female,.gender-legend-item--female:before{background:var(--role-rose)}.gender-bar-part--other,.gender-legend-item--other:before{background:var(--role-slate)}.gender-legend{display:flex;flex-wrap:wrap;gap:.125rem .75rem;font-size:.8125rem;line-height:1.4}.gender-legend-item:before{content:"";display:inline-block;border-radius:2px;width:.5rem;height:.5rem;margin-right:.375rem}.roster-caption{margin:1rem 0 .5rem;font-size:.75rem}.roster{list-style:none;border:1px solid var(--border);border-radius:8px;margin:0;padding:0}.roster-row{display:flex;flex-direction:column;gap:.25rem;padding:.625rem .875rem}.roster-row+.roster-row{border-top:1px solid var(--border)}.roster-row--inactive{opacity:.55}.roster-name{color:var(--text-h)}.roster-tags{display:flex;flex-wrap:wrap;gap:.25rem}.roster-tag{border:1px solid var(--border);white-space:nowrap;border-radius:4px;padding:.0625rem .375rem;font-size:.6875rem}.roster-tag--role{border-color:var(--role-colour,var(--border));color:var(--role-colour,var(--text))}.roster-tag--inactive{text-transform:uppercase;letter-spacing:.04em}@media (min-width:30rem){.roster-row{flex-direction:row;justify-content:space-between;align-items: center;gap:1rem}.roster-tags{justify-content:flex-end}}.organiser-page{max-width:42rem;margin:0 auto;padding:2rem 1rem}.organiser-page--wide{max-width:64rem}.organiser-tabs{display:flex;overflow-x:auto;scrollbar-width:none;gap:.375rem;margin-top:1.5rem}.organiser-tabs::-webkit-scrollbar{display:none}.organiser-tab{color:var(--text);text-decoration:none;white-space:nowrap;border-radius:999px;flex:none;padding:.375rem .875rem;font-size:.875rem}.organiser-tab:hover{color:var(--text-h);background:var(--accent-bg)}.organiser-tab--current,.organiser-tab--current:hover{color:var(--band-text);background:var(--band);font-weight:600}.organiser-panel{background:var(--bg);border:1px solid var(--border);box-shadow:var(--card-shadow);border-radius:14px;margin-top:1.5rem;padding:1.5rem}.organiser-panel h2{margin-top:0}.organiser-heading{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}.organiser-guide-link{color:var(--accent);font-size:.875rem}.availability{max-width:32rem;margin:0 auto;padding:1.5rem 1rem 3rem}.availability h1{margin:0;font-size:1.375rem}.availability-not-counted{background:#b453091a;border-left:3px solid #b45309;border-radius:0 6px 6px 0;margin:.75rem 0 0;padding:.625rem .875rem;font-size:.9375rem}@media (prefers-color-scheme:dark){.availability-not-counted{background:#f0b4451f;border-left-color:#f0b445}}.availability-group{border-left:3px solid var(--accent);background:var(--accent-bg);border-radius:0 6px 6px 0;margin:.75rem 0 0;padding:.625rem .875rem}.availability-intro{margin:1rem 0 0;font-size:.9375rem}.shift-choices{list-style:none;background:var(--bg);border:1px solid var(--border);box-shadow:var(--card-shadow);overflow:hidden;border-radius:14px;margin:1.5rem 0 0;padding:0}.shift-choice+.shift-choice{border-top:1px solid var(--border)}.shift-choice{display:flex;justify-content:space-between;align-items: center;gap:.5rem;padding:.5rem .875rem}.shift-choice-label{display:flex;flex-direction:column;flex:auto;min-width:0}.shift-choice-date{color:var(--text-h)}.shift-choice-time{color:var(--text);font-variant-numeric:tabular-nums;font-size:.75rem}.shift-choice--changed{background:var(--accent-bg);box-shadow:inset 3px 0 0 var(--accent)}.shift-choice-was{color:var(--accent);font-size:.75rem}.shift-answer{display:flex;flex:none;gap:.25rem}.shift-option{display:flex;cursor:pointer;user-select:none;border-radius:6px;align-items: center;gap:.375rem;padding:.5rem .625rem}.shift-option input{accent-color:var(--accent);flex:none;width:1.25rem;height:1.25rem;margin:0}.shift-option:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:1px}.shift-choice--closed{opacity:.55}.shift-choice-tag{border:1px solid var(--border);text-transform:uppercase;letter-spacing:.04em;border-radius:4px;padding:.0625rem .375rem;font-size:.6875rem}.availability-count{margin:.75rem 0 1.25rem;font-size:.8125rem}.availability-count-changed{display:block;color:var(--accent)}.availability-message{margin:1rem 0 0;font-size:.9375rem}.availability-message--ok{color:var(--positive)}.availability-message--error{color:#b91c1c;background:#b91c1c1a;border:1px solid #b91c1c4d;border-radius:6px;padding:.75rem 1rem}.availability-dead-link{border:1px solid var(--border);border-radius:8px;margin:1.5rem 0 0;padding:1rem}.organiser-guide{max-width:44rem;margin:2rem auto 4rem;padding:0 1rem}.organiser-guide-home{display:inline-block}.organiser-guide h3{color:var(--text-h);font-weight:500}.organiser-guide a{color:var(--accent)}.organiser-guide code{background:var(--accent-bg);border-radius:4px;padding:.1em .3em;font-size:.875em}.organiser-guide table{border-collapse:collapse;width:100%;font-size:.9375rem}.organiser-guide th,.organiser-guide td{text-align:left;vertical-align:top;border-bottom:1px solid var(--border);padding:.4rem .6rem}.organiser-guide th{color:var(--text-h);font-weight:500}.site-root{text-align:center;max-width:32rem;margin:4rem auto;padding:0 1rem}.site-root h1{margin:1rem 0 .5rem}
