:root{color:var(--text);background:var(--bg);font-synthesis:none;--bg:#f7f5f0;--surface:#fff;--surface2:#f2efea;--border:#e8e4dc;--border2:#ede9e1;--text:#1c1917;--text2:#78716c;--text3:#b7b0a8;--primary:#5b5bd6;--primary-hover:#4444c8;--primary-soft:#eeedfb;--primary-text:#4338ca;--ai-1:#6366f1;--ai-2:#8b5cf6;--success:#059669;--success-soft:#ecfdf5;--success-text:#065f46;--warning:#d97706;--warning-soft:#fffbeb;--warning-text:#92400e;--error:#dc2626;--error-soft:#fef2f2;--error-text:#991b1b;--shadow-sm:0 1px 3px #1c191712,0 1px 2px #1c19170a;--shadow-md:0 4px 16px #1c191714,0 2px 4px #1c19170a;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans SC,Microsoft YaHei,sans-serif}[data-theme=dark]{--bg:#0d0b09;--surface:#1a1714;--surface2:#232019;--border:#2e2a26;--border2:#3a3530;--text:#faf9f7;--text2:#a8a29e;--text3:#78716c;--primary:#818cf8;--primary-hover:#6366f1;--primary-soft:#1d1b33;--primary-text:#c7d2fe;--ai-1:#818cf8;--ai-2:#a78bfa;--success:#34d399;--success-soft:#052e1c;--success-text:#6ee7b7;--warning:#fcd34d;--warning-soft:#2d2000;--warning-text:#fde68a;--error:#f87171;--error-soft:#2d0a0a;--error-text:#fecaca}*{box-sizing:border-box}html{background:var(--bg)}body{background:var(--bg);min-width:320px;color:var(--text);-webkit-font-smoothing:antialiased;margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.52}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.025em;margin-bottom:8px;font-size:clamp(1.75rem,3vw,2.25rem);line-height:1.15}h2{margin-bottom:20px;font-size:1.05rem}h3{margin-bottom:6px;font-size:.95rem}small{color:var(--text2);display:block}:focus-visible{outline:3px solid color-mix(in srgb,var(--primary) 35%,transparent);outline-offset:2px}.button{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);min-height:40px;color:var(--text);padding:0 14px;font-weight:600;line-height:1.2;transition:background .15s,border-color .15s}.button:hover:not(:disabled){background:var(--surface2);border-color:var(--text3)}.button-primary{background:var(--primary);border-color:var(--primary);color:#fff}.button-primary:hover:not(:disabled){background:var(--primary-hover);border-color:var(--primary-hover)}.button-ghost{background:0 0;border-color:#0000}.button-danger{color:var(--error-text);border-color:color-mix(in srgb,var(--error) 30%,var(--border));background:var(--error-soft)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);max-width:1000px;box-shadow:var(--shadow-sm);padding:24px}.metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px;display:grid}.metric{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);min-height:112px;box-shadow:var(--shadow-sm);flex-direction:column;justify-content:space-between;padding:18px;display:flex}.metric span{color:var(--text2);font-size:.78rem;font-weight:600}.metric strong{letter-spacing:-.03em;font-size:1.75rem}.metric-ai{background:linear-gradient(135deg,var(--surface),var(--primary-soft));border-color:color-mix(in srgb,var(--primary) 22%,var(--border))}.metric-ai strong{color:var(--primary-text)}.metric-warning strong{color:var(--warning-text)}.badge{background:var(--surface2);min-height:26px;color:var(--text2);white-space:nowrap;border-radius:999px;align-items:center;padding:3px 9px;font-size:.74rem;font-weight:700;display:inline-flex}.badge-success{background:var(--success-soft);color:var(--success-text)}.badge-warning{background:var(--warning-soft);color:var(--warning-text)}.badge-error{background:var(--error-soft);color:var(--error-text)}.badge-ai{background:var(--primary-soft);color:var(--primary-text)}.state{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface2);max-width:1000px;color:var(--text2);margin-bottom:18px;padding:13px 15px}.state-error{background:var(--error-soft);border-color:color-mix(in srgb,var(--error) 25%,var(--border));color:var(--error-text)}.state-success{background:var(--success-soft);border-color:color-mix(in srgb,var(--success) 25%,var(--border));color:var(--success-text)}.state-loading{padding-left:40px;position:relative}.state-loading:before{content:"";border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:14px;height:14px;animation:.75s linear infinite spin;position:absolute;top:13px;left:15px}.state code{background:var(--surface);border:1px solid var(--border);overflow-wrap:anywhere;color:var(--text);border-radius:6px;margin:10px 0;padding:10px;display:block}.field{max-width:460px;color:var(--text2);gap:7px;margin:0 0 16px;font-size:.82rem;font-weight:600;display:grid}.field input,.field select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:100%;min-height:42px;color:var(--text);padding:9px 11px}.field input:hover,.field select:hover{border-color:var(--text3)}.field input:focus,.field select:focus{border-color:var(--primary)}.muted,.privacy-copy{color:var(--text2);margin-top:18px;font-size:.82rem;line-height:1.6}.form-section+.form-section{border-top:1px solid var(--border2);margin-top:24px;padding-top:24px}.table-wrap{margin:4px -8px 0;overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:680px}caption{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}th,td{text-align:left;border-bottom:1px solid var(--border2);vertical-align:middle;padding:14px 12px}th{text-transform:uppercase;letter-spacing:.06em;color:var(--text2);background:var(--surface2);font-size:.72rem}td{font-size:.84rem}td small{margin-top:4px;font-size:.72rem}.actions{justify-content:flex-end;gap:8px;display:flex}.route-list{margin-bottom:16px;display:grid}.route-row{border-bottom:1px solid var(--border2);grid-template-columns:1.4fr 1fr 1fr auto;align-items:end;gap:12px;padding:14px 0;display:grid}.route-row .field{margin:0}.filter-bar{align-items:end;gap:12px;max-width:1000px;margin-bottom:18px;display:flex}.filter-bar .field{flex:1;margin:0}.copy-feedback{margin-left:10px;font-size:.78rem;font-weight:700;display:inline-block}.copy-error{color:var(--error-text)}.icon{flex:0 0 17px;width:17px;height:17px}.eyebrow{letter-spacing:.16em;color:var(--primary-text);margin-bottom:8px;font-size:.67rem;font-weight:700}.brand-mark{background:linear-gradient(135deg,var(--ai-1),var(--ai-2));color:#fff;width:34px;height:34px;box-shadow:var(--shadow-sm);border-radius:10px;place-items:center;font-size:.9rem;font-weight:800;display:grid}.auth-shell{background:radial-gradient(circle at 50% 0,color-mix(in srgb,var(--primary-soft) 72%,transparent),transparent 38%),var(--bg);place-items:center;min-height:100vh;padding:24px;display:grid}.auth-card{background:var(--surface);border:1px solid var(--border);width:min(100%,440px);box-shadow:var(--shadow-md);border-radius:20px;padding:32px;position:relative}.auth-brand{align-items:center;gap:10px;margin-bottom:28px;display:flex}.auth-card>.field{width:140px;position:absolute;top:20px;right:22px}.auth-card h1{margin-bottom:24px}.auth-card form .button{width:100%}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){*,:before{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}@media (width<=900px){.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.route-row{grid-template-columns:1fr 1fr}.route-row .button{align-self:end}}@media (width<=520px){.auth-card{padding:24px}.auth-card>.field{width:auto;margin-bottom:24px;position:static}.metrics{grid-template-columns:1fr}.card{padding:18px}.filter-bar{flex-direction:column;align-items:stretch}.actions{flex-wrap:wrap;justify-content:flex-start}}.app-shell{grid-template-columns:240px minmax(0,1fr);min-width:0;max-width:100%;min-height:100vh;display:grid}.sidebar{background:var(--surface);border-right:1px solid var(--border);z-index:10;flex-direction:column;min-width:0;height:100vh;padding:16px 10px 14px;display:flex;position:sticky;top:0}.brand-block{border-bottom:1px solid var(--border2);align-items:center;gap:10px;margin-bottom:10px;padding:0 7px 16px;display:flex}.brand-block strong{font-size:.86rem;display:block}.brand-block small{margin-top:2px;font-size:.68rem}.sidebar nav{gap:3px;min-width:0;display:grid}.sidebar nav .button{width:100%;color:var(--text2);justify-content:flex-start;align-items:center;gap:10px;font-size:.83rem;display:flex}.sidebar nav .active{background:var(--primary-soft);color:var(--primary-text);border-color:#0000}.privacy-note{border-radius:var(--radius-md);background:var(--surface2);margin-top:auto;padding:13px 11px;font-size:.7rem;line-height:1.5}.privacy-note strong,.privacy-note span{display:block}.privacy-note span{color:var(--text2);margin-top:3px}.app-column{min-width:0}.topbar{z-index:5;background:color-mix(in srgb,var(--surface) 94%,transparent);border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);justify-content:space-between;align-items:center;height:54px;padding:0 24px;display:flex;position:sticky;top:0}.breadcrumb{color:var(--text2);align-items:center;gap:8px;font-size:.75rem;display:flex}.breadcrumb strong{color:var(--text)}.operator{align-items:center;gap:8px;min-width:0;display:flex}.operator span{white-space:nowrap;text-overflow:ellipsis;max-width:230px;color:var(--text2);font-size:.74rem;overflow:hidden}.content{width:100%;max-width:1280px;padding:34px clamp(18px,4vw,52px) 60px}.page-header{margin-bottom:26px}.page-header>p:last-child{color:var(--text2);margin:0;font-size:.86rem}@media (width<=760px){.app-shell{grid-template-columns:minmax(0,1fr);width:100%;max-width:100vw;overflow-x:clip}.sidebar{border-right:0;border-bottom:1px solid var(--border);width:100%;max-width:100vw;height:auto;padding:10px 12px;position:sticky;overflow:hidden}.brand-block{display:none}.sidebar nav{overscroll-behavior-inline:contain;scrollbar-width:thin;gap:4px;width:100%;max-width:100%;display:flex;overflow:auto hidden}.sidebar nav .button{flex:none;width:auto;padding:0 11px}.sidebar nav .icon,.privacy-note{display:none}.topbar{padding:0 16px;position:static}.operator span{display:none}.content{padding-top:26px}}@media (width<=390px){.sidebar nav .button{min-height:44px}.breadcrumb>span:first-child,.breadcrumb>span:nth-child(2){display:none}}
