:root{--app-bg:#f8faf7;--brand:#19765f;--brand-dark:#143d33;--brand-soft:#eef4f1;--brand-tint:#19765f29;color:#17201b;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:#eef2ef;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body{overscroll-behavior-y:contain}html{background:radial-gradient(circle at 0 0,#19765f24,#0000 34rem),linear-gradient(135deg,#eef2ef 0%,#f7f3ea 52%,#edf3f5 100%);min-width:320px}body{min-width:320px;min-height:100vh;margin:0}button{font:inherit;-webkit-tap-highlight-color:transparent}.app-shell{min-height:100vh;color:var(--font-colour);background:radial-gradient(circle at top left, var(--desktop-glow-colour), transparent 34rem), linear-gradient(135deg, var(--desktop-gradient-start-colour) 0%, var(--desktop-gradient-middle-colour) 52%, var(--desktop-gradient-end-colour) 100%);justify-content:center;padding:0;display:flex}.phone-frame{background:var(--app-bg);width:min(100%,480px);min-height:100vh;position:relative;overflow:hidden;box-shadow:0 24px 80px #222b2529}.refresh-indicator{top:calc(10px + env(safe-area-inset-top));z-index:20;background:var(--refresh-colour);color:var(--refresh-font-colour);opacity:0;border-radius:999px;align-items:center;gap:8px;padding:9px 13px;font-size:.82rem;font-weight:850;transition:transform .18s,opacity .18s;display:flex;position:fixed;left:50%;transform:translate(-50%,-72px);box-shadow:0 12px 26px #18a05f3d}.refresh-indicator.is-visible{opacity:1;transform:translate(-50%)}.refresh-indicator svg{animation:.8s linear infinite refresh-spin}@keyframes refresh-spin{to{transform:rotate(360deg)}}.install-banner{left:50%;bottom:calc(88px + env(safe-area-inset-bottom));z-index:18;border:1px solid var(--border-colour);width:min(100% - 28px,452px);color:var(--font-colour);background:#fffffff5;border-radius:16px;grid-template-columns:auto 1fr auto auto;align-items:center;gap:9px;padding:10px;font-size:.84rem;font-weight:800;display:grid;position:fixed;transform:translate(-50%);box-shadow:0 16px 36px #303a3424}.ios-install-modal{color:#17201b;background:#fff;border:0;border-radius:24px;width:min(420px,100vw - 32px);max-height:calc(100dvh - 48px);margin:auto;padding:28px;position:fixed;inset:0;overflow-y:auto;box-shadow:0 24px 80px #0004}.ios-install-modal::backdrop{background:#17201baa}.ios-install-modal>img{object-fit:contain;margin:0 auto 20px;display:block}.ios-install-modal h2{text-align:center;margin-bottom:14px;font-size:1.4rem}.ios-install-modal p,.ios-install-modal li{line-height:1.5}.ios-install-modal ol{margin:18px 0 24px;padding-left:22px}.ios-install-modal li+li{margin-top:10px}.ios-install-modal li svg{vertical-align:text-bottom}.ios-install-modal>button{color:#fff;cursor:pointer;background:#c91419;border:0;border-radius:12px;width:100%;min-height:48px;font-weight:800}.ios-install-modal>button:focus-visible{outline-offset:3px;outline:3px solid #17201b}.install-banner svg{color:var(--brand)}.install-banner button{background:var(--brand-dark);min-height:34px;color:var(--button-font-colour);border:0;border-radius:11px;padding:0 10px;font-size:.78rem;font-weight:850}.install-banner button:last-child{background:var(--neutral-surface-colour);width:34px;color:var(--secondary-font-colour);place-items:center;padding:0;display:grid}.screen{min-height:100vh;padding:max(22px, env(safe-area-inset-top)) 18px 104px}.app-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:22px;display:flex}.app-header--brand-first{flex-direction:row-reverse;justify-content:flex-end;align-items:center;gap:14px}.header-copy{min-width:0}.app-header--brand-first h1{font-size:clamp(1.35rem,6vw,1.85rem);line-height:1.04}.app-header--brand-first .header-subtitle{max-width:260px;margin-top:6px;font-size:.84rem}.eyebrow,.header-subtitle,.card span,.card p,.clock-status,.task-row em,.person-card em{color:var(--muted-font-colour)}.eyebrow{letter-spacing:0;text-transform:uppercase;margin:0 0 7px;font-size:.78rem;font-weight:800}h1,h2,p{margin:0}h1{letter-spacing:0;max-width:310px;font-size:clamp(1.85rem,9vw,2.55rem);line-height:.98}h2{font-size:1rem}.header-subtitle{margin-top:9px;font-size:.93rem;line-height:1.42}.avatar{background:var(--brand-dark);width:52px;height:52px;color:var(--button-font-colour);box-shadow:0 12px 30px var(--brand-tint);border-radius:17px;flex:0 0 52px;place-items:center;font-weight:850;display:grid}.brand-mark{object-fit:contain;background:var(--surface-colour);border-radius:17px;flex:0 0 52px;width:52px;height:52px;padding:7px;box-shadow:0 12px 30px #143d3324}.app-header--brand-first .brand-mark{border-radius:19px;flex-basis:66px;width:66px;height:66px;padding:8px}.brand-mark--small{border-radius:14px;flex-basis:42px;width:42px;height:42px}.brand-mark--large{border-radius:24px;flex-basis:88px;width:88px;height:88px;padding:11px}.config-banner{border-radius:15px;align-items:center;gap:8px;margin:0 0 14px;padding:11px 13px;font-size:.84rem;font-weight:780;display:flex}.config-banner--loading{background:var(--brand-soft);color:var(--strong-accent-font-colour)}.config-banner--error{background:var(--error-background-colour);color:var(--error-font-colour)}.venue-hero{background-position:50%;background-size:cover;border-radius:20px;min-height:116px;margin:-4px 0 14px;box-shadow:0 16px 36px #303a341f}.avatar--small{border-radius:14px;flex-basis:42px;width:42px;height:42px;font-size:.86rem}.card{border:1px solid var(--border-colour);background:var(--card-colour);border-radius:18px;box-shadow:0 12px 34px #303a3414}.shift-card{background:linear-gradient(142deg, var(--shift-gradient-start-colour), var(--shift-gradient-end-colour)), var(--brand-dark);color:var(--shift-font-colour);padding:16px}.shift-topline,.shift-details,.section-header,.upcoming-row,.settings-row,.message-input{align-items:center;display:flex}.shift-topline{color:var(--shift-heading-font-colour);justify-content:space-between;font-size:.85rem}.status-pill{background:var(--status-pill-colour);color:var(--status-pill-font-colour);border-radius:999px;padding:5px 9px;font-size:.76rem;font-weight:800}.shift-time{margin:10px 0;font-size:clamp(1.9rem,10vw,2.65rem);font-weight:900;line-height:.95}.shift-time--day-off{font-size:clamp(1.7rem,8vw,2.25rem)}.shift-details{color:var(--shift-details-font-colour);flex-direction:column;align-items:flex-start;gap:6px;font-size:.9rem}.shift-details span{align-items:center;gap:7px;display:inline-flex}.clock-actions{grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:10px;margin-top:14px;display:grid}.clock-button{border:0;border-radius:14px;width:100%;min-height:48px;font-size:.96rem;font-weight:900;box-shadow:0 10px 20px #0b1a1433}.clock-button--primary{background:var(--clock-button-colour);color:var(--clock-button-font-colour)}.clock-button--secondary{background:var(--clock-secondary-colour);color:var(--clock-secondary-font-colour);border:1px solid var(--clock-secondary-border-colour);box-shadow:none}.clock-button:disabled{cursor:wait;opacity:.72}.clock-status{color:var(--shift-status-font-colour);text-align:center;margin-top:8px;font-size:.8rem}.clock-status span{color:var(--shift-history-font-colour);margin-top:3px;display:block}.shift-card .shift-topline>span:not(.status-pill){color:var(--shift-heading-font-colour)}.shift-card .status-pill{color:var(--status-pill-font-colour)}.shift-card .shift-details span{color:var(--shift-details-font-colour)}.shift-card p.clock-status{color:var(--shift-status-font-colour)}.shift-card .clock-status span{color:var(--shift-history-font-colour)}.clock-error{color:#ffe0d9;background:#fff1ed1f;border-radius:12px;margin-top:9px;padding:9px 10px;font-size:.78rem;line-height:1.35}.metric-grid,.summary-strip,.people-grid,.action-grid{gap:12px;display:grid}.metric-grid,.summary-strip,.people-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:14px}.metric-grid--three{grid-template-columns:repeat(3,minmax(0,1fr))}.metric-card,.summary-strip .card,.availability-card{padding:16px}.metric-card{flex-direction:column;justify-content:space-between;min-height:124px;display:flex}.metric-grid--three .metric-card{min-height:108px;padding:13px 11px}.metric-card svg{color:var(--brand)}.metric-card strong,.summary-strip strong{margin-top:4px;font-size:1.35rem;display:block}.metric-grid--three .metric-card strong{font-size:clamp(1rem,5vw,1.22rem);line-height:1.05}.metric-grid--three .metric-card span{font-size:.76rem;line-height:1.15}.briefing-card,.company-card,.manager-update,.message-card,.profile-card{margin-top:14px;padding:18px}.briefing-card p,.manager-update p,.announcement-card p{margin-top:8px;line-height:1.48}.announcement-title-button{text-align:left;width:100%;color:var(--font-colour);font:inherit;cursor:pointer;align-items:center}.announcement-title-button strong{overflow-wrap:anywhere;min-width:0}.announcement-title-button:focus-visible{outline:2px solid var(--brand);outline-offset:3px}.announcement-body{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.6}.announcement-meta{color:var(--muted-font-colour);font-size:.85rem}.briefing-card .section-header{margin-top:0}.section-header{justify-content:space-between;margin:24px 2px 10px}.section-header button{color:var(--brand);background:0 0;border:0;font-size:.86rem;font-weight:800}.stack,.rota-list{gap:10px;display:grid}.task-row,.announcement-card,.settings-row,.upcoming-row,.rota-day,.manager-update{padding:14px}.task-row,.announcement-card,.settings-row,.manager-update{gap:12px;display:flex}.task-row--unread,.announcement-card--unread{border-color:var(--brand-tint)}.task-row svg,.announcement-card svg,.settings-row svg,.manager-update svg{color:var(--brand);flex:none}.task-row div,.announcement-card div,.settings-row div,.manager-update div{flex:1;min-width:0}.task-row strong,.announcement-card strong,.upcoming-row strong,.person-card strong,.settings-row strong,.profile-card strong,.availability-card strong{display:block}.task-row span,.announcement-card span,.task-row small,.upcoming-row span,.person-card span,.settings-row span,.profile-card span,.availability-card span{margin-top:4px;font-size:.85rem;display:block}.task-row small{color:var(--muted-font-colour);line-height:1.35}.task-row em,.upcoming-row em,.person-card em{font-size:.78rem;font-style:normal;font-weight:800}.upcoming-row em{color:var(--brand);margin-top:8px;display:block}.done-icon,.done-label{color:var(--disabled-font-colour)!important}.message-actions{flex:none;align-content:center;justify-items:end;gap:8px;display:grid}.mini-action{background:var(--brand-dark);min-height:32px;color:var(--button-font-colour);white-space:nowrap;border:0;border-radius:999px;justify-content:center;align-items:center;gap:6px;padding:0 10px;font-size:.73rem;font-weight:850;display:inline-flex}.mini-action:disabled{cursor:wait;opacity:.68}.task-complete-button{border-radius:8px;gap:7.2px;min-height:38.4px;padding:0 12px;font-size:.876rem;font-weight:500}.task-row .task-complete-button svg{color:inherit}.mini-action span,.photo-action span{color:inherit;font-size:inherit;margin:0;display:inline}.mini-action--photo{position:relative;overflow:hidden}.mini-action--photo input{opacity:0;position:absolute;inset:0}.announcement-card .mini-action{background:var(--brand-soft);color:var(--brand);margin-top:10px}.message-error{background:var(--error-background-colour);color:var(--error-font-colour);border-radius:14px;margin:10px 2px 0;padding:10px 12px;font-size:.84rem;font-weight:780;line-height:1.35}.message-error--modal{margin:0}.modal-backdrop{z-index:30;background:var(--modal-backdrop-colour);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);justify-content:center;align-items:flex-end;padding:18px;display:flex;position:fixed;inset:0}.task-modal{border:1px solid var(--border-colour);background:var(--surface-colour);border-radius:24px;gap:16px;width:min(100%,444px);padding:18px;display:grid;box-shadow:0 24px 72px #0b1a1447}.task-modal>*{min-width:0}.modal-header{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.modal-header span,.notes-field span,.evidence-panel>span{color:var(--muted-font-colour);text-transform:uppercase;font-size:.78rem;font-weight:850;display:block}.modal-header strong{color:var(--font-colour);margin-top:4px;font-size:1.08rem;line-height:1.24;display:block}.modal-header button{background:var(--neutral-surface-colour);width:36px;height:36px;color:var(--secondary-font-colour);border:0;border-radius:12px;flex:0 0 36px;font-weight:900}.notes-field{gap:8px;display:grid}.notes-field textarea{resize:vertical;border:1px solid var(--input-border-colour);background:var(--input-colour);width:100%;min-height:112px;color:var(--input-font-colour);font:inherit;border-radius:16px;outline:0;padding:12px;line-height:1.4}.notes-field textarea:focus{border-color:var(--brand);box-shadow:0 0 0 4px var(--brand-tint)}.evidence-panel{border:1px solid var(--border-colour);background:var(--brand-soft);border-radius:16px;gap:9px;padding:13px;display:grid}.evidence-panel p{color:var(--secondary-font-colour);overflow-wrap:anywhere;font-size:.86rem;line-height:1.4}.confirm-copy{color:var(--secondary-font-colour);font-size:.95rem;line-height:1.45}.warning-panel{border:1px solid var(--error-border-colour);background:var(--error-background-colour);color:var(--error-font-colour);border-radius:16px;gap:6px;padding:13px;display:grid}.warning-panel strong{display:block}.warning-panel p{color:var(--error-font-colour);font-size:.9rem;line-height:1.4}.photo-action{background:var(--brand-dark);min-height:46px;color:var(--button-font-colour);border-radius:14px;justify-content:center;align-items:center;gap:8px;font-weight:900;display:inline-flex;position:relative;overflow:hidden}.photo-action input{opacity:0;position:absolute;inset:0}.complete-task-button{background:var(--brand-dark);min-height:54px;color:var(--button-font-colour);box-shadow:0 14px 26px var(--brand-tint);border:0;border-radius:16px;font-weight:900}.complete-task-button:disabled{cursor:wait;opacity:.7}.summary-strip{margin-bottom:4px}.week-tabs{border:1px solid var(--border-colour);background:var(--week-tabs-colour);border-radius:16px;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin:-4px 0 14px;padding:5px;display:grid;box-shadow:0 10px 24px #303a340f}.week-tabs button{min-width:0;min-height:42px;color:var(--muted-font-colour);background:0 0;border:0;border-radius:12px;font-size:.8rem;font-weight:850}.week-tabs button.is-active{background:var(--brand-dark);color:var(--button-font-colour);box-shadow:0 10px 22px var(--brand-tint)}.summary-strip--two{margin-top:14px}.summary-strip--three{grid-template-columns:repeat(3,minmax(0,1fr))}.summary-strip--three .card{padding:14px 12px}.summary-strip--three strong{font-size:1.12rem}.summary-strip .card{min-height:92px}.rota-day{grid-template-columns:54px minmax(0,1fr) auto;align-items:center;gap:12px;display:grid}.date-badge{background:var(--brand-soft);border-radius:16px;place-items:center;width:54px;height:62px;display:grid}.date-badge span{color:var(--brand);margin:0;font-size:.76rem;font-weight:800}.date-badge strong{font-size:1.25rem}.rota-copy strong{font-size:1rem;display:block}.rota-copy span{margin-top:4px;font-size:.86rem;display:block}.rota-copy em{color:var(--muted-font-colour);margin-top:6px;font-size:.78rem;font-style:normal;line-height:1.35;display:block}.rota-hours{justify-items:end;gap:6px;display:grid}.hours-chip{background:var(--hours-chip-colour);color:var(--secondary-font-colour);border-radius:999px;padding:7px 9px;font-size:.78rem;font-weight:850}.actual-chip{background:var(--brand-soft);color:var(--brand);border-radius:999px;padding:6px 8px;font-size:.72rem;font-weight:850}.rota-day--today{border-color:var(--brand-tint);background:var(--rota-today-colour)}.rota-day--off{opacity:.76}.rota-actual-only{background:var(--neutral-surface-colour);box-shadow:none;border-style:dashed;border-radius:10px;grid-template-columns:54px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 12px;display:grid}.rota-actual-only .date-badge{background:0 0;border-radius:8px;height:48px}.rota-actual-only .date-badge span{color:var(--muted-font-colour)}.rota-actual-copy{min-width:0}.rota-actual-copy>span{color:var(--muted-font-colour);font-size:.72rem;line-height:1.4;display:block}.rota-actual-copy>strong{overflow-wrap:anywhere;margin-top:3px;font-size:.85rem;line-height:1.4;display:block}.rota-actual-total{text-align:right}.rota-actual-total strong{font-size:.9rem;display:block}.rota-actual-total span{color:var(--muted-font-colour);margin-top:3px;font-size:.7rem;display:block}.action-grid{grid-template-columns:1fr}.action-button{border:1px solid var(--border-colour);background:var(--surface-colour);min-height:54px;color:var(--font-colour);border-radius:16px;justify-content:flex-start;align-items:center;gap:10px;padding:0 15px;font-weight:820;display:flex;box-shadow:0 10px 24px #303a340f}.action-button svg{color:var(--brand)}.action-button--danger,.action-button--danger svg{color:var(--error-font-colour)}.person-card{min-height:156px;padding:14px}.person-card strong{margin-top:12px}.person-card em{background:var(--brand-soft);color:var(--brand);border-radius:999px;margin-top:12px;padding:6px 8px;display:inline-block}.person-card small{color:var(--muted-font-colour);margin-top:8px;font-size:.78rem;font-weight:760;display:block}.upcoming-row{justify-content:space-between}.upcoming-row time{color:var(--brand);font-weight:850}.upcoming-row--late{color:#963b36;background:#fff1ed;border-color:#c62828;border-left-width:4px}.upcoming-row--late strong,.upcoming-row--late span,.upcoming-row--late em,.upcoming-row--late time{color:#963b36}.empty-card{color:var(--muted-font-colour);padding:16px;font-size:.9rem;line-height:1.45}.message-card{gap:14px;display:grid}.messages{gap:10px;display:grid}.message{background:var(--brand-soft);border-radius:16px;max-width:86%;padding:11px 13px}.message--mine{background:var(--brand-dark);color:var(--button-font-colour);justify-self:end}.message span{color:inherit;opacity:.72;margin-bottom:5px;font-size:.74rem;font-weight:850;display:block}.message p{line-height:1.35}.message-input{border:1px solid var(--border-colour);background:var(--input-colour);width:100%;min-height:48px;color:var(--muted-font-colour);border-radius:15px;justify-content:space-between;padding:0 13px}.profile-card{gap:14px;display:grid}.profile-contact{border-top:1px solid var(--border-colour);padding-top:14px}.availability-card{margin-top:12px}.install-help-card{gap:5px;padding:16px;display:grid}.install-help-card strong:not(:first-child){margin-top:7px}.company-card{gap:14px;display:grid}.company-row{gap:12px;display:flex}.company-row:not(:first-child){border-top:1px solid var(--border-colour);padding-top:14px}.company-row svg{color:var(--brand);flex:none;margin-top:1px}.company-row div{min-width:0}.company-row strong,.company-row span{display:block}.company-row span{color:var(--muted-font-colour);margin-top:4px;font-size:.88rem;line-height:1.35}.terms-card{padding:16px}.terms-card *{max-width:100%}.terms-card p{line-height:1.5}.not-found-screen{padding-bottom:max(22px, env(safe-area-inset-bottom));flex-direction:column;justify-content:center;display:flex}.not-found-icon{background:var(--error-background-colour);width:58px;height:58px;color:var(--error-font-colour);border-radius:19px;place-items:center;margin-bottom:18px;display:grid;box-shadow:0 12px 30px #963b361f}.not-found-icon--brand{background:var(--brand-soft);color:var(--brand);box-shadow:0 12px 30px var(--brand-tint)}.not-found-copy{color:var(--muted-font-colour);margin-top:12px;line-height:1.5}.json-card{background:var(--font-colour);color:var(--input-colour);margin-top:22px;padding:16px}.json-card pre{white-space:pre-wrap;margin:0;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.88rem;line-height:1.5;overflow-x:auto}.login-screen{padding-bottom:max(22px, env(safe-area-inset-bottom));flex-direction:column;justify-content:center;gap:24px;display:flex}.login-hero{justify-items:start;gap:10px;display:grid}.login-brand{align-items:center;gap:14px;display:flex}.login-brand h1{white-space:nowrap;font-size:clamp(1.8rem,8vw,2.8rem)}.login-hero p:not(.eyebrow){max-width:330px;color:var(--muted-font-colour);line-height:1.5}.login-card{padding:18px}.login-form{gap:16px;display:grid}.login-form label,.password-field{gap:8px;display:grid}.login-form label>span,.password-field>label{color:var(--secondary-font-colour);font-size:.86rem;font-weight:850}.input-shell{background:var(--input-colour);border:1px solid #1d342b1a;border-radius:16px;align-items:center;gap:10px;min-height:56px;padding:0 14px;display:flex}.input-shell:focus-within{border-color:var(--brand);box-shadow:0 0 0 4px var(--brand-tint)}.input-shell svg{color:var(--brand);flex:none}.input-shell input{width:100%;min-width:0;color:var(--input-font-colour);font:inherit;background:0 0;border:0;outline:0}.password-peek{cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:0 0;border:0;border-radius:10px;flex:0 0 44px;place-items:center;min-height:44px;padding:0;display:grid}.password-peek:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.login-button{background:var(--brand-dark);min-height:58px;color:var(--button-font-colour);box-shadow:0 14px 26px var(--brand-tint);border:0;border-radius:16px;margin-top:4px;font-weight:900}.company-choice{cursor:pointer;justify-content:center;align-items:center;gap:10px;display:flex}.company-choice img{object-fit:contain;border-radius:6px}.login-button.company-choice span{color:inherit}.login-button:disabled{cursor:wait;opacity:.72}.login-error{background:var(--error-background-colour);color:var(--error-font-colour);border-radius:14px;padding:11px 12px;font-size:.86rem;font-weight:780;line-height:1.35}.bottom-tabs{z-index:5;width:min(100%,480px);padding:10px 12px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--navigation-border-colour);background:var(--navigation-colour);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);grid-template-columns:repeat(5,1fr);gap:4px;display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.tab-button{min-width:0;min-height:62px;color:var(--navigation-font-colour);background:0 0;border:0;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:5px;font-size:.72rem;font-weight:820;display:flex}.tab-button.is-active{background:var(--navigation-active-colour);color:var(--navigation-active-font-colour);box-shadow:0 12px 28px var(--brand-tint)}.tab-icon{display:inline-flex;position:relative}.tab-unread-badge{background:var(--badge-colour);min-width:20px;height:20px;color:var(--badge-font-colour);border-radius:12px;justify-content:center;align-items:center;padding:0 5px;font-size:11px;font-weight:800;line-height:1;display:flex;position:absolute;top:-9px;left:12px}@media (width>=520px){.app-shell{padding:32px 0}.phone-frame{border-radius:34px;min-height:calc(100vh - 64px)}.bottom-tabs{border-radius:0 0 34px 34px;bottom:32px}.screen{min-height:calc(100vh - 64px)}}.chat-screen[hidden]{display:none}.chat-screen .header-copy{min-width:0}.chat-screen h1{overflow-wrap:anywhere}.chat-screen--list,.chat-screen--new,.chat-screen--conversation{top:var(--chat-top,0px);width:min(100%,480px);height:var(--chat-height,calc(100dvh - 83px - env(safe-area-inset-bottom)));background:var(--app-bg);z-index:4;flex-direction:column;min-height:0;padding-bottom:0;display:flex;position:fixed;left:50%;overflow:hidden;transform:translate(-50%)}.chat-screen--conversation>.app-header{flex-shrink:0;margin-bottom:12px}.bottom-tabs--chat-keyboard{visibility:hidden;pointer-events:none}.chat-screen--keyboard{z-index:6}.chat-message-content{flex-direction:column;flex:none;gap:12px;min-width:0;display:flex}.chat-screen--list>.app-header,.chat-screen--new>.app-header{flex-shrink:0;align-items:center}.chat-screen--new h1{font-size:clamp(1.85rem - 4pt,9vw - 4pt,2.55rem - 4pt)}.chat-screen--new>.chat-recipients{overscroll-behavior:contain;flex:1;align-content:start;min-height:0;overflow-y:auto}.chat-screen--new .chat-user-list{max-height:none;overflow:visible}.chat-start-conversation{background:var(--button-colour);min-height:48px;color:var(--button-font-colour);border:0;border-radius:14px;flex-shrink:0;margin:12px 0;padding:12px 16px;font-weight:800}.chat-screen .header-aside{flex-shrink:0}.chat-screen--list>.chat-thread-list{overscroll-behavior:contain;flex:1;align-content:start;min-height:0;padding-bottom:16px;overflow-y:auto}.chat-screen--list>.chat-error,.chat-screen--list>[role=status]{flex-shrink:0;max-height:25%;overflow-y:auto}.chat-screen--conversation .app-header h1{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:1.5rem;display:-webkit-box;overflow:hidden}.chat-screen--conversation>.chat-participants{-webkit-line-clamp:2;-webkit-box-orient:vertical;flex-shrink:0;display:-webkit-box;overflow:hidden}.chat-screen--conversation>.chat-error,.chat-screen--conversation>[role=status]{flex-shrink:0;max-height:20%;overflow-y:auto}.chat-screen--conversation>.chat-history{flex:1;height:auto;min-height:0}.chat-screen--conversation>.chat-compose{border-top:1px solid var(--chat-border-colour);background:var(--app-bg);flex-shrink:0;max-height:55%;margin-top:0;overflow-y:auto}.chat-screen--conversation .chat-compose-row{background:var(--app-bg);position:sticky;bottom:0}.chat-icon-button,.chat-send{width:44px;height:44px;color:var(--strong-accent-font-colour);background:var(--brand-tint);cursor:pointer;border:0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.chat-screen button:disabled{opacity:.5;cursor:default}.chat-new-button{background:var(--button-colour);color:var(--button-font-colour)}.chat-new-button:focus-visible{outline:3px solid var(--brand);outline-offset:3px}.chat-thread-list{touch-action:pan-y;flex-direction:column;gap:8px;display:flex}.chat-thread-list>*{flex:none}.chat-delete-dialog{border:1px solid var(--border-colour);background:var(--surface-colour);width:min(420px,100vw - 32px);max-height:calc(100dvh - 48px);color:var(--font-colour);border-radius:20px;padding:24px;overflow-y:auto}.chat-delete-dialog::backdrop{background:var(--chat-modal-backdrop-colour)}.chat-delete-dialog p{margin:16px 0;line-height:1.5}.chat-delete-name{overflow-wrap:anywhere;font-weight:700}.chat-delete-actions{flex-wrap:wrap;justify-content:flex-end;gap:12px;display:flex}.chat-delete-actions button{border:1px solid var(--border-colour);background:var(--neutral-surface-colour);min-height:44px;color:var(--font-colour);cursor:pointer;border-radius:12px;padding:10px 16px}.chat-report-button{min-width:32px;min-height:32px;color:var(--chat-font-colour);cursor:pointer;background:0 0;border:0;border-radius:8px;justify-content:center;align-items:center;margin-left:4px;display:inline-flex}.chat-report-button:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.chat-report-reason{gap:6px;margin:16px 0;display:grid}.chat-report-reason textarea{box-sizing:border-box;border:1px solid var(--border-colour);background:var(--surface-colour);width:100%;color:var(--font-colour);font:inherit;resize:vertical;border-radius:12px;padding:10px 12px}.chat-delete-actions .chat-delete-confirm{background:var(--error-background-colour);color:var(--error-font-colour);font-weight:700}.chat-delete-actions button:focus-visible{outline:2px solid var(--brand);outline-offset:3px}.chat-thread-swipe{border-radius:16px;position:relative;overflow:hidden}.chat-thread-slide{transition:transform .18s;position:relative}.chat-thread-swipe--open .chat-thread-slide{transform:translate(-88px)}.chat-thread-slide .chat-thread{touch-action:pan-y;padding-right:48px}.chat-thread-options{background:var(--surface-colour);width:40px;min-height:44px;color:var(--secondary-font-colour);cursor:pointer;border:0;border-radius:10px;place-items:center;display:grid;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.chat-thread-delete{background:var(--error-background-colour);width:88px;color:var(--error-font-colour);font:inherit;cursor:pointer;visibility:hidden;border:0;flex-direction:column;justify-content:center;align-items:center;gap:6px;font-weight:700;display:flex;position:absolute;inset:0 0 0 auto}.chat-thread-swipe--open .chat-thread-delete{visibility:visible}.chat-thread-options:focus-visible,.chat-thread-delete:focus-visible,.chat-thread:focus-visible{outline:2px solid var(--brand);outline-offset:-3px}@media (prefers-reduced-motion:reduce){.chat-thread-slide{transition:none}}.chat-thread{border:1px solid var(--chat-border-colour);background:var(--surface-colour);text-align:left;width:100%;min-width:0;color:inherit;font:inherit;border-radius:16px;align-items:center;gap:12px;padding:16px;display:flex}.chat-thread-content{flex:1;min-width:0}.chat-recipient-avatars{flex-shrink:0;align-items:center;width:46px;min-height:46px;display:inline-flex;position:relative}.chat-recipient-avatar{background:var(--brand-tint);width:46px;height:46px;color:var(--strong-accent-font-colour);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1rem;font-weight:800;display:inline-flex;overflow:hidden}.chat-recipient-avatar img{object-fit:cover;width:100%;height:100%}.chat-recipient-avatars--group{width:58px;height:54px}.chat-recipient-avatars--group .chat-recipient-avatar{border:2px solid var(--surface-colour);background:var(--brand-soft);width:36px;height:36px;font-size:.8rem;position:absolute}.chat-recipient-avatars--group .chat-recipient-avatar:first-child{top:0;left:0}.chat-recipient-avatars--group .chat-recipient-avatar:nth-child(2){bottom:0;right:0}.chat-recipient-overflow{background:var(--brand-dark);color:var(--button-font-colour);border-radius:12px;padding:2px 5px;font-size:.65rem;font-weight:700;position:absolute;top:-4px;right:-5px}.chat-thread-heading,.chat-thread-preview{justify-content:space-between;align-items:center;gap:10px;display:flex}.chat-thread-heading{flex-wrap:wrap;gap:4px 10px}.chat-thread-title{overflow-wrap:anywhere;font-weight:400}.chat-thread-title--unread{font-weight:700}.chat-thread-heading time{color:var(--chat-muted-font-colour);flex-shrink:0;font-size:.7rem}.chat-thread-preview{color:var(--chat-font-colour);margin-top:8px;font-size:.88rem}.chat-thread-preview>span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.chat-thread-preview--unread{color:var(--font-colour);font-size:calc(.88rem + 3pt);font-weight:700}.chat-more{border:1px solid var(--chat-control-border-colour);background:var(--surface-colour);min-height:44px;color:var(--strong-accent-font-colour);font:inherit;border-radius:12px;padding:10px 16px}.chat-error{background:var(--error-background-colour);color:var(--error-font-colour);overflow-wrap:anywhere;border-radius:12px;margin-bottom:12px;padding:12px}.chat-error button{border:0;border-radius:8px;margin-left:6px;padding:8px}.chat-recipients{gap:12px;display:grid}.chat-recipients>label{gap:6px;font-weight:700;display:grid}.chat-recipients input:not([type=checkbox]){border:1px solid var(--chat-control-border-colour);background:var(--chat-input-colour);width:100%;font:inherit;color:var(--input-font-colour);border-radius:12px;padding:12px;font-size:16px}.chat-user-list{max-height:30dvh;overflow-y:auto}.chat-user-list label{border-bottom:1px solid var(--chat-border-colour);align-items:center;gap:12px;min-height:48px;display:flex}.chat-user-list input{width:20px;height:20px;accent-color:var(--strong-accent-font-colour)}.chat-participants{color:var(--chat-muted-font-colour);margin:-8px 0 12px;font-size:.8rem}.chat-history{overscroll-behavior:contain;flex-direction:column;gap:12px;height:max(180px,100dvh - 340px);padding:12px 4px;display:flex;overflow-y:auto}.chat-bubble{border:1px solid var(--chat-border-colour);background:var(--chat-received-colour);overflow-wrap:anywhere;max-width:90%;color:var(--chat-received-font-colour);border-radius:16px 16px 16px 3px;flex-shrink:0;align-self:flex-start;padding:12px 14px}.chat-bubble--mine{background:var(--chat-sent-colour);color:var(--chat-sent-font-colour);border-radius:16px 16px 3px;align-self:flex-end}.chat-bubble-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.chat-message-sender{align-items:center;gap:7px;min-width:0;display:inline-flex}.chat-recipient-avatar--sender{width:28px;height:28px;font-size:.7rem}.chat-recipient-avatar--reader{width:23px;height:23px;font-size:.6rem}.chat-bubble-header strong{color:var(--strong-accent-font-colour);min-width:0;font-size:.8rem}.chat-bubble-header time{white-space:nowrap;color:var(--chat-font-colour);flex-shrink:0;margin-left:auto;font-size:.7rem}.chat-body{margin:6px 0;line-height:1.5}.chat-body p{margin:6px 0}.chat-body pre{white-space:pre-wrap}.chat-body a{color:var(--strong-accent-font-colour);text-decoration:underline}.chat-receipts{color:var(--chat-font-colour);margin-top:6px;font-size:.7rem;display:block}.chat-reader-icons{flex-wrap:wrap;justify-content:flex-end;align-items:center;margin-top:4px;display:flex}.chat-reader-button{cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;width:36px;height:36px;padding:0;display:inline-flex}.chat-reader-more{color:var(--strong-accent-font-colour);font-size:.7rem;font-weight:700}.chat-readers-dialog{width:min(360px,100vw - 32px);max-height:min(70dvh,600px);color:var(--font-colour);background:var(--surface-colour);border:0;border-radius:20px;padding:0;box-shadow:0 20px 70px #0004}.chat-readers-dialog::backdrop{background:var(--chat-modal-backdrop-colour)}.chat-readers-panel{padding:20px}.chat-readers-panel header{justify-content:space-between;align-items:center;gap:12px;display:flex}.chat-readers-panel h2{margin:0;font-size:1.2rem}.chat-readers-panel ul{gap:14px;margin:16px 0 0;padding:0;list-style:none;display:grid}.chat-readers-panel li{overflow-wrap:anywhere;align-items:center;gap:12px;font-weight:600;display:flex}.chat-attachment{background:var(--surface-colour);border:1px solid var(--chat-control-border-colour);max-width:100%;min-height:44px;color:var(--strong-accent-font-colour);font:inherit;overflow-wrap:anywhere;border-radius:8px;align-items:center;gap:6px;padding:8px;font-size:.8rem;display:flex}.chat-attachment svg{flex-shrink:0}.chat-image-preview{background:var(--chat-image-background-colour);border-radius:12px;width:min(260px,100%);margin:10px 0;overflow:hidden}.chat-image-preview a{display:block}.chat-image-preview img{object-fit:contain;width:100%;max-height:280px;display:block}.chat-image-placeholder{min-height:110px;color:var(--chat-font-colour);flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:16px;font-size:.85rem;display:flex}.chat-image-placeholder button{border:1px solid var(--chat-control-border-colour);background:var(--surface-colour);min-height:40px;color:var(--strong-accent-font-colour);border-radius:8px;padding:8px}.chat-image-preview--draft{width:100px}.chat-image-preview--draft img{max-height:100px}.chat-link-preview{border:1px solid var(--chat-control-border-colour);background:var(--surface-colour);max-width:280px;color:inherit;border-radius:12px;margin:10px 0;text-decoration:none;display:block;overflow:hidden}.chat-link-preview>img{object-fit:cover;width:100%;max-height:180px;display:block}.chat-link-copy{overflow-wrap:anywhere;gap:6px;padding:12px;display:grid}.chat-link-copy small{color:var(--chat-font-colour);font-size:.7rem}.chat-link-copy strong{font-size:.9rem}.chat-link-copy>span{-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:.8rem;line-height:1.4;display:-webkit-box;overflow:hidden}.chat-compose{background:inherit;margin-top:12px;padding:10px 0}.chat-compose-row{align-items:flex-end;gap:8px;display:flex}.chat-compose textarea{resize:vertical;border:1px solid var(--chat-control-border-colour);background:var(--chat-input-colour);width:100%;min-width:0;min-height:48px;max-height:160px;color:var(--input-font-colour);font:inherit;border-radius:20px;padding:12px;font-size:16px}.chat-send{background:var(--brand-dark);color:var(--button-font-colour)}.chat-file-picker{position:relative;overflow:hidden}.chat-file-picker input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.chat-file-picker:focus-within{outline:2px solid var(--brand-dark);outline-offset:2px}.chat-file{overflow-wrap:anywhere;justify-content:space-between;align-items:center;gap:10px;padding-bottom:8px;font-size:.8rem;display:flex}.chat-file button{background:0 0;border:0;min-width:44px;min-height:44px}.notification-settings{margin-bottom:16px}.settings-entry>button{width:100%}.settings-back{border:1px solid var(--border-colour);background:var(--surface-colour);min-height:44px;color:var(--strong-accent-font-colour);cursor:pointer;border-radius:12px;align-self:start;align-items:center;gap:8px;margin-bottom:16px;padding:8px 12px;display:inline-flex}.settings-screen .notification-settings{padding:18px}.settings-screen .notification-settings p{margin:12px 0 16px}.terms-dialog{border:1px solid var(--border-colour);background:var(--surface-colour);width:min(640px,100vw - 32px);max-height:calc(100dvh - 48px);color:var(--font-colour);border-radius:20px;padding:0;overflow:hidden}.terms-dialog[open]{flex-direction:column;display:flex}.terms-dialog::backdrop{background:var(--modal-backdrop-colour)}.terms-dialog-header{border-bottom:1px solid var(--border-colour);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.terms-dialog-header button{background:var(--neutral-surface-colour);width:44px;height:44px;color:var(--font-colour);cursor:pointer;border:0;border-radius:12px;flex-shrink:0;place-items:center;display:grid}.terms-dialog-content{overscroll-behavior:contain;overflow-wrap:anywhere;min-height:0;padding:20px;overflow:auto}.terms-dialog-content img{max-width:100%;height:auto}.terms-dialog-content a{color:var(--strong-accent-font-colour)}.terms-dialog button:focus-visible,.terms-dialog-content:focus-visible,.settings-back:focus-visible{outline:2px solid var(--brand);outline-offset:-3px}.request-row{text-align:left;border:1px solid var(--border-colour);background:var(--surface-colour);width:100%;min-height:76px;color:var(--font-colour);cursor:pointer;border-radius:16px;grid-template-columns:minmax(0,1fr) auto 18px;align-items:center;gap:12px;padding:16px;display:grid}.request-row:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.pending-requests-header{flex-wrap:wrap;gap:8px}.section-header .new-request-button{border:1px solid var(--border-colour);min-height:44px;color:var(--font-colour);cursor:pointer;background:0 0;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;gap:6px;padding:0 12px;display:inline-flex}.new-request-button svg{color:#19765f}.new-request-button:focus-visible{outline:2px solid var(--brand);outline-offset:3px}.section-header .pending-requests-toggle{min-height:44px;color:inherit;font:inherit;cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:8px;padding:0;display:flex}.pending-requests-toggle:focus-visible{outline:2px solid var(--brand);outline-offset:4px;border-radius:4px}.pending-requests-count{color:#fff;background:#c62828;border-radius:50%;flex-shrink:0;place-items:center;min-width:19.2px;height:19.2px;padding:0 4.8px;font-size:.64rem;font-weight:700;display:inline-grid}.pending-requests-chevron--expanded{transform:rotate(90deg)}#pending-requests-list[hidden]{display:none}.company-details>summary{cursor:pointer;list-style:none}.company-details>summary::-webkit-details-marker{display:none}.company-details>summary:focus-visible{outline:2px solid var(--brand);outline-offset:4px;border-radius:4px}.company-details[open]>summary>svg{transform:rotate(90deg)}.request-summary{overflow-wrap:anywhere;min-width:0}.request-summary strong{font-size:1rem;display:block}.request-summary>span{color:var(--muted-font-colour);margin-top:6px;font-size:.85rem;display:block}.request-status{border:1px solid var(--border-colour);background:var(--neutral-surface-colour);max-width:150px;color:var(--font-colour);overflow-wrap:anywhere;border-radius:10px;padding:7px 10px;font-size:.85rem;font-weight:700;display:inline-block}.request-status--approved{color:var(--success-colour)}.request-status--declined{color:var(--error-font-colour)}.requests-empty{color:var(--muted-font-colour);margin:0}.request-dialog h2{margin:0;font-size:1.15rem}.request-form fieldset{border:0;gap:16px;min-width:0;margin:0;padding:0;display:grid}.request-form label{gap:7px;font-weight:600;display:grid}.request-form input,.request-form select,.request-form textarea{border:1px solid var(--border-colour);background:var(--surface-colour);width:100%;min-width:0;color:var(--font-colour);font:inherit;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;border-radius:10px;padding:12px}@media (prefers-color-scheme:dark){.request-form input,.request-form select,.request-form textarea{--lightningcss-light: ;--lightningcss-dark:initial}}.request-form textarea{resize:vertical}.request-form-hint{color:var(--muted-font-colour);margin:-6px 0 0;font-size:.85rem}.request-form>button{justify-content:center;width:100%;margin-top:20px}.request-form input:focus-visible,.request-form select:focus-visible,.request-form textarea:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.request-details{gap:18px;margin:22px 0 0;display:grid}.request-details dt{color:var(--muted-font-colour);margin-bottom:5px;font-size:.85rem}.request-details dd{white-space:pre-wrap;overflow-wrap:anywhere;margin:0;line-height:1.5}@media (width<=360px){.request-row{grid-template-columns:minmax(0,1fr) 18px;gap:10px}.request-row .request-status{grid-area:2/1;justify-self:start;max-width:100%}.request-row>svg{grid-area:1/2/3}}.notification-prompt{border:1px solid var(--brand-dark);background:var(--brand-tint);border-radius:18px;align-items:flex-start;gap:12px;margin:16px 16px 0;padding:16px;display:flex}.notification-prompt>svg{color:var(--strong-accent-font-colour);flex-shrink:0}.notification-prompt p{margin:8px 0 12px;font-size:.9rem;line-height:1.5}.notification-prompt-actions{flex-wrap:wrap;gap:8px;display:flex}.notification-prompt-actions button{border:1px solid var(--brand-dark);background:var(--brand-dark);min-height:44px;color:var(--button-font-colour);font:inherit;border-radius:12px;padding:10px 14px;font-weight:700}.notification-prompt-actions button:last-child{background:var(--surface-colour);color:var(--strong-accent-font-colour)}.notification-prompt-actions button:disabled{opacity:.55;cursor:wait}.notification-settings p{line-height:1.5}.action-button:disabled{opacity:.55;cursor:wait}.account-error{color:var(--account-error-font-colour);line-height:1.5}@media (width<=360px){.screen{padding-left:14px;padding-right:14px}.metric-grid,.summary-strip,.people-grid{gap:9px}.shift-time{font-size:2.18rem}}.app-shell input::placeholder,.app-shell textarea::placeholder{color:var(--placeholder-font-colour);opacity:1}.chat-file button{color:inherit}.update-overlay{z-index:1000;background:var(--surface-colour,#fff);color:var(--strong-accent-font-colour,#111);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:24px;display:flex;position:fixed;inset:0}.update-overlay svg{animation:1s linear infinite update-spin}@keyframes update-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.update-overlay svg{animation:none}}.push-banner{top:calc(10px + env(safe-area-inset-top));z-index:1100;border:1px solid var(--border-colour);background:var(--surface-colour,#fff);width:min(100vw - 24px,420px);color:var(--strong-accent-font-colour,#111);border-radius:16px;align-items:stretch;animation:.18s ease-out push-banner-in;display:flex;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 12px 36px #0b1a1447}.push-banner-body{min-width:0;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex:auto;align-items:flex-start;gap:10px;padding:12px 8px 12px 14px;display:flex}.push-banner-body svg{color:var(--brand);flex:none;margin-top:2px}.push-banner-body>span{gap:2px;min-width:0;display:grid}.push-banner-body strong,.push-banner-body>span>span{-webkit-line-clamp:2;overflow-wrap:anywhere;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.push-banner-close{width:44px;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:0 16px 16px 0;flex:none}@keyframes push-banner-in{0%{opacity:0;transform:translate(-50%,-12px)}to{opacity:1;transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.push-banner{animation:none}}.login-logo{margin:0;line-height:0}.login-logo img{width:min(280px,74vw);height:auto;display:block}
