:root{color-scheme:light;--ink: #252525;--muted: #686363;--line: #d8d1cf;--paper: #efecec;--surface: #ffffff;--charcoal: #2c332f;--charcoal-soft: #424a45;--blush: #d3b49f;--blush-soft: #eee1d9;--rose: #8a6767;--gold: #cf8e3d;--gold-soft: #f2e3cf;--danger: #9d493f;--ok: #4c705d;--shadow: 0 14px 34px rgba(44, 51, 47, .09);--radius: 7px;font-family:Quattrocento Sans,Helvetica Neue,Arial,sans-serif}.inventory-toolbar,.scan-actions{display:flex;align-items:center;justify-content:space-between;gap:18px}.inventory-toolbar p{margin:0}.inventory-stock-grid,.meal-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px}.stock-card,.meal-card{min-width:0;padding:20px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.stock-quantity{display:block;margin:24px 0;font-family:Trirong,Georgia,serif;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:400}.stock-meta{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:0}.stock-meta div{padding-top:10px;border-top:1px solid var(--line)}.stock-meta dt{color:var(--muted);font-size:.75rem;text-transform:uppercase}.stock-meta dd{margin:4px 0 0;font-weight:700}.stock-definitions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;overflow:hidden;border:1px solid var(--line);border-radius:calc(var(--radius) + 2px);background:var(--line)}.stock-definitions div{display:grid;gap:5px;padding:15px;background:#fff}.stock-definitions strong{color:var(--rose);font-size:.74rem;letter-spacing:.06em;text-transform:uppercase}.stock-definitions span,.stock-group-heading span{color:var(--muted);font-size:.82rem;line-height:1.4}.stock-controls{display:grid;grid-template-columns:minmax(240px,2fr) repeat(2,minmax(150px,1fr));gap:12px;padding:16px;border:1px solid var(--line);border-radius:var(--radius);background:#fff}.stock-groups,.stock-group{display:grid;gap:20px}.stock-group-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:8px;border-bottom:1px solid var(--line)}.stock-group-heading p{margin:0}.inventory-form-panel,.inventory-empty,.daily-summary{padding:24px}.inventory-empty{min-height:230px;display:grid;align-content:center;justify-items:start}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}.scan-line{border-left:4px solid var(--blush)}.delivery-intro{display:grid;gap:10px}.delivery-intro>p,.review-explainer{margin:0;color:var(--muted);line-height:1.55}.delivery-mode-switch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:8px}.delivery-mode-switch button{display:grid;gap:5px;padding:18px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;color:var(--ink);cursor:pointer;text-align:left}.delivery-mode-switch button span{color:var(--muted);font-size:.84rem;line-height:1.4}.delivery-mode-switch button.active{border-color:var(--charcoal);background:var(--charcoal);color:#fff;box-shadow:var(--shadow)}.delivery-mode-switch button.active span{color:#ffffffbf}.manual-product-entry{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:18px;border:1px solid var(--line);border-radius:var(--radius);background:#faf8f7}.capture-field{min-width:0;margin:0;padding:16px;border:1px solid var(--line);border-radius:var(--radius)}.capture-field legend{padding:0 6px;font-weight:700}.capture-field>p{margin:0 0 12px;color:var(--muted)}.capture-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.capture-option{display:grid;align-content:start;gap:8px;min-width:0;padding:16px;border:1px solid var(--charcoal);border-radius:var(--radius);background:var(--charcoal);color:#fff;cursor:pointer}.capture-option.secondary{border-color:var(--line);background:var(--blush-soft);color:var(--ink)}.capture-option>span:not(.capture-status){color:#ffffffb8;font-size:.84rem;line-height:1.4}.capture-option.secondary>span:not(.capture-status){color:var(--muted)}.capture-button{display:grid;gap:4px;margin-top:3px;padding:9px 11px;border-radius:5px;background:#fff;color:var(--charcoal);cursor:pointer;font-weight:700}.capture-button.ghost{background:#ffffff21;color:#fff}.capture-link{justify-self:start;margin-top:4px;padding:9px 11px;border-radius:5px;background:var(--charcoal);color:#fff;font-weight:700}.capture-status{display:block;min-width:0;overflow:hidden;color:inherit;font-size:.75rem;font-weight:400;opacity:.78;text-overflow:ellipsis;white-space:nowrap}.capture-preview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;margin-top:14px}.capture-preview{min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:#fff}.capture-preview>img,.pdf-preview{width:100%;height:150px;background:#e8e3e0}.capture-preview>img{display:block;object-fit:cover}.pdf-preview{display:grid;place-content:center;justify-items:center;color:var(--rose)}.pdf-preview strong{font-family:Trirong,Georgia,serif;font-size:2rem}.pdf-preview span{color:var(--muted);font-size:.75rem;text-transform:uppercase}.capture-preview-meta{display:grid;gap:3px;min-width:0;padding:11px 12px 6px}.capture-preview-meta strong{overflow:hidden;font-size:.82rem;text-overflow:ellipsis;white-space:nowrap}.capture-preview-meta span{color:var(--muted);font-size:.75rem}.capture-preview-actions{display:flex;gap:6px;padding:7px 12px 12px}.capture-preview-actions .button{flex:1 1 0}.capture-empty{margin-top:14px;padding:13px;border:1px dashed var(--line);border-radius:var(--radius);color:var(--muted);font-size:.84rem;text-align:center}.clear-captures{margin-top:10px}.capture-submit{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-top:4px}.capture-submit span{color:var(--muted);font-size:.85rem}.scan-ai-contract{display:grid;gap:5px;padding:13px 15px;border-left:4px solid var(--ok);border-radius:var(--radius);background:#edf4f0}.manual-contract{border-left-color:var(--charcoal);background:var(--blush-soft)}.scan-line-actions{display:flex;justify-content:space-between;gap:10px}.add-delivery-line{justify-self:start}.danger-button{border-color:#9d493f59;color:var(--danger)}.scan-ai-contract span{color:var(--muted);font-size:.86rem;line-height:1.45}.subhead{margin:24px 0 10px;font-family:inherit;font-weight:700}.scan-rows{display:grid;gap:10px;margin-bottom:12px}.scan-row{display:grid;grid-template-columns:minmax(180px,2fr) repeat(2,minmax(110px,1fr)) auto;align-items:end;gap:10px;padding:12px;border:1px solid var(--line);border-radius:var(--radius);background:#f8f6f5}.scan-row.expiry{grid-template-columns:minmax(160px,1.5fr) repeat(4,minmax(100px,1fr)) auto auto}.field.compact{font-size:.8rem}.icon-button{width:36px;height:36px;border-radius:50%;background:var(--blush-soft);color:var(--danger);cursor:pointer;font-size:1.25rem}.confidence{color:var(--ok);font-size:.8rem;font-weight:700}.confidence.low{color:var(--danger)}.validation-box{padding:18px 22px}.validation-box.danger{border-left:4px solid var(--danger)}.validation-box.pending{border-left:4px solid var(--gold)}.validation-box ul{margin-bottom:0}.meal-card{display:grid;gap:14px;padding:0;overflow:hidden}.meal-card.selected{border-color:var(--ok);box-shadow:0 0 0 2px #4c705d2e}.meal-main{display:grid;gap:8px;min-height:150px;padding:24px;align-content:center;background:var(--surface);cursor:pointer;text-align:left}.meal-main strong{font-family:Trirong,Georgia,serif;font-size:clamp(1.6rem,4vw,2.3rem);line-height:1.1}.meal-main span{color:var(--muted)}.meal-stepper{display:grid;grid-template-columns:48px 1fr 48px;align-items:center;border-top:1px solid var(--line);text-align:center}.meal-stepper button{height:48px;background:var(--blush-soft);cursor:pointer;font-size:1.25rem}.meal-stepper button:disabled{cursor:not-allowed;opacity:.4}.meal-selection-summary,.meal-history{padding:22px}.meal-summary-lines,.meal-history-list{display:grid;gap:10px;margin:18px 0}.meal-summary-lines>div,.meal-history-item{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px;border:1px solid var(--line);border-radius:var(--radius);background:#faf9f8}.meal-summary-lines span,.meal-history-item>div:first-child{display:grid;gap:4px}.meal-summary-lines small,.meal-history-item small,.meal-history-item p{margin:0;color:var(--muted)}.meal-history-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.summary-message{max-width:70ch;white-space:pre-line}.summary-items{display:grid;gap:10px;margin-top:20px}.summary-items article{display:grid;grid-template-columns:90px minmax(140px,1fr) minmax(180px,1fr) minmax(180px,1fr);align-items:center;gap:12px;padding:14px;border:1px solid var(--line);border-radius:var(--radius)}.summary-items p{margin:0}.urgency{font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.urgency.critical,.urgency.high{color:var(--danger)}.urgency.medium{color:var(--gold)}.inventory-morning{z-index:1000}.morning-dialog{width:min(100%,650px);overflow:hidden;border-radius:16px}.morning-dialog-body{display:grid;grid-template-columns:auto minmax(0,1fr);gap:20px;padding:34px 34px 26px}.morning-dialog-icon{width:54px;height:54px;display:grid;place-items:center;border-radius:50%;background:var(--gold-soft);color:var(--gold);font-size:1.55rem}.morning-dialog h3{max-width:18ch;margin-top:8px;font-size:clamp(1.75rem,5vw,2.35rem);line-height:1.15}.morning-dialog-copy{max-width:55ch;margin:16px 0 0;color:var(--muted)}.morning-dialog-note{margin:18px 0 0;padding:12px 14px;border-radius:var(--radius);background:var(--blush-soft);color:var(--charcoal);font-size:.86rem}.morning-dialog-actions{margin:0;padding:18px 34px 26px;background:#faf8f7}.workbook-preview{display:grid;gap:18px;margin-top:22px;padding-top:22px;border-top:1px solid var(--line)}.preview-counts{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px}.preview-counts span{display:grid;gap:3px;padding:12px;border-radius:var(--radius);background:var(--blush-soft);color:var(--muted);font-size:.75rem;text-transform:capitalize}.preview-counts strong{color:var(--ink);font-family:Trirong,Georgia,serif;font-size:1.5rem;font-weight:400}.square-id-list{display:grid;gap:10px}.square-id-list article{display:grid;grid-template-columns:minmax(180px,1fr) minmax(220px,auto);gap:16px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:var(--radius);background:#fff}.square-id-list article div{display:grid;gap:4px}.square-id-list small{color:var(--muted)}.square-id-list code{overflow-wrap:anywhere;padding:8px 10px;border-radius:8px;background:var(--blush-soft);color:var(--ink)}@media(max-width:820px){.inventory-toolbar,.scan-actions{align-items:stretch;flex-direction:column}.scan-row,.scan-row.expiry,.summary-items article,.square-id-list article{grid-template-columns:1fr}.stock-definitions,.stock-controls,.capture-options,.delivery-mode-switch,.manual-product-entry{grid-template-columns:1fr}.capture-submit,.scan-line-actions{align-items:stretch;flex-direction:column}.scan-row .icon-button{justify-self:end}.inventory-stock-grid,.meal-grid{grid-template-columns:1fr}.morning-dialog-body{grid-template-columns:1fr;padding:26px 22px 20px}.morning-dialog-actions{padding:16px 22px 22px}.meal-summary-lines>div,.meal-history-item{align-items:stretch;flex-direction:column}.meal-history-actions{justify-content:stretch}.meal-history-actions .button{flex:1 1 auto}}*{box-sizing:border-box}html{min-width:320px;background:var(--paper)}body{min-width:320px;margin:0;background:var(--paper);color:var(--ink)}button,input,select,textarea{font:inherit}button{border:0}h1,h2,h3,h4{margin:0;color:var(--ink);font-family:Trirong,Georgia,Times New Roman,serif;font-weight:400;letter-spacing:0}p{line-height:1.5}.app-shell{min-height:100vh}.loading-page,.setup-page{min-height:100vh;display:grid;place-content:center;justify-items:center;gap:10px;padding:24px;text-align:center}.loading-page img{width:72px;height:72px;object-fit:contain}.loading-page strong{font-family:Trirong,Georgia,Times New Roman,serif;font-size:1.4rem;font-weight:400}.loading-page span{color:var(--muted)}.setup-page{grid-template-columns:minmax(220px,360px) minmax(300px,520px);text-align:left}.setup-page>img{width:100%;max-height:440px;object-fit:contain}.setup-page code{overflow-wrap:anywhere}.login-email-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:5px;background:#f8f6f5}.login-email-row span,.email-cell{overflow-wrap:anywhere}.switch-control{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;font-size:.78rem;cursor:pointer}.switch-control input{width:18px;height:18px;margin:0;accent-color:var(--ok)}.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(340px,46vw) minmax(320px,1fr);background:var(--paper)}.brand-panel{display:grid;align-items:center;min-height:100%;padding:48px;border-right:1px solid var(--line);background:#f8f6f5}.brand-lockup{width:min(100%,560px);margin:0 auto;text-align:center}.brand-lockup img{display:block;width:min(100%,420px);max-height:58vh;margin:0 auto 22px;object-fit:contain}.brand-lockup h1{font-size:clamp(2.6rem,6vw,4.8rem);line-height:1}.brand-lockup p{max-width:30rem;margin:16px auto 0;color:var(--muted)}.login-content{display:grid;align-items:center;padding:40px}.login-card{width:min(100%,440px);margin:0 auto;padding:32px;border:1px solid var(--line);border-radius:var(--radius);background:#ffffffeb;box-shadow:var(--shadow)}.login-card h2{font-size:2rem;line-height:1.12}.login-intro{margin:10px 0 0;color:var(--muted);line-height:1.5}.login-alternative{width:100%}.eyebrow{margin:0 0 10px;color:var(--rose);font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.muted{color:var(--muted)}.panel-copy{margin:5px 0 0;font-size:.88rem}.form-stack{display:grid;gap:17px;margin-top:26px}.form-stack.flush-top{margin-top:0}.field{display:grid;gap:7px;min-width:0}.money-field{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;border:1px solid var(--line);border-radius:5px;background:#fff;overflow:hidden}.money-field>span{align-self:stretch;display:grid;place-items:center;padding:0 10px;border-right:1px solid var(--line);background:var(--blush-soft);color:var(--ink);font-size:.82rem}.money-field input{border:0;border-radius:0}.money-field:focus-within{border-color:var(--rose);box-shadow:0 0 0 3px #d3b49f6b}.money-field:focus-within input{box-shadow:none}.field small{color:var(--muted);font-size:.76rem;line-height:1.4}.access-code-editor{display:grid;gap:6px;min-width:230px}.access-code-controls{display:grid;grid-template-columns:minmax(120px,1fr) auto;gap:7px}.access-code-editor small{max-width:230px;color:var(--muted);font-size:.7rem;line-height:1.35}.access-code-status{font-size:.72rem;font-weight:800}.access-code-status.configured{color:var(--ok)}.access-code-status.missing{color:var(--danger)}.field span,.field label,.label{color:var(--muted);font-size:.8rem;font-weight:700}input,select,textarea{width:100%;min-width:0;min-height:42px;border:1px solid var(--line);border-radius:5px;background:#fff;color:var(--ink);padding:9px 11px;outline:none}textarea{min-height:86px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--rose);box-shadow:0 0 0 3px #d3b49f6b}.error-text{min-height:20px;margin:0;color:var(--danger);font-size:.86rem;font-weight:700}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;border-radius:5px;padding:9px 14px;background:var(--charcoal);color:#fff;font-weight:700;cursor:pointer;transition:background .14s ease,box-shadow .14s ease}.button:hover{background:var(--charcoal-soft);box-shadow:0 7px 18px #2c332f24}.button:disabled{cursor:not-allowed;opacity:.55;box-shadow:none}.button.secondary{background:var(--blush-soft);color:var(--charcoal)}.button.secondary:hover{background:#e4d2c6}.button.ghost{border:1px solid var(--line);background:#fff;color:var(--charcoal)}.button.ghost:hover{background:#f8f6f5}.button.light{background:#fff;color:var(--charcoal)}.button.light:hover{background:var(--blush-soft)}.button.warn{background:var(--danger)}.button.warn:hover{background:#843c34}.button.small{min-height:33px;padding:6px 10px;font-size:.82rem}.full-width{width:100%}.icon-button{flex:0 0 40px;width:40px;height:40px;display:inline-grid;place-items:center;border:1px solid var(--line);border-radius:5px;background:#fff;color:var(--charcoal);cursor:pointer;font-size:1.05rem;font-weight:700}.icon-button:hover{background:var(--blush-soft)}.danger-icon{color:var(--danger)}.main-layout{min-height:100vh;display:grid;grid-template-columns:276px minmax(0,1fr);width:100%;min-width:0}.side-nav{position:sticky;top:0;z-index:3;height:100vh;min-width:0;display:flex;flex-direction:column;gap:18px;padding:18px 16px;border-right:1px solid var(--line);background:#faf8f7f7}.nav-top{display:grid;gap:12px}.signout-button{justify-self:start;display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:5px 8px;border-radius:5px;background:transparent;color:var(--muted);cursor:pointer;font-size:.82rem;font-weight:700}.signout-button:hover{background:var(--blush-soft);color:var(--charcoal)}.nav-brand{display:flex;align-items:center;gap:11px;min-width:0;padding:4px 7px 12px;border-bottom:1px solid var(--line)}.nav-brand img{width:48px;height:48px;flex:0 0 48px;object-fit:contain;border:1px solid #ece8e6;background:#fff}.nav-brand div{min-width:0}.nav-brand strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:Trirong,Georgia,serif;font-size:1rem;font-weight:400}.nav-brand span{display:block;color:var(--muted);font-size:.76rem}.nav-list{display:grid;gap:17px;min-width:0;overflow-y:auto}.nav-group{display:grid;gap:5px}.nav-section-label{padding:0 9px 4px;color:var(--rose);font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.nav-button{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;min-height:39px;border-radius:5px;padding:8px 9px;background:transparent;color:var(--muted);text-align:left;font-size:.86rem;font-weight:700;cursor:pointer}.nav-button>span:first-child{min-width:0;overflow-wrap:anywhere}.nav-button[aria-current=page]{background:var(--charcoal);color:#fff}.nav-button:hover{background:var(--blush-soft);color:var(--charcoal)}.nav-button[aria-current=page]:hover{background:var(--charcoal);color:#fff}.notification-badge{flex:0 0 auto;min-width:21px;height:21px;display:inline-grid;place-items:center;border-radius:999px;padding:0 6px;background:#b73535;color:#fff;font-size:.72rem;font-weight:700}.nav-footer{margin-top:auto}.user-chip{display:grid;gap:3px;padding:11px;border:1px solid var(--line);border-radius:var(--radius);background:#fff}.user-chip strong{font-size:.88rem}.user-chip span{color:var(--muted);font-size:.75rem;line-height:1.35}.workspace{min-width:0;max-width:1700px;width:100%;padding:26px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:22px}.topbar h2{max-width:900px;font-size:clamp(1.75rem,3vw,2.5rem);line-height:1.08}.time-pill,.status-pill{display:inline-flex;align-items:center;justify-content:center;min-height:31px;border:1px solid var(--line);border-radius:999px;padding:5px 10px;background:#fff;color:var(--muted);font-size:.78rem;font-weight:700;white-space:nowrap}.status-pill.ok{border-color:#4c705d40;background:#4c705d1c;color:var(--ok)}.status-pill.pending{border-color:#cf8e3d47;background:var(--gold-soft);color:#7a531f}.status-pill.danger{border-color:#9d493f38;background:#9d493f1a;color:var(--danger)}.grid{display:grid;gap:15px;min-width:0}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.section-gap{margin-top:15px}.panel{min-width:0;border:1px solid var(--line);border-radius:var(--radius);background:#fffffff0;box-shadow:0 8px 24px #2c332f0e}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:17px 17px 0}.panel-head h3{font-size:1.08rem}.panel-body{min-width:0;padding:17px}.stat{min-width:0;min-height:112px;display:grid;align-content:space-between;gap:7px;padding:16px;border:1px solid var(--line);border-radius:var(--radius);background:#fff}.stat span{color:var(--muted);font-size:.78rem;font-weight:700}.stat strong{min-width:0;overflow-wrap:anywhere;font-family:Trirong,Georgia,serif;font-size:1.7rem;font-weight:400;line-height:1.08}.stat small{color:var(--muted);line-height:1.35}.clock-panel{min-height:230px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:24px;padding:26px;border-color:var(--charcoal);background:var(--charcoal);color:#fff;box-shadow:var(--shadow)}.clock-panel h3,.clock-panel strong{color:#fff}.clock-panel .eyebrow{color:var(--blush)}.clock-state{display:grid;gap:9px}.clock-state strong{font-family:Trirong,Georgia,serif;font-size:clamp(2.1rem,5vw,3.4rem);font-weight:400;line-height:1}.clock-detail{margin:0;color:#ffffffbf}.clock-actions{display:flex;justify-content:flex-end;gap:9px;flex-wrap:wrap}.timeline{display:grid;gap:8px}.timeline-item{display:grid;grid-template-columns:130px minmax(0,1fr) auto;gap:12px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line)}.timeline-item:last-child{border-bottom:0}.timeline-item time{color:var(--muted);font-size:.8rem;font-weight:700}.timeline-item strong{font-size:.92rem}.empty-state{min-height:140px;display:grid;place-items:center;padding:20px;border:1px dashed var(--line);border-radius:var(--radius);color:var(--muted);text-align:center}.mini-empty{min-height:74px;display:grid;place-items:center;padding:10px;border:1px dashed var(--line);border-radius:5px;color:var(--muted);font-size:.8rem;text-align:center}.table-wrap{min-width:0;overflow-x:auto}table{width:100%;min-width:820px;border-collapse:collapse}th,td{padding:10px 9px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}th{color:var(--muted);font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}td{font-size:.86rem}tbody tr:last-child td{border-bottom:0}.table-input{min-width:150px;min-height:37px;padding:7px 8px;font-size:.82rem}.wide-input{min-width:220px}.row-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.filters{display:flex;align-items:end;gap:13px;flex-wrap:wrap}.compact-field{min-width:150px}.range-display{display:grid;gap:5px}.range-display span{color:var(--muted);font-size:.8rem;font-weight:700}.week-panel-head{align-items:flex-start}.week-picker{min-width:min(100%,560px);display:grid;grid-template-columns:40px minmax(130px,160px) minmax(210px,1fr) 40px;align-items:end;gap:8px}.week-picker-control{display:grid;gap:5px}.week-picker-control span,.week-range span{color:var(--muted);font-size:.75rem;font-weight:700}.week-picker-control input{min-height:40px}.week-range{min-width:0;min-height:40px;display:grid;align-content:center;gap:2px;padding:5px 9px;border-left:2px solid var(--blush)}.week-range strong{overflow-wrap:anywhere;font-size:.8rem;line-height:1.25}.history-heading{align-items:end;gap:20px}.history-search{min-width:190px}.history-filters{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.history-list{display:grid;gap:12px}.history-card{overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.history-card.expanded{border-color:#5769586b;box-shadow:0 12px 34px #2d362e14}.history-card-summary{width:100%;display:grid;grid-template-columns:minmax(240px,1.8fr) repeat(3,minmax(125px,.75fr)) auto;gap:16px;align-items:center;padding:17px 18px;border:0;color:inherit;background:transparent;text-align:left;cursor:pointer}.history-card-summary:hover{background:#5769580e}.history-card-summary>span:not(.history-chevron){display:grid;gap:4px}.history-card-summary small,.employee-history-head span{color:var(--muted);font-size:.78rem}.history-period small{line-height:1.35}.history-chevron{display:grid;place-items:center;width:32px;height:32px;border-radius:999px;background:var(--soft);font-size:1.25rem;font-weight:700}.history-detail{padding:0 18px 18px;border-top:1px solid var(--line);background:#f8f6f08c}.history-detail>.table-wrap,.employee-history-detail{margin-top:16px}.staff-history-detail{display:grid;gap:16px}.employee-history-detail{padding:16px;border:1px solid var(--line);border-radius:calc(var(--radius) - 4px);background:var(--surface)}.employee-history-head{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:16px;margin-bottom:14px}.employee-history-head>div{display:grid;gap:3px}.employee-history-head>div:nth-child(2){text-align:right}.history-day-table{min-width:670px}.planning-heading{display:flex;justify-content:flex-end}.availability-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}.availability-day{min-width:0;display:grid;align-content:start;gap:10px;padding:11px;border:1px solid var(--line);border-radius:var(--radius);background:#fbfafa}.day-head{min-width:0;min-height:52px;display:grid;align-content:center;gap:2px;padding:8px 10px;border-radius:5px;background:var(--charcoal);color:#fff}.day-head strong{color:#fff;font-size:.88rem}.day-head span{color:#ffffffb8;font-size:.72rem;line-height:1.3}.availability-ranges{display:grid;gap:9px}.availability-row{position:relative;min-width:0;display:grid;grid-template-columns:minmax(120px,.8fr) minmax(220px,1.2fr) minmax(130px,1fr) minmax(150px,1fr) 40px;align-items:end;gap:8px;padding:10px;border:1px solid var(--line);border-radius:5px;background:#fff}.availability-row input,.availability-row select{min-height:38px;padding:7px 8px;font-size:.82rem}.time-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.roster-list{display:grid;gap:10px}.roster-item{min-width:0;display:grid;grid-template-columns:minmax(240px,1.3fr) minmax(150px,.8fr) minmax(260px,auto);align-items:center;gap:12px;padding:13px;border:1px solid var(--line);border-radius:var(--radius);background:#fff}.roster-item strong{font-size:.9rem}.suggestion-note{margin-top:6px;padding:7px 9px;border-left:3px solid var(--gold);background:var(--gold-soft);color:#65451c;font-size:.78rem;line-height:1.45}.management-stack{display:grid;gap:15px}.fieldset-reset{min-width:0;margin:0;padding:0;border:0}.fieldset-reset legend{margin-bottom:7px;color:var(--muted);font-size:.78rem;font-weight:700}.position-checklist{min-width:180px;display:flex;flex-wrap:wrap;gap:6px}.check-option{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:5px 8px;border:1px solid var(--line);border-radius:4px;background:#fff;color:var(--ink);font-size:.78rem;cursor:pointer}.check-option:has(input:checked){border-color:var(--ok);background:#edf3ef}.check-option input{margin:0}.rate-input{width:90px}.table-subtext{max-width:170px;margin-top:2px;font-size:.72rem;line-height:1.3}.inline-form{display:flex;align-items:end;gap:9px}.inline-form .field{margin:0}.grow-field{flex:1 1 240px}.settings-list{display:grid;gap:8px}.settings-row{display:grid;grid-template-columns:minmax(0,1fr) auto 40px;align-items:center;gap:8px}.notice-box{padding:10px 12px;border-left:3px solid var(--gold);background:var(--gold-soft);color:#65451c;font-size:.8rem;line-height:1.45}.holiday-table{max-height:430px;overflow:auto}.tabs{display:inline-flex;gap:4px;padding:4px;border:1px solid var(--line);border-radius:6px;background:#f4f1f0}.tab-button{display:inline-flex;align-items:center;gap:8px;min-height:36px;border-radius:4px;padding:7px 11px;background:transparent;color:var(--muted);font-size:.82rem;font-weight:700;cursor:pointer}.tab-button[aria-selected=true]{background:#fff;color:var(--charcoal);box-shadow:0 2px 7px #2c332f14}.notification-list{display:grid;gap:8px}.notification-item{min-width:0;display:grid;grid-template-columns:82px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px;border:1px solid var(--line);border-radius:6px;background:#fff}.notification-item.unread{border-left:4px solid #b73535;background:snow}.notification-item p{margin:4px 0 0;color:var(--muted);font-size:.82rem}.notification-time{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:.78rem;font-weight:700}.unread-dot{width:8px;height:8px;border-radius:50%;background:transparent}.notification-item.unread .unread-dot{background:#b73535}.staff-status-list{display:grid;gap:4px}.staff-status-row{min-width:0;display:grid;grid-template-columns:minmax(220px,1fr) 190px 120px;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}.staff-status-row>.status-pill{width:112px;justify-self:start;text-align:center}.staff-status-controls{display:flex;align-items:end;justify-content:flex-end;gap:10px;flex-wrap:wrap}.staff-status-row:last-child{border-bottom:0}.staff-status-row>div{min-width:0;display:grid;gap:3px}.staff-status-row span:not(.status-pill){color:var(--muted);font-size:.8rem}.planning-tools{grid-template-columns:minmax(320px,1fr) minmax(240px,.7fr)}.action-stack{display:grid;gap:10px}.planning-calendar,.availability-summary{min-width:900px;display:grid;grid-template-columns:repeat(7,minmax(116px,1fr));gap:8px}.planning-calendar{overflow:visible}.panel-body:has(.planning-calendar),.panel-body:has(.availability-summary){overflow-x:auto}.calendar-day,.availability-summary-day{min-width:0;min-height:220px;display:grid;align-content:start;gap:8px;padding:8px;border:1px solid var(--line);border-radius:6px;background:#faf8f7}.calendar-items,.summary-entries{display:grid;gap:7px}.calendar-shift,.summary-entry{min-width:0;display:grid;gap:3px;padding:8px;border-left:3px solid var(--gold);border-radius:4px;background:#fff;box-shadow:0 2px 7px #2c332f0d}.calendar-shift.ok{border-left-color:var(--ok)}.calendar-shift.danger{border-left-color:var(--danger)}.calendar-shift.status-draft{border-left-color:#7a7471;background:#f2f0ef}.calendar-shift.status-pending{border-left-color:var(--gold);background:#fff8ed}.calendar-shift.status-accepted{border-left-color:var(--ok);background:#edf4ef}.calendar-shift.status-suggested{border-left-color:var(--rose);background:#f7eeee}.calendar-shift.status-declined,.calendar-shift.status-cancelled{border-left-color:var(--danger);background:#f9eeee}.calendar-day-trigger{width:100%;grid-template-columns:minmax(0,1fr) 24px;border:0;text-align:left;cursor:pointer}.calendar-day-trigger strong,.calendar-day-trigger>span:not(.calendar-add-icon){grid-column:1}.calendar-day-trigger .calendar-add-icon{grid-column:2;grid-row:1 / span 2;align-self:center;color:#fff;font-size:1.25rem;line-height:1;text-align:center}.calendar-day-trigger:hover,.calendar-day-trigger:focus-visible{background:#3b4640}.calendar-suggestion{margin:4px 0;padding:6px;border-radius:3px;background:#ffffffb3;color:var(--ink);font-size:.7rem;line-height:1.35;overflow-wrap:anywhere}.calendar-shift-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin-top:5px}.calendar-shift-actions .button{min-width:0;min-height:30px;padding:5px;font-size:.67rem}.calendar-shift-actions .button:first-child:nth-last-child(3){grid-column:1 / -1}.calendar-status{display:block;margin-top:4px;padding-top:5px;border-top:1px solid rgba(44,51,47,.12)}.calendar-shift span,.summary-entry span{color:var(--muted);font-size:.74rem;overflow-wrap:anywhere}.calendar-shift small,.summary-entry small{color:var(--rose);font-size:.7rem;font-weight:700}.calendar-empty{display:block;padding:12px 4px;color:var(--muted);font-size:.76rem;text-align:center}.calendar-empty-button{width:100%;min-height:64px;border:1px dashed var(--line);border-radius:4px;background:transparent;cursor:pointer}.calendar-empty-button:hover,.calendar-empty-button:focus-visible{border-color:var(--rose);background:#f7eeee;color:var(--charcoal)}.toast{position:fixed;right:18px;bottom:18px;z-index:30;width:min(380px,calc(100vw - 36px));padding:13px 15px;border-radius:var(--radius);background:var(--charcoal);color:#fff;box-shadow:var(--shadow)}.toast strong{display:block;margin-bottom:4px}.toast span{color:#ffffffc2}.install-banner{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:15px;padding:11px;border:1px solid var(--line);border-radius:var(--radius);background:#fff}.demo-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px;padding:11px 14px;border:1px solid #d8b45f;border-radius:var(--radius);background:#fff8dc;color:#5e4816}.demo-banner .button{flex:0 0 auto}.modal-backdrop{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:20px;background:#2525258f}.confirm-dialog{width:min(100%,520px);max-height:calc(100vh - 40px);overflow-y:auto;border-radius:var(--radius);background:#fff;box-shadow:0 24px 70px #25252542}.confirm-dialog form{padding:22px}.confirm-head h3{font-size:1.5rem}.confirm-head p:last-child{margin:9px 0 0;color:var(--muted)}.confirm-fields{margin-top:19px}.confirm-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:22px;padding-top:16px;border-top:1px solid var(--line)}.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}@media(max-width:1280px){.grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}.availability-grid{grid-template-columns:1fr}}@media(max-width:1060px){.main-layout{grid-template-columns:238px minmax(0,1fr)}.workspace{padding:20px}.availability-row{grid-template-columns:repeat(2,minmax(0,1fr))}.availability-row .danger-icon{justify-self:end}.rate-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.roster-item{grid-template-columns:minmax(220px,1fr) minmax(130px,.7fr)}.roster-item>.row-actions{grid-column:1 / -1}.history-card-summary{grid-template-columns:minmax(210px,1.5fr) repeat(2,minmax(110px,.8fr)) auto}.history-card-summary>span:nth-child(4){grid-column:2 / 4}}@media(max-width:840px){.main-layout{grid-template-columns:1fr}.side-nav{position:static;height:auto;max-width:100vw;padding:12px;overflow:hidden}.nav-top{grid-template-columns:auto minmax(0,1fr);align-items:center}.signout-button{grid-row:1;grid-column:1}.nav-brand{grid-row:1;grid-column:2;border:0;padding:0}.nav-list{grid-auto-flow:column;grid-auto-columns:max-content;max-width:100%;overflow-x:auto;overflow-y:hidden;padding-bottom:5px}.nav-group{grid-auto-flow:column;grid-auto-columns:max-content;align-items:end}.nav-section-label{display:none}.nav-button{white-space:nowrap}.nav-footer{display:none}.workspace{padding:16px}.topbar{align-items:flex-start;flex-direction:column}.grid.two,.grid.three,.grid.four,.planning-tools{grid-template-columns:1fr}.clock-panel{grid-template-columns:1fr;align-items:start}.clock-actions{justify-content:flex-start}.week-panel-head{display:grid}.week-picker{width:100%}.timeline-item,.notification-item,.staff-status-row,.roster-item{grid-template-columns:1fr}.staff-status-row>.status-pill{width:auto}.staff-status-controls{width:100%;display:grid;grid-template-columns:1fr}.roster-item>.row-actions{grid-column:auto}}@media(max-width:600px){.setup-page{grid-template-columns:1fr}.demo-banner{align-items:stretch;flex-direction:column}.history-heading,.history-filters,.employee-history-head{display:grid;grid-template-columns:1fr;align-items:stretch}.history-search{min-width:0}.history-card-summary{grid-template-columns:repeat(2,minmax(0,1fr)) auto;gap:12px}.history-card-summary .history-period{grid-column:1 / -1}.history-card-summary>span:nth-child(4){grid-column:1 / 3}.history-chevron{grid-column:3;grid-row:2}.employee-history-head>div:nth-child(2){text-align:left}.setup-page>img{width:min(220px,70vw)}.login-page{grid-template-columns:1fr}.brand-panel{min-height:44vh;padding:24px;border-right:0;border-bottom:1px solid var(--line)}.brand-lockup img{width:min(100%,290px);max-height:32vh;margin-bottom:12px}.brand-lockup h1{font-size:2.3rem}.login-content{padding:20px}.login-card{padding:22px}.nav-brand img{width:40px;height:40px;flex-basis:40px}.nav-brand strong{font-size:.9rem}.nav-brand span{display:none}.topbar h2{font-size:1.75rem}.clock-panel{min-height:250px;padding:20px}.clock-state strong{font-size:2.2rem}.clock-actions .button{flex:1 1 145px}.filters{display:grid}.inline-form{display:grid;grid-template-columns:1fr}.compact-field{min-width:0}.week-picker{grid-template-columns:40px minmax(0,1fr) 40px}.week-picker-control{grid-column:2}.week-range{grid-column:1 / -1;grid-row:2}.week-picker>.icon-button:first-child{grid-column:1;grid-row:1}.week-picker>.icon-button:last-child{grid-column:3;grid-row:1}.availability-row{grid-template-columns:1fr}.availability-row .danger-icon{justify-self:stretch;width:100%}.time-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.tabs{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.tab-button{justify-content:center;text-align:center}.confirm-dialog form{padding:18px}.confirm-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}}
