:root{--canvas-bg:#f3f5f2;--surface-card:#fff;--surface-subtle:#f8faf7;--surface-sunken:#eef2ec;--surface-hover:#ebf0e9;--border-warm:#e2e8e0;--border-soft:#edf1eb;--border-focus:#1b3b36;--text-ink:#111815;--text-secondary:#4a5550;--text-muted:#76827c;--accent-pine:#1b3b36;--accent-pine-hover:#132a26;--accent-pine-subtle:#eaf2f0;--accent-pine-border:#c5d9d4;--btn-clock-out:#202b27;--btn-clock-out-hover:#151d1a;--btn-break:#b45309;--btn-break-hover:#92400e;--btn-resume:#065f46;--btn-resume-hover:#044332;--accent-emerald-bg:#ecfdf5;--accent-emerald-border:#a7f3d0;--accent-emerald-text:#065f46;--accent-amber:#d97706;--accent-amber-subtle:#fffbeb;--accent-amber-border:#fde68a;--accent-amber-text:#92400e;--accent-clay:#be123c;--accent-clay-subtle:#fff1f2;--accent-clay-border:#fecdd3;--radius-xs:6px;--radius-sm:8px;--radius-md:10px;--radius-lg:13px;--radius-xl:16px;--radius-pill:9999px;--shadow-xs:0 1px 2px #1118150a;--shadow-sm:0 2px 6px -1px #1b3b360d, 0 1px 3px #11181508;--shadow-md:0 6px 18px -3px #1b3b3612, 0 2px 5px -1px #1118150a;--shadow-lg:0 16px 36px -8px #1118151f;--font-display:"Space Grotesk", -apple-system, BlinkMacSystemFont, sans-serif;--font-main:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", monospace}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html,body{background-color:var(--canvas-bg);width:100%;height:100dvh;color:var(--text-ink);font-family:var(--font-main);touch-action:manipulation;-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.45;overflow:hidden}#root{background-color:var(--canvas-bg);justify-content:center;width:100%;height:100dvh;display:flex;overflow:hidden}.font-space{font-family:var(--font-display);letter-spacing:-.02em;font-feature-settings:"tnum" 1, "cv01" 1}.code-font{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1, "zero" 1}.app-container{width:100%;max-width:440px;height:100dvh;max-height:100dvh;padding:0 14px;padding-top:max(8px, env(safe-area-inset-top));padding-bottom:calc(env(safe-area-inset-bottom,8px) + 68px);flex-direction:column;gap:10px;display:flex;position:relative;overflow:hidden}.pwa-main-content{flex-direction:column;flex:1;justify-content:space-between;gap:10px;min-height:0;display:flex;overflow:hidden}.minimal-header{flex-shrink:0;justify-content:space-between;align-items:center;width:100%;padding:4px 2px;display:flex}.brand-section{align-items:center;gap:9px;min-width:0;display:flex}.header-brand-logo{border-radius:var(--radius-sm);object-fit:contain;border:1px solid var(--border-warm);width:32px;height:32px;box-shadow:var(--shadow-xs);background-color:#fff;flex-shrink:0;padding:2.5px}.brand-text-stack{flex-direction:column;min-width:0;display:flex}.brand-name{font-family:var(--font-display);color:var(--text-ink);letter-spacing:-.02em;font-size:15px;font-weight:700;line-height:1.15}.brand-sub{color:var(--text-muted);font-size:11px;font-weight:500;line-height:1.15}.user-status-btn{border-radius:var(--radius-pill);background:var(--surface-card);border:1px solid var(--border-warm);box-shadow:var(--shadow-xs);color:var(--text-ink);cursor:pointer;flex-shrink:0;align-items:center;gap:7px;padding:5px 10px;font-size:12px;font-weight:600;transition:background-color .15s,border-color .15s;display:inline-flex}.user-status-btn:active{background:var(--surface-hover);border-color:var(--border-focus)}.user-badge-code{font-family:var(--font-mono);color:var(--accent-pine);background:var(--surface-sunken);border-radius:var(--radius-xs);padding:1px 6px;font-size:10.5px;font-weight:600}.status-dot{background-color:#10b981;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 2.5px #10b9812e}.status-dot.on-break{background-color:#f59e0b;box-shadow:0 0 0 2.5px #f59e0b2e}.status-dot.inactive{box-shadow:none;background-color:#94a3b8}.profile-modal-card{background:var(--surface-card);border:1px solid var(--border-warm);border-radius:var(--radius-xl);width:100%;max-width:400px;box-shadow:var(--shadow-lg);flex-direction:column;gap:16px;padding:20px;display:flex}.profile-header-block{align-items:center;gap:12px;display:flex}.profile-avatar-circle{background:var(--accent-pine-subtle);border:1px solid var(--accent-pine-border);width:44px;height:44px;color:var(--accent-pine);font-family:var(--font-display);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;font-size:16px;font-weight:700;display:flex}.profile-title-block{flex:1;min-width:0}.profile-user-name{font-family:var(--font-display);color:var(--text-ink);font-size:16px;font-weight:700;line-height:1.2}.profile-role-sub{color:var(--text-secondary);margin-top:2px;font-size:12px}.profile-details-table{background:var(--surface-subtle);border:1px solid var(--border-warm);border-radius:var(--radius-md);flex-direction:column;gap:8px;padding:10px 14px;font-size:12.5px;display:flex}.profile-row{justify-content:space-between;align-items:center;display:flex}.profile-row-label{color:var(--text-muted)}.profile-row-val{color:var(--text-ink);font-weight:600}.profile-signout-btn{border-radius:var(--radius-md);border:1px solid var(--accent-clay-border);background:var(--accent-clay-subtle);width:100%;height:42px;color:var(--accent-clay);font-family:var(--font-main);cursor:pointer;justify-content:center;align-items:center;gap:8px;font-size:13px;font-weight:600;transition:all .15s;display:inline-flex}.profile-signout-btn:active{background:#ffe4e6}.location-hero-card{background:var(--surface-card);border:1px solid var(--border-warm);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);flex-direction:column;flex-shrink:0;gap:10px;padding:14px 16px;display:flex}.location-hero-card.unassigned{background:var(--surface-subtle);border-style:dashed}.location-badge-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.station-indicator{color:var(--accent-pine);align-items:center;gap:5px;font-size:11px;font-weight:600;display:inline-flex}.store-code-pill{font-family:var(--font-mono);border-radius:var(--radius-xs);background:var(--surface-sunken);color:var(--accent-pine);border:1px solid var(--border-warm);padding:2px 7px;font-size:11px;font-weight:600}.store-title-container{align-items:center;gap:11px;min-width:0;display:flex}.store-icon-radar{border-radius:var(--radius-md);background:var(--accent-pine-subtle);border:1px solid var(--accent-pine-border);width:36px;height:36px;color:var(--accent-pine);flex-shrink:0;justify-content:center;align-items:center;display:flex}.store-heading{font-family:var(--font-display);color:var(--text-ink);letter-spacing:-.015em;white-space:nowrap;text-overflow:ellipsis;font-size:16px;font-weight:700;line-height:1.2;overflow:hidden}.store-address{color:var(--text-secondary);-webkit-line-clamp:1;-webkit-box-orient:vertical;margin-top:2px;font-size:12px;line-height:1.3;display:-webkit-box;overflow:hidden}.gps-info-bar{border-top:1px solid var(--border-soft);justify-content:space-between;align-items:center;gap:8px;padding-top:8px;font-size:11.5px;display:flex}.gps-pill{color:var(--text-secondary);align-items:center;gap:5px;font-weight:500;display:inline-flex}.gps-pill.in-range{background:var(--accent-emerald-bg);color:var(--accent-emerald-text);border:1px solid var(--accent-emerald-border);border-radius:var(--radius-pill);font-family:var(--font-mono);padding:2px 8px;font-size:11px;font-weight:600}.gps-pill.near-range{background:var(--accent-amber-subtle);color:var(--accent-amber-text);border:1px solid var(--accent-amber-border);border-radius:var(--radius-pill);font-family:var(--font-mono);padding:2px 8px;font-size:11px;font-weight:600}.gps-pill.out-range{background:var(--surface-sunken);color:var(--text-secondary);border:1px solid var(--border-warm);border-radius:var(--radius-pill);font-family:var(--font-mono);padding:2px 8px;font-size:11px;font-weight:600}.gps-verify-btn{background:var(--accent-pine-subtle);border:1px solid var(--accent-pine-border);border-radius:var(--radius-pill);color:var(--accent-pine);cursor:pointer;align-items:center;gap:4px;padding:2px 9px;font-size:11px;font-weight:600;display:inline-flex}.unified-telemetry-card{background:var(--surface-card);border:1px solid var(--border-warm);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);flex-direction:column;flex:1;justify-content:space-between;gap:12px;min-height:0;padding:15px 16px;display:flex}.unified-telemetry-card.active-shift{border-color:var(--accent-emerald-border);background:linear-gradient(#fff 0%,#f8fcfa 100%)}.unified-telemetry-card.on-break{border-color:var(--accent-amber-border);background:linear-gradient(#fff 0%,#fffdf7 100%)}.telemetry-top-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.shift-status-pill{border-radius:var(--radius-pill);background:var(--surface-sunken);color:var(--text-secondary);border:1px solid var(--border-warm);align-items:center;gap:6px;padding:3px 9px;font-size:11px;font-weight:600;display:inline-flex}.unified-telemetry-card.active-shift .shift-status-pill{background:var(--accent-emerald-bg);color:var(--accent-emerald-text);border-color:var(--accent-emerald-border)}.unified-telemetry-card.on-break .shift-status-pill{background:var(--accent-amber-subtle);color:var(--accent-amber-text);border-color:var(--accent-amber-border)}.pulse-dot-pine{background:#10b981;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 2.5px #10b98133}.pulse-dot-pine.inactive{box-shadow:none;background:#94a3b8}.pulse-dot-amber{background:#f59e0b;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 2.5px #f59e0b38}.telemetry-center-hero{flex-direction:column;justify-content:center;align-items:flex-start;gap:3px;display:flex}.telemetry-live-timer{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1, "cv01" 1, "zero" 1;letter-spacing:-.025em;color:var(--text-ink);font-size:34px;font-weight:700;line-height:1.05}.unified-telemetry-card.active-shift .telemetry-live-timer{color:var(--accent-pine)}.unified-telemetry-card.on-break .telemetry-live-timer{color:var(--accent-amber-text)}.telemetry-sub-caption{color:var(--text-secondary);font-size:12px;font-weight:500}.shift-stats-grid{border-top:1px solid var(--border-soft);grid-template-columns:1fr 1fr;gap:12px;padding-top:10px;display:grid}.metric-tile{background:var(--surface-subtle);border:1px solid var(--border-warm);border-radius:var(--radius-md);flex-direction:column;gap:2px;padding:8px 11px;display:flex}.metric-tile-label{color:var(--text-muted);font-size:10.5px;font-weight:600}.metric-tile-value{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1, "cv01" 1, "zero" 1;color:var(--text-ink);font-size:16px;font-weight:700;line-height:1.2}.metric-tile-value.active{color:var(--accent-pine)}.metric-tile-value.on-break{color:var(--accent-amber-text)}.metric-tile-subtext{color:var(--text-muted);font-size:10.5px}.punch-actions-container{flex-direction:column;flex-shrink:0;gap:8px;width:100%;display:flex}.primary-punch-btn{border-radius:var(--radius-lg);cursor:pointer;text-align:left;color:#fff;width:100%;min-height:60px;box-shadow:var(--shadow-sm);border:1px solid #0000;align-items:center;gap:12px;padding:10px 14px;transition:transform .12s,opacity .12s,background-color .12s;display:flex}.primary-punch-btn:active:not(:disabled){transform:scale(.985)}.primary-punch-btn:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.primary-punch-btn.clock-in{background:var(--accent-pine)}.primary-punch-btn.clock-out{background:var(--btn-clock-out);border-color:#ffffff14}.primary-punch-btn.clock-out:hover{background:var(--btn-clock-out-hover)}.primary-punch-btn.break-start{background:var(--btn-break)}.primary-punch-btn.break-end{background:var(--btn-resume)}.primary-punch-btn.clock-transfer{background:#1e3a8a}.btn-icon-squircle{border-radius:var(--radius-md);color:#fff;background:#ffffff26;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;display:flex}.btn-text-block{flex:1;min-width:0}.btn-main-title{font-family:var(--font-display);letter-spacing:-.01em;color:#fff;font-size:15px;font-weight:700;line-height:1.2}.btn-sub-label{color:#ffffffd1;white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:11.5px;overflow:hidden}.timesheet-view-card{background:var(--surface-card);border:1px solid var(--border-warm);border-radius:var(--radius-xl);min-height:0;box-shadow:var(--shadow-sm);flex-direction:column;flex:1;gap:10px;padding:14px;display:flex;overflow:hidden}.timesheet-view-header{border-bottom:1px solid var(--border-soft);flex-shrink:0;justify-content:space-between;align-items:center;padding-bottom:9px;display:flex}.timesheet-view-title{font-family:var(--font-display);color:var(--text-ink);align-items:center;gap:8px;font-size:15.5px;font-weight:700;display:flex}.timesheet-count-chip{font-family:var(--font-mono);border-radius:var(--radius-pill);background:var(--surface-sunken);color:var(--accent-pine);border:1px solid var(--border-warm);padding:1px 7px;font-size:11px;font-weight:600}.timesheet-tz-label{color:var(--text-muted);font-size:10.5px;font-family:var(--font-mono)}.timesheet-scroll-list{-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;gap:8px;min-height:0;padding-right:2px;display:flex;overflow-y:auto}.history-item-card{background:var(--surface-subtle);border:1px solid var(--border-warm);border-radius:var(--radius-md);flex-shrink:0;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.history-item-left{flex:1;align-items:center;gap:10px;min-width:0;display:flex}.history-type-badge{font-family:var(--font-main);border-radius:var(--radius-xs);flex-shrink:0;padding:3px 8px;font-size:11px;font-weight:700}.history-type-badge.in{background:var(--accent-emerald-bg);color:var(--accent-emerald-text);border:1px solid var(--accent-emerald-border)}.history-type-badge.out{background:var(--surface-sunken);color:var(--text-secondary);border:1px solid var(--border-warm)}.history-type-badge.break-start{background:var(--accent-amber-subtle);color:var(--accent-amber-text);border:1px solid var(--accent-amber-border)}.history-type-badge.break-end{color:#1d4ed8;background:#eff6ff;border:1px solid #bfdbfe}.history-item-details{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.history-item-store{font-family:var(--font-display);color:var(--text-ink);word-break:break-word;font-size:13.5px;font-weight:700;line-height:1.2}.history-item-date{color:var(--text-secondary);font-size:11.5px}.history-item-right{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:2px;display:flex}.history-distance{font-family:var(--font-mono);color:var(--text-muted);font-size:10.5px}.history-flag-pill{border-radius:var(--radius-pill);background:var(--accent-amber-subtle);color:var(--accent-amber-text);border:1px solid var(--accent-amber-border);align-items:center;gap:3px;padding:1px 6px;font-size:10px;font-weight:600;display:inline-flex}.timesheet-empty-state{text-align:center;color:var(--text-muted);flex-direction:column;align-items:center;gap:8px;padding:44px 16px;display:flex}.timesheet-empty-icon{border-radius:var(--radius-md);background:var(--surface-sunken);width:44px;height:44px;color:var(--text-muted);justify-content:center;align-items:center;display:flex}.timesheet-empty-text{color:var(--text-ink);font-size:13px;font-weight:600}.timesheet-empty-subtext{color:var(--text-secondary);max-width:280px;font-size:12px;line-height:1.4}.mobile-bottom-nav{z-index:900;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--border-warm);padding:5px 14px calc(5px + env(safe-area-inset-bottom,0px)) 14px;background:#fffffff5;justify-content:center;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav-inner{grid-template-columns:1fr 1fr;gap:8px;width:100%;max-width:440px;display:grid}.nav-tab-btn{border-radius:var(--radius-md);color:var(--text-muted);font-family:var(--font-main);cursor:pointer;background:0 0;border:none;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:7px 10px;font-size:11px;font-weight:600;transition:all .15s;display:flex}.nav-tab-btn.active{color:var(--accent-pine);background:var(--accent-pine-subtle);font-weight:700}.modal-overlay{z-index:1200;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#11181570;justify-content:center;align-items:flex-end;padding:14px;display:flex;position:fixed;inset:0}.modal-bottom-sheet{background:var(--surface-card);border:1px solid var(--border-warm);border-radius:var(--radius-xl);width:100%;max-width:440px;max-height:85dvh;padding:14px 16px calc(16px + env(safe-area-inset-bottom,0px)) 16px;box-shadow:var(--shadow-lg);flex-direction:column;gap:12px;display:flex;overflow:hidden}.modal-handle-bar{border-radius:var(--radius-pill);background:var(--border-warm);flex-shrink:0;width:32px;height:4px;margin:0 auto}.modal-header-row{border-bottom:1px solid var(--border-soft);flex-shrink:0;justify-content:space-between;align-items:center;padding-bottom:9px;display:flex}.modal-title{font-family:var(--font-display);color:var(--text-ink);font-size:16px;font-weight:700}.modal-close-btn{border-radius:var(--radius-sm);border:1px solid var(--border-warm);background:var(--surface-subtle);width:30px;height:30px;color:var(--text-secondary);cursor:pointer;justify-content:center;align-items:center;display:flex}.modal-body-scroll{-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;gap:8px;min-height:0;display:flex;overflow-y:auto}.clock-out-clean-modal,.shift-transfer-modal-card{background:var(--surface-card);border:1px solid var(--border-warm);border-radius:var(--radius-xl);width:100%;max-width:390px;box-shadow:var(--shadow-lg);flex-direction:column;gap:14px;padding:20px 18px;display:flex}.clock-out-badge{border-radius:var(--radius-md);background:var(--surface-sunken);border:1px solid var(--border-warm);width:44px;height:44px;color:var(--text-ink);justify-content:center;align-items:center;margin:0 auto;display:flex}.clock-out-text{text-align:center}.clock-out-title{font-family:var(--font-display);color:var(--text-ink);font-size:18px;font-weight:700}.clock-out-message{color:var(--text-secondary);margin-top:5px;font-size:13px;line-height:1.45}.highlight-tag{background:var(--surface-sunken);color:var(--accent-pine);border:1px solid var(--border-warm);border-radius:var(--radius-xs);padding:1px 6px;font-weight:600}.clock-out-actions{grid-template-columns:1fr 1.35fr;gap:8px;display:grid}.clock-out-btn-cancel{border-radius:var(--radius-md);border:1px solid var(--border-warm);background:var(--surface-subtle);height:42px;color:var(--text-ink);cursor:pointer;font-size:13px;font-weight:600}.clock-out-btn-confirm{border-radius:var(--radius-md);background:var(--btn-clock-out);color:#fff;cursor:pointer;border:none;justify-content:center;align-items:center;height:42px;font-size:13px;font-weight:600;display:flex;position:relative;overflow:hidden}.clock-out-btn-confirm.locked{color:var(--text-secondary);cursor:not-allowed;background:#e2e8e0}.clock-out-btn-progress-fill{background:#ffffff29;transition:width .3s linear;position:absolute;top:0;bottom:0;left:0}.clock-out-btn-label{z-index:1;align-items:center;gap:6px;display:inline-flex;position:relative}.result-card{background:var(--surface-card);border:1px solid var(--border-warm);border-radius:var(--radius-xl);width:100%;max-width:380px;box-shadow:var(--shadow-lg);text-align:center;flex-direction:column;align-items:center;gap:12px;padding:22px 18px;display:flex}.result-icon-circle{border-radius:var(--radius-md);justify-content:center;align-items:center;width:48px;height:48px;display:flex}.result-icon-circle.success{background:var(--accent-emerald-bg);border:1px solid var(--accent-emerald-border);color:var(--accent-emerald-text)}.result-icon-circle.denied{background:var(--accent-clay-subtle);border:1px solid var(--accent-clay-border);color:var(--accent-clay)}.result-title{font-family:var(--font-display);color:var(--text-ink);font-size:18px;font-weight:700}.result-message{color:var(--text-secondary);font-size:13px;line-height:1.45}.result-meta-box{background:var(--surface-subtle);border:1px solid var(--border-warm);border-radius:var(--radius-md);width:100%;padding:10px 12px;font-size:12.5px}.btn-modal-action{border-radius:var(--radius-md);background:var(--accent-pine);color:#fff;width:100%;height:42px;font-family:var(--font-display);cursor:pointer;border:none;margin-top:4px;font-size:14px;font-weight:600}.transfer-modal-header{justify-content:space-between;align-items:center;display:flex}.transfer-icon-badge{border-radius:var(--radius-md);background:var(--accent-pine-subtle);border:1px solid var(--accent-pine-border);width:38px;height:38px;color:var(--accent-pine);justify-content:center;align-items:center;display:flex}.transfer-modal-title{font-family:var(--font-display);color:var(--text-ink);font-size:16.5px;font-weight:700}.transfer-modal-subtitle{color:var(--text-muted);font-size:12px}.transfer-transition-box{background:var(--surface-subtle);border:1px solid var(--border-warm);border-radius:var(--radius-md);justify-content:space-between;align-items:center;gap:8px;padding:11px;display:flex}.transfer-node{flex:1;min-width:0}.transfer-node.text-right{text-align:right}.transfer-tag{border-radius:var(--radius-xs);margin-bottom:3px;padding:1px 6px;font-size:10px;font-weight:600;display:inline-block}.transfer-tag.prev{background:var(--accent-amber-subtle);color:var(--accent-amber-text)}.transfer-tag.next{background:var(--accent-emerald-bg);color:var(--accent-emerald-text)}.transfer-store-name{font-family:var(--font-display);color:var(--text-ink);white-space:nowrap;text-overflow:ellipsis;font-size:13.5px;font-weight:700;overflow:hidden}.transfer-subtext{color:var(--text-muted);font-size:11px}.transfer-prompt-text{color:var(--text-secondary);font-size:12.5px;line-height:1.45}.transfer-actions-stack{flex-direction:column;gap:8px;display:flex}.btn-transfer-primary{border-radius:var(--radius-md);background:var(--accent-pine);color:#fff;cursor:pointer;border:none;justify-content:space-between;align-items:center;height:42px;padding:0 14px;font-size:13px;font-weight:600;display:flex}.btn-transfer-secondary{border-radius:var(--radius-md);border:1px solid var(--border-warm);background:var(--surface-subtle);height:38px;color:var(--text-ink);cursor:pointer;font-size:12.5px;font-weight:600}.btn-transfer-cancel{height:34px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;font-size:12px;font-weight:600}.login-screen-container{background:radial-gradient(circle at 50% 0%, #e7efea 0%, var(--canvas-bg) 70%);justify-content:center;align-items:center;width:100%;height:100dvh;padding:16px;display:flex;overflow-y:auto}.login-card{background:var(--surface-card);border:1px solid var(--border-warm);border-radius:var(--radius-xl);width:100%;max-width:400px;box-shadow:var(--shadow-lg);flex-direction:column;gap:15px;padding:22px 18px;display:flex}.login-brand-header{align-items:center;gap:11px;display:flex}.login-logo-wrap{border-radius:var(--radius-md);background:var(--surface-subtle);border:1px solid var(--border-warm);flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;padding:4px;display:flex}.login-brand-logo{object-fit:contain;width:100%;height:100%}.login-title{font-family:var(--font-display);color:var(--text-ink);letter-spacing:-.02em;font-size:18px;font-weight:700;line-height:1.15}.login-subtitle{color:var(--text-secondary);margin-top:2px;font-size:12px;font-weight:500}.login-station-banner{background:var(--accent-pine-subtle);border:1px solid var(--accent-pine-border);border-radius:var(--radius-md);justify-content:space-between;align-items:center;gap:8px;padding:9px 11px;display:flex}.login-form{flex-direction:column;gap:12px;display:flex}.input-group{flex-direction:column;gap:4px;display:flex}.input-label{color:var(--text-secondary);font-size:11px;font-weight:600}.input-wrapper{align-items:center;display:flex;position:relative}.input-icon{color:var(--text-muted);pointer-events:none;position:absolute;left:12px}.text-input{border-radius:var(--radius-md);border:1px solid var(--border-warm);background:var(--surface-subtle);width:100%;height:42px;color:var(--text-ink);font-family:var(--font-main);padding:0 12px 0 36px;font-size:15px;font-weight:500;transition:border-color .15s,background-color .15s}.text-input:focus{border-color:var(--accent-pine);background:#fff;outline:none;box-shadow:0 0 0 3px #1b3b3614}.login-submit-btn{border-radius:var(--radius-md);background:var(--accent-pine);color:#fff;width:100%;height:44px;font-family:var(--font-display);cursor:pointer;box-shadow:var(--shadow-sm);border:none;justify-content:center;align-items:center;gap:8px;margin-top:2px;font-size:14px;font-weight:600;display:inline-flex}.login-submit-btn:disabled{opacity:.6;cursor:not-allowed}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:.9s linear infinite spin}
