:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:#dce9f5;background:#0e1621;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 90% 0,#192d41 0,transparent 52%),#0e1621;min-height:100vh}a{color:#8dd9fa;text-decoration:none}a:hover{text-decoration:underline}button,input,select{font:inherit}button{cursor:pointer;border-radius:9px;padding:10px 15px;border:0}.primary{background:#28a7df;color:#061b29;font-weight:800;width:100%;margin-top:21px}.primary:hover{background:#61c6ef}.outline{background:#1c3040;color:#c8e7f6;border:1px solid #416078;font-weight:700}.outline:hover{background:#294258}input,select{width:100%;padding:12px 13px;border:1px solid #395166;border-radius:9px;color:#e9f5ff;background:#172737}input:focus,select:focus{outline:2px solid #51baf0;outline-offset:1px}label{display:block;margin:16px 0 7px;color:#b0c7d9;font-size:12px;font-weight:750}h1{font-size:clamp(29px,4vw,39px);letter-spacing:-.05em;margin:15px 0 9px;color:#f5faff}h2{font-size:17px;margin:0 0 17px;color:#eef7ff}p{line-height:1.65;color:#9fb1c6}.wordmark{display:flex;align-items:center;gap:11px;font-size:20px;font-weight:820;color:#e9f6ff;white-space:nowrap}.wordmark small{font-size:12px;color:#87a2b7;font-weight:500}.mark{background:linear-gradient(140deg,#287fa8,#143b56);border:1px solid #3b7896;display:inline-grid;place-items:center;width:41px;height:41px;border-radius:11px;color:#c4f0ff;font-size:15px}.eyebrow{text-transform:uppercase;color:#74bddb;font-size:11px;letter-spacing:.17em;font-weight:850}.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:25px}.auth-card{border:1px solid #344b5d;border-radius:21px;padding:clamp(25px,5vw,45px);background:#172434;width:min(455px,100%);box-shadow:0 25px 100px #0006}.auth-card .eyebrow{margin-top:45px}.auth-card form{margin-top:28px}.muted-footer{font-size:12px;color:#879fb3;margin-top:25px}.message{margin-top:12px;line-height:1.5;color:#fac0ac;font-size:13px;min-height:19px}.message.good{color:#a6efcc}.header{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 30px;background:#111d2a;border-bottom:1px solid #334153}.header nav{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.header nav span{color:#a0b7ca;font-size:13px}.workspace{width:min(1460px,100%);margin:auto;padding:35px 30px 60px}.lead{margin:0 0 27px}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin:0 0 21px}.metric,.panel{background:#192838;border:1px solid #30475a;border-radius:14px}.metric{padding:22px}.metric span{font-size:11px;letter-spacing:.05em;color:#9bb4c7;text-transform:uppercase;font-weight:800}.metric strong{display:block;font-size:26px;color:#f6faff;margin-top:9px}.columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.panel{padding:22px;margin-bottom:18px}.small{font-size:12px}.alert{border-left:3px solid #61c3e7;padding:12px;background:#1d3547;border-radius:3px 9px 9px 3px;margin:10px 0}.alert.high{border-left-color:#ffb48b}.alert.medium{border-left-color:#f7d778}.alert h3{margin:0 0 4px;color:#eff8ff;font-size:13px}.alert p{margin:0;font-size:12px}.check{padding:11px 0;border-bottom:1px solid #2f4252;color:#c6d9e7;font-size:13px}.check:last-child{border:0}.badge{display:inline-block;border-radius:99px;padding:4px 8px;font-size:11px;background:#31495a;color:#bce1f8;font-weight:780}.badge.good{background:#1f493d;color:#9bffd4}.scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;min-width:580px;text-align:left}th,td{padding:12px 10px;border-bottom:1px solid #314354;font-size:12px}th{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:#9eb7ca}td{color:#cbdde9}th.num,td.num{text-align:right;font-variant-numeric:tabular-nums}.person{border-bottom:1px solid #314354;padding:12px 0}.person strong{font-size:13px}.person p{margin:5px 0;font-size:12px}.person button{margin:6px 7px 0 0;font-size:11px}.credential{margin-top:14px;padding:14px;background:#204034;border:1px solid #42785d;border-radius:9px;color:#e3ffe8;font-size:12px;overflow-wrap:anywhere}.events{max-height:260px;overflow:auto;color:#99afc0;font-size:12px}.event{border-bottom:1px solid #304457;padding:9px 0}strong{color:#f1f8ff}@media(max-width:850px){.columns{grid-template-columns:1fr}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.header{padding:13px 14px}.workspace{padding:25px 14px}.wordmark{font-size:17px}.header nav{gap:6px}}@media(max-width:450px){.metrics{grid-template-columns:1fr 1fr}.metric{padding:15px}.metric strong{font-size:20px}.wordmark small{display:none}}

