:root{--brand-blue:#1d4ed8;--brand-blue-dark:#173b66;--brand-blue-soft:#1d4ed814;--brand-cyan:#06b6d4;--brand-orange:#ea580c;--brand-orange-soft:#ea580c14;--surface:#fff;--surface-soft:#f8fafc;--surface-tint:#f1f5f9;--border:#e2e8f0eb;--border-strong:#94a3b852;--text-strong:#0b1220;--text:#0f172a;--text-muted:#64748b;--text-faint:#94a3b8;--success:#15803d;--success-soft:#22c55e1a;--danger:#b91c1c;--danger-soft:#ef444414;--shadow-sm:0 1px 2px #0f172a0a;--shadow-md:0 10px 24px #0f172a0f;--shadow-lg:0 28px 60px #0f172a24;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--text);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:radial-gradient(circle at 100% 0,#1d4ed80f,#0000 35%),radial-gradient(circle at 0 100%,#ea580c0a,#0000 35%),linear-gradient(#f8fbff 0%,#eef2f7 100%);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}html,body,#app{width:100%;min-height:100%}body{color:#111827;background:0 0;min-height:100svh;margin:0;overflow-x:hidden}#app{overflow-x:hidden}::selection{color:var(--text);background:#1d4ed82e}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:2px;outline:3px solid #1d4ed838}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#94a3b81f}::-webkit-scrollbar-thumb{background:#64748b73;border:2px solid #ffffff73;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#64748b9e}.surface-card,.form-card,.notice,.confirm-modal,.route-loading-card,.sidebar-panel{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.surface-card,.form-card,.notice{border:1px solid #e2e8f0eb;box-shadow:0 18px 45px #0f172a14}.app-page-title{letter-spacing:-.02em}.btn,.refresh-button,.link-button,.logout-button,.icon-button{transition:transform .18s,background .18s,color .18s,border-color .18s,box-shadow .18s,opacity .18s}.btn:hover:not(:disabled),.refresh-button:hover:not(:disabled),.link-button:hover:not(:disabled),.logout-button:hover:not(:disabled),.icon-button:hover:not(:disabled){transform:translateY(-1px)}.btn:disabled,.refresh-button:disabled,.link-button:disabled,.logout-button:disabled,.icon-button:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn-primary,.refresh-button{background:linear-gradient(135deg, var(--brand-blue-dark), var(--brand-blue));color:#fff}.btn-primary:hover:not(:disabled),.refresh-button:hover:not(:disabled){box-shadow:0 14px 28px #1d4ed838}.btn-secondary,.secondary-button{color:#0f172a;background:#e2e8f0}.btn-secondary:hover:not(:disabled),.secondary-button:hover:not(:disabled){background:#cbd5e1}.btn-danger,.link-button-danger,.logout-button{color:#fff;background:linear-gradient(135deg,#ef4444,#dc2626)}.notice{border-radius:16px;margin-bottom:16px;padding:14px 16px}.notice-error{color:#991b1b;background:#fef2f2f5;border-color:#ef444433}.notice-success{color:#166534;background:#f0fdf4f5;border-color:#22c55e33}.status-badge{color:#334155;background:#e2e8f0;border-radius:999px;justify-content:center;align-items:center;min-height:34px;padding:0 12px;font-size:.8rem;font-weight:700;display:inline-flex}.status-badge.is-offline{color:#991b1b;background:#fee2e2}.status-badge.is-online{color:#166534;background:#dcfce7}.status-badge.status-muted{color:#4f46e5;background:#eef2ff}.refresh-button,.link-button{border:0;border-radius:12px;min-height:42px;padding:10px 16px;font-size:.96rem;font-weight:700}.link-button{color:#0f172a;background:#e2e8f0;justify-content:center;align-items:center;display:inline-flex}.link-button-danger{color:#991b1b;background:#fee2e2}.link-button:hover:not(:disabled),.link-button-danger:hover:not(:disabled){box-shadow:0 10px 20px #0f172a14}.refresh-button.secondary-button{border:1px solid #cbd5e1f2}.route-loading{background:radial-gradient(circle at 100% 0,#1d4ed814,#0000 32%),linear-gradient(#f8fbff 0%,#eef2f7 100%);place-items:center;min-height:100svh;padding:24px;display:grid}.route-loading-card{border:1px solid var(--border);box-shadow:var(--shadow-md);color:var(--text-muted);background:#ffffffeb;border-radius:20px;justify-items:center;gap:14px;padding:22px 28px;font-weight:600;display:grid}.route-loading-spinner{border:4px solid #94a3b838;border-top-color:var(--brand-blue);border-radius:50%;width:42px;height:42px;animation:.85s linear infinite route-spin}@keyframes route-spin{to{transform:rotate(360deg)}}.report-jobs-tracker[data-v-89c96a33]{top:max(16px, env(safe-area-inset-top));right:max(16px, env(safe-area-inset-right));z-index:1200;position:fixed}@media (width<=1120px){.report-jobs-tracker[data-v-89c96a33]{top:calc(max(16px, env(safe-area-inset-top)) + 78px)}}.bell-button[data-v-89c96a33]{border:1px solid var(--border);background:var(--surface);width:44px;height:44px;color:var(--text-muted);cursor:pointer;box-shadow:var(--shadow-md);border-radius:14px;place-items:center;transition:background .18s,color .18s,border-color .18s,transform .18s;display:grid;position:relative}.bell-button[data-v-89c96a33]:hover,.bell-button.is-open[data-v-89c96a33]{background:var(--brand-blue-soft);color:var(--brand-blue);border-color:#1d4ed847;transform:translateY(-1px)}.bell-button.has-badge[data-v-89c96a33]{color:var(--brand-orange);border-color:#ea580c52}.bell-icon[data-v-89c96a33]{stroke-width:1.8px;width:20px;height:20px}.bell-icon-small[data-v-89c96a33]{stroke-width:1.8px;width:18px;height:18px}.bell-badge[data-v-89c96a33]{background:var(--brand-orange);color:#fff;letter-spacing:.02em;border:2px solid var(--surface);border-radius:999px;place-items:center;min-width:20px;height:20px;padding:0 5px;font-size:.7rem;font-weight:800;animation:.22s cubic-bezier(.22,1,.36,1) bell-pop-89c96a33;display:grid;position:absolute;top:-6px;right:-6px}@keyframes bell-pop-89c96a33{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}.bell-overlay[data-v-89c96a33]{z-index:1199;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0f172a2e;position:fixed;inset:0}.bell-panel[data-v-89c96a33]{top:calc(max(16px, env(safe-area-inset-top)) + 56px);right:max(16px, env(safe-area-inset-right));z-index:1201;background:var(--surface);border:1px solid var(--border);width:min(420px,100vw - 32px);max-height:min(520px,100vh - 96px);box-shadow:var(--shadow-lg);border-radius:18px;grid-template-rows:auto auto minmax(0,1fr) auto;animation:.2s cubic-bezier(.22,1,.36,1) panel-rise-89c96a33;display:grid;position:fixed;overflow:hidden}@media (width<=1120px){.bell-panel[data-v-89c96a33]{top:calc(max(16px, env(safe-area-inset-top)) + 134px);max-height:min(480px,100vh - 160px)}}@keyframes panel-rise-89c96a33{0%{opacity:0;transform:translateY(-6px)scale(.99)}to{opacity:1;transform:translateY(0)scale(1)}}.bell-panel-head[data-v-89c96a33]{justify-content:space-between;align-items:flex-start;gap:10px;padding:16px 18px 8px;display:flex}.bell-panel-kicker[data-v-89c96a33]{letter-spacing:.14em;text-transform:uppercase;color:var(--brand-blue);margin:0;font-size:.7rem;font-weight:700}.bell-panel-head h3[data-v-89c96a33]{color:var(--text-strong);margin:4px 0 0;font-size:1rem}.bell-close[data-v-89c96a33]{border:1px solid var(--border);background:var(--surface);width:32px;height:32px;color:var(--text-muted);cursor:pointer;border-radius:10px;flex:none;place-items:center;transition:background .18s,color .18s;display:grid}.bell-close[data-v-89c96a33]:hover{background:var(--surface-tint);color:var(--text)}.bell-pending-hint[data-v-89c96a33]{background:var(--brand-blue-soft);color:var(--brand-blue);border:1px solid #1d4ed82e;border-radius:10px;margin:0 18px;padding:10px 12px;font-size:.82rem;line-height:1.4}.bell-list[data-v-89c96a33]{gap:8px;margin:0;padding:8px 18px 12px;list-style:none;display:grid;overflow-y:auto}.bell-item[data-v-89c96a33]{background:var(--surface);border:1px solid var(--border);border-radius:12px;grid-template-columns:auto 1fr auto;gap:12px;padding:12px;display:grid}.bell-item.is-pending[data-v-89c96a33]{background:#1d4ed80a;border-color:#1d4ed82e}.bell-item.is-done[data-v-89c96a33]{border-color:#22c55e47}.bell-item.is-error[data-v-89c96a33]{border-color:#ef444447}.bell-item-icon[data-v-89c96a33]{background:var(--surface-tint);border-radius:10px;flex:none;place-items:center;width:32px;height:32px;display:grid}.bell-item.is-pending .bell-item-icon[data-v-89c96a33]{color:var(--brand-blue);background:#1d4ed814}.bell-item.is-done .bell-item-icon[data-v-89c96a33]{color:#166534;background:#22c55e1a}.bell-item.is-error .bell-item-icon[data-v-89c96a33]{color:#991b1b;background:#ef44441a}.bell-spinner[data-v-89c96a33]{border:2px solid #1d4ed82e;border-top-color:var(--brand-blue);border-radius:50%;width:14px;height:14px;animation:.7s linear infinite bell-spin-89c96a33}@keyframes bell-spin-89c96a33{to{transform:rotate(360deg)}}.bell-item-body[data-v-89c96a33]{gap:2px;min-width:0;display:grid}.bell-item-body strong[data-v-89c96a33]{color:var(--text-strong);word-break:break-word;font-size:.94rem}.bell-item-period[data-v-89c96a33],.bell-item-time[data-v-89c96a33]{color:var(--text-muted);font-size:.78rem}.bell-item-error[data-v-89c96a33]{color:#991b1b;word-break:break-word;font-size:.8rem}.bell-item-actions[data-v-89c96a33]{align-items:flex-start;gap:6px;display:flex}.bell-action-button[data-v-89c96a33]{border:1px solid var(--border);background:var(--surface);width:30px;height:30px;color:var(--text-muted);cursor:pointer;border-radius:10px;place-items:center;transition:background .18s,color .18s,border-color .18s;display:grid}.bell-action-button[data-v-89c96a33]:hover{background:var(--brand-blue-soft);color:var(--brand-blue);border-color:#1d4ed847}.bell-empty[data-v-89c96a33]{text-align:center;color:var(--text-muted);padding:18px;font-size:.9rem}.bell-link[data-v-89c96a33]{color:var(--brand-blue);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;margin-top:8px;padding:0;font-weight:700;text-decoration:underline;display:inline-block}.bell-panel-foot[data-v-89c96a33]{border-top:1px solid var(--border);justify-content:flex-end;padding:10px 18px 14px;display:flex}.job-toast[data-v-89c96a33]{bottom:max(20px, env(safe-area-inset-bottom));right:max(20px, env(safe-area-inset-right));z-index:1210;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg);border-radius:16px;align-items:flex-start;gap:12px;width:min(380px,100vw - 32px);padding:14px 16px;display:flex;position:fixed}.job-toast.is-done[data-v-89c96a33]{border-color:#22c55e52}.job-toast.is-error[data-v-89c96a33]{border-color:#ef444452}.job-toast-icon[data-v-89c96a33]{border-radius:10px;flex:none;place-items:center;width:32px;height:32px;display:grid}.job-toast.is-done .job-toast-icon[data-v-89c96a33]{color:#166534;background:#22c55e1a}.job-toast.is-error .job-toast-icon[data-v-89c96a33]{color:#991b1b;background:#ef44441a}.job-toast-body[data-v-89c96a33]{flex:1;gap:2px;min-width:0;display:grid}.job-toast-body strong[data-v-89c96a33]{color:var(--text-strong);font-size:.95rem}.job-toast-body span[data-v-89c96a33]{color:var(--text-muted);word-break:break-word;font-size:.84rem}.job-toast-error[data-v-89c96a33]{color:#991b1b!important}.job-toast-actions[data-v-89c96a33]{align-items:center;gap:6px;display:flex}.job-toast-cta[data-v-89c96a33]{background:linear-gradient(135deg, var(--brand-blue-dark), var(--brand-blue));color:#fff;cursor:pointer;border:0;border-radius:10px;min-height:36px;padding:0 12px;font-size:.86rem;font-weight:700}.job-toast-close[data-v-89c96a33]{border:1px solid var(--border);background:var(--surface);width:32px;height:32px;color:var(--text-muted);cursor:pointer;border-radius:10px;place-items:center;display:grid}.toast-enter-active[data-v-89c96a33],.toast-leave-active[data-v-89c96a33]{transition:transform .24s cubic-bezier(.22,1,.36,1),opacity .24s}.toast-enter-from[data-v-89c96a33],.toast-leave-to[data-v-89c96a33]{opacity:0;transform:translateY(12px)}@media (prefers-reduced-motion:reduce){.bell-panel[data-v-89c96a33],.bell-badge[data-v-89c96a33],.toast-enter-active[data-v-89c96a33],.toast-leave-active[data-v-89c96a33]{transition:none;animation:none}}
