.dev-nav[data-v-458fe69b]{z-index:9999;flex-direction:column-reverse;align-items:flex-end;gap:8px;display:flex;position:fixed;bottom:24px;right:16px}.dev-toggle[data-v-458fe69b]{cursor:pointer;background:#7c3aed;border:2px solid #a78bfa;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;padding:0;font-size:20px;line-height:1;transition:background .15s;display:flex;box-shadow:0 4px 12px #0000004d}.dev-toggle.open[data-v-458fe69b],.dev-toggle[data-v-458fe69b]:hover{background:#6d28d9}.dev-menu[data-v-458fe69b]{background:#1f2937;border:1px solid #374151;border-radius:12px;flex-direction:column;gap:2px;min-width:130px;padding:10px 8px;display:flex;box-shadow:0 8px 24px #0006}.dev-section-title[data-v-458fe69b]{color:#6b7280;text-transform:uppercase;letter-spacing:.08em;padding:4px 8px 2px;font-size:10px;font-weight:700}.dev-section-title--admin[data-v-458fe69b]{margin-top:4px}.dev-section-title--user[data-v-458fe69b]{color:#34d399}.dev-item[data-v-458fe69b]{color:#e5e7eb;cursor:pointer;text-align:left;background:0 0;border:none;border-radius:7px;padding:7px 10px;font-family:inherit;font-size:13px;transition:background .12s}.dev-item[data-v-458fe69b]:hover{background:#374151}.dev-item--admin[data-v-458fe69b]{color:#93c5fd}.dev-item--admin[data-v-458fe69b]:hover{background:#1e3a5f}.dev-item--user[data-v-458fe69b]{color:#d1fae5}.dev-item--user[data-v-458fe69b]:hover{background:#064e3b}.dev-item--active[data-v-458fe69b]{font-weight:700;background:#065f46!important}.dev-item--end[data-v-458fe69b]{color:#fecaca;margin-top:2px;font-weight:600}.dev-item--end[data-v-458fe69b]:hover{background:#7f1d1d}.dev-item--uat[data-v-458fe69b]{justify-content:space-between;align-items:center;gap:8px;width:100%;display:flex}.uat-role-label[data-v-458fe69b]{font-family:inherit;font-size:13px}.uat-role-name[data-v-458fe69b]{color:#6b7280;flex-shrink:0;font-size:10px}.dev-user-row-wrap[data-v-458fe69b]{position:relative}.dev-user-current[data-v-458fe69b]{justify-content:space-between;align-items:center;width:100%;display:flex}.dev-user-label[data-v-458fe69b]{text-overflow:ellipsis;white-space:nowrap;max-width:90px;overflow:hidden}.dev-user-arrow[data-v-458fe69b]{color:#6b7280;flex-shrink:0;font-size:9px}.user-popover[data-v-458fe69b]{z-index:10000;background:#1f2937;border:1px solid #374151;border-radius:10px;flex-direction:column;gap:2px;min-width:150px;max-height:300px;padding:8px 6px;display:flex;position:absolute;top:0;right:calc(100% + 8px);overflow-y:auto;box-shadow:-4px 4px 16px #0006}.user-popover-title[data-v-458fe69b]{color:#6b7280;text-transform:uppercase;letter-spacing:.08em;padding:2px 8px 6px;font-size:10px;font-weight:700}.user-popover-item[data-v-458fe69b]{cursor:pointer;text-align:left;background:0 0;border:none;border-radius:7px;justify-content:space-between;align-items:center;width:100%;padding:7px 10px;transition:background .12s;display:flex}.user-popover-item[data-v-458fe69b]:hover{background:#374151}.user-popover-item--active[data-v-458fe69b]{background:#065f46!important}.user-popover-name[data-v-458fe69b]{color:#d1fae5;font-family:inherit;font-size:13px}.user-popover-role[data-v-458fe69b]{color:#6b7280;flex-shrink:0;margin-left:6px;font-size:10px}.user-popover-empty[data-v-458fe69b]{color:#6b7280;padding:4px 10px;font-size:11px}.dev-menu-enter-active[data-v-458fe69b],.dev-menu-leave-active[data-v-458fe69b]{transition:opacity .15s,transform .15s}.dev-menu-enter-from[data-v-458fe69b],.dev-menu-leave-to[data-v-458fe69b]{opacity:0;transform:translateY(8px)}.user-popover-enter-active[data-v-458fe69b],.user-popover-leave-active[data-v-458fe69b]{transition:opacity .12s,transform .12s}.user-popover-enter-from[data-v-458fe69b],.user-popover-leave-to[data-v-458fe69b]{opacity:0;transform:translate(6px)}.impersonation-banner[data-v-f3890079]{z-index:9999;color:#fff;background:#c0392b;align-items:center;gap:12px;padding:8px 16px;font-size:14px;font-weight:500;display:flex;position:sticky;top:0;box-shadow:0 2px 6px #00000026}.msg[data-v-f3890079]{flex:1}.timer[data-v-f3890079]{background:#fff3;border-radius:4px;padding:2px 8px;font-family:monospace}.end-btn[data-v-f3890079]{color:#c0392b;cursor:pointer;background:#fff;border:none;border-radius:4px;padding:4px 12px;font-weight:600}.end-btn[data-v-f3890079]:hover{background:#f4f4f4}:root{--brand-primary:#1b3a8f;--brand-primary-mid:#2b5ce6;--brand-primary-light:#eef3ff;--accent-fare:#e07400;--accent-fare-dark:#b85e00;--accent-fare-light:#fff4e5;--accent-urgent:#d32f2f;--accent-urgent-light:#ffebee;--surface-bg:#f3f5fa;--surface-card:#fff;--surface-muted:#f0f2f7;--text-primary:#111827;--text-secondary:#4b5563;--text-hint:#9ca3af;--text-on-brand:#fff;--border-default:#e5e7eb;--radius-card:16px;--radius-pill:100px;--radius-btn:10px;--radius-btn-lg:12px;--shadow-card:0 1px 3px #0000000f, 0 4px 12px #0000000f;--shadow-card-hover:0 4px 8px #1b3a8f14, 0 12px 32px #1b3a8f1f;--shadow-fab:0 4px 16px #1b3a8f4d;--font-family:"Noto Sans TC", "PingFang TC", sans-serif;--transition:.18s ease}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);color:var(--text-primary);background-color:var(--surface-bg);-webkit-font-smoothing:antialiased;min-height:100vh;font-size:16px;line-height:1.6}button,a,[role=button]{cursor:pointer}@keyframes slide-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.3}}@keyframes ring-expand{0%{opacity:.5;transform:scale(1)}to{opacity:0;transform:scale(1.8)}}@keyframes pop-in{0%{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1)}}@keyframes draw-check{to{stroke-dashoffset:0}}.spinner{border:3px solid var(--border-default);border-top-color:var(--brand-primary-mid);border-radius:50%;width:36px;height:36px;animation:.75s linear infinite spin}.loading-wrap{flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:56px 24px;display:flex}.loading-text{color:var(--text-hint);font-size:14px;font-weight:500}.toast{background:var(--brand-primary);color:#fff;border-radius:var(--radius-pill);z-index:999;white-space:nowrap;padding:12px 20px;font-size:14px;font-weight:600;transition:transform .3s cubic-bezier(.34,1.56,.64,1);position:fixed;top:20px;left:50%;transform:translate(-50%)translateY(-80px);box-shadow:0 4px 20px #0003}.toast.show{transform:translate(-50%)translateY(0)}.sheet-overlay{z-index:200;background:#00000073;animation:.15s fade-in;display:none;position:fixed;inset:0}.sheet-overlay.open{display:block}.confirm-sheet{background:var(--surface-card);z-index:201;border-radius:20px 20px 0 0;padding:24px 20px 36px;transition:transform .28s cubic-bezier(.34,1.56,.64,1);position:fixed;bottom:0;left:0;right:0;transform:translateY(100%)}.confirm-sheet.open{transform:translateY(0)}.sheet-drag{background:#d1d5db;border-radius:2px;width:40px;height:4px;margin:0 auto 20px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
