/* PACHAMAMA 16. Palette sampled from the supplied reference. */
:root{--bg:#fdf7eb;--surface:#fcf6ea;--surface2:#f7eedd;--ink:#191d17;--muted:#736e62;--line:#e6dccb;--brand:#213529;--dark:var(--brand);--brown:#633f20;--soft:#eee4d1;--ok:#365c3d;--okbg:#d0e1c9;--warn:#a64e0e;--warnbg:#f8e1c2;--danger:#a33f32;--dangerbg:#f5e0d9;--violet:#776c8b;--blue:#286d92;--bluebg:#e0e7e6;--rose:#efcfd0;--lavender:#dcdceb;--shadow:0 2px 7px #49382008;--radius:14px;--radius-sm:8px;--space:16px;--text:15px;--small:12px;--heading:21px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;color-scheme:light}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}[hidden]{display:none!important}html{background:var(--bg)}body{margin:0;color:var(--ink);background:var(--bg);font-size:var(--text);min-height:100vh;min-height:100dvh}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;touch-action:manipulation;border:0}button:disabled{opacity:.55;cursor:wait}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--ok);outline-offset:3px}input,select,textarea{width:100%;min-width:0;min-height:48px;padding:12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);font-size:16px}input:focus,select:focus,textarea:focus{outline:2px solid #365c3d66;outline-offset:1px}textarea{resize:vertical}label{display:block;font-size:var(--small);font-weight:600;color:var(--brown);margin:14px 0 7px}h1,h2,h3,p{overflow-wrap:anywhere}h1,h2,h3{margin:0 0 14px;font-size:var(--heading);font-weight:600}h3{font-size:17px}p{line-height:1.5}.shell{max-width:1060px;margin:auto;padding:0 24px calc(100px + env(safe-area-inset-bottom))}.card{border:1px solid var(--line);border-radius:var(--radius);padding:20px;background:var(--surface);box-shadow:var(--shadow);min-width:0}.muted,.list-meta{color:var(--muted)}.center{text-align:center}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.version{font-size:var(--small);color:var(--muted)}.eyebrow{font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--brown);margin-bottom:8px}.primary,.secondary,.ghost,.text-button,.compact{border-radius:var(--radius);min-height:44px;padding:10px 16px;font-weight:500}.primary{background:var(--brand);color:var(--bg)}.secondary{background:var(--soft);color:var(--brand)}.ghost{background:transparent;border:1px solid var(--line)}.text-button{background:transparent;color:var(--brand)}.compact{font-size:var(--small);padding:8px 12px}.wide{width:100%;margin-top:10px}.icon-button,.header-menu{width:44px;height:44px;padding:10px;background:transparent;color:var(--brown);border-radius:var(--radius-sm)}.icon-button{font-size:26px;padding:0}.icon{display:block;width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;flex:none}.message{font-size:13px;line-height:1.5;color:var(--danger);margin:12px 0;overflow-wrap:anywhere}.message:empty{display:none}.section-copy{font-size:13px;color:var(--muted)}.section-heading{display:flex;justify-content:space-between;gap:12px;align-items:center}.section-heading h2{margin-bottom:4px}.badge,.soft-chip{display:inline-flex;border-radius:var(--radius-sm);padding:4px 7px;background:var(--soft);font-size:11px;color:var(--muted);vertical-align:middle}.badge.live{background:var(--okbg);color:var(--ok)}.badge.warn{background:var(--warnbg);color:var(--warn)}.badge.corrected{background:var(--lavender);color:var(--violet)}
/* Entrance: same composition as the first phone, real form controls. */
.auth-screen{min-height:100dvh;display:flex;justify-content:center;align-items:center;position:relative}.shell:has(.auth-screen:not([hidden])){padding:0}.auth-card{width:430px;max-width:100%;min-height:850px;min-height:min(850px,100dvh);padding:64px 30px 48px;border:0;border-radius:0;box-shadow:none;position:relative;isolation:isolate;background:radial-gradient(ellipse at 50% 5%,var(--bg),#f3e4c8);overflow:hidden;display:flex;flex-direction:column;justify-content:center}.auth-card:before,.auth-card:after{content:"";position:absolute;z-index:-1;pointer-events:none;bottom:-8px;width:150px;height:225px;background:url('leaves.svg') bottom left/contain no-repeat;opacity:.72}.auth-card:before{left:-38px}.auth-card:after{right:-38px;transform:scaleX(-1)}.auth-brand{text-align:center;margin:0 0 42px}.auth-logo{width:290px;max-width:100%;height:158px;object-fit:contain;display:block;margin:0 auto}.auth-title{font-family:Georgia,'Times New Roman',serif;font-size:45px;font-weight:500;letter-spacing:.01em;margin:2px -10px 0;white-space:nowrap;line-height:1.2}.auth-subtitle{color:var(--brown);font-size:15px;letter-spacing:.08em;margin:0;white-space:nowrap;display:flex;align-items:center;justify-content:center;gap:6px}.brand-sprig{color:var(--brown);font-size:26px}.input-icon{position:relative;margin:10px 0;display:flex;align-items:center}.input-icon>span{position:absolute;left:16px;color:var(--brand)}.input-icon input{padding-left:50px;height:54px;background:#fdf8eecc}.input-icon input[type=password],.input-icon #passwordInput{padding-right:48px}.input-icon button{position:absolute;right:4px;background:transparent;padding:12px;color:var(--brown)}.auth-actions{display:flex;flex-direction:column;gap:4px;margin-top:22px}.auth-actions .primary{height:55px;font-size:17px}.auth-actions .text-button{margin-top:4px;color:var(--ink);font-size:14px}.auth-note{font-size:12px;color:var(--muted)}.auth-card>.version{text-align:center;margin:56px 0 12px}.state-screen{display:grid;place-items:center;min-height:90dvh}.state-card{max-width:480px}.state-logo{display:block;width:160px;margin:0 auto 25px}.connection-details,.error-details{white-space:pre-wrap;overflow-wrap:anywhere;padding:14px;background:var(--surface2);border:1px solid var(--line);border-radius:var(--radius);font-size:12px;max-height:260px;overflow:auto}
/* Shared app frame and five-item navigation. */
.app-header{display:grid;grid-template-columns:48px 1fr 48px;align-items:center;gap:12px;min-height:80px;padding-top:env(safe-area-inset-top);margin-bottom:18px;border-bottom:1px solid var(--line)}.top-logo{width:46px;height:46px;object-fit:contain}.app-header h1{text-align:center;margin:0;font-size:20px}.tabs{position:fixed;bottom:0;left:50%;transform:translateX(-50%);z-index:50;width:min(1012px,100%);display:grid;grid-template-columns:repeat(5,minmax(0,1fr));background:#fdf7ebf5;border-top:1px solid var(--line);padding:9px 10px calc(12px + env(safe-area-inset-bottom));backdrop-filter:blur(12px)}.tabs button{background:transparent;color:var(--muted);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:48px;padding:4px 0;font-size:11px;white-space:nowrap}.tabs button.active{color:var(--brand);font-weight:650}.tabs button.active .icon{stroke-width:2.4}.tab-page{display:none}.tab-page.active{display:block}.today-grid{display:grid;grid-template-columns:.9fr 1.2fr;gap:18px}.hero-card{background:var(--surface2)}.planned-box{padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:14px;line-height:1.7}.clock-status{font-size:18px;margin:25px 0}.clock-button{width:100%;min-height:54px;padding:12px;background:var(--brand);color:var(--bg);border-radius:var(--radius);font-size:16px}.clock-button.out{background:var(--brown)}.team-row{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:10px;padding:16px 0;border-bottom:1px solid var(--line);font-size:13px}.team-row>.badge{grid-column:1/-1;justify-self:start}.cell-label{display:block;font-size:11px;color:var(--muted);margin-bottom:5px}.list-title{font-weight:600}.list-meta{font-size:12px;margin-top:5px;line-height:1.5}.list-row{display:flex;justify-content:space-between;gap:12px;padding:15px 0;border-bottom:1px solid var(--line)}.list-row>div{min-width:0}.empty{padding:24px 0;color:var(--muted);font-size:14px}
/* Weekly matrix. Only this region scrolls, names stay visible. */
.schedule-card{padding:0;overflow:hidden}.week-toolbar{display:grid;grid-template-columns:36px minmax(0,1fr) 36px auto;gap:7px;align-items:center;padding:12px}.week-toolbar button{height:38px;min-height:38px;border-radius:var(--radius-sm);padding:7px;background:var(--surface);border:1px solid var(--line)}.week-toolbar .icon{width:20px}.week-title{text-align:center;font-size:14px;font-weight:500}.week-schedule{overflow:auto;max-width:100%;-webkit-overflow-scrolling:touch}.schedule-table{border-collapse:separate;border-spacing:0;width:100%;min-width:520px;table-layout:fixed;font-size:12px}.schedule-table th,.schedule-table td{border-top:1px solid var(--line);border-right:1px solid var(--line);text-align:center;padding:6px 4px;height:58px;font-weight:400}.schedule-table th:first-child{position:sticky;left:0;z-index:2;width:98px;text-align:left;background:var(--surface);padding:8px;overflow-wrap:anywhere}.schedule-table thead th{font-size:11px;height:52px;background:var(--surface)}.schedule-table thead th span{display:block;margin-top:5px}.schedule-table .mine td,.schedule-table .mine th{background:var(--okbg)}.schedule-table .mine th{font-weight:600}.schedule-table .today-head{color:var(--ok);font-weight:700}.schedule-table .today-head:after{content:"";display:block;background:var(--ok);width:4px;height:4px;border-radius:50%;margin:3px auto -6px}.shift-chip{display:block;width:fit-content;min-width:40px;margin:2px auto;padding:4px;border-radius:5px;background:var(--warnbg);font-size:11px;line-height:1.3}.shift-chip span{display:block}.shift-tone-1{background:var(--lavender)}.shift-tone-2{background:var(--rose)}.shift-tone-3{background:var(--bluebg)}.mine .shift-chip{background:#b9d4b0}.week-off{color:#a69c8b}.schedule-card>.message{padding:0 12px}
/* Personal hours and salary. */
#hours,#salary{max-width:650px;margin:auto}#hours>.card,.employee-pay-card{border:0;box-shadow:none;background:transparent;padding:0}.hours-presets{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:3px;background:var(--surface2);border-radius:var(--radius);gap:2px;margin-bottom:16px}.hours-presets button{font-size:12px;padding:9px 2px;min-height:38px;border:0;border-radius:11px;white-space:nowrap;font-weight:400}.hours-presets .secondary{background:var(--brand);color:var(--bg)}.period-picker,.salary-period{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:12px;width:100%;min-height:46px;box-shadow:var(--shadow);font-size:14px}.period-picker>span:nth-child(2){flex:1;text-align:left}.period-picker .icon,.salary-period .icon{width:19px;height:19px}.hours-custom{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}.hours-custom button{grid-column:1/-1}.hours-custom label{margin-top:8px}#hoursList{margin-top:16px}.hour-row{display:grid;grid-template-columns:1.05fr 1.1fr .55fr;gap:6px;align-items:center;border-bottom:1px solid var(--line);padding:12px 0;font-size:13px;font-variant-numeric:tabular-nums}.hour-row .hour-time{text-align:center;white-space:nowrap}.hour-row strong{text-align:right;font-weight:500}.hour-row small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.hours-total{display:flex;align-items:center;justify-content:space-between;background:var(--surface2);border:1px solid var(--line);border-radius:var(--radius);padding:18px 14px;margin-top:20px;font-weight:600;font-size:18px}.hours-total #hoursSummary{font-size:22px;font-weight:650}.hours-footnote{font-size:11px;color:var(--muted);margin:12px 2px}.salary-period{width:280px;max-width:100%;margin:0 auto 8px}.salary-period strong{font-weight:500}.period-caption{text-align:center;font-size:13px;color:var(--muted);margin:8px 0 18px}.my-pay-grid{padding:16px 20px;background:var(--surface2);border:1px solid var(--line);border-radius:var(--radius)}.my-pay-grid>div{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:10px 0}.my-pay-grid strong{font-weight:600;color:var(--ok);font-variant-numeric:tabular-nums}.my-pay-grid>div:nth-child(2) strong{color:var(--warn)}.my-pay-grid>div:nth-child(3) strong{color:var(--blue)}.my-pay-grid .balance{border-top:1px solid #b4a38a;margin-top:12px;padding-top:18px;font-weight:600}.my-pay-grid .balance strong{font-size:24px;color:var(--ink)}.operations-heading{display:flex;justify-content:space-between;align-items:center;margin-top:18px}.operations-heading h2{font-size:16px;margin:0}.operations-heading button{font-size:13px;padding-right:0}.operation-row{display:flex;align-items:center;gap:12px;padding:16px 0;border-bottom:1px solid var(--line);font-size:14px}.operation-row>div{flex:1}.operation-row>span{padding:9px;background:var(--okbg);color:var(--ok);border-radius:50%}.operation-row.advance>span{background:var(--warnbg);color:var(--warn)}.operation-row strong{color:var(--blue);font-weight:600;white-space:nowrap}.operation-row.advance strong{color:var(--warn)}.operation-row .icon{width:18px;height:18px}.info-note{display:flex;gap:10px;align-items:center;background:var(--bluebg);border-radius:var(--radius);padding:14px;margin-top:18px}.info-note>.icon,.info-note>span{color:var(--blue)}.info-note p{font-size:12px;line-height:1.5;margin:0}.profile-card{display:flex;gap:18px;align-items:center;margin-bottom:20px}.profile-card img{object-fit:contain}.profile-card h2{font-size:18px;margin:0}.profile-card p{font-size:13px;margin-bottom:0;color:var(--muted)}.more-links{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.more-links button{display:flex;align-items:center;width:100%;gap:14px;padding:18px;background:var(--surface);border-bottom:1px solid var(--line);text-align:left}.more-links button>span:nth-child(2){flex:1}.more-links small{display:block;font-size:12px;color:var(--muted);margin-top:5px}.more-links button:last-child{border:0}
/* Administration retains all existing forms and controls. */
.manage-nav,.staff-filters{display:flex;gap:5px;overflow:auto;margin-bottom:16px;padding:4px;background:var(--surface2);border-radius:var(--radius)}.manage-nav button,.staff-filters button{background:transparent;color:var(--muted);white-space:nowrap;border-radius:10px;padding:12px;font-size:13px;min-height:42px}.manage-nav button.active,.staff-filters button.active{background:var(--brand);color:var(--bg)}.manage-panel{display:none}.manage-panel.active{display:block}.form-grid,.settings-row,.rate-editor{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.span-2{grid-column:1/-1}.shift-form-actions,.plan-actions,.staff-actions,.modal-actions,.modal-footer,.correction-entry-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.plan-actions{margin-top:0;flex-wrap:nowrap}.edit-small,.danger-small{padding:8px 10px;min-height:36px;border-radius:var(--radius-sm);background:var(--soft);font-size:12px}.danger-small{background:var(--dangerbg);color:var(--danger)}.divider{height:1px;background:var(--line);margin:24px 0}.staff-grid,.rates-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.staff-card,.rate-card,.payroll-card,.correction-entry,.ts-card{padding:16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);min-width:0}.staff-card-head,.payroll-card-head{display:flex;justify-content:space-between;gap:12px}.staff-email{font-size:12px;overflow-wrap:anywhere;color:var(--muted);margin:6px 0}.settings-save{margin-top:18px}.rate-editor{gap:10px}.rate-editor button{grid-column:1/-1}.rate-history{border-top:1px solid var(--line);padding-top:12px;margin-top:14px}.rate-history-item,.payroll-breakdown-row{display:flex;justify-content:space-between;gap:12px;font-size:12px;padding:5px 0}.timesheet-toolbar{display:grid;grid-template-columns:1fr 1fr 1.2fr auto;gap:10px;align-items:end}.summary-strip{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0}.summary-strip>div,.payroll-totals>div{padding:14px;background:var(--surface2);border-radius:var(--radius)}.summary-strip span,.payroll-totals span{display:block;font-size:12px;color:var(--muted)}.summary-strip strong{display:block;font-size:21px;margin-top:7px}.table-scroll{overflow:auto}.timesheet-table{border-collapse:collapse;width:100%;min-width:780px;font-size:12px}.timesheet-table th,.timesheet-table td{text-align:left;border-bottom:1px solid var(--line);padding:12px 8px}.mobile-timesheet{display:none}.ts-card,.correction-entry,.payroll-card{margin-top:12px}.ts-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.ts-footer{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-top:12px;font-size:12px}.payroll-toolbar{display:flex;flex-wrap:wrap;align-items:end;gap:8px}.payroll-toolbar>div{flex:1;min-width:160px}.payroll-summary{grid-template-columns:repeat(4,minmax(0,1fr))}.payroll-summary strong{font-size:18px}.payroll-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:14px}.payroll-totals strong{display:block;margin-top:6px}.payroll-breakdown{border-block:1px solid var(--line);margin-top:14px;padding:8px 0}.payroll-payment-history{margin-top:16px}.payroll-subtitle{font-size:12px;color:var(--muted)}.payroll-payment-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 0;border-bottom:1px solid var(--line)}.payroll-payment-date{font-size:11px;color:var(--muted);margin-left:8px}.payroll-payment-side{display:flex;align-items:center;gap:10px}.modal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:20px}.modal-backdrop{position:absolute;inset:0;background:#21352966;backdrop-filter:blur(3px)}.modal-sheet{position:relative;width:min(700px,100%);max-height:90dvh;overflow:auto;border-radius:22px;background:var(--bg);padding:24px}.small-modal{max-width:540px}.modal-header{display:flex;justify-content:space-between;gap:14px}.modal-header>div{min-width:0}.modal-header .icon-button{flex-shrink:0}.modal-footer{justify-content:flex-end}.modal-handle{display:none}.field-hint{font-size:12px;color:var(--muted)}.history-item{border-left:2px solid var(--soft);padding:8px 12px;margin:12px 0}.history-change{padding:12px;background:var(--surface2);border-radius:var(--radius-sm);font-size:12px;margin:8px 0}.voided{opacity:.6}.toast{position:fixed;z-index:150;left:50%;transform:translateX(-50%);bottom:calc(90px + env(safe-area-inset-bottom));max-width:calc(100% - 32px);width:max-content;padding:12px 18px;border-radius:var(--radius);background:var(--brand);color:var(--bg);font-size:13px}
@media(max-width:760px){.shell{padding:0 14px calc(96px + env(safe-area-inset-bottom))}.app-header{margin:0 -14px 12px;padding:8px 14px 4px;padding-top:calc(8px + env(safe-area-inset-top));min-height:66px;background:var(--surface2)}.app-header h1{font-size:18px}.top-logo{width:42px;height:42px}.tabs{padding-top:8px}.tabs button{font-size:10px}.today-grid{grid-template-columns:1fr}.card{padding:16px}.schedule-card{padding:0;margin:0 -14px;border-left:0;border-right:0;border-radius:0}.week-toolbar{padding:9px 10px;gap:5px;grid-template-columns:32px minmax(0,1fr) 32px auto}.week-title{font-size:12px;line-height:1.4}.week-toolbar #scheduleTodayBtn{font-size:12px}.week-toolbar button{padding:6px}.staff-grid,.rates-grid{grid-template-columns:1fr}.timesheet-toolbar{grid-template-columns:1fr 1fr}.timesheet-toolbar>div:nth-child(3),.timesheet-toolbar>button{grid-column:1/-1}.desktop-timesheet{display:none}.mobile-timesheet{display:block}.payroll-summary,.payroll-totals{grid-template-columns:1fr 1fr}.payroll-summary>div:last-child{grid-column:1/-1}.payroll-payment-side{flex-direction:column;align-items:flex-end}.payroll-toolbar>div{flex-basis:100%}.payroll-toolbar #addPayrollPaymentBtn{flex:1}.payroll-card-head{align-items:center}.form-grid{grid-template-columns:1fr 1fr}.form-grid>.span-2{grid-column:1/-1}.modal{align-items:end;padding:0}.modal-sheet{border-radius:22px 22px 0 0;max-height:92dvh;padding:16px 16px calc(24px + env(safe-area-inset-bottom))}.modal-handle{display:block;width:40px;height:4px;border-radius:4px;background:var(--line);margin:0 auto 18px}.plan-actions{flex-direction:column}.hour-row{font-size:12px;padding:12px 0}.hours-presets button{font-size:11px}.schedule-table{min-width:470px}.schedule-table th:first-child{width:90px}.salary-period{margin-top:16px}}
@media(min-width:761px){.auth-card{border-radius:24px;margin:24px 0;box-shadow:var(--shadow)}#more{max-width:650px;margin:auto}.schedule-table th,.schedule-table td{height:66px}.shift-chip{font-size:12px}.schedule-table th:first-child{width:150px}}
@media(max-width:360px){.auth-title{font-size:38px}.auth-card{padding-inline:24px}.auth-subtitle{font-size:12px}.tabs button{font-size:9px}.form-grid{grid-template-columns:1fr}.hours-presets button{font-size:10px}.hour-row{font-size:11px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
.hours-custom,.form-grid,.settings-row,.rate-editor,.timesheet-toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}.hours-custom>div,.form-grid>div,.settings-row>div,.rate-editor>div,.timesheet-toolbar>div{min-width:0}
@media(min-width:761px){.timesheet-toolbar{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.2fr) auto}}
@media(max-width:360px){.form-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:760px){.auth-card{padding:64px 30px 48px}.employee-pay-card{padding:0}}

/* v17 employee workflow: today -> plan -> fact -> money */
.today-grid{align-items:start}.shift-dashboard .clock-status{display:flex;flex-direction:column;gap:5px}.shift-dashboard .clock-status strong{font-size:20px}.today-plan-time{font-size:26px;font-weight:650;margin-bottom:4px}.live-duration{font-size:18px;font-weight:600;margin:12px 0;color:var(--brand)}
.dashboard-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.dashboard-stats button,.dashboard-stats>div{background:var(--surface2);padding:14px 10px;border-radius:var(--radius);text-align:left}.dashboard-stats span{display:block;font-size:11px;color:var(--muted)}.dashboard-stats strong{display:block;font-size:18px;margin-top:6px}.dashboard-links{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.dashboard-links button{flex:1;min-width:130px}.team-today-card{grid-column:1/-1}
.my-week-block{padding:14px 16px;border-bottom:1px solid var(--line)}#myWeekShifts{display:flex;gap:8px;overflow:auto;padding-bottom:3px}.my-shift-chip{flex:0 0 auto;display:flex;gap:8px;align-items:center;padding:10px 12px;border-radius:999px;background:var(--soft);color:var(--brand);font-size:12px}.my-shift-chip strong{text-transform:capitalize}.compact-empty{padding:8px 0}
.hours-overview{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:18px 0}.hours-overview>div{background:var(--surface2);border-radius:var(--radius);padding:12px}.hours-overview span{display:block;font-size:11px;color:var(--muted)}.hours-overview strong{display:block;margin-top:5px;font-size:16px}.hour-detail-row{padding:16px 0;border-bottom:1px solid var(--line)}.hour-detail-date{font-weight:650;margin-bottom:10px;text-transform:capitalize}.hour-detail-date small{display:block;color:var(--muted);font-weight:400;margin-top:3px}.hour-detail-grid{display:grid;grid-template-columns:minmax(88px,.8fr) 1.4fr;gap:7px 12px;font-size:13px}.hour-detail-grid span{color:var(--muted)}.hour-detail-grid strong{font-weight:600;text-align:right}
.salary-balance-hero{text-align:center;padding:22px 14px 18px}.salary-balance-hero span{display:block;color:var(--muted);font-size:13px}.salary-balance-hero strong{display:block;font-size:34px;line-height:1.1;margin-top:8px;color:var(--brand)}
@media(max-width:760px){.tabs button{font-size:11px}.dashboard-stats{grid-template-columns:1fr 1fr}.dashboard-stats button:first-child,.dashboard-stats>div:first-child{grid-column:1/-1}.hours-overview{grid-template-columns:1fr 1fr}.today-plan-time{font-size:23px}.clock-button{min-height:58px;font-size:17px}.team-today-card{grid-column:auto}.my-week-block{padding-inline:12px}.hour-detail-grid{font-size:12px}}


/* v18 mobile ergonomics: role-aware navigation and denser phone layouts */
.tabs.nav-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.tabs.nav-5{grid-template-columns:repeat(5,minmax(0,1fr))}

@media(max-width:760px){
  html,body{max-width:100%;overflow-x:hidden}
  .shell{width:100%;max-width:100%;padding-inline:12px;padding-bottom:calc(82px + env(safe-area-inset-bottom))}
  .app-header{margin-inline:-12px;padding-inline:12px;margin-bottom:10px}
  .app-header h1{font-size:17px}
  .tabs{left:0;right:0;transform:none;width:100%;max-width:none;padding:6px 6px calc(7px + env(safe-area-inset-bottom));gap:0}
  .tabs button{min-width:0;min-height:52px;padding:5px 2px;gap:4px;font-size:10px;line-height:1.15;overflow:hidden}
  .tabs button span:last-child{max-width:100%;overflow:hidden;text-overflow:ellipsis}
  .tabs .icon{width:21px;height:21px}

  .tab-page>.card,.manage-panel.card{border-radius:12px}
  .card{padding:14px}
  h1,h2,h3{margin-bottom:10px}
  h2{font-size:19px}
  .section-heading{gap:8px;align-items:flex-start}
  .section-copy{margin-top:0}

  .today-grid{gap:10px}
  .hero-card{padding:16px}
  .planned-box{padding:12px 0}
  .clock-status{margin:16px 0}
  .clock-button{min-height:56px}
  .dashboard-stats{gap:6px}
  .dashboard-stats button,.dashboard-stats>div{padding:11px 10px}
  .dashboard-stats strong{font-size:17px}
  .dashboard-links{margin-top:10px;gap:6px}
  .dashboard-links button{min-width:0;flex:1 1 46%;padding-inline:10px}
  .team-today-card{padding-top:13px}
  .team-row{grid-template-columns:1.25fr 1fr;gap:7px;padding:12px 0}
  .team-row>div:nth-child(3){grid-column:2}

  .schedule-card{margin-inline:-12px}
  .week-toolbar{grid-template-columns:34px minmax(0,1fr) 34px;gap:5px;padding:8px 10px}
  .week-toolbar #scheduleTodayBtn{grid-column:1/-1;width:100%;height:34px;min-height:34px}
  .my-week-block{padding:12px}
  #myWeekShifts{gap:6px}
  .my-shift-chip{padding:8px 10px}

  #hours,#salary{max-width:none}
  .hours-presets{display:grid;grid-template-columns:1fr 1fr;gap:6px}
  .hours-presets button{width:100%;min-width:0}
  .hours-overview{gap:6px;margin:12px 0}
  .hours-overview>div{padding:10px}
  .hour-detail-row{padding:13px 0}
  .hour-detail-grid{grid-template-columns:minmax(78px,.75fr) 1.25fr;gap:6px 10px}
  .hours-total{margin-top:12px}

  .salary-period{margin:8px 0 12px}
  .salary-balance-hero{padding:14px 10px 16px}
  .salary-balance-hero strong{font-size:31px}
  .my-pay-grid{gap:0}
  .my-pay-grid>div{padding:12px 0}
  .operations-heading{margin-top:18px}
  .info-note{margin-top:14px}

  .more-links button{min-height:58px;padding:11px 8px}
  .profile-card{padding:13px}

  /* Owner/manager tools: use phone-native cards and compact controls. */
  #appView[data-role="owner"] .manage-nav,
  #appView[data-role="manager"] .manage-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible;gap:5px;padding:5px;margin-bottom:10px}
  #appView[data-role="owner"] .manage-nav button,
  #appView[data-role="manager"] .manage-nav button{white-space:normal;padding:9px 7px;min-height:40px;line-height:1.15}
  #appView[data-role="owner"] .manage-nav button:first-child,
  #appView[data-role="manager"] .manage-nav button:first-child{grid-column:1/-1}

  .timesheet-toolbar{gap:7px}
  .timesheet-toolbar label{margin-top:7px}
  .summary-strip{gap:6px;margin:12px 0}
  .summary-strip>div,.payroll-totals>div{padding:10px}
  .summary-strip strong{font-size:18px}
  .ts-card,.staff-card,.rate-card,.payroll-card{padding:13px;margin-top:8px}
  .ts-footer,.staff-card-head,.payroll-card-head{gap:8px}
  .ts-footer{align-items:center}
  .staff-filters{gap:4px;margin-bottom:10px}
  .staff-filters button{padding:9px 8px;min-height:38px;font-size:12px}
  .form-grid,.settings-row,.rate-editor{gap:7px}
  .shift-form-actions{gap:7px}
  .payroll-toolbar{display:grid;grid-template-columns:1fr 1fr;gap:7px}
  .payroll-toolbar>div{grid-column:1/-1;min-width:0}
  .payroll-toolbar button{min-width:0;width:100%;padding-inline:8px}
  .payroll-summary{gap:6px}
  .payroll-payment-row{align-items:flex-start;padding:10px 0}
  .payroll-payment-side{gap:5px}

  .modal-sheet{padding-inline:14px}
}

@media(max-width:390px){
  .tabs button{font-size:9.5px}
  .tabs button span:last-child{white-space:normal;text-align:center}
  .dashboard-links{display:grid;grid-template-columns:1fr}
  .dashboard-links button{width:100%}
  .hours-overview{grid-template-columns:1fr 1fr}
  .payroll-toolbar{grid-template-columns:1fr}
  .payroll-toolbar>button{grid-column:1/-1}
}


/* v19 owner navigation: dashboard -> schedule -> timesheet -> payroll -> more */
.owner-dashboard-card{display:none}
.owner-today-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:14px}
.owner-today-stats>div{padding:12px;background:var(--surface2);border-radius:var(--radius)}
.owner-today-stats span{display:block;font-size:11px;color:var(--muted)}
.owner-today-stats strong{display:block;font-size:22px;margin-top:5px}
.owner-dashboard-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.owner-dashboard-actions button{flex:1;min-width:120px}
.schedule-owner-actions{display:none;padding:0 12px 12px}
.owner-subview-back{margin-bottom:10px;padding-left:0}
#appView[data-role="owner"] .owner-dashboard-card{display:block!important}
#appView[data-role="owner"] .schedule-owner-actions{display:block!important}
#appView[data-role="owner"] .my-week-block{display:none}
#appView[data-role="owner"] .manage-nav{display:none!important}
#appView[data-role="owner"] #manage{max-width:920px;margin-inline:auto}
#appView[data-role="owner"] #managePayroll{max-width:920px;margin-inline:auto}
#appView[data-role="owner"] #manageStaff,#appView[data-role="owner"] #manageRates,#appView[data-role="owner"] #manageSettings{max-width:760px;margin-inline:auto}
.manager-more,.owner-more{display:none}
@media(max-width:760px){
  .owner-today-stats{grid-template-columns:1fr 1fr;gap:6px}
  .owner-today-stats>div{padding:10px}
  .owner-today-stats strong{font-size:19px}
  .owner-dashboard-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px}
  .owner-dashboard-actions button{min-width:0;width:100%}
  .owner-dashboard-actions button:first-child{grid-column:1/-1}
  .schedule-owner-actions .primary{width:100%}
  #appView[data-role="owner"] .team-row{grid-template-columns:minmax(0,1fr) auto}
  #appView[data-role="owner"] .team-row>div:nth-child(2),#appView[data-role="owner"] .team-row>div:nth-child(3){font-size:11px}
}
/* v20: owner navigation, clickable planning and compact dashboard refinements */
.dashboard-stats{grid-template-columns:repeat(4,minmax(0,1fr))}
.owner-payables-card{grid-column:1/-1}
.owner-payables-total{font-size:24px;color:var(--brand);white-space:nowrap}
.owner-payable-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 0;border-bottom:1px solid var(--line)}
.owner-payable-row:last-child{border-bottom:0}
.owner-payable-row>div{min-width:0}
.owner-payable-row strong{display:block;font-size:14px}
.owner-payable-row span{display:block;margin-top:4px;font-size:11px;color:var(--muted);line-height:1.35}
.owner-payable-row>b{font-size:16px;white-space:nowrap}
.schedule-owner-hint{padding:8px 12px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface2);font-size:11px;color:var(--muted)}
.shift-chip.shift-editable{border:0;cursor:pointer;color:inherit;font-family:inherit}
.shift-chip.shift-editable:active{transform:scale(.96)}
.shift-add-cell{display:grid;place-items:center;width:30px;height:30px;margin:auto;border:1px dashed var(--line);border-radius:8px;background:transparent;color:var(--muted);font-size:19px;line-height:1}
.shift-add-cell:hover,.shift-add-cell:focus-visible{border-color:var(--brand);color:var(--brand);background:var(--soft)}
.payroll-rates{margin-top:4px}
.payroll-rates>summary{cursor:pointer;display:flex;flex-direction:column;gap:3px;padding:14px 0;font-weight:600;list-style:none}
.payroll-rates>summary::-webkit-details-marker{display:none}
.payroll-rates>summary:after{content:'+';margin-left:auto;position:absolute;right:18px;font-size:20px;font-weight:400}
.payroll-rates[open]>summary:after{content:'−'}
.payroll-rates>summary small{font-size:11px;font-weight:400;color:var(--muted)}
#ownerStaffLogoutBtn{width:100%;justify-content:center}
@media(max-width:760px){
  .dashboard-stats{grid-template-columns:1fr 1fr}
  .dashboard-stats button:first-child{grid-column:auto}
  .owner-payables-card{grid-column:auto}
  .owner-payables-total{font-size:20px}
  .owner-payable-row{align-items:flex-start;padding:10px 0}
  .owner-payable-row>b{font-size:15px}
  .schedule-owner-hint{padding-inline:10px}
  #appView[data-role="owner"] .schedule-table td{padding:4px 2px}
  #appView[data-role="owner"] .shift-chip{min-width:42px;padding:5px 4px}
}

.payroll-rates>summary{position:relative;padding-right:34px}.payroll-rates>summary:after{top:50%;transform:translateY(-50%)}


/* v21 workflow refinements */
.header-actions{display:flex;align-items:center;gap:4px;margin-left:auto}.header-logout{display:flex;align-items:center;gap:5px;min-height:40px;padding:8px 10px;border-radius:var(--radius-sm);background:transparent;color:var(--brown);font-size:12px}.header-logout .icon{width:18px;height:18px}
.dashboard-stats>div{background:var(--surface2);padding:14px 10px;border-radius:var(--radius);text-align:left}.dashboard-stats>div span{display:block;font-size:11px;color:var(--muted)}.dashboard-stats>div strong{display:block;font-size:18px;margin-top:6px}
.owner-today-stats>div small{display:block;margin-top:7px;color:var(--muted);font-size:11px;line-height:1.35;font-weight:400}
.team-phone{display:flex;align-items:center;gap:6px;margin-top:5px;flex-wrap:wrap}.team-phone a{color:var(--brand);font-size:12px;font-weight:600;text-decoration:none}.phone-add,.phone-edit{background:transparent;color:var(--brown);padding:3px 0;font-size:11px;text-decoration:underline;text-underline-offset:2px}.phone-add{margin-top:5px}
.hours-current-label{font-size:12px;color:var(--muted);margin-bottom:8px}.late-entry{border-left:3px solid var(--danger);padding-left:12px}.late-text{color:var(--danger)!important}.late-entry .hour-detail-date{color:var(--danger)}
.salary-period-picker{display:flex;align-items:end;gap:10px}.salary-period-picker>div{min-width:150px}.salary-period-picker label{margin:0 0 4px}.salary-period-picker input{min-height:40px;padding:8px 10px}.salary-period-picker>strong{margin-left:auto;padding-bottom:10px}
@media(max-width:760px){.header-logout{padding:7px 8px;font-size:11px}.header-logout span:last-child{display:inline}.dashboard-stats>div{padding:11px 10px}.salary-period-picker{align-items:center}.salary-period-picker>div{flex:1}.salary-period-picker>strong{display:none}.owner-today-stats>div small{font-size:10px}.late-entry{padding-left:9px}}

/* v21 header fits the restored logout action without squeezing the title. */
.app-header{grid-template-columns:48px minmax(0,1fr) auto}
@media(max-width:760px){.payroll-summary>div:last-child{grid-column:auto}}


/* v22: employee salary period alignment + simpler team-today rows */
#salary .salary-period-picker{
  width:100%;
  max-width:650px;
  margin:0 auto 12px;
  padding:10px 12px;
  align-items:center;
  justify-content:center;
  box-sizing:border-box;
}
#salary .salary-period-control{
  width:100%;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  gap:10px;
}
#salary .salary-period-control label{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  margin:0;
  min-height:42px;
  font-weight:600;
  color:var(--brand);
  white-space:nowrap;
}
#salary .salary-period-control label .icon{width:18px;height:18px}
#salary .salary-period-control input{
  width:100%;
  min-width:0;
  min-height:42px;
  margin:0;
  text-align:center;
  text-align-last:center;
}
#salary .salary-period-picker>strong{display:none}
#salary .my-pay-grid>div strong{color:var(--ok)}
#salary .my-pay-grid .balance strong{color:var(--ink)}
.team-row{grid-template-columns:1.2fr 1fr 1fr}
.team-row>.badge{display:none}
@media(max-width:760px){
  #salary .salary-period-picker{margin-top:0;width:100%}
  #salary .salary-period-control{grid-template-columns:1fr}
  #salary .salary-period-control label{width:100%;min-height:30px;text-align:center}
  #salary .salary-period-control input{width:100%;height:44px}
  .team-row,#appView[data-role="owner"] .team-row{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:8px}
  .team-row>div:nth-child(3),#appView[data-role="owner"] .team-row>div:nth-child(3){grid-column:2}
}

