:root{--bg: #0b1220;--surface: #121a2e;--surface-2: #1a2640;--text: #e6edf3;--muted: #8b98b1;--primary: #1f6feb;--primary-hover: #3686ff;--danger: #ef4444;--success: #10b981;--border: #23304f;--r-sm: 6px;--r-md: 10px;--r-lg: 14px;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 24px;--s-6: 32px;--s-7: 48px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,system-ui,sans-serif;font-size:16px;line-height:1.45}input,button,select,textarea{font:inherit;color:inherit}button{cursor:pointer}.screen{max-width:480px;margin:0 auto;min-height:100vh;padding:var(--s-5) var(--s-4);display:flex;flex-direction:column;gap:var(--s-4)}@media (max-width: 600px){.screen--center-mobile{min-height:100dvh;justify-content:center;text-align:center;padding-top:max(var(--s-5),env(safe-area-inset-top));padding-bottom:max(var(--s-5),env(safe-area-inset-bottom))}.screen--center-mobile .input{text-align:center}}.title{font-size:22px;font-weight:600;margin:0}.hint{color:var(--muted);font-size:14px;margin:0}.sms-consent{display:flex;gap:10px;align-items:flex-start;font-size:16px;line-height:1.5}.sms-consent a,.sms-consent a:visited{color:var(--primary-hover);text-decoration-line:underline;text-underline-offset:.15em}.sms-consent a:focus-visible{outline:2px solid var(--primary-hover);outline-offset:3px}.input{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--s-4);color:var(--text);font-size:18px;width:100%}.input:focus{outline:2px solid var(--primary)}.btn{background:var(--primary);color:#fff;border:none;border-radius:var(--r-md);padding:var(--s-4);font-size:17px;font-weight:600;width:100%;white-space:nowrap}.btn:disabled{opacity:.5;cursor:default}.btn:hover:not(:disabled){background:var(--primary-hover)}.btn:focus-visible,.btn-ghost:focus-visible,.btn-danger:focus-visible{outline:2px solid var(--primary-hover);outline-offset:2px}.btn-ghost{background:transparent;color:var(--muted);border:1px solid var(--border)}.btn-ghost:hover:not(:disabled){background:var(--surface);color:var(--text)}.badge{display:inline-flex;align-items:center;gap:var(--s-2);padding:var(--s-2) var(--s-3);border-radius:999px;font-size:13px;background:var(--surface-2);color:var(--muted)}.badge-success{color:var(--success)}.badge-pending{color:var(--primary)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--s-4)}.home-focus{display:flex;flex-direction:column;gap:var(--s-3);border-left:4px solid var(--primary)}.home-focus-label{color:var(--primary-hover);font-size:12px;font-weight:700;letter-spacing:.08em;margin:0;text-transform:uppercase}.assignment-card{min-width:0;overflow-wrap:anywhere}.assignment-description{margin:0;white-space:pre-line}.assignment-details{display:grid;gap:var(--s-2);margin:0}.assignment-details>div{display:grid;gap:2px}.assignment-details dt{color:var(--muted);font-size:13px}.assignment-details dd{margin:0;font-size:15px}.home-focus-detail{margin-top:calc(var(--s-1) * -1)}.update-banner{padding:var(--s-4);border:1px solid var(--primary);border-left-width:4px;border-radius:var(--r-lg);background:var(--surface);display:grid;gap:var(--s-2)}.home-content{display:contents}.update-banner-title{margin:0;font-size:17px;font-weight:700}.update-banner-actions{display:flex;flex-wrap:wrap;gap:var(--s-2)}.update-banner-actions .btn{width:auto;white-space:normal;padding:var(--s-3) var(--s-4)}.home-section-heading{display:flex;flex-direction:column;gap:var(--s-1)}.home-action-grid{display:grid;gap:var(--s-2);grid-template-columns:repeat(2,minmax(0,1fr))}.home-action-grid .btn{min-height:52px;padding:var(--s-3) var(--s-2);white-space:normal}.push-alert-card{display:flex;flex-direction:column;gap:var(--s-3)}.push-alert-card .btn{width:auto}.push-alert-status{padding:0 var(--s-1)}.error{color:var(--danger);font-size:14px}.row{display:flex;gap:var(--s-3);align-items:center}.spacer{flex:1}.geofence-warning-actions{display:flex;flex-direction:column;gap:var(--s-3)}.geofence-warning-actions .btn{min-width:0;white-space:normal;overflow-wrap:anywhere}.locked-recovery-screen [role=dialog] .row{flex-direction:column;align-items:stretch}.locked-recovery-screen [role=dialog] .spacer{display:none}.locked-recovery-screen [role=dialog] .btn{white-space:normal;overflow-wrap:anywhere}.btn-danger{background:transparent;color:var(--danger);border:1px solid var(--danger)}.btn-danger:hover:not(:disabled){background:var(--danger);color:#fff}.offline-banner{background:var(--danger);color:#fff;padding:var(--s-2) var(--s-4);font-size:14px;text-align:center;position:sticky;top:0;z-index:10}.spinner{display:inline-block;width:12px;height:12px;border:2px solid var(--surface-2);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite;vertical-align:-2px}@keyframes spin{to{transform:rotate(360deg)}}.queue-row{padding:var(--s-3) 0;border-bottom:1px solid var(--border)}.queue-row:last-child{border-bottom:none}.queue-row .stage{font-size:13px;color:var(--muted)}.queue-row .stage.failed{color:var(--danger)}.subtle-link{background:none;border:none;color:var(--primary);font-size:14px;padding:0;cursor:pointer;text-decoration:underline}body:has(.home-screen){background:#f8f8f2}.home-screen{--bg: #f8f8f2;--surface: #ffffff;--surface-2: #edf4e8;--text: #102b23;--muted: #5f6b64;--primary: #245c43;--primary-hover: #194833;--danger: #b42318;--success: #245c43;--border: #dde1d8;min-height:100dvh;padding-top:max(20px,env(safe-area-inset-top));padding-bottom:max(24px,env(safe-area-inset-bottom));background:var(--bg);color:var(--text);gap:16px;overflow-wrap:anywhere}.home-brand{display:flex;align-items:center;gap:8px;font-size:25px;letter-spacing:-.04em}.home-brand img{flex:0 0 34px}.home-identity{display:grid;gap:4px}.home-identity .title{font-size:23px;font-weight:700}.home-screen .title{line-height:1.2}.home-screen .hint{line-height:1.45}.home-screen .home-focus{border:1px solid var(--border);padding:18px;gap:12px}.home-screen .home-focus-label{color:var(--muted);font-size:13px;letter-spacing:.06em}.home-screen #current-shift-heading{font-size:32px;font-weight:700}.home-shift-detail{display:grid;gap:2px}.home-po-number{margin:0;font-size:18px;font-weight:700}.home-screen .btn{min-height:56px;white-space:normal;overflow-wrap:anywhere;line-height:1.3}.home-screen .btn-ghost{color:var(--text);border-color:#7c8980}.home-shift-actions{display:grid;gap:10px;border-top:1px solid var(--border);padding-top:14px}.home-screen .home-shift-action{background:var(--surface-2);color:var(--text);border:1.5px solid var(--primary);font-size:19px}.home-screen .home-shift-action:hover:not(:disabled){background:#e1ecdc}.home-crew-actions{display:grid;gap:8px;border-top:1px solid var(--border);padding-top:12px}.home-crew-actions .btn{min-height:48px;padding:10px 12px}.home-sync{flex-wrap:wrap;gap:8px}.home-screen .badge{border-radius:10px}.home-screen .badge-pending{color:#355c78;background:#e8f0f5}.home-screen .subtle-link{min-height:44px}.home-screen .assignment-details{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.home-screen .assignment-details>div{min-width:0}.home-device-options{border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.home-device-options summary{padding:16px 4px;min-height:56px;font-size:18px;font-weight:600;cursor:pointer}.home-device-options summary:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.home-device-content{display:grid;gap:16px;padding:0 4px 16px}.home-device-content .card{background:transparent;border:0;padding:0}.home-device-content h2{font-size:18px;margin:0}.home-device-content .btn{min-height:48px}.home-screen .home-lock{border:0;text-align:left;padding:8px 4px;min-height:48px}.home-screen .update-banner{display:grid;grid-template-columns:1fr auto;align-items:center;padding:12px;gap:8px;border:0;background:var(--surface-2)}.home-screen .update-banner-title{font-size:15px}.home-screen .update-banner>.hint,.home-screen .update-banner>.error{grid-column:1 / -1}.home-screen .update-banner-actions{grid-column:2;grid-row:1}.home-screen .update-banner-actions .btn{font-size:14px;min-height:44px;padding:8px}body:has(.home-screen) .offline-banner{background:#f8edc8;color:#7a5a06}@media (max-width: 360px){.home-screen .update-banner{grid-template-columns:1fr}.home-screen .update-banner-actions{grid-column:1;grid-row:auto}.home-screen .update-banner-actions .btn{flex:1}.home-brand{font-size:23px}.home-screen .home-focus{padding:16px}}
