@font-face{font-family:Roboto;src:url('../assets/Roboto-Regular.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Roboto;src:url('../assets/Roboto-Medium.woff2') format('woff2');font-weight:500 600;font-display:swap}
@font-face{font-family:Roboto;src:url('../assets/Roboto-Bold.woff2') format('woff2');font-weight:700 900;font-display:swap}
:root{font-family:Roboto,Arial,sans-serif;color:#1a2430;background:#e6eeea;font-synthesis:weight;--brand:#137f76;--muted:#5c6e78;--ink:#1a2430;--carry:#7d4fb0;--blue:#17528f;--amber:#b07000;--canvas:#f4f8f5}
*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:var(--brand);border:1px solid #81918d;border-radius:24px;background:transparent;min-height:40px;padding:9px 18px;font-weight:600}button:disabled{cursor:default;opacity:.45}button:focus-visible,a:focus-visible{outline:3px solid #17528f;outline-offset:3px}button:hover:not(:disabled){filter:brightness(.96)}a{color:var(--brand)}h1,h2,h3,p{margin:0}h2{font-size:16px;font-weight:800}h3{font-size:14px;font-weight:800}p{line-height:1.4}input,select,textarea{max-width:100%;min-width:0;color:var(--ink);background:white;border:1px solid #7c8884;border-radius:4px;padding:14px 12px;outline:none;font-size:16px}input:focus,textarea:focus,select:focus{border:2px solid var(--brand);padding:13px 11px}textarea{resize:vertical}input[type=checkbox]{accent-color:var(--brand);width:22px;height:22px;flex-shrink:0}#app{width:100%;max-width:430px;min-height:100dvh;margin:auto;background:var(--canvas)}.login{min-height:100dvh;background:white;display:flex;align-items:center;justify-content:center;padding:32px}.login-form{width:100%;max-width:360px;display:flex;flex-direction:column;gap:12px}.login-form>img{align-self:center;object-fit:contain}.login-form h1{text-align:center;color:var(--brand);font-size:28px;font-weight:800;margin-bottom:24px}.login-form .primary{min-height:36px;padding:8px}.recovery{text-align:center;font-size:14px;text-decoration:none;padding:4px}.field{display:flex;flex-direction:column;position:relative;gap:5px;margin:6px 0}.field>span{font-size:12px;font-weight:500;color:var(--muted);background:white;position:absolute;z-index:1;top:-7px;left:12px;padding:0 4px}.primary{background:var(--brand);color:white;border-color:var(--brand)}.danger{color:#b3261e}.text-button{border:0;background:transparent;padding:8px 12px}.stack{display:flex;flex-direction:column;gap:14px}.row{display:flex;align-items:center;gap:10px}.row>h2:first-child,.row>.grow,.row>.stack{flex:1;min-width:0}.grow{flex:1;min-width:0}.muted{color:var(--muted)}.small{font-size:12px}.strong{font-weight:800}.error{color:#b3261e;padding:12px 0}.empty{text-align:center;padding:72px 24px;color:var(--muted)}.card{margin:5px 12px;padding:16px;background:white;border-radius:20px;box-shadow:0 5px 12px #0000000d}.card>*+*{margin-top:10px}.card>.row>*{margin-top:0}.pill{display:inline-flex;padding:7px 12px;border-radius:999px;font-size:12px;line-height:1.2;font-weight:800;white-space:nowrap;background:#137f7621;color:var(--brand)}.pills{display:flex;flex-wrap:wrap;gap:6px}.pill.amber{color:var(--amber);background:#fff0cc}.pill.muted{color:var(--muted);background:#5c6e7821}.pill.carry{color:var(--carry);background:#f2eafb}.pill.blue{color:var(--blue);background:#17528f21}.app-header{height:64px;display:flex;align-items:center;gap:0;padding:0 6px 0 16px;background:var(--canvas);position:sticky;top:0;z-index:5}.app-header h1{font-size:22px;font-weight:800;line-height:1.1;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.icon-button{padding:10px;min-width:44px;min-height:44px;border:0;position:relative;display:inline-flex;align-items:center;justify-content:center;color:var(--ink)}.icon{width:24px;height:24px;display:block;flex-shrink:0}.badge{position:absolute;top:4px;right:3px;background:#d32f2f;color:white;font-size:11px;font-weight:800;min-width:18px;line-height:18px;border-radius:10px;padding:0 4px}.page{padding:8px 0 18px;min-height:calc(100dvh - 144px);overflow-x:hidden}.shell{padding-bottom:calc(80px + env(safe-area-inset-bottom))}.bottom-nav{height:calc(80px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:430px;background:#eef3ee;display:flex;z-index:10}.bottom-nav a{display:flex;flex:1;min-width:0;align-items:center;justify-content:center;flex-direction:column;gap:4px;text-decoration:none;color:var(--ink);font-size:12px;font-weight:500}.bottom-nav .nav-icon{border-radius:20px;width:56px;height:32px;display:flex;align-items:center;justify-content:center}.bottom-nav a[aria-current=page]{font-weight:700}.bottom-nav a[aria-current=page] .nav-icon{background:#137f7626;color:var(--brand)}.hero-time{font-size:30px;font-weight:900;margin-top:4px}.eyebrow{font-size:12px;font-weight:800;letter-spacing:1px}.date-badge{border-radius:14px;background:#137f761f;text-align:center;padding:10px;font-size:12px;font-weight:800;min-width:48px}.date-badge strong{display:block;font-size:18px}.big-action{width:100%;min-height:64px;border:0;border-radius:16px;background:var(--brand);color:white;text-align:left;font-size:18px;font-weight:800;display:flex;align-items:center;gap:10px;padding:16px}.big-action.amber{background:var(--amber)}.big-action.muted{background:var(--muted)}.metric{border-radius:12px;background:#edf5f0;padding:12px;flex:1}.metric p{font-size:12px;font-weight:800;color:var(--muted)}.metric strong{font-size:18px;display:block;margin-top:2px}.week-nav{display:flex;align-items:center;gap:6px;padding:4px 12px 12px}.week-nav .week-label{flex:1;text-align:center;font-weight:800}.shift-row{display:flex;align-items:center;gap:12px}.shift-row .date-badge{background:#edf5f0;align-self:flex-start}.shift-main{flex:1;min-width:0}.shift-heading{font-size:15px;font-weight:800}.shift-range{font-size:17px;font-weight:800;color:var(--brand);margin-top:4px}.shift-row button{padding:4px;min-width:32px}.after-pay-period{background:#e5f3ef;border:2px solid #9d77c3}.future{background:#f3f6f5}.called{background:#fff8e1}.carry-card{background:#f2eafb}.time-equation{background:#fbfcfc;border:1px solid #dceae5;border-radius:10px;padding:4px 8px;margin-top:10px}.equation-row{display:grid;grid-template-columns:58px 1fr auto;gap:6px;padding:5px 0;align-items:center;font-size:11px;font-weight:700}.equation-row+.equation-row{border-top:1px solid #5c6e781f}.equation-row b{color:var(--brand)}.equation-row:first-child b{color:var(--blue)}.equation-row:last-child b{color:var(--carry)}.sheet{width:min(100%,430px);max-width:430px;max-height:calc(100dvh - 20px);border:0;border-radius:24px 24px 0 0;margin:auto auto 0;padding:0;background:var(--canvas);color:var(--ink)}.sheet::backdrop{background:#0005}.sheet-header{position:sticky;top:0;background:var(--canvas);display:grid;grid-template-columns:72px 1fr 72px;align-items:center;min-height:60px;z-index:2;padding:4px}.sheet-header h2{text-align:center;font-size:18px}.sheet-content{padding:12px 20px calc(24px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:14px}.sheet-content>.card{margin:0}.setup{min-height:100dvh;padding:24px;background:white}.policy{display:flex;gap:12px;align-items:flex-start;padding:14px 0}.policy p{font-size:13px;color:var(--muted)}.signature{width:100%;height:160px;background:white;border:1px solid #9ea8a4;border-radius:12px;touch-action:none}.setup-key{overflow-wrap:anywhere}.action-row{width:100%;text-align:left;border:0;padding:0;border-radius:14px;display:flex;gap:12px;align-items:center;color:var(--ink)}.action-icon{height:44px;width:44px;border-radius:14px;background:#137f761f;display:grid;place-items:center;color:var(--brand);flex-shrink:0}.action-row h2{font-size:16px}.action-row p{font-size:12px;color:var(--muted);margin-top:3px}.chat-avatar{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:#e0ece8;color:var(--brand);flex-shrink:0}.conversation-row{padding:14px 16px;display:flex;align-items:center;gap:12px;border-bottom:1px solid #e4e9e6;text-decoration:none;color:var(--ink)}.conversation-row .preview{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:13px;color:var(--muted);margin-top:4px}.chat-bubble{max-width:88%;border-radius:16px;padding:12px;background:white;margin:10px 12px;font-size:14px;white-space:pre-wrap;overflow-wrap:anywhere}.chat-bubble.mine{margin-left:auto;background:#dceee5}.chat-composer{position:sticky;bottom:0;padding:12px;background:var(--canvas);display:flex;gap:8px}.chat-composer textarea{flex:1;min-width:0;resize:none;border-radius:20px}.team-person{padding:12px 0;border-top:1px solid #e8eeea}.team-person:first-child{border-top:0}.team-person .range{color:var(--brand);font-weight:800;white-space:nowrap}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;text-align:center}.calendar>div{padding:9px 0;font-size:12px}.calendar .marked{background:#d8eee5;border-radius:10px}.toolbar{display:flex;gap:8px;flex-wrap:wrap}.section-title{padding:12px 16px;color:var(--muted);font-size:12px;font-weight:800}.list{display:flex;flex-direction:column;gap:10px}.skeleton{background:linear-gradient(90deg,#edf3ef,#f8faf9,#edf3ef);border-radius:16px;min-height:90px;margin:12px}.spinner{width:28px;height:28px;border:3px solid #dcece4;border-top-color:var(--brand);border-radius:50%;animation:spin .8s linear infinite;margin:36px auto}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation:none}}@media(max-width:350px){.app-header h1{font-size:18px}.hero-time{font-size:26px}.card{padding:14px;margin-left:8px;margin-right:8px}.bottom-nav .nav-icon{width:44px}.bottom-nav a{font-size:11px}}
/* Mobile parity with the shipped Staff Web theme and shared widgets. */
@font-face{font-family:StaffIcons;src:url('../assets/StaffIcons.woff2') format('woff2');font-display:block}
:root{font-size:14px;line-height:1.43;font-synthesis:none}.icon{font-family:StaffIcons;font-size:24px;font-weight:400;line-height:1;width:24px;height:24px;letter-spacing:normal;white-space:nowrap;display:inline-block;-webkit-font-smoothing:antialiased}.app-header{height:56px;padding-right:0}.app-header h1{font-weight:700}.app-header .icon-button{min-width:40px;width:40px;padding:8px}.page{min-height:calc(100dvh - 136px)}.page>div{display:flow-root}.card{display:flow-root;margin-bottom:10px}.card:last-child{margin-bottom:5px}.today-hero>.row{align-items:flex-start}.today-hero{min-height:96px}.hero-time{line-height:1.43}.date-badge{min-width:44px;line-height:1.43}.metric{border-radius:14px}.metric strong{line-height:1.43}.big-action{min-height:48px;border-radius:14px;font-size:14px;padding:14px;gap:8px;line-height:20px}.big-action .icon{font-size:20px;width:20px;height:20px}.big-action.complete{background:#4f7d73;opacity:1}.big-action.carry{background:var(--carry);opacity:1}.big-action:disabled{opacity:1}.big-action.muted{background:#5c6e7873}.off-sick{width:100%;height:32px;min-height:32px;padding:0 14px;border-color:#b3261e66;font-size:14px;display:flex;align-items:center;justify-content:center;gap:8px}.off-sick .icon{font-size:18px;width:18px;height:18px}.bottom-nav{background:#eef3ee}.bottom-nav a{gap:4px;font-weight:500;letter-spacing:.4px}.bottom-nav a[aria-current=page]{font-weight:500}.bottom-nav .nav-icon{width:64px}.week-nav{height:56px;padding:0 12px;gap:0;margin-bottom:5px}.week-nav .icon-button{width:40px;min-width:40px}.week-nav .week-label{font-size:16px}.week-label .pill{margin-top:2px}.week-card{margin-top:5px}.shift-row{gap:12px;align-items:stretch}.shift-row .date-badge{width:58px;min-width:58px;align-self:stretch;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:8px 3px;color:var(--brand);background:#137f761a}.shift-row .date-badge strong{font-size:14px;color:var(--ink)}.shift-row .date-badge.is-today{background:var(--brand);color:white}.shift-row .date-badge.is-today strong{color:white}.day-role{font-size:10px;line-height:1.05;margin-top:2px;max-width:52px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.shift-trailing{width:32px;flex-shrink:0;align-self:center;text-align:center;color:var(--brand);margin-left:-4px}.shift-trailing .icon{font-size:22px;width:22px;height:22px}.week-card.dimmed{opacity:.55}.week-card.dimmed .shift-trailing{color:var(--muted)}.week-card[role=button]{cursor:pointer}.week-card[role=button]:focus-visible{outline:3px solid var(--blue);outline-offset:1px}.time-equation{padding:6px 10px;border-radius:14px;margin-top:0}.time-equation.compact{padding:4px 8px;border-radius:10px}.equation-row{display:flex;gap:0;padding:6px 0;font-size:12px;line-height:1.43}.equation-row> b{width:70px;flex-shrink:0;margin-right:6px}.equation-time{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.equation-row .equals{width:16px;text-align:center;color:var(--muted);flex-shrink:0}.equation-row>strong{width:62px;text-align:right;flex-shrink:0;color:var(--brand);white-space:nowrap}.equation-row:first-child>strong{color:var(--blue)}.equation-row:last-child>strong{color:var(--carry)}.equation-row.pending>strong,.equation-row.pending>.equation-time{color:var(--amber)}.compact .equation-row{font-size:11px;padding:4px 0}.compact .equation-row>b{width:58px}.compact .equation-row>strong{width:50px}.frozen-note{text-align:right;font-size:10px;color:var(--muted);margin-top:3px;font-weight:700}.full-screen{height:100dvh;max-height:100dvh;border-radius:0;background:var(--canvas)}.full-screen .sheet-header{height:56px;min-height:56px}.full-screen .sheet-content{padding:8px 0 18px;display:block}.location-status{border-radius:12px;background:#5c6e781f;padding:12px;font-weight:700}.pill.amber{color:#ff9800;background:#ff980021}
@media(max-width:350px){.card{padding:16px;margin-left:12px;margin-right:12px}.bottom-nav .nav-icon{width:48px}.compact .equation-row>b{width:46px;margin-right:3px}.compact .equation-row>strong{width:38px}.compact .equation-row{font-size:10px}.shift-row{gap:8px}.shift-row .date-badge{min-width:48px;width:48px}.shift-trailing{width:22px}}
.password-toggle{position:absolute;right:4px;top:6px;border:0;min-height:36px;padding:6px 10px;font-size:12px}.field:has(.password-toggle) input{padding-right:60px}.startup-retry{text-align:center;opacity:0;animation:retry-show 0s 8s forwards}@keyframes retry-show{to{opacity:1}}
.account-card{background:#137f7614}.account-card .stack{gap:2px}.account-card .action-icon{width:48px;height:48px;border-radius:16px;background:#137f7624}.me-page .action-row{padding:2px 0;--action-color:var(--brand)}.me-page .action-row h2{font-size:14px;font-weight:900}.me-page .action-row p{font-size:14px;font-weight:500;margin-top:2px}.me-page .action-row>.icon{color:var(--action-color)}.me-page .action-icon{color:var(--action-color);background:color-mix(in srgb,var(--action-color) 12%,transparent)}.me-page .action-password,.me-page .action-swap{--action-color:var(--blue)}.me-page .action-sick{--action-color:var(--amber)}.me-page .action-note{--action-color:var(--carry)}.me-page .action-support{--action-color:var(--muted)}.me-page .action-icon .icon{font-size:22px;width:22px;height:22px}.inline-icon{display:inline-flex;align-items:center;gap:8px}.inline-icon .icon{font-size:18px;width:18px;height:18px}.big-action.blue{background:var(--blue)}.big-action.ink{background:var(--ink)}.team-day{border:1px solid #137f7673}.team-day h2{font-size:17px}.team-day .stack{gap:0}
[hidden]{display:none!important}

/* Explicit start confirmation and a quiet, keyboard-accessible sheet header. */
.clock-rota{background:#137f7614;color:var(--brand);border:1px solid #137f7640}.clock-rota:disabled{opacity:.45}.sheet-back{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:44px;border-radius:10px;padding:8px}.back-chevron{font-size:28px;line-height:20px;font-weight:400}.sheet-header h2:focus{outline:none}

.clock-different{background:#b3261e;color:white}.sheet-content>.clock-ill{min-height:44px;height:auto}

.split-rota{display:flex;flex-direction:column;gap:10px}.split-rota>div+div,.split-edit+.split-edit{border-top:1px solid #81918d66;padding-top:14px}.split-time{font-size:24px;font-weight:800}.split-edit{display:flex;flex-direction:column;gap:12px}.equation-time{white-space:normal}

.clock-review-event{margin:12px 0;white-space:pre-line;overflow-wrap:anywhere}.clock-review-event p{margin:4px 0}

.equation-period{display:block}

/* Mobile manager Team workspace: only the staff region scrolls. */
.shell:has(.team-workspace){height:100dvh;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.shell:has(.team-workspace)>.app-header{flex-shrink:0}
.shell:has(.team-workspace)>.page{flex:1;min-height:0;padding:0;overflow:hidden}
.shell:has(.team-workspace)>.bottom-nav{position:static;flex:0 0 72px;min-height:72px;padding:8px 0;background:#eef3ee}
.page>.team-workspace{height:100%;display:flex;flex-direction:column;gap:0;padding:8px 16px 14px;min-height:0;overflow:hidden}
.team-title{display:flex;justify-content:space-between;align-items:center;flex:none;margin-bottom:6px}
.team-title h1{font-size:27px;line-height:1.15;display:flex;align-items:center;gap:8px;letter-spacing:-.4px}
.team-preview{font-size:10px;font-weight:500;letter-spacing:0;color:var(--muted);border:1px solid #c9d8d0;padding:2px 5px;border-radius:4px}
.team-scope>span{display:none}.team-scope select{border:0;background:transparent;padding:2px 22px 2px 0;font-size:16px;max-width:260px;color:var(--ink)}
.team-title .icon-button{border:0}
.team-week-nav{display:flex;align-items:center;justify-content:space-between;flex:none;height:42px;margin:0 -8px 8px}
.team-week-nav strong{font-size:17px}.team-week-nav .icon-button{border:0;padding:10px}
.team-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;flex:none}
.team-date{border:0;border-radius:9px;background:#edf3f0;padding:8px 0;display:flex;flex-direction:column;align-items:center;gap:3px;min-height:74px;color:var(--ink);font-weight:400}
.team-date>span:first-child{font-size:12px}.team-date strong{font-size:20px;line-height:1.2}.team-date.selected{background:var(--brand);color:#fff}
.team-mark{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;flex-shrink:0;vertical-align:middle}
.team-mark.todo{border:2px solid #e99b00}.team-mark.ready{background:#07825a;color:white}.team-mark .icon{font-size:14px;width:14px;height:14px}
.team-progress{flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:12px 0;border-bottom:1px solid #d5dfdd;margin-bottom:10px;font-size:12px;color:var(--muted)}
.team-progress>div{display:flex;gap:7px;align-items:center}.team-progress>div>.team-mark:nth-of-type(2){margin-left:6px}.team-progress .draft{color:#786024}.team-progress .published{color:#07825a;font-weight:700}
.team-day-heading{display:flex;align-items:center;justify-content:space-between;gap:6px;flex:none}
.team-day-heading h2{font-size:16px;line-height:1.4;letter-spacing:-.35px;white-space:nowrap}
.team-day-status{display:flex;gap:4px;align-items:center;font-size:11px;white-space:nowrap}.todo{color:#936000}.ready{color:#07825a}
.team-event{text-align:left;border:0;border-radius:0;color:var(--ink);font-size:16px;font-weight:700;padding:10px 0;min-height:40px;flex:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%}
.team-staff-panel{position:relative;flex:1;min-height:90px;background:white;border:1px solid #d5dfdd;border-radius:6px;overflow:hidden}
.team-staff-scroll{height:100%;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none;padding:0 10px;outline-offset:-3px;-webkit-overflow-scrolling:touch}
.team-staff-scroll::-webkit-scrollbar{display:none}
.team-scroll-thumb{position:absolute;right:2px;top:0;width:4px;background:#82928e;border-radius:6px;opacity:0;transition:opacity .25s;pointer-events:none}
.is-scrolling .team-scroll-thumb{opacity:.75}
.team-role-group summary{display:flex;align-items:center;gap:10px;list-style:none;min-height:48px;padding:10px 0;cursor:pointer;border-bottom:1px solid #e2e7e5;font-size:16px}
.team-role-group summary::-webkit-details-marker{display:none}.team-role-group summary strong{flex:1}.team-role-count{color:var(--muted);font-size:14px}.team-role-group[open] summary>.icon{transform:rotate(90deg)}
.team-role-group:last-child:not([open]) summary{border-bottom:0}.team-role-group summary>.icon{font-size:20px;color:var(--muted);width:20px;height:20px}
.team-worker{width:100%;display:flex;align-items:center;gap:8px;border:0;border-bottom:1px solid #e2e7e5;border-radius:0;padding:12px 0;min-height:52px;color:var(--ink);text-align:left;font-weight:400}
.team-worker strong{font-size:15px;flex:1;min-width:0;overflow-wrap:anywhere}.team-worker-times{display:flex;flex-direction:column;font-size:14px;white-space:nowrap}.team-worker>.icon{color:var(--muted);font-size:22px;width:22px;height:22px}.team-worker:disabled{opacity:1}
.team-empty{display:flex;flex-direction:column;gap:8px;padding:24px 8px;color:var(--muted)}.team-empty p{font-size:13px}
.team-totals{flex:none;font-size:13px;color:var(--muted);padding:8px 0}
.team-day-actions{display:flex;gap:7px;flex:none}.team-day-actions button{display:flex;align-items:center;justify-content:center;gap:6px;min-height:44px;flex:1;border-radius:8px;padding:9px 5px;font-size:15px}
.team-add{border:1px solid var(--brand)}.team-confirm{background:#ffb41d;color:#15202b;border:1px solid #e99b00}.team-confirm.complete{background:#dceddf;border-color:#b5d5bd;color:#07825a}.team-confirm:disabled{opacity:1}
.team-confirm-note{flex:none;text-align:center;font-size:11px;color:var(--muted);padding:7px 0 10px}
.team-publish-area{flex:none;padding-top:10px;border-top:1px solid #d5dfdd}.team-publish-scope{text-align:center;font-size:12px;color:var(--muted);margin-bottom:8px}
.team-publish{display:flex;justify-content:center;align-items:center;gap:8px;width:100%;min-height:44px;border:1px solid var(--brand);border-radius:8px;font-size:16px}
.team-review-row{padding:12px 0;border-bottom:1px solid #d5dfdd;display:flex;justify-content:space-between;gap:12px}.team-review-row p{font-size:12px}
.team-workspace>.error{position:absolute;left:16px;right:16px;bottom:155px;z-index:5;background:#fff1ee;border:1px solid #b3261e;border-radius:8px;padding:12px}
@media(max-width:360px){.page>.team-workspace{padding-left:10px;padding-right:10px}.team-day-heading h2{font-size:14px}.team-day-status{font-size:10px;gap:3px}.team-day-status .team-mark{width:13px;height:13px}.team-days{gap:4px}.team-worker strong{font-size:14px}.team-worker-times{font-size:12px}.team-title h1{font-size:24px}}
@media(max-height:750px){.page>.team-workspace{padding-top:2px;padding-bottom:8px}.team-title{margin-bottom:0}.team-title h1{font-size:23px}.team-week-nav{height:38px;margin-bottom:4px}.team-date{min-height:60px;padding:5px 0;gap:1px}.team-progress{padding:7px 0;gap:3px;margin-bottom:6px}.team-event{padding:6px 0;min-height:32px}.team-confirm-note{padding:4px 0}.team-publish-area{padding-top:6px}.team-publish-scope{margin-bottom:4px}.team-totals{padding:5px 0}.shell:has(.team-workspace)>.bottom-nav{flex-basis:62px;min-height:62px}}
@media(prefers-reduced-motion:reduce){.team-scroll-thumb{transition:none}}
.shell:has(.team-workspace){padding-bottom:0}
.shell:has(.team-workspace)>.bottom-nav{left:auto;transform:none}
@media(min-height:751px){.page>.team-workspace{padding-top:0}.team-title{margin-bottom:0}.team-week-nav{height:38px}.team-date{padding-top:5px;padding-bottom:5px;min-height:72px}.team-progress{padding-top:9px;padding-bottom:9px}}

.team-scope-label{border:0;border-radius:0;padding:3px 0;min-height:28px;font-size:15px;font-weight:400;color:var(--ink);max-width:295px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left}

.team-tick{display:inline-flex;align-items:center;justify-content:center}.team-tick::before{content:"";display:block;width:.35em;height:.65em;border:solid currentColor;border-width:0 .12em .12em 0;transform:translateY(-.08em) rotate(45deg)}

/* Monthly Review: labelled totals and separate incoming/current carry-over. */
.review-page{padding:4px 0 12px}.review-title{font-size:27px;line-height:1.2;margin:4px 18px 12px;letter-spacing:-.6px}
.review-page .week-nav{margin-bottom:16px}.review-page .card{margin:0 14px 12px;padding:16px;border-radius:18px;box-shadow:none}
.review-summary{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}.review-summary-item{min-width:0}.review-summary-item+.review-summary-item{border-left:1px solid #d9e2df;padding-left:8px}
.review-summary-item>p{font-size:12px;line-height:1.3;color:var(--muted);margin-bottom:8px;min-height:32px}.review-summary .pill{font-size:12px;padding:6px 8px;white-space:normal}
.review-control-state{font-size:12px;color:var(--muted);padding-top:12px}.review-controls>button{margin-top:10px}
.review-person-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:14px}.review-person-heading h2{font-size:19px}.review-person-heading p{font-size:13px;margin-top:3px}
.review-view{display:flex;align-items:center;gap:2px;border:0;padding:0;min-height:44px;font-size:12px;font-weight:500;white-space:nowrap}.review-view .icon{width:18px;font-size:18px}
.review-metrics{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}.review-metrics>div{background:#f1f4f5;border-radius:10px;padding:10px 12px}.review-metrics p{font-size:12px;color:var(--muted);margin-bottom:3px}.review-metrics strong{font-size:23px;line-height:1.1}
.review-page .pill.amber{color:#945000;background:#fff0d8}.review-page .pills .pill{font-size:12px}.review-balances{border-top:1px solid #d9e2df;margin-top:16px;padding-top:10px;display:flex;flex-direction:column;gap:8px}
.review-balance{display:grid;grid-template-columns:44% 56%;align-items:center;background:#f5edfc;color:#74469d;border-radius:10px;padding:10px 12px;font-size:12px;gap:0}.review-balance.pending{background:#fff7e9;color:#914800}.review-balance>div+div{border-left:1px solid #d9d5d0;padding-left:10px}.review-balance strong{display:block;font-size:22px;margin-top:3px}.review-balance .pill{font-size:11px;padding:5px 8px;white-space:normal}.review-balance>div>p+p,.review-balance .pill+p{color:var(--muted);font-size:11px;margin-top:4px}
.review-carry-button{display:flex;align-items:center;justify-content:center;gap:6px;border-radius:10px;width:100%;margin-top:14px;min-height:44px;font-size:14px;border-color:var(--brand)}
.review-day{padding:14px 0;border-bottom:1px solid #d9e2df}.review-day .row{justify-content:space-between;font-size:14px;margin-top:8px}
@media(max-width:350px){.review-title{font-size:25px}.review-page .card{margin-left:10px;margin-right:10px;padding:12px}.review-summary{gap:5px}.review-summary-item+.review-summary-item{padding-left:5px}.review-summary-item>p{font-size:11px}.review-summary .pill{font-size:11px;padding:5px}.review-balance{padding:10px 8px}.review-balance .pill{padding:5px}.review-view{font-size:11px}}
.review-page .week-nav{height:46px;margin-bottom:12px}.review-title{margin-bottom:6px}
.review-person-heading{margin-bottom:8px}.review-person-heading h2{font-size:18px}.review-person>.review-metrics{margin-top:0;margin-bottom:8px}.review-metrics>div{padding:8px 10px}.review-metrics strong{font-size:21px}
.review-person>.pills{margin-top:0}.review-balances{margin-top:12px;padding-top:8px}.review-balance{padding-top:8px;padding-bottom:8px}.review-balance strong{font-size:20px}

/* Today actions stay separate from the hours summary in every clock state. */
.card>.today-hours-summary{margin-top:14px}.today-hours-summary>.time-equation{margin-top:0}
.month-summary .month-heading{border:0;padding:0;display:flex;justify-content:space-between;align-items:center;width:100%;text-align:left;color:var(--ink);border-radius:0}.month-heading p{font-size:14px;margin-top:3px}.month-heading>.icon{color:var(--muted)}
.month-entry-status{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#e6f3ef;border-radius:12px;padding:12px;color:var(--brand)}.month-entry-status>strong{font-size:23px;white-space:nowrap}.month-entry-status .small{margin-top:3px}
.month-review-status{display:flex;align-items:center;gap:8px;background:#fff3df;color:#945000;padding:10px 12px;border-radius:12px;font-size:13px;font-weight:600}
.month-balances{display:grid;grid-template-columns:1fr 1fr;gap:8px}.month-balance{position:relative;border:0;border-radius:12px;padding:12px;text-align:left;font-size:13px;font-weight:400;min-width:0}.month-balance.current,.month-balance.approved{background:#f2eafb;color:#75479f}.month-balance.pending{background:#fff3df;color:#945000}.month-balance strong{display:block;font-size:27px;margin:4px 0}.month-balance>p:last-of-type{color:var(--muted);font-size:12px}.month-balance>.icon{position:absolute;right:8px;top:10px;font-size:16px;width:16px;height:16px}.month-balance.current>p:first-child{padding-right:16px}
.month-open{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:46px;border-radius:10px;font-size:15px}.month-print{border-color:var(--brand)}
.month-print-table{width:100%;border-collapse:collapse;font-size:11px;table-layout:fixed}.month-print-table th,.month-print-table td{border-bottom:1px solid #d5dfdd;text-align:left;padding:8px 4px;overflow-wrap:anywhere;vertical-align:top}.month-print-table th:first-child{width:17%}.month-print-table small{display:block;color:var(--muted);margin-top:4px}
.month-full-sheet{height:100dvh;max-height:100dvh;border-radius:0;margin:0 auto;top:0;bottom:0}.month-full-sheet .sheet-header{padding-top:calc(4px + env(safe-area-inset-top))}
@media print{
 body:has(.month-print-sheet)>*:not(.month-print-sheet){display:none!important}
 .month-print-sheet{display:block!important;position:static!important;width:100%!important;max-width:none!important;height:auto!important;max-height:none!important;margin:0!important;padding:0!important;overflow:visible!important;border:0!important;border-radius:0!important;background:white!important;color:black!important}
 .month-print-sheet::backdrop{display:none}.month-print-sheet .sheet-header,.month-print-sheet .month-print-action{display:none!important}.month-print-sheet .sheet-content{display:block;overflow:visible;max-height:none;padding:0}.month-print-table{font-size:10pt}.month-print-table tr{break-inside:avoid}.month-print-table thead{display:table-header-group}
}

.time-equation .equation-row.equation-actual b,.time-equation .equation-row.equation-actual strong{color:var(--brand)}
.month-day-action{display:inline-flex;align-items:center;justify-content:center;gap:5px;white-space:nowrap;padding:8px 4px;font-size:13px}.month-day-action .icon{width:18px;height:18px;font-size:18px;line-height:18px}
.month-interactive-sheet[open]{display:flex;flex-direction:column;overflow:hidden}.month-interactive-sheet>.sheet-header{flex-shrink:0}.month-interactive-sheet>.sheet-content{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain}.month-interactive-sheet>.month-today{flex-shrink:0;margin:0 20px 10px;background:#fff3d6;border:1px solid #ecd397;box-shadow:none;padding:12px}.month-today h2{font-size:14px}.month-today .time-equation{background:#fffaf0}.month-today>.row{gap:4px}
.month-attention-button{width:100%;border:0;text-align:left}.month-attention-button p{flex:1}.month-attention-button>.icon:last-child{width:18px;height:18px;font-size:18px}

.carry-total{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid #dce5e0;padding:12px 0 2px}.carry-total>strong{font-size:23px;color:var(--carry);white-space:nowrap}.carry-total .small{margin-top:3px}

/* Attendance actions and recorded day history. */
.day-actions{display:grid;gap:10px;margin-top:12px}
.day-actions>button,.day-action{width:100%;min-height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;gap:10px;padding:13px 16px}
.day-action{background:var(--surface,#fff);color:var(--brand,#147d77);border:1px solid #b5d4cf;font-weight:650}
.day-action .icon{font-size:22px;line-height:1}
.day-history{list-style:none;padding:0;margin:8px 0}
.day-history li{border-left:3px solid #b5d4cf;padding:0 0 22px 16px;margin-left:4px;overflow-wrap:anywhere}
.history-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.history-target{font-size:12px;color:#53696a}
.day-history p{margin:6px 0;font-size:14px}
.history-detail{background:#eef5f2;border-radius:10px;padding:10px;white-space:pre-wrap}

.history-change{display:grid;grid-template-columns:52px 1fr;gap:10px;align-items:baseline;padding:5px 0}.history-change>span{font-size:12px;color:#53696a}.history-change>strong{font-size:14px;font-weight:600}.history-change+.history-change{border-top:1px solid #d7e5df;margin-top:5px;padding-top:10px}

/* Keep week-card focus on its existing rounded edge, not a second outer box. */
 .week-card[role=button]:focus{outline:none}
 .week-card[role=button]:focus-visible{outline:none;border-color:var(--brand);box-shadow:0 0 0 1px var(--brand)}

.big-action.off-sick:disabled{background:#b3261e;color:white;opacity:1}

.review-request{display:flex;flex-direction:column;gap:12px}.review-request .row{justify-content:space-between}.review-request-fact p{overflow-wrap:anywhere}.review-request-fact .small{margin-bottom:3px}.review-request-reason{padding:10px 12px;border-radius:10px;background:#f2f6f4;font-size:14px}.review-history{margin:12px 16px}.review-history summary{padding:12px;font-weight:700}.bottom-nav>a{position:relative}.bottom-nav>a>.badge{position:absolute;right:6px;top:0}.review-page>h2{margin:18px 22px 8px}

/* Approved M47/M48 permissions, adapted to the existing browser shell. */
.permissions-page{padding:0 14px;color:#080c38;display:flex;flex-direction:column;gap:16px}.permissions-page>h1{font-size:30px}.permissions-back{align-self:flex-start;padding:4px 0;display:flex;gap:5px;align-items:center;color:var(--muted)}.permissions-page>input{width:100%;border-radius:14px;border-color:#dbe4e9}.permissions-list{margin:0;padding:0 14px;box-shadow:none}.permissions-person{display:flex;align-items:center;gap:14px;width:100%;border:0;border-radius:0;min-height:82px;text-align:left;padding:12px 0;color:#080c38;background:white}.permissions-person+.permissions-person{border-top:1px solid #e3e9ed;margin:0}.permissions-person>.stack{flex:1;gap:4px;align-items:flex-start}.permissions-person h2{font-size:18px;overflow-wrap:anywhere}.permissions-avatar{width:48px;height:48px;flex:0 0 48px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#dff4ef;color:#008e88;font-weight:800}.permissions-avatar.blue{background:#e3f0fb;color:#1268aa}.permissions-avatar.amber{background:#fff1d9;color:#a96900}.permissions-avatar.carry{background:#eee5fb;color:#7434a7}.permissions-page>.row h1{font-size:23px;overflow-wrap:anywhere}.permissions-fields{border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:16px;min-width:0}.permissions-presets{display:flex;border-radius:14px;background:white;padding:3px;border:1px solid #e1e8ec}.permissions-presets>button{flex:1;min-width:0;padding:12px 4px;border:0;border-radius:11px;color:#080c38;font-size:14px}.permissions-presets>button[aria-pressed=true]{background:#008e88;color:white}.permissions-zone{display:flex;align-items:center;gap:8px;background:white;border:0;border-radius:16px;min-height:62px;text-align:left;color:#080c38;padding:14px}.permissions-zone h2{flex:1}.permissions-zone p{color:var(--muted);font-size:14px;max-width:58%}.permissions-checks{margin:0;padding:2px 14px;box-shadow:none}.permissions-check{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:53px;font-weight:700;font-size:15px}.permissions-check+.permissions-check{border-top:1px solid #e4e9ed;margin:0}.permissions-check input{width:24px;height:24px}.permissions-fields>.primary{border-radius:13px;min-height:48px;background:#008e88;border-color:#008e88}.permissions-fields>.text-button{font-weight:500}.permissions-fields:disabled{opacity:.65}