/* v23: access requests */
.access-requests{margin-top:18px;padding:16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface2)}
.access-requests-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.access-requests-head h3{margin:3px 0 0}.access-requests-copy{margin:8px 0 12px}
.access-request-list{display:grid;gap:8px}.access-request-card{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm)}
.access-request-main{min-width:0}.access-request-card .primary{flex-shrink:0}
@media(max-width:520px){.access-request-card{align-items:stretch;flex-direction:column}.access-request-card .primary{width:100%}}

/* v24 */
.schedule-visibility-list{display:grid;gap:8px;margin:16px 0}.schedule-visibility-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 2px;border-bottom:1px solid var(--line)}.schedule-visibility-row label{display:flex;align-items:center;gap:10px;font-weight:600}.schedule-visibility-row input{width:20px;height:20px}.staff-actions .hard-delete{margin-left:auto}.role-owner-note{color:var(--brown);font-size:12px;margin-top:6px}
@media(max-width:760px){.week-toolbar{grid-template-columns:32px minmax(0,1fr) 32px}.week-toolbar #scheduleTodayBtn,.week-toolbar #scheduleVisibilityBtn{grid-column:auto;width:100%}.week-toolbar #scheduleTodayBtn{grid-column:1/3}.week-toolbar #scheduleVisibilityBtn{grid-column:3/4}.staff-actions .hard-delete{margin-left:0}}


/* v25: ergonomic schedule row visibility + self phone */
.schedule-tools{padding:0 12px 10px;border-bottom:1px solid var(--line)}
.schedule-visibility-trigger{width:100%;min-height:52px;display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);text-align:left;color:var(--ink)}
.schedule-visibility-trigger>.icon:first-child{width:20px;height:20px;color:var(--brand)}
.schedule-visibility-trigger>.icon:last-child{width:18px;height:18px;color:var(--muted)}
.schedule-visibility-copy{min-width:0;flex:1;display:flex;flex-direction:column;gap:2px}
.schedule-visibility-copy strong{font-size:13px;font-weight:650}
.schedule-visibility-copy small{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.schedule-visibility-trigger:active{transform:translateY(1px)}
.schedule-visibility-summary{margin:2px 0 10px;padding:10px 12px;border-radius:12px;background:var(--surface2);font-size:12px;color:var(--muted)}
.schedule-visibility-row{padding:10px 2px}
.schedule-visibility-row label{width:100%;margin:0;cursor:pointer}
.schedule-visibility-row input{appearance:none;-webkit-appearance:none;width:42px!important;height:24px!important;min-height:24px;border:0;border-radius:999px;background:var(--line);position:relative;flex:none;transition:.18s ease}
.schedule-visibility-row input:after{content:"";position:absolute;width:18px;height:18px;left:3px;top:3px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0002;transition:.18s ease}
.schedule-visibility-row input:checked{background:var(--brand)}
.schedule-visibility-row input:checked:after{transform:translateX(18px)}
.my-phone-button{display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:8px 10px;border-radius:12px;background:var(--soft);color:var(--brand);font-size:12px;font-weight:600;white-space:nowrap}
.my-phone-button .icon{width:17px;height:17px}
.my-phone-status{font-size:12px;color:var(--muted);margin:-2px 0 10px}
.my-phone-status:empty{display:none}
@media(max-width:760px){
  .week-toolbar{grid-template-columns:32px minmax(0,1fr) 32px}
  .week-toolbar #scheduleTodayBtn{grid-column:1/-1;width:100%}
  .schedule-tools{padding:0 10px 9px}
  .schedule-visibility-trigger{min-height:50px;border-radius:12px}
  .team-today-card .section-heading{align-items:flex-start}
  .my-phone-button{margin-top:1px}
}

/* v26: owner clock action lives compactly in Team today */
.team-heading-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.owner-clock-slot{display:flex;align-items:center;gap:6px}
.owner-clock-slot .clock-button.owner-clock-button{min-height:38px;height:38px;width:auto;padding:8px 12px;border-radius:12px;font-size:12px;line-height:1;font-weight:700;margin:0;box-shadow:none;white-space:nowrap}
.owner-clock-slot .clock-button.owner-clock-button.out{min-height:38px}
.owner-clock-message{display:none!important}
@media(max-width:760px){.team-heading-actions{gap:6px}.owner-clock-slot .clock-button.owner-clock-button{min-height:36px;height:36px;padding:7px 10px;font-size:11px}.team-today-card .section-heading{gap:10px}.team-heading-actions{max-width:55%;justify-content:flex-end}.my-phone-button{min-height:36px;padding:7px 9px;font-size:11px}}

/* v28: startup screen prevents auth-form flash while a saved session is restored */
.boot-screen{min-height:100dvh;display:grid;place-items:center;padding:24px;background:var(--bg,#fdf7eb)}
.boot-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;text-align:center;color:var(--muted,#6f675b)}
.boot-logo{width:min(210px,52vw);height:auto;display:block}
.boot-welcome{font-size:clamp(18px,4.5vw,28px);font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--text,#1a1a18);line-height:1;font-family:inherit;text-align:center;text-wrap:balance}
.boot-card p{margin:0;font-size:14px}
.boot-spinner{width:26px;height:26px;border:2px solid rgba(30,59,44,.18);border-top-color:#1e3b2c;border-radius:50%;animation:pachBootSpin .75s linear infinite}
@keyframes pachBootSpin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.boot-spinner{animation:none;border-top-color:rgba(30,59,44,.18)}}

/* v31: staffing coverage warning — full 10:30–22:30 interval must be covered */
.schedule-table thead th.coverage-gap-head{background:#ffe9e5;color:#a9362b;font-weight:750;box-shadow:inset 0 -3px 0 #c74a3d}
.schedule-table thead th.coverage-gap-head.today-head{color:#a9362b}
.schedule-table thead th.coverage-gap-head.today-head:after{background:#c74a3d}
.coverage-gap-label{display:block!important;margin-top:4px!important;font-size:9px;line-height:1.1;font-weight:750;letter-spacing:.02em;color:#b13d32;text-transform:uppercase}
.schedule-table td.coverage-gap-day{background:#fff8f6;border-right-color:#edb6ae}
.schedule-table .mine td.coverage-gap-day{background:#fbeee9}
@media(max-width:760px){.coverage-gap-label{font-size:8px}.schedule-table thead th.coverage-gap-head{box-shadow:inset 0 -2px 0 #c74a3d}}


/* v32: responsive weekly schedule + explicit uncovered working intervals */
.schedule-card{container-type:inline-size}
.week-toolbar{position:relative}
.week-schedule{position:relative;scrollbar-width:thin;scrollbar-color:var(--line) transparent;overscroll-behavior-inline:contain}
.week-schedule::-webkit-scrollbar{height:7px}
.week-schedule::-webkit-scrollbar-thumb{background:var(--line);border-radius:999px}
.schedule-table{--team-col:150px;--day-col:minmax(82px,1fr);width:100%;min-width:0;table-layout:fixed}
.schedule-table th:first-child{width:var(--team-col);min-width:var(--team-col);max-width:var(--team-col);z-index:4;box-shadow:1px 0 0 var(--line)}
.schedule-table thead th{vertical-align:top;padding:8px 5px;height:auto;min-height:62px;position:sticky;top:0;z-index:3}
.schedule-table thead th:first-child{z-index:6}
.schedule-weekday{display:block!important;margin:0!important;font-size:11px;line-height:1.1;text-transform:capitalize;font-weight:700}
.schedule-date{display:block!important;margin:4px 0 0!important;font-size:11px;line-height:1.1;color:inherit;font-weight:600}
.schedule-person{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.2;font-weight:600}
.schedule-me{display:inline-block;margin-top:3px;color:var(--ok);font-size:10px;font-weight:700}
.coverage-gap-label{display:flex!important;flex-direction:column;align-items:center;gap:1px;margin-top:5px!important;font-size:9px!important;line-height:1.12!important;font-weight:800!important;letter-spacing:0!important;text-transform:none!important;color:#ad342a!important;white-space:normal}
.coverage-gap-label span{display:block!important;margin:0!important;white-space:nowrap}
.schedule-table thead th.coverage-gap-head{background:#ffe8e4;color:#9f3026;box-shadow:inset 0 -3px 0 #c74a3d}
.schedule-table td.coverage-gap-day{background:#fff8f6}
.shift-chip{max-width:100%;box-sizing:border-box}
.shift-add-cell{min-width:34px;min-height:34px;border-radius:10px}

@media(min-width:1100px){
  .schedule-card{overflow:visible}
  .schedule-table{--team-col:170px;font-size:12px}
  .schedule-table th,.schedule-table td{height:72px;padding:7px 6px}
  .schedule-table thead th{min-height:68px;padding:9px 6px}
  .coverage-gap-label{font-size:9.5px!important}
  .week-toolbar{grid-template-columns:40px minmax(240px,1fr) 40px auto;gap:8px;padding:14px 16px}
  .week-title{font-size:15px;font-weight:650}
  .schedule-tools{padding:0 16px 12px}
  .schedule-visibility-trigger{max-width:420px}
}

@media(min-width:761px) and (max-width:1099px){
  .schedule-table{--team-col:142px;min-width:780px}
  .schedule-table th,.schedule-table td{height:66px;padding:6px 4px}
  .week-schedule{scroll-snap-type:x proximity}
  .schedule-table thead th:not(:first-child){scroll-snap-align:start}
  .week-toolbar{grid-template-columns:38px minmax(200px,1fr) 38px auto;gap:7px}
  .schedule-tools{padding-inline:12px}
}

@media(max-width:760px){
  .schedule-card{margin-inline:-14px;border-radius:0;border-left:0;border-right:0}
  .week-toolbar{grid-template-columns:38px minmax(0,1fr) 38px;gap:6px;padding:10px 12px}
  .week-toolbar .month-arrow{width:38px;height:38px;min-height:38px}
  .week-title{font-size:13px;font-weight:700;line-height:1.25}
  .week-toolbar #scheduleTodayBtn{grid-column:1/-1;width:100%;height:36px;min-height:36px;margin-top:1px}
  .schedule-tools{padding:0 12px 10px}
  .schedule-visibility-trigger{min-height:48px;padding:9px 11px}
  .schedule-owner-hint{display:none}
  .my-week-block{padding:11px 12px 12px}
  #myWeekShifts{gap:6px}
  .my-shift-chip{padding:8px 10px;font-size:11px}
  .week-schedule{overflow-x:auto;overflow-y:visible;scroll-snap-type:x mandatory;scroll-padding-left:104px;padding-bottom:5px}
  .schedule-table{--team-col:104px;min-width:664px;font-size:11px}
  .schedule-table th:first-child{width:104px;min-width:104px;max-width:104px;padding:7px 6px}
  .schedule-table th,.schedule-table td{height:62px;padding:5px 3px}
  .schedule-table thead th{height:auto;min-height:68px;padding:7px 3px}
  .schedule-table thead th:not(:first-child){scroll-snap-align:start}
  .schedule-weekday{font-size:10px}
  .schedule-date{font-size:10px;margin-top:3px!important}
  .coverage-gap-label{font-size:8.5px!important;margin-top:4px!important;gap:0}
  .schedule-person{font-size:10.5px}
  .schedule-me{font-size:9px}
  .shift-chip{min-width:46px;padding:5px 4px;font-size:10px;line-height:1.18;border-radius:7px}
  .shift-add-cell{min-width:32px;min-height:32px;font-size:18px}
}

@media(max-width:390px){
  .schedule-card{margin-inline:-14px}
  .week-toolbar{padding-inline:10px}
  .schedule-tools{padding-inline:10px}
  .schedule-table{--team-col:96px;min-width:628px}
  .schedule-table th:first-child{width:96px;min-width:96px;max-width:96px}
  .coverage-gap-label{font-size:8px!important}
  .shift-chip{min-width:43px;font-size:9.5px}
}

@media(pointer:coarse){
  .shift-chip.shift-editable,.shift-add-cell,.my-shift-chip,.schedule-visibility-trigger{touch-action:manipulation}
  .shift-chip.shift-editable{min-height:34px}
}


/* v34: full-week mobile schedule + compact contact reveal */
.team-contact{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:5px}
.contact-reveal{min-height:30px;padding:5px 9px;border-radius:9px;background:var(--soft);color:var(--brand);font-size:11px;font-weight:700}
.revealed-phone{font-size:12px;font-weight:650;color:var(--brand);text-decoration:none;white-space:nowrap}
.team-contact .phone-edit{font-size:10px}
.mobile-coverage-summary{display:none}

@media(max-width:760px){
  .week-schedule{overflow-x:hidden;overflow-y:visible;padding-bottom:0;scroll-snap-type:none}
  .schedule-table{--team-col:72px;width:100%;min-width:0;table-layout:fixed;font-size:9px}
  .schedule-table th:first-child{width:72px;min-width:72px;max-width:72px;padding:5px 3px}
  .schedule-table th,.schedule-table td{width:auto;height:54px;min-width:0;padding:3px 1px;overflow:hidden}
  .schedule-table thead th{min-height:48px;padding:5px 1px}
  .schedule-weekday{font-size:9px;line-height:1}
  .schedule-date{font-size:8px;margin-top:2px!important;line-height:1}
  .coverage-gap-label{display:none!important}
  .schedule-person{font-size:9px;line-height:1.1;-webkit-line-clamp:2;word-break:break-word}
  .schedule-me{font-size:7.5px;margin-top:2px}
  .shift-chip{width:100%;min-width:0;max-width:100%;padding:3px 1px;font-size:8px;line-height:1.05;border-radius:5px;gap:1px}
  .shift-chip span{display:block;white-space:nowrap}
  .shift-add-cell{width:26px;min-width:26px;min-height:26px;padding:0;border-radius:8px;font-size:16px}
  .week-off{font-size:10px}
  .mobile-coverage-summary{display:flex;gap:6px;overflow-x:auto;padding:8px 10px;border-bottom:1px solid var(--line);background:var(--surface2);scrollbar-width:none}
  .mobile-coverage-summary::-webkit-scrollbar{display:none}
  .mobile-gap-title{display:none}
  .mobile-gap-item{flex:0 0 auto;display:flex;align-items:center;gap:5px;padding:5px 7px;border:1px solid #edb6ae;border-radius:9px;background:#fff4f1;color:#9f3026;font-size:9px;line-height:1.05}
  .mobile-gap-item strong{font-size:9px;white-space:nowrap}
  .mobile-gap-item span{font-weight:700;white-space:nowrap}
  .schedule-table thead th.coverage-gap-head{box-shadow:inset 0 -2px 0 #c74a3d}
}
@media(max-width:390px){
  .schedule-table{--team-col:64px;font-size:8.5px}
  .schedule-table th:first-child{width:64px;min-width:64px;max-width:64px;padding-inline:2px}
  .schedule-person{font-size:8.5px}
  .schedule-weekday{font-size:8.5px}
  .schedule-date{font-size:7.5px}
  .shift-chip{font-size:7.4px;padding-inline:0}
}


/* v35: mobile schedule readability and balanced square day cells */
@media(max-width:760px){
  .week-schedule{overflow-x:hidden;overflow-y:visible;padding:0}
  .schedule-table{
    --team-col:92px;
    width:100%;
    min-width:0;
    table-layout:fixed;
    font-size:10px;
  }
  .schedule-table th:first-child{
    width:92px;
    min-width:92px;
    max-width:92px;
    padding:6px 5px;
  }
  .schedule-table th,.schedule-table td{
    height:clamp(42px,calc((100vw - 120px)/7),50px);
    min-height:42px;
    padding:3px 2px;
    overflow:hidden;
    vertical-align:middle;
  }
  .schedule-table tbody td{
    position:relative;
  }
  .schedule-table thead th{
    min-height:50px;
    height:50px;
    padding:6px 2px 5px;
  }
  .schedule-weekday{
    font-size:10px;
    line-height:1.05;
    font-weight:800;
    letter-spacing:.01em;
  }
  .schedule-date{
    font-size:9.5px;
    line-height:1.05;
    font-weight:700;
    margin-top:3px!important;
  }
  .schedule-person{
    font-size:12px;
    line-height:1.12;
    font-weight:800;
    color:var(--ink);
    -webkit-line-clamp:2;
    word-break:normal;
    overflow-wrap:anywhere;
  }
  .schedule-me{
    font-size:8.5px;
    line-height:1;
    margin-top:3px;
    font-weight:800;
  }
  .shift-chip{
    width:calc(100% - 6px);
    max-width:calc(100% - 6px);
    min-width:0;
    min-height:34px;
    margin:0 auto;
    padding:4px 2px;
    border-radius:8px;
    font-size:9.5px;
    line-height:1.05;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:2px;
    box-sizing:border-box;
  }
  .shift-chip span{
    display:block;
    white-space:nowrap;
    overflow:visible;
    text-overflow:clip;
  }
  .shift-add-cell{
    width:32px;
    min-width:32px;
    min-height:32px;
    height:32px;
    margin:auto;
    padding:0;
    border-radius:9px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    font-size:17px;
  }
  .week-off{font-size:12px;line-height:1}
  .mobile-coverage-summary{
    padding:8px 10px;
    gap:7px;
  }
  .mobile-gap-item{
    padding:6px 8px;
    font-size:10px;
    border-radius:10px;
  }
  .mobile-gap-item strong,.mobile-gap-item span{font-size:10px}
  .team-head{font-size:10px!important;font-weight:800!important}
}

@media(max-width:390px){
  .schedule-table{--team-col:84px;font-size:9.5px}
  .schedule-table th:first-child{width:84px;min-width:84px;max-width:84px;padding-inline:4px}
  .schedule-table th,.schedule-table td{height:clamp(40px,calc((100vw - 108px)/7),46px);min-height:40px}
  .schedule-person{font-size:11px}
  .schedule-weekday{font-size:9.5px}
  .schedule-date{font-size:9px}
  .shift-chip{width:calc(100% - 4px);max-width:calc(100% - 4px);min-height:32px;font-size:9px;padding:3px 1px;border-radius:7px}
  .shift-add-cell{width:30px;min-width:30px;height:30px;min-height:30px}
}

/* v36: centered schedule cards, claimable open shifts, tighter Team today */
.team-row{
  grid-template-columns:minmax(0,1fr) minmax(170px,.9fr);
  align-items:start;
  gap:12px;
  padding:12px 0;
}
.team-person-main{min-width:0}
.team-times{display:grid;grid-template-columns:1fr;gap:5px;align-self:start}
.team-times>div{min-width:0;line-height:1.25}
.team-times .cell-label{margin-bottom:1px;font-size:10px}
.team-times strong{display:block;font-size:12px;font-weight:650;line-height:1.25;overflow-wrap:anywhere}

.mobile-coverage-summary{
  display:flex;
  align-items:center;
  gap:7px;
  overflow-x:auto;
  padding:9px 12px;
  border-bottom:1px solid var(--line);
  background:var(--surface2);
  scrollbar-width:none;
}
.mobile-coverage-summary::-webkit-scrollbar{display:none}
.mobile-gap-item{
  appearance:none;
  -webkit-appearance:none;
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-height:36px;
  padding:7px 9px;
  border:1px solid #edb6ae;
  border-radius:11px;
  background:#fff4f1;
  color:#9f3026;
  font:inherit;
  line-height:1.05;
  cursor:pointer;
}
.mobile-gap-item strong,.mobile-gap-item span{font-size:10.5px;white-space:nowrap}
.mobile-gap-item em{font-style:normal;font-size:9px;font-weight:800;white-space:nowrap;padding:2px 5px;border-radius:999px;background:#fbd9d4}
.mobile-gap-item:active{transform:translateY(1px)}
.mobile-gap-title{display:none}

.schedule-table tbody td{text-align:center;vertical-align:middle}
.schedule-table tbody td .shift-chip{
  margin-left:auto;
  margin-right:auto;
  box-sizing:border-box;
}

@media(max-width:760px){
  .team-row,#appView[data-role="owner"] .team-row{
    grid-template-columns:minmax(0,1fr) minmax(112px,.78fr);
    gap:9px;
    padding:10px 0;
    align-items:start;
  }
  .team-row>div:nth-child(3),#appView[data-role="owner"] .team-row>div:nth-child(3){grid-column:auto}
  .team-times{gap:3px}
  .team-times .cell-label{font-size:9px;margin-bottom:0}
  .team-times strong{font-size:11px;line-height:1.18}
  .team-contact{margin-top:4px}

  .schedule-table tbody td{padding:2px 1px!important;overflow:hidden}
  .shift-chip{
    width:calc(100% - 10px)!important;
    max-width:calc(100% - 10px)!important;
    min-width:0!important;
    min-height:32px!important;
    margin:0 auto!important;
    padding:4px 1px!important;
    border-radius:8px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
  }
  .shift-chip span{max-width:100%;text-align:center}
  .shift-add-cell{display:inline-flex!important;margin:0 auto!important}
  .mobile-coverage-summary{padding:8px 10px;gap:6px}
  .mobile-gap-item{min-height:34px;padding:6px 8px;border-radius:10px}
}

@media(max-width:390px){
  .shift-chip{width:calc(100% - 8px)!important;max-width:calc(100% - 8px)!important;font-size:8.8px!important}
  .team-row,#appView[data-role="owner"] .team-row{grid-template-columns:minmax(0,1fr) 108px}
}

/* v38: notification center + moderated shift requests */
.notification-button{position:relative;width:38px;height:38px;min-width:38px;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:var(--brand);display:grid;place-items:center;padding:0;box-shadow:0 1px 0 rgba(0,0,0,.02)}
.notification-button .icon{width:19px;height:19px}
.notification-badge{position:absolute;top:-6px;right:-6px;min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:var(--danger);color:#fff;font-size:10px;font-weight:800;line-height:19px;text-align:center;border:2px solid var(--surface)}
.notifications-sheet{max-width:620px}
.notifications-subhead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:6px 0 10px}
.notifications-subhead h3{margin:0;font-size:15px}
.pending-claims-section{padding-bottom:18px;margin-bottom:18px;border-bottom:1px solid var(--line)}
.claim-review-card{border:1px solid var(--line);border-radius:15px;background:var(--surface2);padding:13px;margin-bottom:10px}
.claim-review-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:10px}
.claim-review-head>div{display:flex;flex-direction:column;gap:3px}
.claim-review-head strong{font-size:14px}
.claim-review-head span:not(.soft-chip){font-size:13px;color:var(--brown);font-weight:650}
.claim-candidates{display:grid;gap:8px}
.claim-candidate{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px;border-radius:12px;background:var(--surface);border:1px solid var(--line)}
.claim-candidate>div:first-child{min-width:0;display:flex;flex-direction:column;gap:3px}
.claim-candidate strong{font-size:13px}
.claim-candidate small{font-size:11px;color:var(--muted)}
.claim-actions{display:flex;gap:6px;flex:none}
.approve-claim,.reject-claim{min-height:34px;padding:7px 10px;border-radius:10px;font-size:11px;font-weight:700}
.approve-claim{background:var(--brand);color:var(--bg)}
.reject-claim{background:var(--dangerbg);color:var(--danger)}
.notifications-list{display:grid;gap:8px}
.notification-item{display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;padding:11px 12px;border:1px solid var(--line);border-radius:13px;background:var(--surface)}
.notification-item.unread{background:var(--surface2);border-color:#d8cbb8}
.notification-kind{width:32px;height:32px;border-radius:10px;background:var(--soft);display:grid;place-items:center;font-size:16px;font-weight:800;color:var(--brand)}
.notification-item strong{display:block;font-size:13px;margin-bottom:3px}
.notification-item p{margin:0 0 5px;font-size:12px;line-height:1.35;color:var(--brown)}
.notification-item small{font-size:10px;color:var(--muted)}
.notification-kind.claim_approved{background:var(--okbg);color:var(--ok)}
.notification-kind.claim_rejected{background:var(--dangerbg);color:var(--danger)}

@media(max-width:760px){
  .notification-button{width:36px;height:36px;min-width:36px;border-radius:11px}
  .team-heading-actions{max-width:none}
  .notifications-sheet{max-height:88dvh}
  .claim-candidate{align-items:flex-start;flex-direction:column}
  .claim-actions{width:100%}
  .claim-actions button{flex:1}
}

/* v39: push notification controls */
.push-settings{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 13px;margin:0 0 16px;border:1px solid var(--line);border-radius:14px;background:var(--surface2)}
.push-settings>div:first-child{min-width:0}.push-settings strong{display:block;font-size:13px;margin-bottom:3px}.push-settings p{margin:0;font-size:11px;line-height:1.35}
.push-actions{display:flex;gap:7px;flex:none}.push-actions button{min-height:34px;padding:7px 11px;border-radius:10px;font-size:11px;font-weight:750}
@media(max-width:560px){.push-settings{align-items:flex-start;flex-direction:column}.push-actions{width:100%}.push-actions button{flex:1}}

/* v42: adding shifts remains accessible on every selected week. */
.schedule-tools{display:flex;align-items:center;flex-wrap:wrap;gap:10px}
.schedule-tools .schedule-visibility-trigger{flex:1;min-width:180px}
.schedule-add-button{min-height:44px;white-space:nowrap;touch-action:manipulation}
@media(max-width:760px){
 .schedule-tools .schedule-add-button{width:100%}
 .schedule-tools .schedule-visibility-trigger{width:100%;min-width:0}
}

.schedule-claims{margin:16px 0;padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.schedule-claims-hint{font-size:13px;color:var(--muted);line-height:1.5;margin:0 0 12px}
.schedule-claims .claim-candidate strong{overflow-wrap:anywhere}
.schedule-claims .claim-actions button{min-height:44px}
.schedule-claims button:disabled{opacity:.6;cursor:wait}
@media(max-width:760px){.schedule-claims .claim-actions{display:flex;width:100%;gap:8px}.schedule-claims .claim-actions button{flex:1}}

.debt-person{border-top:1px solid var(--line);padding:10px 0}.debt-person summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;min-height:44px}.debt-month-row{display:flex;justify-content:space-between;gap:12px;padding:8px 0;font-size:13px}.debt-month-row small{display:block;color:var(--brown)}.debt-period-control label{display:block;font-size:13px}.debt-range{display:flex;flex-wrap:wrap;align-items:end;gap:10px;margin-top:10px}.debt-range label{flex:1;min-width:110px}.request-form-trigger{min-height:44px;padding:10px 0;color:var(--green);font-weight:700;cursor:pointer}.payment-request-card{border:1px solid var(--line);border-radius:14px;padding:14px;margin-top:12px;overflow-wrap:anywhere}.payment-request-urgent{border-color:var(--brown);background:var(--surface2)}.payment-request-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.payment-request-sum{font-size:22px;font-weight:700;margin:10px 0}.payment-request-sum small{display:block;font-size:12px;color:var(--muted);font-weight:400}.payment-request-dates{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:13px}.payment-request-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.payment-request-actions button{min-height:44px}.payment-confirm-label{display:flex;align-items:center;gap:10px;min-height:48px}.payment-confirm-label input{width:20px;height:20px;flex-shrink:0}@media(max-width:760px){.payment-request-actions button{flex:1}.payment-request-head{align-items:flex-start}.debt-range button{width:100%}.debt-person summary strong{min-width:0;overflow-wrap:anywhere}}

/* Applications stay in their employee/day cells for side-by-side planning. */
.schedule-applicants-toggle{display:flex;align-items:center;gap:10px;font-weight:600;margin:12px 0}.schedule-applicants-toggle input{width:20px;height:20px;accent-color:#214f3b}
.shift-claim-chip{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;width:100%;min-height:56px;margin:5px 0;padding:7px 5px;border:2px dashed #52755b;border-radius:12px;background:#f3f6ec;color:#214f3b;cursor:pointer;white-space:nowrap}.shift-claim-chip small{font-size:11px;font-weight:600}.shift-claim-chip strong{font-size:12px}.shift-claim-chip:hover,.shift-claim-chip:focus-visible{background:#e2edda;outline:2px solid #214f3b;outline-offset:2px}.shift-claim-chip:disabled{opacity:.55;cursor:wait}.owner-schedule-grid .schedule-table td{vertical-align:top}#scheduleClaimsList{font-size:13px;color:#77786c}#scheduleClaimReviewTime{font-size:17px;font-weight:600}

/* v46: same shift colors for both roles; readable day cells on phones. */
#scheduleWeek .schedule-table{width:100%;min-width:740px!important;table-layout:fixed;--team-col:124px}
#scheduleWeek .schedule-table th:first-child{width:124px!important;min-width:124px!important;max-width:124px!important}
#scheduleWeek .schedule-table tbody td{padding:5px!important;height:auto!important;min-height:54px;vertical-align:top}
#scheduleWeek .shift-chip,#scheduleWeek .shift-claim-chip{box-sizing:border-box;width:100%!important;max-width:100%!important;min-width:0!important;min-height:44px!important;margin:3px 0!important;padding:5px 3px!important;font-size:12px!important;line-height:1.25;display:flex!important;flex-direction:column;align-items:center;justify-content:center;border-radius:8px;gap:1px;font-family:inherit;overflow:hidden}
#scheduleWeek .shift-claim-chip{border:1.5px dashed #52755b;background:#f3f6ec;color:#214f3b;min-height:58px!important;white-space:normal}
#scheduleWeek .shift-claim-chip small{font-size:10px;line-height:1.2}#scheduleWeek .shift-claim-chip span{font-size:12px;line-height:1.25;white-space:nowrap;font-weight:650}
#scheduleWeek .shift-add-cell{padding:0!important;min-height:30px!important;min-width:30px!important;width:30px;height:30px;margin:3px auto!important}
#scheduleWeek .schedule-person{font-size:12px;line-height:1.3}#scheduleWeek .schedule-table thead th{font-size:12px}
.payment-excess-warning{padding:10px 12px;border:1px solid #c58b37;border-left:4px solid #bd7929;border-radius:9px;background:#fff1d7;color:#694016;font-size:13px;line-height:1.5;margin:10px 0;overflow-wrap:anywhere;font-weight:500}
@media(min-width:761px){#scheduleWeek .schedule-table{min-width:880px!important}#scheduleWeek .schedule-table th:first-child{width:160px!important;min-width:160px!important;max-width:160px!important}}

#scheduleWeek.week-schedule{overflow-x:auto!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;max-width:100%}

/* v47: identity colors and seven daily rows; no sideways scroll on phones. */
.employee-dot{display:inline-block;width:8px;height:8px;flex:0 0 8px;border-radius:50%;background:var(--employee-accent);margin-right:5px}.employee-mark{border-left:3px solid var(--employee-accent)!important;padding-left:10px}.employee-color{background:var(--employee-color)!important;color:var(--ink)!important}.staff-phone{display:flex;align-items:center;gap:5px;margin-top:7px;font-size:13px;color:var(--brand);overflow-wrap:anywhere}.staff-phone .icon{width:15px;height:15px}
.day-week{display:none}.day-row{display:grid;grid-template-columns:42px minmax(0,1fr);gap:8px;padding:8px;border:1px solid var(--line);border-radius:12px;background:var(--surface);min-width:0}.day-date{display:flex;flex-direction:column;align-items:center;gap:3px;justify-content:flex-start;padding:5px 0;font-size:13px;color:var(--brand)}.day-date span{font-size:19px;font-weight:650}.day-content{min-width:0;display:flex;flex-direction:column;gap:4px}.day-slot{display:flex;align-items:center;gap:6px;min-width:0;width:100%;min-height:32px;padding:6px 8px;border:0;border-radius:8px;text-align:left;font:inherit;box-sizing:border-box}.day-person{flex:1;min-width:0;overflow-wrap:anywhere;font-size:12px;font-weight:650;line-height:1.25}.day-time{flex:0 0 auto;font-size:11px;font-weight:500;white-space:nowrap;font-variant-numeric:tabular-nums}.day-request{border:1px dashed var(--employee-accent);background:var(--surface)!important;flex-wrap:wrap}.day-request small{color:var(--employee-accent);font-size:10px;font-weight:600}.day-date-button{border:0;background:transparent;cursor:pointer}.day-date-button:focus-visible,.day-slot:focus-visible,.day-gap:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.day-empty{font-size:11px;color:var(--muted);padding:5px 2px}.day-gap-list{display:flex;flex-direction:column;gap:3px}.day-gap{display:flex;justify-content:space-between;align-items:center;gap:6px;text-align:left;min-height:30px;padding:5px 7px;border:1px dashed #ca9e59;border-radius:7px;background:#fff4df;color:#795322;font-size:10px;line-height:1.25;white-space:normal}.day-gap small{flex-shrink:0;font-size:10px}.day-uncovered{border-color:#d5b783}.day-today .day-date{background:var(--okbg);border-radius:8px}.day-add{align-self:flex-end;font-size:11px;min-height:28px;padding:4px 8px;border:1px solid var(--line);border-radius:7px;background:transparent;color:var(--brand)}
@media(max-width:760px){#scheduleWeek.week-schedule{overflow:visible!important;width:100%;box-sizing:border-box;padding:8px}#scheduleWeek>.schedule-table,#scheduleWeek>.mobile-coverage-summary{display:none!important}#scheduleWeek>.day-week{display:flex;flex-direction:column;gap:6px}.schedule-claims{padding:10px 12px}.schedule-claims-hint,#scheduleClaimsList{font-size:11px}.schedule-applicants-toggle{font-size:12px;margin:8px 0}.day-row button{touch-action:manipulation}}
@media(max-width:350px){.day-row{grid-template-columns:35px minmax(0,1fr);gap:5px;padding:6px}.day-slot{flex-wrap:wrap}.day-person{flex-basis:100%}}

#scheduleWeek .shift-claim-chip{border-color:var(--employee-accent,#52755b)}.day-date small{font-size:12px;color:var(--muted)}

.day-header-claim{background:transparent;border:0;color:inherit;padding:0;min-height:40px;width:100%;font:inherit;cursor:pointer}

/* v48: the add action sits left of the date; inset identity stripe on Home. */
.day-row{grid-template-columns:66px minmax(0,1fr);gap:7px}.day-heading{display:grid;grid-template-columns:24px minmax(0,1fr);align-items:start;gap:3px}.day-add-left{display:grid;place-items:center;margin-top:7px;width:24px;height:28px;min-width:24px;min-height:28px;padding:0;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--brand);font-size:19px;line-height:1;touch-action:manipulation}.day-add-left:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.day-heading .day-date{padding-top:4px}.day-heading .day-date strong{font-size:12px}.day-heading .day-date span{font-size:18px}
#todayTeamList .team-row.employee-mark{position:relative;border-left:0!important;padding-left:16px!important}#todayTeamList .team-row.employee-mark::before{content:"";position:absolute;left:3px;top:10px;bottom:10px;width:3px;min-height:20px;border-radius:3px;background:var(--employee-accent)}
@media(max-width:350px){.day-row{grid-template-columns:60px minmax(0,1fr);gap:5px}.day-heading{grid-template-columns:22px minmax(0,1fr);gap:2px}.day-add-left{width:22px;min-width:22px;font-size:18px}}
/* v49: viewport-fitted mobile week, full day details remain available. */
.payment-request-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}
.payment-request-actions button{width:100%;min-width:0;min-height:42px;padding:9px 10px;font-size:13px;line-height:1.2;border-radius:9px;white-space:normal;word-break:normal;overflow-wrap:normal}
.payment-request-actions .primary{grid-column:1/-1;grid-row:1}
.payment-request-actions .text-button{border:1px solid var(--line);background:var(--surface)}
.payment-request-actions button:only-child{grid-column:1/-1}
.day-details{display:none}
#scheduleDayContent .day-content{display:flex;gap:8px}
#scheduleDayContent .day-slot{min-height:44px;white-space:normal}
@media(max-width:760px){
 body:has(#schedule.active) .app-header{min-height:52px;margin-bottom:6px}
 #schedule .schedule-card{margin:0;padding:0}
 #schedule .week-toolbar{padding:5px 8px;gap:4px;grid-template-columns:30px minmax(0,1fr) 30px auto}
 #schedule .week-toolbar button{min-height:30px;height:30px;font-size:11px;padding:4px}
 #schedule .week-title{font-size:12px}
 #schedule .schedule-tools{display:flex;align-items:center;padding:3px 8px;gap:6px;margin:0}
 #schedule .schedule-add-button,#schedule .schedule-owner-hint,#schedule .my-week-block{display:none!important}
 #schedule .schedule-visibility-trigger{min-height:30px;padding:3px 8px;width:auto;flex:1;font-size:11px;margin:0}
 #schedule .schedule-visibility-copy{display:flex;align-items:center;gap:6px}
 #schedule .schedule-visibility-copy strong,#schedule .schedule-visibility-copy small{font-size:10px}
 #schedule .schedule-claims{padding:2px 8px;border:0;margin:0}
 #schedule .schedule-claims .section-heading,#schedule .schedule-claims-hint,#schedule .schedule-claims .field-hint,#scheduleClaimsList{display:none}
 #schedule .schedule-applicants-toggle{font-size:11px;margin:3px 0;min-height:24px}
 #schedule .schedule-applicants-toggle input{width:16px;height:16px}
 #scheduleMessage:empty{display:none}
 #scheduleMessage{font-size:10px;margin:0;padding:0 8px}
 #scheduleWeek.week-schedule{padding:4px 6px;overflow:hidden!important;min-width:0}
 #scheduleWeek>.day-week{height:var(--week-height,calc(100dvh - 230px));display:grid;grid-template-rows:repeat(7,minmax(0,1fr));gap:4px}
 #scheduleWeek .day-row{position:relative;grid-template-columns:62px minmax(0,1fr);gap:5px;padding:4px 5px 12px;min-height:0;border-radius:8px;align-items:center;overflow:hidden}
 #scheduleWeek .day-date{gap:1px;padding:0;font-size:11px}
 #scheduleWeek .day-date strong{font-size:11px}
 #scheduleWeek .day-date span{font-size:17px;line-height:1.1}
 #scheduleWeek .day-heading{grid-template-columns:24px minmax(0,1fr);gap:3px;align-items:center}
 #scheduleWeek .day-add-left{margin:0;min-height:30px;height:30px}
 #scheduleWeek .day-content{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px;align-items:center;min-height:0}
 #scheduleWeek .day-slot{display:flex;flex-direction:column;align-items:flex-start;gap:1px;min-height:30px;padding:3px 5px;width:100%;flex-wrap:nowrap;border-radius:5px}
 #scheduleWeek .day-person{width:100%;font-size:11px;line-height:1.2;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;flex:none}
 #scheduleWeek .day-time{font-size:10px;line-height:1.2}
 #scheduleWeek .day-request small{font-size:9px;line-height:1}
 #scheduleWeek .day-content>.day-slot:nth-child(n+3){display:none}
 #scheduleWeek .day-empty{grid-column:1/-1;padding:0;font-size:10px}
 #scheduleWeek .day-gap-list{grid-column:1/-1}
 #scheduleWeek .day-gap-list>.day-gap:nth-child(n+2){display:none}
 #scheduleWeek .day-gap{grid-column:1/-1;min-height:22px;padding:2px 4px;font-size:9px;line-height:1.15;gap:3px}
 #scheduleWeek .day-gap small{font-size:9px}
 #scheduleWeek .day-content:has(>.day-gap)>.day-gap-list{display:none}
 #scheduleWeek .day-details{display:block;position:absolute;right:5px;bottom:1px;min-height:12px;height:12px;padding:0 3px;background:transparent;border:0;color:var(--brand);font-size:9px;line-height:12px}
 #scheduleWeek.week-tight .day-content:has(>.day-slot)>.day-gap-list{display:none}
 #scheduleWeek.week-tight .day-row{padding-top:2px;padding-bottom:11px;gap:3px}
 #scheduleWeek.week-tight .day-request small{display:none}
 #scheduleWeek.week-tight .day-slot{padding:2px 4px;min-height:27px}
 #scheduleWeek .day-uncovered{border-color:#BF8A32;box-shadow:inset 3px 0 #DEB15B}
 #scheduleWeek .day-uncovered .day-details{color:#865B18}
 #scheduleDayContent .day-content{display:flex;flex-direction:column}
 #scheduleDayContent .day-person{white-space:normal;font-size:14px}
 #scheduleDayContent .day-time{font-size:12px}
}
/* v51: readable controls, all requests and coverage chips stay visible. */
@media(max-width:760px){
 body:has(#schedule.active){overflow:hidden}
 body:has(#schedule.active) .shell{padding-bottom:0}
 body:has(#schedule.active) .app-header{min-height:48px;margin-bottom:2px;padding-bottom:3px}
 #schedule .week-toolbar{grid-template-columns:34px minmax(0,1fr) 34px 64px;gap:5px;padding:5px 6px;background:var(--surface2);border-bottom:1px solid var(--line)}
 #schedule .week-toolbar #scheduleTodayBtn{grid-column:4;grid-row:1;width:64px;height:34px;min-height:34px;margin:0;padding:3px;font-size:12px;background:var(--brand);color:var(--bg);border:1px solid var(--brand)}
 #schedule .week-toolbar .month-arrow{width:34px;height:34px;min-height:34px;padding:5px;background:var(--surface);border-color:var(--brown)}
 #schedule .week-toolbar #scheduleWeekTitle{font-size:12px;font-weight:700;line-height:1.2;color:var(--ink)}
 #schedule .schedule-tools{padding:2px 6px;border:0;min-height:0}
 #schedule .schedule-tools .schedule-visibility-trigger{width:auto;min-width:0;max-width:none;min-height:32px;padding:4px 8px;gap:5px;border-radius:7px;background:var(--surface2);border:1px solid var(--brown)}
 #schedule .schedule-visibility-copy{flex-direction:row;gap:5px}
 #schedule .schedule-visibility-copy strong{font-size:12px;color:var(--ink)}
 #schedule .schedule-visibility-copy small{font-size:10px}
 #schedule .schedule-visibility-trigger>.icon{width:14px;height:14px}
 #schedule .schedule-claims{padding:0 6px}
 #schedule .schedule-applicants-toggle{gap:6px;min-height:30px;margin:0;font-size:12px;font-weight:600;color:var(--brown)}
 #schedule .schedule-applicants-toggle input{width:15px;height:15px;min-height:15px;padding:0;flex:0 0 15px}
 #scheduleWeek.week-schedule{padding:2px 6px;overflow:hidden!important}
 #scheduleWeek>.day-week{gap:3px;display:grid;min-height:0}
 #scheduleWeek .day-row{display:grid;grid-template-columns:56px minmax(0,1fr);grid-template-rows:minmax(0,1fr) 17px;gap:2px 4px;padding:3px 4px;align-items:center;overflow:hidden}
 #scheduleWeek .day-heading,#scheduleWeek .day-date{grid-column:1;grid-row:1/-1}
 #scheduleWeek .day-heading{grid-template-columns:22px minmax(0,1fr);gap:2px}
 #scheduleWeek .day-heading .day-date{grid-column:2;grid-row:1;padding:0}
 #scheduleWeek .day-add-left{width:22px;min-width:22px;height:28px;min-height:28px;font-size:18px;margin:0}
 #scheduleWeek .day-content{grid-column:2;grid-row:1;display:grid;grid-template-columns:repeat(var(--day-columns,2),minmax(0,1fr));grid-auto-rows:minmax(0,1fr);align-self:stretch;align-content:stretch;gap:3px;min-height:0;overflow:hidden}
 #scheduleWeek .day-content>.day-slot:not(.day-request){display:flex!important}
 #scheduleWeek .day-slot{min-height:0!important;height:100%;padding:2px 4px!important;gap:1px;justify-content:center;overflow:hidden}
 #scheduleWeek .day-person{font-size:11px;font-weight:650;line-height:1.15;flex:none;flex-basis:auto}
 #scheduleWeek .day-time{font-size:9px;line-height:1.15}
 #scheduleWeek .day-content>.day-request{display:flex}
 #scheduleWeek .day-content>.day-slot:nth-child(n){display:flex!important}
 #scheduleWeek .day-request small{display:none}
 #scheduleWeek .day-content>.day-gap-list{display:contents!important}
 #scheduleWeek .day-gap-list>.day-gap:nth-child(n){display:flex!important;grid-column:auto;flex-direction:column;align-items:flex-start;justify-content:center;min-height:0;height:100%;padding:2px 4px;gap:1px;border-radius:5px;font-size:9px;line-height:1.15;box-sizing:border-box;overflow:hidden}
 #scheduleWeek .day-gap-list>.day-gap span{font-weight:650}
 #scheduleWeek .day-gap-list>.day-gap small{font-size:8px;line-height:1.1}
 #scheduleWeek .day-empty{align-self:center;font-size:10px;padding:0;grid-column:1/-1}
 #scheduleWeek .day-content>.day-gap{min-height:0;height:100%;font-size:10px;padding:2px 4px;grid-column:1/-1}
 #scheduleWeek .day-details{position:static;grid-column:2;grid-row:2;justify-self:stretch;text-align:right;display:block;min-height:17px;height:17px;padding:0 3px;border:0;font-size:9px;line-height:17px;background:transparent}
 #scheduleWeek.week-tight .day-row{padding:2px 4px}
 #scheduleWeek .day-uncovered .day-details{background:#FFF0D0;border-radius:3px;color:#805516}
 #scheduleDayContent .day-content>.day-slot,#scheduleDayContent .day-gap-list{display:flex}
 #scheduleDayContent .day-content>.day-slot{flex-direction:row;flex-wrap:wrap;min-height:44px;padding:8px}
 #managePayroll .payroll-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px;margin:8px 0}
 #managePayroll .payroll-toolbar>div{min-width:0;flex-basis:auto}
 #managePayroll .payroll-toolbar label{margin:0 0 4px}
 #managePayroll .payroll-toolbar input{min-height:42px;padding:7px 9px;border-radius:8px}
 #managePayroll .payroll-toolbar #addPayrollPaymentBtn{min-height:42px;height:42px;width:auto;padding:8px 12px;font-size:13px;border-radius:8px}
 #managePayroll .payroll-card-head{align-items:flex-start;gap:8px;flex-wrap:wrap}
 .payroll-card-actions{display:flex;gap:5px;flex-wrap:wrap}
 #managePayroll .payroll-card-actions button{min-height:36px;padding:6px 9px;font-size:12px;border-radius:7px}
 #jobChangeModal #saveJobChange,#jobChangeModal #jobSingleShift{width:100%;min-height:42px;padding:8px 10px;font-size:13px;margin-top:8px}
}
/* v52: one shared chip geometry; no repeated day captions. */
#scheduleTodayBtn{background:var(--brand);color:var(--bg);border-color:var(--brand)}
@media(max-width:760px){
 #schedule .schedule-visibility-copy small{display:none}
 #schedule .schedule-claims:not([hidden]) #scheduleClaimsList{display:block}
 #scheduleWeek>.day-week{gap:4px}
 #scheduleWeek .day-row{grid-template-rows:minmax(0,1fr);padding:3px 4px;gap:0 5px;border-radius:10px}
 #scheduleWeek.week-tight .day-row{padding:3px 4px}
 #scheduleWeek .day-content{grid-auto-rows:var(--day-chip-height);gap:0 4px;align-content:start}
 #scheduleWeek .day-slot,#scheduleWeek .day-gap-list>.day-gap:nth-child(n){height:calc(var(--day-chip-height) - 4px);min-height:0!important;align-self:center;flex-direction:column;align-items:flex-start;justify-content:center;padding:3px 5px!important;border-radius:6px;gap:2px;overflow:hidden}
 #scheduleWeek .day-slot{border:1px solid transparent}
 #scheduleWeek .day-request{border:1px dashed var(--employee-accent)}
 #scheduleWeek .day-person,#scheduleWeek .day-gap-list>.day-gap .day-person{font-size:11px;line-height:1.15;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%;flex:none}
 #scheduleWeek .day-time,#scheduleWeek .day-gap-list>.day-gap .day-time{font-size:10px;line-height:1.15;font-weight:500;white-space:nowrap;flex:none}
 #scheduleWeek .day-request small{display:none}
 #scheduleWeek .day-uncovered{box-shadow:inset 2px 0 #DEB15B}
 #scheduleWeek .day-heading .day-date{border-radius:5px;min-height:34px}
 #scheduleWeek .day-date-button{min-height:34px}
}

/* v53: only the coverage chip colors change; v52 layout is frozen. */
.day-gap{background:#B94336!important;color:#FFF8ED!important;border-color:#8D2E24!important}
.timesheet-people{display:grid;gap:9px;margin-top:14px}
.timesheet-person{min-width:0;border:1px solid var(--line);border-radius:11px;background:var(--surface);padding:0 12px}
.timesheet-person>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:52px;cursor:pointer;list-style:none}
.timesheet-person>summary::-webkit-details-marker{display:none}
.timesheet-person>summary::after{content:'›';font-size:24px;color:var(--brown);transition:transform .15s}
.timesheet-person[open]>summary::after{transform:rotate(90deg)}
.timesheet-person-name{min-width:0;flex:1;font-weight:650;overflow-wrap:anywhere}
.timesheet-person-meta{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;font-size:13px}
.timesheet-person-meta strong{white-space:nowrap}
.timesheet-days{display:grid;gap:8px;padding:0 0 12px}
.timesheet-day{border-top:1px solid var(--line);padding:10px 0 2px;min-width:0}
.timesheet-day-head{display:flex;justify-content:space-between;gap:8px;font-size:13px;margin-bottom:8px}
.timesheet-day-times{display:grid;grid-template-columns:1fr 1fr;gap:10px;font-size:13px}
.timesheet-day-times strong{font-weight:550;overflow-wrap:anywhere}
.timesheet-day-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px;font-size:12px;color:var(--muted)}
.timesheet-day.needs-attention .timesheet-day-footer>span{color:var(--warn)}
.timesheet-day-footer button{min-height:36px;padding:7px 10px;flex-shrink:0;border-radius:8px;background:var(--soft);color:var(--brand)}
#timesheet .timesheet-toolbar{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:10px;align-items:end}
#timesheet .timesheet-attention{grid-column:1/-1;display:flex;align-items:center;gap:8px;margin:0;min-height:36px;font-size:13px}
#timesheet .timesheet-attention input{width:18px;height:18px;min-height:18px;padding:0;flex:0 0 18px;accent-color:var(--brand)}
#timesheet .timesheet-toolbar input[type=date],#timesheet .timesheet-toolbar select{min-height:42px;padding:8px;font-size:14px;border-radius:9px}
@media(max-width:760px){
 #timesheet .timesheet-toolbar{grid-template-columns:1fr 1fr;gap:8px}
 #timesheet .timesheet-toolbar>div:nth-child(3){grid-column:1/-1}
 .timesheet-person>summary{min-height:48px;font-size:14px}
 .timesheet-person-meta{font-size:12px;gap:5px}
 .timesheet-person-meta .badge{font-size:10px}
 .timesheet-day-footer{align-items:flex-start}
}
/* v54: requested homepage placement only; schedule geometry stays fixed. */
.team-heading-caption{display:flex;align-items:baseline;flex-wrap:wrap;gap:5px 10px;margin-bottom:7px}
#today .team-today-card{grid-column:1/-1}
.team-heading-caption .eyebrow{margin:0}
.team-today-date{font-size:12px;color:var(--muted);line-height:1.3}
#todayTeamList .team-row.has-inline-clock{grid-template-columns:minmax(0,1fr) 96px minmax(108px,.8fr);align-items:center;gap:8px}
.team-clock-slot{display:none}
.has-inline-clock .team-clock-slot{display:flex;align-items:center;justify-content:center;min-width:0}
.team-clock-slot .clock-button{width:96px;min-height:40px;height:auto;padding:8px 6px;font-size:12px;line-height:1.2;font-weight:600;border-radius:9px;white-space:normal;margin:0}
#teamClockMessageSlot .message{margin:8px 0 0}
@media(max-width:400px){
 #todayTeamList .team-row.has-inline-clock{grid-template-columns:minmax(0,1fr) 78px minmax(88px,.8fr);gap:5px}
 .team-clock-slot .clock-button{width:78px;min-height:40px;padding:7px 4px;font-size:11px}
 .team-today-date{font-size:11px}
}

#scheduleClaimReviewModal .claim-time-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}
#scheduleClaimReviewModal .claim-time-fields label{min-width:0}
#scheduleClaimReviewModal input[type=time]{width:100%;min-width:0;box-sizing:border-box}

/* Version 1: payment requests disclosure on the home screen. */
.payroll-requests-trigger{display:flex;align-items:center;gap:10px;min-height:44px;cursor:pointer;list-style:none;color:var(--brand);font-weight:600}
.payroll-requests-trigger::-webkit-details-marker{display:none}
.payroll-requests-label{display:flex;align-items:center;gap:10px;flex:1;min-width:0;font-size:18px;line-height:1.3}
.payroll-requests-label>[data-icon],.payroll-requests-chevron{flex:none}
.payroll-requests-trigger .soft-chip{flex:none;font-size:13px}
.payroll-requests-chevron{transition:transform .15s ease}
#payrollRequestsDisclosure[open]>.payroll-requests-trigger .payroll-requests-chevron{transform:rotate(180deg)}
#payrollRequestsDisclosure[open]>.payroll-requests-trigger{padding-bottom:12px;border-bottom:1px solid var(--line)}
.payroll-requests-trigger:focus-visible{outline:2px solid var(--brand);outline-offset:5px;border-radius:4px}
@media(prefers-reduced-motion:reduce){.payroll-requests-chevron{transition:none}}

/* Prevent intrinsic Safari date/time widths overflowing the shift editor. */
#manageSchedule .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
#manageSchedule .form-grid>div{min-width:0;max-width:100%}
#manageSchedule input,#manageSchedule select{width:100%;min-width:0;max-width:100%;box-sizing:border-box}
#manageSchedule input[type=date],#manageSchedule input[type=time]{display:block;-webkit-appearance:none;appearance:none;padding-inline:10px;overflow:hidden}
#manageSchedule input::-webkit-date-and-time-value{min-width:0;text-align:center}
#manageSchedule input::-webkit-datetime-edit{min-width:0;padding:0}
.day-row.day-today{border-color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand)}
.day-today .day-date{background:var(--brand);color:var(--bg)}
.schedule-table td.today-cell{box-shadow:inset 0 0 0 1px var(--brand)}

/* Desktop schedule: one weekly board, with the existing day actions. */
.schedule-calendar-access{display:flex;justify-content:flex-end;padding:6px 12px;border-bottom:1px solid var(--line)}
.schedule-calendar-access button{display:flex;align-items:center;gap:6px;min-height:32px;padding:5px 10px;font-size:12px}
.schedule-calendar-access .icon{width:16px;height:16px}
.calendar-connect-link{display:block;text-align:center;text-decoration:none;margin-top:12px}
.calendar-instructions{margin-top:14px;font-size:13px;line-height:1.5}
.calendar-instructions summary{cursor:pointer;color:var(--brand);font-weight:600;min-height:36px}
.calendar-instructions ol{padding-left:20px;margin:6px 0}
.calendar-instructions li{margin-bottom:8px}
.calendar-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
#scheduleCalendarModal input{font-size:13px}
@media(min-width:761px){
 body:has(#schedule.active) .shell{max-width:1480px}
 #schedule .schedule-card{overflow:hidden}
 #schedule .week-toolbar{grid-template-columns:40px minmax(0,1fr) 40px 100px;gap:12px;padding:16px;background:var(--surface2);border-bottom:1px solid var(--line)}
 #schedule .week-title{font-size:18px;font-weight:650}
 #schedule .week-toolbar button{height:40px;min-height:40px}
 #schedule .week-toolbar #scheduleTodayBtn{background:var(--brand);color:var(--bg);border-color:var(--brand)}
 #schedule .schedule-tools{padding:12px 16px;gap:12px;justify-content:space-between;border-bottom:1px solid var(--line)}
 #schedule .schedule-tools .schedule-visibility-trigger{flex:0 1 300px;min-height:44px;max-width:300px;padding:8px 12px}
 #schedule .schedule-owner-hint,#schedule .my-week-block{display:none}
 #scheduleWeek.week-schedule{padding:16px;overflow:visible!important}
 #scheduleWeek>.schedule-table,#scheduleWeek>.mobile-coverage-summary{display:none!important}
 #scheduleWeek>.day-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:none!important;gap:10px;height:auto;align-items:start}
 #scheduleWeek .day-row{display:flex;flex-direction:column;gap:12px;padding:10px;min-width:0;min-height:180px;border-radius:12px;overflow:visible}
 #scheduleWeek .day-heading{display:flex;align-items:center;gap:8px;width:100%;min-height:40px}
 #scheduleWeek .day-add-left{margin:0;width:28px;min-width:28px;height:32px;min-height:32px;border-color:var(--line)}
 #scheduleWeek .day-date{flex:1;flex-direction:row;align-items:center;justify-content:center;gap:8px;width:100%;min-height:40px;padding:5px;font-size:14px}
 #scheduleWeek .day-date strong{font-size:14px}
 #scheduleWeek .day-date span{font-size:20px}
 #scheduleWeek .day-content{display:grid;grid-template-columns:minmax(0,1fr);grid-auto-rows:auto;gap:8px;width:100%;min-width:0;align-content:start}
 #scheduleWeek .day-slot,#scheduleWeek .day-gap{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:4px;width:100%;min-width:0;min-height:72px;height:auto;padding:9px;border-radius:8px;text-align:left;overflow:visible}
 #scheduleWeek .day-person{flex:none;width:100%;font-size:14px;line-height:1.25;white-space:normal;overflow-wrap:normal;word-break:normal}
 #scheduleWeek .day-time{font-size:12px;line-height:1.25;font-variant-numeric:tabular-nums}
 #scheduleWeek .day-request{border:1.5px dashed var(--employee-accent);background:var(--surface)!important}
 #scheduleWeek .day-request small{display:block;font-size:11px;line-height:1.2}
 #scheduleWeek .day-gap-list{display:contents}
 #scheduleWeek .day-empty{padding:10px 0;font-size:12px;line-height:1.4;text-align:center}
 #scheduleWeek .day-today{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand)}
 #scheduleWeek .day-today .day-date{background:var(--brand);color:var(--bg)}
 #scheduleWeek .day-slot:hover,#scheduleWeek .day-gap:hover{filter:brightness(.97)}
 #scheduleWeek .day-slot:focus-visible,#scheduleWeek .day-gap:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
}
@media(min-width:761px) and (max-width:1100px){
 #scheduleWeek>.day-week{grid-template-columns:minmax(0,1fr);gap:8px}
 #scheduleWeek .day-row{display:grid;grid-template-columns:100px minmax(0,1fr);gap:12px;min-height:0;align-items:start}
 #scheduleWeek .day-content{grid-template-columns:repeat(3,minmax(0,1fr))}
 #scheduleWeek .day-empty{grid-column:1/-1;text-align:left}
}
#claimShiftModal .form-grid>div{min-width:0}
#claimShiftModal input[type=date],#claimShiftModal input[type=time]{display:block;width:100%;min-width:0;max-width:100%;-webkit-appearance:none;appearance:none;overflow:hidden}
#claimShiftModal input::-webkit-date-and-time-value{min-width:0}