#eligible label{display:block} #eligible input,#rules{width:auto} #shifts article,#notices article{margin-bottom:1rem} #notices p,#shifts p{white-space:pre-wrap} #notices button{margin-right:.5rem} #shift-form textarea{width:100%;font:inherit;padding:.7rem;border:1px solid #bcc7be;border-radius:6px} #message:not(:empty){padding:1rem;background:#eef2e8;border-radius:8px}

body[data-page="rota"] [hidden]{display:none!important}

body[data-page="rota"] #message:not(:empty){background:#213746;color:#e7f0f5} body[data-page="rota"] textarea{background:#172331;color:#e7f0f5}

body[data-page="rota"] .rota-grid{width:100%;table-layout:fixed;min-width:820px} body[data-page="rota"] .rota-grid th,body[data-page="rota"] .rota-grid td{text-align:center;vertical-align:top;padding:14px 8px;border:1px solid #344657} body[data-page="rota"] .rota-grid th:first-child{width:130px;text-align:left;position:sticky;left:0;background:#1b2939;z-index:1} body[data-page="rota"] .rota-grid small{display:block;margin-top:4px;font-size:12px} body[data-page="rota"] .rota-cell{margin-bottom:8px} body[data-page="rota"] .rota-cell strong{white-space:nowrap} body[data-page="rota"] .rota-cell button{padding:3px 9px;margin-top:5px;font-size:12px}

body[data-page="rota"] .holiday-cell{background:#24473c;color:#ceeedc}body[data-page="rota"] .hours-table{min-width:650px;width:100%;text-align:center}body[data-page="rota"] .hours-table th,body[data-page="rota"] .hours-table td{text-align:center}body[data-page="rota"] .hours-table strong{display:block;font-size:24px}body[data-page="rota"] .hours-table small{display:block;margin-top:6px;font-size:11px}#holidays td{vertical-align:top}#holidays button{margin:0 6px 6px 0;padding:6px 12px}#holidays small{display:block}

/* Manager workspace */
body[data-page="operations"] .workspace{max-width:1180px}
.workspace-nav{display:flex;gap:10px;flex-wrap:wrap;margin:24px 0 28px;padding-bottom:18px;border-bottom:1px solid #30475a}
.workspace-nav button,.workspace-nav a{display:inline-block;background:#192838;border:1px solid #30475a;color:#cbdde9;padding:13px 19px;border-radius:10px;font-weight:700;font-size:14px;text-decoration:none}
.workspace-nav button[aria-pressed="true"],.entry-choices button[aria-pressed="true"]{background:#287fa8;border-color:#61c3e7;color:#fff}
body[data-page="operations"] .metrics{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.entry-choices{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.entry-choices button{padding:14px 20px}
.manager-form{max-width:760px;border-top:1px solid #30475a;padding-top:18px}.manager-form:not([hidden]){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}.manager-form>h3,.manager-form>button,.manager-form>p,.manager-form>div{grid-column:1/-1}.manager-form .primary{width:auto;justify-self:start;min-width:160px}.manager-form h3{font-size:20px;margin:4px 0 8px}
#records-view summary{font-size:16px;font-weight:750;color:#eef7ff;cursor:pointer;padding:3px 0}#records-view details[open] summary{margin-bottom:20px}
[hidden]{display:none!important}
@media(max-width:600px){.manager-form:not([hidden]){grid-template-columns:1fr}.workspace-nav{display:grid;grid-template-columns:1fr 1fr;gap:8px}.workspace-nav button,.workspace-nav a{padding:13px 9px;text-align:center}.entry-choices{display:grid;grid-template-columns:1fr 1fr}.entry-choices button{padding:13px 8px}.header nav span{display:none}}

.shift-update{padding:15px 0;border-bottom:1px solid #30475a}.shift-update:last-child{border-bottom:0}.shift-update p{white-space:pre-line;font-size:13px;margin:8px 0}.shift-update small{display:block;margin-bottom:10px;color:#9fb1c6}.shift-update button{font-size:12px}

body[data-page="rota"] .rota-grid th,body[data-page="rota"] .rota-grid td{padding:9px 6px;vertical-align:middle}body[data-page="rota"] .rota-grid small{font-size:10px;margin-top:2px}body[data-page="rota"] .rota-grid .shift-time{display:block;width:100%;padding:7px 3px;margin:2px 0;background:#244438;color:#dff7ea;border:1px solid #3c6552;border-radius:6px;font-size:12px;font-weight:600;white-space:nowrap}body[data-page="rota"] .rota-grid .shift-time:hover{background:#325a48}body[data-page="rota"] .rota-grid .draft-time{border-style:dashed;background:#283d50}body[data-page="rota"] .rota-grid .cancelled-time{text-decoration:line-through;background:#40343b}.rota-heading{display:flex;align-items:center;justify-content:space-between;gap:18px}.rota-heading h2{margin:0}#former-staff-label{font-size:12px;margin:12px 0}#shift-details{width:min(480px,90vw);border:1px solid #456251;border-radius:14px;background:#172b25;color:#edf7f0;padding:24px}#shift-details::backdrop{background:#0009}#shift-details .rota-cell{margin-top:22px}#shift-details .rota-cell small{display:block;margin:10px 0;color:#b6cbbf}#shift-details .rota-cell button{display:block;width:100%;margin-top:12px}

body[data-page="rota"] .rota-grid .add-shift-cell{display:block;width:100%;min-height:32px;background:transparent;border:1px dashed #3b5148;border-radius:6px;color:#8db9a3;padding:4px;font-size:18px}body[data-page="rota"] .rota-grid .add-shift-cell:hover{background:#254437;color:#fff;border-color:#78a78e}

#shift-entry-dialog{width:min(480px,calc(100vw - 32px));box-sizing:border-box;max-height:90vh;overflow:auto;border:1px solid #3c6352;border-radius:16px;background:#172b25;color:#edf7f0;padding:24px;box-shadow:0 20px 80px #0006}#shift-entry-dialog::backdrop{background:#07100c99;backdrop-filter:blur(3px)}#shift-entry-dialog #editor{margin-top:20px}#shift-entry-dialog h2{font-size:19px;line-height:1.4;margin-bottom:20px}#shift-entry-dialog input,#shift-entry-dialog select{background:#10231c;border-color:#436252}#shift-entry-dialog .columns{gap:14px}#shift-entry-dialog #add{width:100%;margin-top:12px}#shift-entry-dialog .small{font-size:11px;letter-spacing:1.4px;color:#9eb7a9}

#shift-details .delete-shift{background:#4b252b;color:#ffdce0;border:1px solid #8d4b55}#shift-details form label{display:block;margin-top:14px}#shift-details form p{font-size:13px;line-height:1.5;color:#b6cbbf}

body[data-page="rota"] .rota-grid .confirmed-time{background:#35624c;border-color:#6ca487;color:#f0fff5;box-shadow:inset 0 0 0 1px #6ca48722}body[data-page="rota"] .rota-grid .confirmed-time:hover{background:#41765b}

body[data-page="rota"] .rota-grid .shift-time.kitchen-in{background:#24563b;border-color:#4f986a;color:#e4ffed}body[data-page="rota"] .rota-grid .shift-time.kitchen-in:hover{background:#306d4c}body[data-page="rota"] .rota-grid .shift-time.kitchen-off{background:#672b35;border-color:#ba596a;color:#ffe8ec}body[data-page="rota"] .rota-grid .shift-time.kitchen-off:hover{background:#803745}

body[data-page="rota"] .rota-grid .shift-time.kitchen-in.confirmed-time{background:#35624c;border-color:#6ca487;color:#f0fff5;box-shadow:inset 0 0 0 1px #6ca48722}body[data-page="rota"] .rota-grid .shift-time.kitchen-in.confirmed-time:hover{background:#41765b}

body[data-page="rota"] .rota-grid .shift-time.absent-time{background:#51383f;border-color:#92616b;color:#f3d7dc;text-decoration:none}body[data-page="rota"] .rota-grid .shift-time.absent-time:hover{background:#62434c}

/* Personal rota emphasis keeps shift status colours intact. */
body[data-page="rota"] .rota-grid .my-rota-row>td{background:#203a43;border-top:2px solid #76b9bb;border-bottom:2px solid #76b9bb}
body[data-page="rota"] .rota-grid .my-rota-row>th:first-child{background:#294850;border-left:4px solid #8ed1ce;border-top:2px solid #76b9bb;border-bottom:2px solid #76b9bb;color:#edffff}
body[data-page="rota"] .rota-grid .my-rota-row>td.holiday-cell{background:#2c5146}
body[data-page="rota"] .rota-grid .my-rota-row .shift-time{outline:2px solid #a8d4d1;outline-offset:1px;font-weight:750}
body[data-page="rota"] .my-rota-badge{display:inline-block;margin-top:6px;padding:3px 6px;border-radius:5px;background:#3d676d;color:#e7ffff;font-size:10px;font-weight:700;white-space:nowrap}

.alloy-mark{display:block;flex:0 0 auto;width:41px;height:41px}.wordmark{letter-spacing:-.035em}

/* The sign-in artwork blends into a quiet, full-width Alloy backdrop. */
body[data-page="login"]{background:radial-gradient(ellipse at 30% 40%,#10304188,transparent 52%),radial-gradient(ellipse at 73% 12%,#182b4099,transparent 48%),#08131f;position:relative;isolation:isolate}
body[data-page="login"]::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 1000' fill='none'%3E%3Cpath d='M-120 850L435-180L1040 940M94 445L270 445M481 134L626 134L785 431L903 431M160 716L347 370L540 716Z' stroke='%2329576a' stroke-opacity='.32' stroke-width='1'/%3E%3Cpath d='M355-20L430 120L451 159' stroke='%234fadb6' stroke-opacity='.20'/%3E%3C/svg%3E") left center/cover no-repeat}
.alloy-login{grid-template-columns:minmax(0,650px) minmax(0,470px);justify-content:center;gap:clamp(24px,4vw,70px);padding:48px 36px;min-height:100svh}
.alloy-welcome-art{width:100%;position:relative;display:grid;place-items:center}
.alloy-welcome-art img{display:block;width:120%;max-width:none;height:auto;max-height:calc(100svh - 96px);object-fit:contain;mix-blend-mode:screen;mask-image:radial-gradient(ellipse 57% 55% at 50% 53%,#000 48%,transparent 90%);-webkit-mask-image:radial-gradient(ellipse 57% 55% at 50% 53%,#000 48%,transparent 90%)}
.alloy-login .auth-card{width:100%;padding:38px 40px 32px;background:linear-gradient(145deg,#142335ed,#101e2de8);border:1px solid #35576c;border-radius:18px;box-shadow:0 24px 80px #0003}
.alloy-login .auth-card .eyebrow{margin-top:36px;color:#89cedd;letter-spacing:.19em;font-size:10px}
.alloy-login h1{font-size:clamp(32px,3.2vw,42px);margin-top:16px;letter-spacing:-.045em}
.alloy-login .auth-card>p{margin:8px 0 0;font-size:16px;color:#aebfcd}
.alloy-login .auth-card form{margin-top:26px}
.alloy-login label{font-size:12px;margin-top:18px}
.alloy-login input{background:#172a39b8;border-color:#3b596e;min-height:46px}
.alloy-login .primary{background:#27a9d7;min-height:46px;margin-top:22px}
.alloy-login .primary:hover{background:#4cbbdf}
.alloy-login .muted-footer{font-size:11px;line-height:1.7;margin-top:20px;color:#9bb0c1}
.alloy-login .message:empty{display:none}
@media(max-width:760px){.alloy-login{grid-template-columns:minmax(0,455px);gap:0;padding:28px 18px}.alloy-welcome-art{display:none}.alloy-login .auth-card{padding:30px 26px}.alloy-login .auth-card .eyebrow{margin-top:30px}.alloy-login h1{font-size:34px}body[data-page="login"]::before{background-position:32% center;background-size:auto 100%}}
@media(max-width:360px){.alloy-login{padding:18px 12px}.alloy-login .auth-card{padding:26px 21px}.alloy-login .auth-card .eyebrow{font-size:9px}}
.install-workspace{max-width:940px}.install-workspace ol{padding-left:22px;color:#c5d9e6;line-height:1.8}.install-workspace li{padding:5px 0}.install-workspace .panel{margin-bottom:20px}.install-link{font-size:12px;font-weight:750;display:inline-block;margin-left:12px}.muted-footer .install-link{display:block;margin:12px 0 0}.install-workspace .outline{display:inline-block;text-decoration:none;margin:6px 8px 6px 0}.install-workspace .columns{gap:26px}

body[data-page="rota"] .shift-update{padding:16px 0;border-bottom:1px solid #344b5d}body[data-page="rota"] .shift-update p{white-space:pre-line;margin:8px 0}body[data-page="rota"] .shift-update small{display:block;color:#aabfce;margin-bottom:10px}body[data-page="rota"] #shift-updates details{margin-top:18px}body[data-page="rota"] .emergency-card{border:1px solid #3f6169;border-radius:12px;padding:18px;margin-top:16px;background:#172d38}body[data-page="rota"] .emergency-card h3{font-size:16px;margin:0 0 12px}body[data-page="rota"] .emergency-card p{white-space:pre-line}body[data-page="rota"] .emergency-card button{margin:4px 8px 4px 0}#emergency-dialog{width:min(600px,calc(100vw - 28px));max-height:90svh;overflow:auto;border:1px solid #416078;border-radius:14px;background:#172737;color:#dce9f5;padding:24px}#emergency-dialog::backdrop{background:#0009}#emergency-dialog textarea{width:100%;padding:12px;border:1px solid #395166;border-radius:9px;color:#e9f5ff;background:#172737;font:inherit}#emergency-people label{display:flex;align-items:center;gap:10px;font-size:14px;margin:12px 0}#emergency-people input{width:auto}#emergency-dialog .rota-heading{flex-wrap:wrap}#emergency-dialog fieldset{border:1px solid #395166;border-radius:9px;margin-top:18px}#emergency-dialog #post-emergency{margin-top:14px}@media(max-width:600px){body[data-page="rota"] #emergency-panel .rota-heading{align-items:flex-start;flex-direction:column;gap:12px}#emergency-dialog{padding:18px}#emergency-dialog .columns{display:block}}

.auth-card .remember-device{display:flex;align-items:flex-start;gap:10px;margin:21px 0 0;font-size:13px;line-height:1.5;cursor:pointer}.auth-card .remember-device input{width:18px;height:18px;min-height:18px;flex:0 0 18px;padding:0;margin:1px 0 0;accent-color:#69bfca}.auth-card .remember-help{font-size:12px;line-height:1.55;margin:8px 0 0 28px;color:#aebfcd}
