:root{--bus-primary-50:#f0f9ff;--bus-primary-100:#e0f2fe;--bus-primary-200:#bae6fd;--bus-primary-300:#7dd3fc;--bus-primary-400:#38bdf8;--bus-primary-500:#0ea5e9;--bus-primary-600:#0284c7;--bus-primary-700:#0369a1;--bus-primary-800:#075985;--bus-primary-900:#0c4a6e;--bus-primary:#0369a1;--bus-primary-foreground:#fff;--bus-background:#f6f8fb;--bus-foreground:#0f172a;--bus-card:#fff;--bus-card-foreground:#0f172a;--bus-popover:#fff;--bus-popover-foreground:#0f172a;--bus-muted:#f1f5f9;--bus-muted-foreground:#64748b;--bus-border:#e2e8f0;--bus-input:#e2e8f0;--bus-ring:#0369a1;--bus-state-success:#16a34a;--bus-state-success-bg:#dcfce7;--bus-state-success-fg:#166534;--bus-state-warning:#d97706;--bus-state-warning-bg:#fef3c7;--bus-state-warning-fg:#92400e;--bus-state-error:#dc2626;--bus-state-error-bg:#fee2e2;--bus-state-error-fg:#991b1b;--bus-state-info:#0369a1;--bus-state-info-bg:#e0f2fe;--bus-state-info-fg:#0c4a6e;--bus-accent-purple:#8b5cf6;--bus-state-idle:#f97316;--bus-btn-active-text:#fff;--bus-scrollbar-thumb:#cbd5e1;--bus-scrollbar-thumb-hover:#94a3b8;--bus-scrollbar-track:var(--bus-muted);--bus-medal-gold:#fbbf24;--bus-medal-silver:#9ca3af;--bus-medal-bronze:#cd7f32;--bus-radius-sm:6px;--bus-radius-md:10px;--bus-radius-lg:16px;--bus-radius-full:9999px;--bus-shadow-xs:0 1px 2px #0f172a0a;--bus-shadow-sm:0 1px 3px #0f172a0f, 0 1px 2px #0f172a0a;--bus-shadow-md:0 4px 12px #0f172a14;--bus-shadow-float:0 12px 32px #0f172a1f;--bus-font-sans:"Inter", "PingFang SC", "Microsoft YaHei", -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans SC", sans-serif;--bus-font-mono:"JetBrains Mono", "SF Mono", "Cascadia Code", Consolas, monospace;--bus-font-display:"Inter", "PingFang SC", "Microsoft YaHei", sans-serif;--bus-text-xs:12px;--bus-text-sm:13px;--bus-text-base:14px;--bus-text-lg:16px;--bus-text-xl:20px;--bus-text-2xl:28px;--bus-text-3xl:38px;--bus-space-section:28px;--bus-space-card:20px;--bus-ease-out:cubic-bezier(.16, 1, .3, 1);--bus-ease-spring:cubic-bezier(.34, 1.56, .64, 1);--bus-dur-fast:.15s;--bus-dur-base:.28s;--bus-dur-slow:.48s}.dark{--bus-primary:#38bdf8;--bus-primary-foreground:#0b1220;--bus-primary-50:#0f1d2e;--bus-primary-100:#14273e;--bus-primary-200:#1a3152;--bus-primary-300:#2a5a7d;--bus-primary-400:#38bdf8;--bus-primary-500:#0ea5e9;--bus-primary-600:#0284c7;--bus-primary-700:#38bdf8;--bus-primary-800:#7dd3fc;--bus-primary-900:#bae6fd;--bus-background:#0b1220;--bus-foreground:#e8edf5;--bus-card:#131c2e;--bus-card-foreground:#e8edf5;--bus-popover:#131c2e;--bus-popover-foreground:#e8edf5;--bus-muted:#1c2740;--bus-muted-foreground:#94a3b8;--bus-border:#243049;--bus-input:#243049;--bus-ring:#38bdf8;--bus-state-success:#4ade80;--bus-state-success-bg:#4ade8024;--bus-state-success-fg:#86efac;--bus-state-warning:#fbbf24;--bus-state-warning-bg:#fbbf2424;--bus-state-warning-fg:#fcd34d;--bus-state-error:#f87171;--bus-state-error-bg:#f8717124;--bus-state-error-fg:#fca5a5;--bus-state-info:#38bdf8;--bus-state-info-bg:#38bdf824;--bus-state-info-fg:#7dd3fc;--bus-accent-purple:#a78bfa;--bus-state-idle:#fb923c;--bus-btn-active-text:#fff;--bus-scrollbar-thumb:#4b5563;--bus-scrollbar-thumb-hover:#6b7280;--bus-scrollbar-track:#1c2740;--bus-shadow-xs:0 1px 2px #0000004d;--bus-shadow-sm:0 1px 3px #0006;--bus-shadow-md:0 4px 12px #00000073;--bus-shadow-float:0 12px 32px #0000008c}*,:before,:after,::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border:0 solid #e5e7eb}:before,:after{--tw-content:""}html,:host{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,sans-serif;line-height:1.5}body{line-height:inherit;margin:0}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-feature-settings:normal;font-variation-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder{opacity:1;color:#9ca3af}textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}*{-webkit-tap-highlight-color:transparent}img{-webkit-user-drag:none;-webkit-user-select:none;user-select:none}body{background:var(--bus-background);color:var(--bus-foreground);overscroll-behavior:none;font-family:var(--bus-font-sans)}h1,h2,h3,h4,h5,h6{font-family:Inter,PingFang SC,Microsoft YaHei,sans-serif;font-weight:700}button,a,input[type=button],input[type=submit]{min-width:44px;min-height:44px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bus-scrollbar-track)}::-webkit-scrollbar-thumb{background:var(--bus-scrollbar-thumb);border-radius:5px}::-webkit-scrollbar-thumb:hover{background:var(--bus-scrollbar-thumb-hover)}*{scrollbar-width:thin;scrollbar-color:var(--bus-scrollbar-thumb) var(--bus-scrollbar-track)}.\!container{width:100%!important}.container{width:100%}@media (width>=360px){.\!container{max-width:360px!important}.container{max-width:360px}}@media (width>=640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (width>=768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (width>=1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (width>=1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (width>=1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.stat-card{background:var(--bus-card);border:1px solid var(--bus-border);border-radius:var(--bus-radius-lg);box-shadow:var(--bus-shadow-xs);padding:var(--bus-space-card);transition:transform var(--bus-dur-base) var(--bus-ease-out), box-shadow var(--bus-dur-base) var(--bus-ease-out)}.surface-card{background:var(--bus-card);border:1px solid var(--bus-border);border-radius:var(--bus-radius-lg);box-shadow:var(--bus-shadow-xs)}.nav-item{border-radius:var(--bus-radius-md);font-size:var(--bus-text-sm);color:var(--bus-muted-foreground);transition:background-color var(--bus-dur-fast) var(--bus-ease-out), color var(--bus-dur-fast) var(--bus-ease-out);align-items:center;gap:10px;padding:8px 10px 8px 12px;text-decoration:none;display:flex;position:relative}.nav-item:hover{background:var(--bus-muted);color:var(--bus-foreground)}.nav-item.active{background:var(--bus-primary-50);color:var(--bus-primary);font-weight:500}.nav-item.active:before{content:"";background:var(--bus-primary);border-radius:0 2px 2px 0;width:3px;position:absolute;top:7px;bottom:7px;left:0}.icon-btn{border-radius:var(--bus-radius-md);width:36px;height:36px;color:var(--bus-muted-foreground);cursor:pointer;transition:background-color var(--bus-dur-fast) var(--bus-ease-out), color var(--bus-dur-fast) var(--bus-ease-out);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex;position:relative}.icon-btn:hover{background:var(--bus-muted);color:var(--bus-foreground)}.search-input{background:var(--bus-muted);border-radius:var(--bus-radius-md);font-size:var(--bus-text-sm);color:var(--bus-foreground);width:224px;transition:border-color var(--bus-dur-fast) var(--bus-ease-out), box-shadow var(--bus-dur-fast) var(--bus-ease-out), background-color var(--bus-dur-fast) var(--bus-ease-out);border:1px solid #0000;outline:none;padding:8px 12px 8px 34px}.search-input:focus{border-color:var(--bus-ring);background:var(--bus-card);box-shadow:0 0 0 3px #0369a11f}.search-input::placeholder{color:var(--bus-muted-foreground)}.quick-action{border-radius:var(--bus-radius-md);background:var(--bus-muted);cursor:pointer;transition:transform var(--bus-dur-base) var(--bus-ease-out), background-color var(--bus-dur-base) var(--bus-ease-out), color var(--bus-dur-base) var(--bus-ease-out);color:var(--bus-foreground);border:none;flex-direction:column;align-items:center;gap:8px;padding:16px;display:flex}.quick-action:hover{background:var(--bus-primary-50);color:var(--bus-primary);transform:translateY(-2px)}.pill{border-radius:var(--bus-radius-full);font-size:var(--bus-text-xs);white-space:nowrap;align-items:center;gap:4px;padding:2px 10px;font-weight:500;line-height:1.5;display:inline-flex}.pill-success{background:var(--bus-state-success-bg);color:var(--bus-state-success-fg)}.pill-warning{background:var(--bus-state-warning-bg);color:var(--bus-state-warning-fg)}.pill-error{background:var(--bus-state-error-bg);color:var(--bus-state-error-fg)}.pill-info{background:var(--bus-state-info-bg);color:var(--bus-state-info-fg)}.pill-muted{background:var(--bus-muted);color:var(--bus-muted-foreground)}.ghost-edit-btn{border-radius:var(--bus-radius-md);color:var(--bus-primary);font-size:var(--bus-text-sm);cursor:pointer;transition:background-color var(--bus-dur-fast) var(--bus-ease-out);background:0 0;border:none;padding:5px 12px}.ghost-edit-btn:hover{background:var(--bus-primary-50)}.logout-btn{border-radius:var(--bus-radius-md);width:32px;height:32px;color:var(--bus-state-error);cursor:pointer;transition:background-color var(--bus-dur-fast) var(--bus-ease-out);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.logout-btn:hover{background:var(--bus-state-error-bg)}.tab-bar{border-bottom:1px solid var(--bus-border);gap:4px;padding:0 20px;display:flex;overflow-x:auto}.tab-btn{font-size:var(--bus-text-sm);color:var(--bus-muted-foreground);cursor:pointer;white-space:nowrap;transition:color var(--bus-dur-fast) var(--bus-ease-out), border-color var(--bus-dur-fast) var(--bus-ease-out);background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:6px;margin-bottom:-1px;padding:12px 4px;display:flex}.tab-btn:hover{color:var(--bus-foreground)}.tab-btn.active{color:var(--bus-primary);border-bottom-color:var(--bus-primary)}.tab-count{font-size:var(--bus-text-xs);border-radius:var(--bus-radius-full);background:var(--bus-muted);color:var(--bus-muted-foreground);padding:1px 7px}.tab-btn.active .tab-count{background:var(--bus-primary-50);color:var(--bus-primary)}.tab-panel-inner{background:var(--bus-muted);border-radius:var(--bus-radius-md);align-items:center;gap:20px;padding:20px;display:flex}.tab-number{font-family:var(--bus-font-display);font-size:var(--bus-text-3xl);min-width:64px;font-weight:700;line-height:1}.action-btn{border-radius:var(--bus-radius-md);font-size:var(--bus-text-sm);cursor:pointer;transition:background-color var(--bus-dur-fast) var(--bus-ease-out), color var(--bus-dur-fast) var(--bus-ease-out);white-space:nowrap;border:none;align-items:center;gap:6px;padding:8px 16px;font-weight:500;display:inline-flex}.btn-warning{background:var(--bus-state-warning-bg);color:var(--bus-state-warning-fg)}.btn-warning:hover{background:var(--bus-state-warning);color:var(--bus-btn-active-text)}.btn-info{background:var(--bus-state-info-bg);color:var(--bus-state-info-fg)}.btn-info:hover{background:var(--bus-state-info);color:var(--bus-btn-active-text)}.btn-error{background:var(--bus-state-error-bg);color:var(--bus-state-error-fg)}.btn-error:hover{background:var(--bus-state-error);color:var(--bus-btn-active-text)}.section-head{border-bottom:1px solid var(--bus-border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.section-title{font-size:var(--bus-text-lg);color:var(--bus-card-foreground);margin:0;font-weight:600}.link-arrow{font-size:var(--bus-text-sm);color:var(--bus-primary);transition:gap var(--bus-dur-fast) var(--bus-ease-out);align-items:center;gap:4px;text-decoration:none;display:flex}.link-arrow:hover{gap:6px}.route-row{border-bottom:1px solid var(--bus-border);align-items:center;gap:16px;padding:14px 20px;display:flex}.img-placeholder{border-radius:var(--bus-radius-md);background:linear-gradient(135deg, var(--bus-primary-100), var(--bus-primary-200));height:96px;position:relative;overflow:hidden}.stat-number{font-family:var(--bus-font-display);font-size:var(--bus-text-3xl);color:var(--bus-card-foreground);font-weight:700;line-height:1.1}.dot{border-radius:9999px;width:8px;height:8px;display:inline-block}.app-footer{border-top:1px solid var(--bus-border);font-size:var(--bus-text-xs);color:var(--bus-muted-foreground);justify-content:space-between;align-items:center;margin-top:8px;padding:16px 24px;display:flex}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.bottom-0{bottom:0}.left-0{left:0}.left-2{left:.5rem}.left-2\.5{left:.625rem}.right-0{right:0}.right-2{right:.5rem}.right-4{right:1rem}.top-0{top:0}.top-1\/2{top:50%}.top-4{top:1rem}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[100\]{z-index:100}.m-0{margin:0}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-auto{margin-left:auto;margin-right:auto}.-mr-2{margin-right:-.5rem}.-mt-2{margin-top:-.5rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-12{margin-bottom:3rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.ml-7{margin-left:1.75rem}.ml-auto{margin-left:auto}.mr-0\.5{margin-right:.125rem}.mr-1{margin-right:.25rem}.mr-1\.5{margin-right:.375rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mr-4{margin-right:1rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-2\.5{margin-top:.625rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.\!table{display:table!important}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1}.h-10{height:2.5rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-20{height:5rem}.h-24{height:6rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-32{height:8rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-60{height:15rem}.h-64{height:16rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[18px\]{height:18px}.h-full{height:100%}.h-screen{height:100vh}.max-h-40{max-height:10rem}.max-h-48{max-height:12rem}.max-h-64{max-height:16rem}.max-h-96{max-height:24rem}.max-h-\[85vh\]{max-height:85vh}.min-h-\[60vh\]{min-height:60vh}.min-h-screen{min-height:100vh}.min-h-touch{min-height:44px}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-20{width:5rem}.w-24{width:6rem}.w-28{width:7rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-32{width:8rem}.w-4{width:1rem}.w-40{width:10rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-60{width:15rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[18px\]{width:18px}.w-full{width:100%}.min-w-0{min-width:0}.min-w-\[3rem\]{min-width:3rem}.min-w-\[90px\]{min-width:90px}.min-w-max{min-width:max-content}.min-w-touch{min-width:44px}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-5xl{max-width:64rem}.max-w-\[300px\]{max-width:300px}.max-w-full{max-width:100%}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.-translate-y-1\/2{--tw-translate-y:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:2s cubic-bezier(.4,0,.6,1) infinite pulse}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:1s linear infinite spin}.cursor-grab{cursor:grab}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;user-select:none}.resize-none{resize:none}.resize-y{resize:vertical}.resize{resize:both}.appearance-none{appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-7{gap:1.75rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-y-1{row-gap:.25rem}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.25rem * var(--tw-space-x-reverse));margin-left:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.75rem * var(--tw-space-x-reverse));margin-left:calc(.75rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-gray-100>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(243 244 246/var(--tw-divide-opacity,1))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--bus-radius-lg)}.rounded-md{border-radius:var(--bus-radius-md)}.rounded-xl{border-radius:.75rem}.rounded-r-lg{border-top-right-radius:var(--bus-radius-lg);border-bottom-right-radius:var(--bus-radius-lg)}.rounded-r-xl{border-top-right-radius:.75rem;border-bottom-right-radius:.75rem}.border{border-width:1px}.border-2{border-width:2px}.border-4{border-width:4px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l-4{border-left-width:4px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-none{border-style:none}.border-amber-100{--tw-border-opacity:1;border-color:rgb(254 243 199/var(--tw-border-opacity,1))}.border-blue-100{--tw-border-opacity:1;border-color:rgb(219 234 254/var(--tw-border-opacity,1))}.border-blue-200{--tw-border-opacity:1;border-color:rgb(191 219 254/var(--tw-border-opacity,1))}.border-blue-500{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.border-gray-100{--tw-border-opacity:1;border-color:rgb(243 244 246/var(--tw-border-opacity,1))}.border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.border-green-100{--tw-border-opacity:1;border-color:rgb(220 252 231/var(--tw-border-opacity,1))}.border-green-200{--tw-border-opacity:1;border-color:rgb(187 247 208/var(--tw-border-opacity,1))}.border-indigo-100{--tw-border-opacity:1;border-color:rgb(224 231 255/var(--tw-border-opacity,1))}.border-indigo-200{--tw-border-opacity:1;border-color:rgb(199 210 254/var(--tw-border-opacity,1))}.border-indigo-600{--tw-border-opacity:1;border-color:rgb(79 70 229/var(--tw-border-opacity,1))}.border-orange-200{--tw-border-opacity:1;border-color:rgb(254 215 170/var(--tw-border-opacity,1))}.border-orange-400{--tw-border-opacity:1;border-color:rgb(251 146 60/var(--tw-border-opacity,1))}.border-primary-200{--tw-border-opacity:1;border-color:rgb(186 230 253/var(--tw-border-opacity,1))}.border-purple-500{--tw-border-opacity:1;border-color:rgb(168 85 247/var(--tw-border-opacity,1))}.border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.border-transparent{border-color:#0000}.border-white{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity,1))}.border-t-indigo-600{--tw-border-opacity:1;border-top-color:rgb(79 70 229/var(--tw-border-opacity,1))}.border-t-primary-600{--tw-border-opacity:1;border-top-color:rgb(2 132 199/var(--tw-border-opacity,1))}.border-t-transparent{border-top-color:#0000}.bg-accent-500{--tw-bg-opacity:1;background-color:rgb(249 115 22/var(--tw-bg-opacity,1))}.bg-amber-50{--tw-bg-opacity:1;background-color:rgb(255 251 235/var(--tw-bg-opacity,1))}.bg-amber-500{--tw-bg-opacity:1;background-color:rgb(245 158 11/var(--tw-bg-opacity,1))}.bg-black\/50{background-color:#00000080}.bg-black\/60{background-color:#0009}.bg-black\/90{background-color:#000000e6}.bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.bg-cyan-100{--tw-bg-opacity:1;background-color:rgb(207 250 254/var(--tw-bg-opacity,1))}.bg-cyan-600{--tw-bg-opacity:1;background-color:rgb(8 145 178/var(--tw-bg-opacity,1))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.bg-gray-300{--tw-bg-opacity:1;background-color:rgb(209 213 219/var(--tw-bg-opacity,1))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.bg-gray-500{--tw-bg-opacity:1;background-color:rgb(107 114 128/var(--tw-bg-opacity,1))}.bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.bg-green-100{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.bg-green-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.bg-green-600{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.bg-indigo-100{--tw-bg-opacity:1;background-color:rgb(224 231 255/var(--tw-bg-opacity,1))}.bg-indigo-600{--tw-bg-opacity:1;background-color:rgb(79 70 229/var(--tw-bg-opacity,1))}.bg-orange-100{--tw-bg-opacity:1;background-color:rgb(255 237 213/var(--tw-bg-opacity,1))}.bg-orange-50{--tw-bg-opacity:1;background-color:rgb(255 247 237/var(--tw-bg-opacity,1))}.bg-orange-500{--tw-bg-opacity:1;background-color:rgb(249 115 22/var(--tw-bg-opacity,1))}.bg-orange-600{--tw-bg-opacity:1;background-color:rgb(234 88 12/var(--tw-bg-opacity,1))}.bg-primary-100{--tw-bg-opacity:1;background-color:rgb(224 242 254/var(--tw-bg-opacity,1))}.bg-primary-50{--tw-bg-opacity:1;background-color:rgb(240 249 255/var(--tw-bg-opacity,1))}.bg-primary-600{--tw-bg-opacity:1;background-color:rgb(2 132 199/var(--tw-bg-opacity,1))}.bg-purple-100{--tw-bg-opacity:1;background-color:rgb(243 232 255/var(--tw-bg-opacity,1))}.bg-purple-50{--tw-bg-opacity:1;background-color:rgb(250 245 255/var(--tw-bg-opacity,1))}.bg-purple-500{--tw-bg-opacity:1;background-color:rgb(168 85 247/var(--tw-bg-opacity,1))}.bg-purple-600{--tw-bg-opacity:1;background-color:rgb(147 51 234/var(--tw-bg-opacity,1))}.bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.bg-red-600{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.bg-sky-100{--tw-bg-opacity:1;background-color:rgb(224 242 254/var(--tw-bg-opacity,1))}.bg-transparent{background-color:#0000}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-white\/20{background-color:#fff3}.bg-yellow-100{--tw-bg-opacity:1;background-color:rgb(254 249 195/var(--tw-bg-opacity,1))}.bg-yellow-400{--tw-bg-opacity:1;background-color:rgb(250 204 21/var(--tw-bg-opacity,1))}.bg-yellow-500{--tw-bg-opacity:1;background-color:rgb(234 179 8/var(--tw-bg-opacity,1))}.bg-gradient-to-br{background-image:linear-gradient(to bottom right, var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right, var(--tw-gradient-stops))}.from-amber-50{--tw-gradient-from:#fffbeb var(--tw-gradient-from-position);--tw-gradient-to:#fffbeb00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.from-green-400{--tw-gradient-from:#4ade80 var(--tw-gradient-from-position);--tw-gradient-to:#4ade8000 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.from-indigo-50{--tw-gradient-from:#eef2ff var(--tw-gradient-from-position);--tw-gradient-to:#eef2ff00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.from-orange-400{--tw-gradient-from:#fb923c var(--tw-gradient-from-position);--tw-gradient-to:#fb923c00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.from-primary-50{--tw-gradient-from:#f0f9ff var(--tw-gradient-from-position);--tw-gradient-to:#f0f9ff00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.from-primary-900{--tw-gradient-from:#0c4a6e var(--tw-gradient-from-position);--tw-gradient-to:#0c4a6e00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.from-red-900{--tw-gradient-from:#7f1d1d var(--tw-gradient-from-position);--tw-gradient-to:#7f1d1d00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.to-green-600{--tw-gradient-to:#16a34a var(--tw-gradient-to-position)}.to-orange-50{--tw-gradient-to:#fff7ed var(--tw-gradient-to-position)}.to-orange-600{--tw-gradient-to:#ea580c var(--tw-gradient-to-position)}.to-primary-100{--tw-gradient-to:#e0f2fe var(--tw-gradient-to-position)}.to-primary-700{--tw-gradient-to:#0369a1 var(--tw-gradient-to-position)}.to-purple-50{--tw-gradient-to:#faf5ff var(--tw-gradient-to-position)}.to-red-700{--tw-gradient-to:#b91c1c var(--tw-gradient-to-position)}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-20{padding-top:5rem;padding-bottom:5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-3\.5{padding-top:.875rem;padding-bottom:.875rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-2{padding-bottom:.5rem}.pb-4{padding-bottom:1rem}.pb-5{padding-bottom:1.25rem}.pb-6{padding-bottom:1.5rem}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-5{padding-top:1.25rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-display{font-family:Inter,PingFang SC,Microsoft YaHei,sans-serif}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.italic{font-style:italic}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.text-amber-700{--tw-text-opacity:1;color:rgb(180 83 9/var(--tw-text-opacity,1))}.text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.text-blue-700{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.text-blue-800{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.text-cyan-600{--tw-text-opacity:1;color:rgb(8 145 178/var(--tw-text-opacity,1))}.text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.text-green-300{--tw-text-opacity:1;color:rgb(134 239 172/var(--tw-text-opacity,1))}.text-green-400{--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.text-green-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.text-green-800{--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity,1))}.text-indigo-600{--tw-text-opacity:1;color:rgb(79 70 229/var(--tw-text-opacity,1))}.text-orange-500{--tw-text-opacity:1;color:rgb(249 115 22/var(--tw-text-opacity,1))}.text-orange-600{--tw-text-opacity:1;color:rgb(234 88 12/var(--tw-text-opacity,1))}.text-orange-800{--tw-text-opacity:1;color:rgb(154 52 18/var(--tw-text-opacity,1))}.text-orange-900{--tw-text-opacity:1;color:rgb(124 45 18/var(--tw-text-opacity,1))}.text-primary-500{--tw-text-opacity:1;color:rgb(14 165 233/var(--tw-text-opacity,1))}.text-primary-600{--tw-text-opacity:1;color:rgb(2 132 199/var(--tw-text-opacity,1))}.text-primary-700{--tw-text-opacity:1;color:rgb(3 105 161/var(--tw-text-opacity,1))}.text-primary-800{--tw-text-opacity:1;color:rgb(7 89 133/var(--tw-text-opacity,1))}.text-purple-500{--tw-text-opacity:1;color:rgb(168 85 247/var(--tw-text-opacity,1))}.text-purple-600{--tw-text-opacity:1;color:rgb(147 51 234/var(--tw-text-opacity,1))}.text-purple-700{--tw-text-opacity:1;color:rgb(126 34 206/var(--tw-text-opacity,1))}.text-purple-800{--tw-text-opacity:1;color:rgb(107 33 168/var(--tw-text-opacity,1))}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.text-sky-700{--tw-text-opacity:1;color:rgb(3 105 161/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.text-white\/80{color:#fffc}.text-yellow-600{--tw-text-opacity:1;color:rgb(202 138 4/var(--tw-text-opacity,1))}.text-yellow-700{--tw-text-opacity:1;color:rgb(161 98 7/var(--tw-text-opacity,1))}.text-yellow-800{--tw-text-opacity:1;color:rgb(133 77 14/var(--tw-text-opacity,1))}.underline{text-decoration-line:underline}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.placeholder-gray-400::placeholder{--tw-placeholder-opacity:1;color:rgb(156 163 175/var(--tw-placeholder-opacity,1))}.accent-orange-600{accent-color:#ea580c}.accent-purple-600{accent-color:#9333ea}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.shadow{--tw-shadow:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px #00000040;--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a;--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-blue-200{--tw-shadow-color:#bfdbfe;--tw-shadow:var(--tw-shadow-colored)}.shadow-orange-200{--tw-shadow-color:#fed7aa;--tw-shadow:var(--tw-shadow-colored)}.shadow-purple-200{--tw-shadow-color:#e9d5ff;--tw-shadow:var(--tw-shadow-colored)}.outline-none{outline-offset:2px;outline:2px solid #0000}.outline{outline-style:solid}.blur{--tw-blur:blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-property:opacity;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-shadow{transition-property:box-shadow;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.transition-all-300{transition:all .3s ease-in-out}.theme-transitioning,.theme-transitioning *{transition:background-color .3s,color .3s,border-color .3s,box-shadow .3s,fill .3s,stroke .3s!important}.safe-bottom{padding-bottom:env(safe-area-inset-bottom)}@keyframes scroll{0%{transform:translateY(0)}to{transform:translateY(-50%)}}.animate-scroll{animation:scroll var(--animation-duration,6s) linear infinite}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}.scrollbar-hide::-webkit-scrollbar{display:none}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate-fadeIn{animation:.2s ease-out forwards fadeIn}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.animate-slideUp{animation:.25s cubic-bezier(.16,1,.3,1) forwards slideUp}@keyframes fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.fade-up{opacity:0;animation:fade-up var(--bus-dur-slow,.48s) var(--bus-ease-out,cubic-bezier(.16, 1, .3, 1)) forwards}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg, var(--bus-muted) 25%, color-mix(in srgb, var(--bus-muted) 70%, white) 50%, var(--bus-muted) 75%);border-radius:var(--bus-radius-md);background-size:200% 100%;animation:1.5s ease-in-out infinite shimmer}@keyframes nav-slide-in{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}.nav-animate-in{opacity:0;animation:nav-slide-in .35s var(--bus-ease-out) forwards}@keyframes brand-pulse{0%,to{box-shadow:0 0 0 0 color-mix(in srgb, var(--bus-primary) 30%, transparent)}50%{box-shadow:0 0 0 4px color-mix(in srgb, var(--bus-primary) 0%, transparent)}}.brand-icon-pulse{animation:3s ease-in-out infinite brand-pulse}.stat-icon-wrap{border-radius:var(--bus-radius-md);flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.quick-action-icon-wrap{border-radius:var(--bus-radius-full);width:44px;height:44px;transition:transform var(--bus-dur-base) var(--bus-ease-spring), background-color var(--bus-dur-base) var(--bus-ease-out);justify-content:center;align-items:center;display:flex}.quick-action:hover .quick-action-icon-wrap{transform:scale(1.08)}.route-row{transition:background-color var(--bus-dur-fast) var(--bus-ease-out)}.route-row:hover{background-color:var(--bus-muted)}.route-row:last-child{border-bottom:none}.img-placeholder img{transition:transform .4s var(--bus-ease-out)}.img-placeholder:hover img{transform:scale(1.05)}@keyframes tab-slide-fade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.animate-tab-fade{animation:tab-slide-fade var(--bus-dur-base,.28s) var(--bus-ease-out)}.bottom-nav-indicator{background:var(--bus-primary);height:2px;transition:left .3s var(--bus-ease-out), width .3s var(--bus-ease-out);border-radius:0 0 2px 2px;position:absolute;top:0}.tab-underline{background:var(--bus-primary);height:2px;transition:left .25s var(--bus-ease-out), width .25s var(--bus-ease-out);border-radius:1px;position:absolute;bottom:0}.search-input{width:224px;transition:border-color var(--bus-dur-fast) var(--bus-ease-out), box-shadow var(--bus-dur-fast) var(--bus-ease-out), background-color var(--bus-dur-fast) var(--bus-ease-out), width var(--bus-dur-base) var(--bus-ease-out)}.search-input:focus{width:280px}@keyframes notif-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.4)}}.notif-dot{background:var(--bus-state-error);border:1.5px solid var(--bus-card);border-radius:9999px;width:7px;height:7px;animation:2s ease-in-out infinite notif-pulse;position:absolute;top:7px;right:8px}@media (prefers-reduced-motion:reduce){.fade-up,.animate-tab-fade,.stat-card,.quick-action,.nav-item,.icon-btn,.link-arrow,.action-btn,.ghost-edit-btn,.logout-btn,.nav-animate-in,.brand-icon-pulse,.quick-action-icon-wrap,.route-row,.img-placeholder img,.notif-dot,.skeleton,.search-input{transition:none!important;animation:none!important;transform:none!important}.fade-up,.nav-animate-in{opacity:1!important}.skeleton{background:var(--bus-muted);animation:none!important}}.file\:mr-4::file-selector-button{margin-right:1rem}.file\:cursor-pointer::file-selector-button{cursor:pointer}.file\:rounded-lg::file-selector-button{border-radius:var(--bus-radius-lg)}.file\:border-0::file-selector-button{border-width:0}.file\:bg-gray-100::file-selector-button{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.file\:px-4::file-selector-button{padding-left:1rem;padding-right:1rem}.file\:py-2::file-selector-button{padding-top:.5rem;padding-bottom:.5rem}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.file\:text-gray-900::file-selector-button{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:left-\[2px\]:after{content:var(--tw-content);left:2px}.after\:top-\[2px\]:after{content:var(--tw-content);top:2px}.after\:h-5:after{content:var(--tw-content);height:1.25rem}.after\:w-5:after{content:var(--tw-content);width:1.25rem}.after\:rounded-full:after{content:var(--tw-content);border-radius:9999px}.after\:border:after{content:var(--tw-content);border-width:1px}.after\:border-gray-300:after{content:var(--tw-content);--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.after\:bg-white:after{content:var(--tw-content);--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.after\:transition-all:after{content:var(--tw-content);transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.after\:content-\[\'\'\]:after{--tw-content:"";content:var(--tw-content)}.last\:mb-0:last-child{margin-bottom:0}.hover\:-translate-y-0\.5:hover{--tw-translate-y:-.125rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:bg-accent-600:hover{--tw-bg-opacity:1;background-color:rgb(234 88 12/var(--tw-bg-opacity,1))}.hover\:bg-amber-100:hover{--tw-bg-opacity:1;background-color:rgb(254 243 199/var(--tw-bg-opacity,1))}.hover\:bg-blue-700:hover{--tw-bg-opacity:1;background-color:rgb(29 78 216/var(--tw-bg-opacity,1))}.hover\:bg-cyan-700:hover{--tw-bg-opacity:1;background-color:rgb(14 116 144/var(--tw-bg-opacity,1))}.hover\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.hover\:bg-gray-200:hover{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.hover\:bg-gray-300:hover{--tw-bg-opacity:1;background-color:rgb(209 213 219/var(--tw-bg-opacity,1))}.hover\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.hover\:bg-green-600:hover{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.hover\:bg-green-700:hover{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.hover\:bg-indigo-200:hover{--tw-bg-opacity:1;background-color:rgb(199 210 254/var(--tw-bg-opacity,1))}.hover\:bg-indigo-700:hover{--tw-bg-opacity:1;background-color:rgb(67 56 202/var(--tw-bg-opacity,1))}.hover\:bg-orange-600:hover{--tw-bg-opacity:1;background-color:rgb(234 88 12/var(--tw-bg-opacity,1))}.hover\:bg-orange-700:hover{--tw-bg-opacity:1;background-color:rgb(194 65 12/var(--tw-bg-opacity,1))}.hover\:bg-primary-100:hover{--tw-bg-opacity:1;background-color:rgb(224 242 254/var(--tw-bg-opacity,1))}.hover\:bg-primary-700:hover{--tw-bg-opacity:1;background-color:rgb(3 105 161/var(--tw-bg-opacity,1))}.hover\:bg-purple-700:hover{--tw-bg-opacity:1;background-color:rgb(126 34 206/var(--tw-bg-opacity,1))}.hover\:bg-red-100:hover{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.hover\:bg-red-200:hover{--tw-bg-opacity:1;background-color:rgb(254 202 202/var(--tw-bg-opacity,1))}.hover\:bg-red-50:hover{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.hover\:bg-sky-200:hover{--tw-bg-opacity:1;background-color:rgb(186 230 253/var(--tw-bg-opacity,1))}.hover\:bg-white\/30:hover{background-color:#ffffff4d}.hover\:text-blue-600:hover{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.hover\:text-blue-800:hover{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.hover\:text-gray-600:hover{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.hover\:text-gray-700:hover{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.hover\:text-gray-800:hover{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.hover\:text-gray-900:hover{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.hover\:text-primary-700:hover{--tw-text-opacity:1;color:rgb(3 105 161/var(--tw-text-opacity,1))}.hover\:text-red-600:hover{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.hover\:text-red-700:hover{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.hover\:text-red-800:hover{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-80:hover{opacity:.8}.hover\:opacity-90:hover{opacity:.9}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.hover\:shadow-xl:hover{--tw-shadow:0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a;--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.hover\:file\:bg-gray-200::file-selector-button:hover{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.focus\:border-sky-600:focus{--tw-border-opacity:1;border-color:rgb(2 132 199/var(--tw-border-opacity,1))}.focus\:border-transparent:focus{border-color:#0000}.focus\:outline-none:focus{outline-offset:2px;outline:2px solid #0000}.focus\:ring-0:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.focus\:ring-blue-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity,1))}.focus\:ring-indigo-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(99 102 241/var(--tw-ring-opacity,1))}.focus\:ring-purple-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(168 85 247/var(--tw-ring-opacity,1))}.active\:cursor-grabbing:active{cursor:grabbing}.active\:bg-orange-700:active{--tw-bg-opacity:1;background-color:rgb(194 65 12/var(--tw-bg-opacity,1))}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-blue-400:disabled{--tw-bg-opacity:1;background-color:rgb(96 165 250/var(--tw-bg-opacity,1))}.disabled\:bg-gray-400:disabled{--tw-bg-opacity:1;background-color:rgb(156 163 175/var(--tw-bg-opacity,1))}.disabled\:bg-green-400:disabled{--tw-bg-opacity:1;background-color:rgb(74 222 128/var(--tw-bg-opacity,1))}.disabled\:opacity-50:disabled{opacity:.5}.peer:checked~.peer-checked\:bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.peer:checked~.peer-checked\:bg-purple-600{--tw-bg-opacity:1;background-color:rgb(147 51 234/var(--tw-bg-opacity,1))}.peer:checked~.peer-checked\:after\:translate-x-full:after{content:var(--tw-content);--tw-translate-x:100%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.peer:checked~.peer-checked\:after\:border-white:after{content:var(--tw-content);--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity,1))}.peer:focus~.peer-focus\:outline-none{outline-offset:2px;outline:2px solid #0000}.peer:focus~.peer-focus\:ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.peer:focus~.peer-focus\:ring-blue-500{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity,1))}.peer:focus~.peer-focus\:ring-purple-500{--tw-ring-opacity:1;--tw-ring-color:rgb(168 85 247/var(--tw-ring-opacity,1))}.dark\:divide-gray-700:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(55 65 81/var(--tw-divide-opacity,1))}.dark\:border-amber-800\/50:is(.dark *){border-color:#92400e80}.dark\:border-blue-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(30 64 175/var(--tw-border-opacity,1))}.dark\:border-blue-800\/50:is(.dark *){border-color:#1e40af80}.dark\:border-gray-600:is(.dark *){--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity,1))}.dark\:border-gray-700:is(.dark *){--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity,1))}.dark\:border-gray-700\/50:is(.dark *){border-color:#37415180}.dark\:border-green-500\/30:is(.dark *){border-color:#22c55e4d}.dark\:border-green-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(22 101 52/var(--tw-border-opacity,1))}.dark\:border-green-800\/50:is(.dark *){border-color:#16653480}.dark\:border-indigo-400:is(.dark *){--tw-border-opacity:1;border-color:rgb(129 140 248/var(--tw-border-opacity,1))}.dark\:border-indigo-800\/50:is(.dark *){border-color:#3730a380}.dark\:border-indigo-900:is(.dark *){--tw-border-opacity:1;border-color:rgb(49 46 129/var(--tw-border-opacity,1))}.dark\:border-orange-500\/30:is(.dark *){border-color:#f973164d}.dark\:border-orange-600:is(.dark *){--tw-border-opacity:1;border-color:rgb(234 88 12/var(--tw-border-opacity,1))}.dark\:border-primary-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(7 89 133/var(--tw-border-opacity,1))}.dark\:border-primary-900:is(.dark *){--tw-border-opacity:1;border-color:rgb(12 74 110/var(--tw-border-opacity,1))}.dark\:border-red-500\/30:is(.dark *){border-color:#ef44444d}.dark\:border-red-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(153 27 27/var(--tw-border-opacity,1))}.dark\:border-t-indigo-400:is(.dark *){--tw-border-opacity:1;border-top-color:rgb(129 140 248/var(--tw-border-opacity,1))}.dark\:border-t-primary-400:is(.dark *){--tw-border-opacity:1;border-top-color:rgb(56 189 248/var(--tw-border-opacity,1))}.dark\:bg-amber-900\/20:is(.dark *){background-color:#78350f33}.dark\:bg-blue-500\/20:is(.dark *){background-color:#3b82f633}.dark\:bg-blue-900\/20:is(.dark *){background-color:#1e3a8a33}.dark\:bg-blue-900\/30:is(.dark *){background-color:#1e3a8a4d}.dark\:bg-cyan-900\/30:is(.dark *){background-color:#164e634d}.dark\:bg-gray-500\/30:is(.dark *){background-color:#6b72804d}.dark\:bg-gray-700:is(.dark *){--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.dark\:bg-gray-700\/50:is(.dark *){background-color:#37415180}.dark\:bg-gray-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.dark\:bg-gray-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.dark\:bg-green-500\/10:is(.dark *){background-color:#22c55e1a}.dark\:bg-green-500\/20:is(.dark *){background-color:#22c55e33}.dark\:bg-green-500\/30:is(.dark *){background-color:#22c55e4d}.dark\:bg-green-900\/20:is(.dark *){background-color:#14532d33}.dark\:bg-green-900\/30:is(.dark *){background-color:#14532d4d}.dark\:bg-indigo-500:is(.dark *){--tw-bg-opacity:1;background-color:rgb(99 102 241/var(--tw-bg-opacity,1))}.dark\:bg-indigo-500\/20:is(.dark *){background-color:#6366f133}.dark\:bg-indigo-900\/30:is(.dark *){background-color:#312e814d}.dark\:bg-orange-500\/10:is(.dark *){background-color:#f973161a}.dark\:bg-orange-500\/20:is(.dark *){background-color:#f9731633}.dark\:bg-orange-900\/30:is(.dark *){background-color:#7c2d124d}.dark\:bg-orange-900\/40:is(.dark *){background-color:#7c2d1266}.dark\:bg-primary-900\/20:is(.dark *){background-color:#0c4a6e33}.dark\:bg-primary-900\/30:is(.dark *){background-color:#0c4a6e4d}.dark\:bg-purple-900\/20:is(.dark *){background-color:#581c8733}.dark\:bg-purple-900\/30:is(.dark *){background-color:#581c874d}.dark\:bg-red-500\/10:is(.dark *){background-color:#ef44441a}.dark\:bg-red-500\/20:is(.dark *){background-color:#ef444433}.dark\:bg-red-500\/30:is(.dark *){background-color:#ef44444d}.dark\:bg-red-900\/20:is(.dark *){background-color:#7f1d1d33}.dark\:bg-red-900\/30:is(.dark *){background-color:#7f1d1d4d}.dark\:bg-sky-500\/20:is(.dark *){background-color:#0ea5e933}.dark\:bg-yellow-500\/20:is(.dark *){background-color:#eab30833}.dark\:from-amber-900\/20:is(.dark *){--tw-gradient-from:#78350f33 var(--tw-gradient-from-position);--tw-gradient-to:#78350f00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:from-indigo-900\/20:is(.dark *){--tw-gradient-from:#312e8133 var(--tw-gradient-from-position);--tw-gradient-to:#312e8100 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:from-primary-900\/20:is(.dark *){--tw-gradient-from:#0c4a6e33 var(--tw-gradient-from-position);--tw-gradient-to:#0c4a6e00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:to-orange-900\/20:is(.dark *){--tw-gradient-to:#7c2d1233 var(--tw-gradient-to-position)}.dark\:to-primary-800\/20:is(.dark *){--tw-gradient-to:#07598533 var(--tw-gradient-to-position)}.dark\:to-purple-900\/20:is(.dark *){--tw-gradient-to:#581c8733 var(--tw-gradient-to-position)}.dark\:text-amber-400:is(.dark *){--tw-text-opacity:1;color:rgb(251 191 36/var(--tw-text-opacity,1))}.dark\:text-blue-300:is(.dark *){--tw-text-opacity:1;color:rgb(147 197 253/var(--tw-text-opacity,1))}.dark\:text-blue-400:is(.dark *){--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.dark\:text-cyan-400:is(.dark *){--tw-text-opacity:1;color:rgb(34 211 238/var(--tw-text-opacity,1))}.dark\:text-gray-100:is(.dark *){--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1))}.dark\:text-gray-200:is(.dark *){--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.dark\:text-gray-300:is(.dark *){--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.dark\:text-gray-400:is(.dark *){--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.dark\:text-gray-50:is(.dark *){--tw-text-opacity:1;color:rgb(249 250 251/var(--tw-text-opacity,1))}.dark\:text-gray-500:is(.dark *){--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.dark\:text-gray-600:is(.dark *){--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.dark\:text-green-300:is(.dark *){--tw-text-opacity:1;color:rgb(134 239 172/var(--tw-text-opacity,1))}.dark\:text-green-400:is(.dark *){--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.dark\:text-green-500\/50:is(.dark *){color:#22c55e80}.dark\:text-indigo-400:is(.dark *){--tw-text-opacity:1;color:rgb(129 140 248/var(--tw-text-opacity,1))}.dark\:text-orange-300:is(.dark *){--tw-text-opacity:1;color:rgb(253 186 116/var(--tw-text-opacity,1))}.dark\:text-orange-400:is(.dark *){--tw-text-opacity:1;color:rgb(251 146 60/var(--tw-text-opacity,1))}.dark\:text-primary-400:is(.dark *){--tw-text-opacity:1;color:rgb(56 189 248/var(--tw-text-opacity,1))}.dark\:text-purple-400:is(.dark *){--tw-text-opacity:1;color:rgb(192 132 252/var(--tw-text-opacity,1))}.dark\:text-red-300:is(.dark *){--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.dark\:text-red-400:is(.dark *){--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.dark\:text-sky-400:is(.dark *){--tw-text-opacity:1;color:rgb(56 189 248/var(--tw-text-opacity,1))}.dark\:text-white:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.dark\:text-yellow-400:is(.dark *){--tw-text-opacity:1;color:rgb(250 204 21/var(--tw-text-opacity,1))}.dark\:placeholder-gray-500:is(.dark *)::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(107 114 128/var(--tw-placeholder-opacity,1))}.dark\:placeholder-gray-500:is(.dark *)::placeholder{--tw-placeholder-opacity:1;color:rgb(107 114 128/var(--tw-placeholder-opacity,1))}.dark\:shadow-black\/20:is(.dark *){--tw-shadow-color:#0003;--tw-shadow:var(--tw-shadow-colored)}.dark\:shadow-black\/30:is(.dark *){--tw-shadow-color:#0000004d;--tw-shadow:var(--tw-shadow-colored)}.dark\:file\:bg-gray-700:is(.dark *)::file-selector-button{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.dark\:file\:text-white:is(.dark *)::file-selector-button{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.dark\:hover\:bg-amber-900\/40:hover:is(.dark *){background-color:#78350f66}.dark\:hover\:bg-gray-600:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.dark\:hover\:bg-gray-700:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.dark\:hover\:bg-gray-700\/30:hover:is(.dark *){background-color:#3741514d}.dark\:hover\:bg-gray-700\/50:hover:is(.dark *){background-color:#37415180}.dark\:hover\:bg-indigo-400:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(129 140 248/var(--tw-bg-opacity,1))}.dark\:hover\:bg-indigo-500\/30:hover:is(.dark *){background-color:#6366f14d}.dark\:hover\:bg-primary-900\/40:hover:is(.dark *){background-color:#0c4a6e66}.dark\:hover\:bg-red-500\/30:hover:is(.dark *){background-color:#ef44444d}.dark\:hover\:bg-red-900\/20:hover:is(.dark *){background-color:#7f1d1d33}.dark\:hover\:bg-red-900\/40:hover:is(.dark *){background-color:#7f1d1d66}.dark\:hover\:bg-sky-500\/30:hover:is(.dark *){background-color:#0ea5e94d}.hover\:dark\:bg-gray-600:is(.dark *):hover{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.dark\:hover\:text-blue-300:hover:is(.dark *){--tw-text-opacity:1;color:rgb(147 197 253/var(--tw-text-opacity,1))}.dark\:hover\:text-blue-400:hover:is(.dark *){--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.dark\:hover\:text-gray-100:hover:is(.dark *){--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1))}.dark\:hover\:text-gray-300:hover:is(.dark *){--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.dark\:hover\:text-primary-300:hover:is(.dark *){--tw-text-opacity:1;color:rgb(125 211 252/var(--tw-text-opacity,1))}.dark\:hover\:text-red-300:hover:is(.dark *){--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.dark\:hover\:text-red-400:hover:is(.dark *){--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.dark\:hover\:shadow-black\/30:hover:is(.dark *){--tw-shadow-color:#0000004d;--tw-shadow:var(--tw-shadow-colored)}.dark\:hover\:file\:bg-gray-600:is(.dark *)::file-selector-button:hover{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.dark\:focus\:border-sky-500:focus:is(.dark *){--tw-border-opacity:1;border-color:rgb(14 165 233/var(--tw-border-opacity,1))}@media (width>=640px){.sm\:left-4{left:1rem}.sm\:right-4{right:1rem}.sm\:mb-4{margin-bottom:1rem}.sm\:mb-5{margin-bottom:1.25rem}.sm\:mb-6{margin-bottom:1.5rem}.sm\:mb-8{margin-bottom:2rem}.sm\:ml-2{margin-left:.5rem}.sm\:block{display:block}.sm\:inline{display:inline}.sm\:h-10{height:2.5rem}.sm\:h-16{height:4rem}.sm\:h-24{height:6rem}.sm\:h-32{height:8rem}.sm\:h-7{height:1.75rem}.sm\:w-10{width:2.5rem}.sm\:w-16{width:4rem}.sm\:w-24{width:6rem}.sm\:w-32{width:8rem}.sm\:w-7{width:1.75rem}.sm\:min-w-\[100px\]{min-width:100px}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-start{justify-content:flex-start}.sm\:justify-between{justify-content:space-between}.sm\:gap-2{gap:.5rem}.sm\:gap-3{gap:.75rem}.sm\:gap-4{gap:1rem}.sm\:gap-5{gap:1.25rem}.sm\:gap-8{gap:2rem}.sm\:space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.sm\:p-4{padding:1rem}.sm\:p-5{padding:1.25rem}.sm\:p-6{padding:1.5rem}.sm\:p-8{padding:2rem}.sm\:px-3{padding-left:.75rem;padding-right:.75rem}.sm\:px-4{padding-left:1rem;padding-right:1rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-12{padding-top:3rem;padding-bottom:3rem}.sm\:py-2{padding-top:.5rem;padding-bottom:.5rem}.sm\:py-4{padding-top:1rem;padding-bottom:1rem}.sm\:py-8{padding-top:2rem;padding-bottom:2rem}.sm\:text-left{text-align:left}.sm\:text-2xl{font-size:1.5rem;line-height:2rem}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-4xl{font-size:2.25rem;line-height:2.5rem}.sm\:text-5xl{font-size:3rem;line-height:1}.sm\:text-base{font-size:1rem;line-height:1.5rem}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}.sm\:text-xl{font-size:1.25rem;line-height:1.75rem}}@media (width>=768px){.md\:flex{display:flex}.md\:hidden{display:none}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=1024px){.lg\:col-span-2{grid-column:span 2/span 2}.lg\:w-\[280px\]{width:280px}.lg\:flex-1{flex:1}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--bus-background);color:var(--bus-foreground);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.layout{flex-direction:column;min-height:100vh;display:flex}.layout-main{flex:1;width:100%;max-width:1400px;margin:0 auto;padding:24px}.notification-container{z-index:9999;flex-direction:column;gap:12px;max-width:400px;display:flex;position:fixed;top:20px;right:20px}.notification{background:var(--bus-card);border-radius:8px;align-items:flex-start;gap:12px;padding:16px 20px;animation:.3s ease-out forwards slideIn;display:flex;position:relative;overflow:hidden;box-shadow:0 4px 12px #00000026}.notification.removing{animation:.3s ease-out forwards slideOut}@keyframes slideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes slideOut{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}.notification.success{border-left:4px solid var(--bus-state-success)}.notification.error{border-left:4px solid var(--bus-state-error)}.notification.warning{border-left:4px solid var(--bus-state-warning)}.notification.info{border-left:4px solid var(--bus-state-info)}.notification-icon{flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:20px;display:flex}.notification-content{flex:1;min-width:0}.notification-title{color:var(--bus-card-foreground);margin-bottom:4px;font-size:14px;font-weight:600}.notification-message{color:var(--bus-muted-foreground);font-size:13px;line-height:1.4}.notification-close{cursor:pointer;color:var(--bus-muted-foreground);background:0 0;border:none;flex-shrink:0;padding:4px;font-size:18px;line-height:1;transition:color .2s}.notification-close:hover{color:var(--bus-card-foreground)}.notification-progress{background:#0000001a;width:100%;height:3px;position:absolute;bottom:0;left:0}.notification-progress-bar{height:100%;animation:linear forwards progress}.notification.success .notification-progress-bar{background:var(--bus-state-success)}.notification.error .notification-progress-bar{background:var(--bus-state-error)}.notification.warning .notification-progress-bar{background:var(--bus-state-warning)}.notification.info .notification-progress-bar{background:var(--bus-state-info)}@keyframes progress{0%{width:100%}to{width:0%}}.dark .notification{background:var(--bus-card);border:1px solid var(--bus-border);box-shadow:0 4px 12px #0006}.dark .notification.success{border-left:4px solid var(--bus-state-success)}.dark .notification.error{border-left:4px solid var(--bus-state-error)}.dark .notification.warning{border-left:4px solid var(--bus-state-warning)}.dark .notification.info{border-left:4px solid var(--bus-state-info)}.dark .notification-title{color:var(--bus-card-foreground)}.dark .notification-message,.dark .notification-close{color:var(--bus-muted-foreground)}.dark .notification-close:hover{color:var(--bus-card-foreground)}.dark .notification-progress{background:#ffffff1a}.dark .notification.success .notification-progress-bar{background:var(--bus-state-success)}.dark .notification.error .notification-progress-bar{background:var(--bus-state-error)}.dark .notification.warning .notification-progress-bar{background:var(--bus-state-warning)}.dark .notification.info .notification-progress-bar{background:var(--bus-state-info)}.dark .notification-icon{filter:brightness(1.1)}.home-container{flex-direction:column;gap:24px;display:flex}.home-section-title{color:var(--bus-card-foreground);align-items:center;gap:6px;margin-bottom:12px;font-size:1.25rem;font-weight:600;display:flex}.home-container .stat-card-total{color:#2563eb}.home-container .stat-card-green{color:#16a34a}.home-container .stat-card-yellow{color:#d97706}.home-container .stat-card-gray{color:#64748b}.home-container .stat-card-purple{color:#8b5cf6}.home-container .stat-card-suspended{color:#dc2626}.route-card{cursor:pointer;color:inherit;border-radius:12px;flex-direction:column;gap:6px;padding:16px;text-decoration:none;transition:transform .15s,box-shadow .15s;display:flex;position:relative;overflow:hidden}.updates-grid{grid-template-columns:1fr;gap:12px;display:grid}.update-card{background:var(--bus-card);box-shadow:var(--bus-shadow-sm);color:inherit;border-radius:12px;flex-direction:column;gap:10px;padding:16px;text-decoration:none;transition:transform .15s,box-shadow .15s;display:flex;position:relative;overflow:hidden}.update-card:after{content:"";opacity:0;background:linear-gradient(135deg,#0000 0%,#ffffff1a 100%);transition:opacity .15s;position:absolute;inset:0}.update-card:hover{box-shadow:var(--bus-shadow-float);transform:translateY(-2px)}.update-card:hover:after{opacity:1}.update-card:active{transform:scale(.98)}.update-card-header{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.update-route-name{color:var(--bus-card-foreground);font-size:1.05rem;font-weight:700}.update-time{color:var(--bus-muted-foreground);white-space:nowrap;font-size:.75rem;font-weight:500}.update-route-directions{flex-direction:column;gap:6px;display:flex}.direction-info{color:var(--bus-muted-foreground);align-items:center;gap:6px;font-size:.85rem;display:flex}.direction-station{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.direction-arrow{color:var(--bus-muted-foreground);font-weight:600}.update-status-badge{text-transform:uppercase;letter-spacing:.5px;border-radius:20px;align-self:flex-start;padding:3px 10px;font-size:.7rem;font-weight:600;display:inline-flex}.no-data{text-align:center;color:var(--bus-muted-foreground);background:var(--bus-card);box-shadow:var(--bus-shadow-sm);border-radius:12px;padding:32px}.retry-button{background:var(--bus-state-error);color:var(--bus-primary-foreground);cursor:pointer;border:none;border-radius:8px;min-height:44px;padding:10px 24px;font-size:.9rem;font-weight:500;transition:background .15s,transform .1s}@media (width>=640px){.home-container{gap:32px}.home-section-title{margin-bottom:16px;font-size:1.5rem}.stats-grid{gap:16px;grid-template-columns:repeat(6,1fr)!important}.stat-card{padding:24px}.stat-card-value{margin-bottom:8px;font-size:2.5rem}.stat-card-label{font-size:.9rem}.routes-grid{grid-template-columns:repeat(2,1fr);gap:16px}.route-card{gap:8px;padding:20px}.route-card-name{font-size:1.25rem}.updates-grid{grid-template-columns:repeat(2,1fr);gap:16px}.update-card{gap:12px;padding:20px}.update-route-name{font-size:1.2rem}}@media (width>=1024px){.routes-grid,.updates-grid{grid-template-columns:repeat(3,1fr)}}.dark .route-card{background:var(--bus-card);box-shadow:var(--bus-shadow-sm)}.dark .update-card:after{background:linear-gradient(135deg,#0000 0%,#ffffff0d 100%)}.route-detail{flex-direction:column;gap:24px;display:flex}.sticky-header{z-index:50;background:var(--bus-card);border-bottom:1px solid var(--bus-border);padding:16px 24px;transition:transform .3s,opacity .3s;position:sticky;top:60px}.sticky-header.hidden{opacity:0;transform:translateY(-100%)}.sticky-header-content{flex-direction:column;gap:8px;max-width:1400px;margin:0 auto;display:flex}.sticky-header-title{color:var(--bus-card-foreground);font-size:1.25rem;font-weight:600}.sticky-header-info{color:var(--bus-muted-foreground);gap:24px;font-size:.95rem;display:flex}.section{background:var(--bus-card);box-shadow:var(--bus-shadow-sm);border-radius:12px;padding:20px}.section-title{color:var(--bus-card-foreground);margin-bottom:16px;font-size:1.1rem;font-weight:600}.section-empty{color:var(--bus-muted-foreground);text-align:center;padding:24px}.recent-schedules{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;display:grid}.recent-schedule-direction{background:var(--bus-muted);border-radius:8px;padding:16px}.recent-schedule-direction-title{color:var(--bus-card-foreground);margin-bottom:12px;font-weight:600}.recent-schedule-item{border-bottom:1px solid var(--bus-border);justify-content:space-between;padding:8px 0;display:flex}.recent-schedule-item:last-child{border-bottom:none}.schedule-time{font-size:1.2rem;font-weight:500}.schedule-time.upcoming{color:var(--bus-state-success)}.schedule-time.passed{color:var(--bus-muted-foreground)}.full-schedules-direction{margin-bottom:24px}.full-schedules-direction:last-child{margin-bottom:0}.direction-title{color:var(--bus-muted-foreground);margin-bottom:12px;font-weight:600}.schedule-row{border-bottom:1px solid var(--bus-border);justify-content:space-between;align-items:center;padding:10px 0;display:flex}.schedule-row:last-child{border-bottom:none}.schedule-label{align-items:center;gap:8px;display:flex}.schedule-dot{border-radius:50%;width:10px;height:10px}.schedule-dot-green{background:var(--bus-state-success)}.schedule-dot-yellow{background:var(--bus-state-warning)}.schedule-dot-blue{background:var(--bus-primary)}.schedule-dot-orange{background:var(--bus-state-idle)}.schedule-dot-gray{background:var(--bus-muted-foreground)}.stops-container{padding-bottom:8px;overflow-x:auto}.stops-grid{gap:4px;min-width:800px;display:inline-grid}.stop-row{display:contents}.stop-cell{text-align:center;min-width:60px;padding:8px 4px;font-size:.9rem}.stop-index{color:var(--bus-muted-foreground);font-weight:600}.stop-char{color:var(--bus-card-foreground)}.remark-text{color:var(--bus-muted-foreground);white-space:pre-wrap;line-height:1.6}.images-group{margin-bottom:24px}.images-group:last-child{margin-bottom:0}.images-group-title{color:var(--bus-muted-foreground);margin-bottom:12px;font-weight:600}.image-thumbnail{aspect-ratio:4/3;-o-object-fit:cover;object-fit:cover;cursor:pointer;border-radius:8px;width:100%;transition:transform .2s}.image-thumbnail:hover{transform:scale(1.05)}.lightbox-backdrop{z-index:1000;cursor:pointer;background:#000000e6;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.lightbox-image{-o-object-fit:contain;object-fit:contain;max-width:90%;max-height:90%}.vehicle-item{background:var(--bus-muted);color:var(--bus-muted-foreground);border-radius:8px;padding:12px 16px}.login-page{background:linear-gradient(135deg, var(--bus-primary-50) 0%, var(--bus-primary-100) 100%);justify-content:center;align-items:center;min-height:calc(100vh - 60px);padding:24px;display:flex}.login-container{background-color:var(--bus-card);width:100%;max-width:420px;box-shadow:var(--bus-shadow-float);border:1px solid var(--bus-border);border-radius:12px;padding:40px}.login-header{text-align:center;margin-bottom:32px}.login-icon{color:var(--bus-state-success);margin-bottom:16px}.login-title{color:var(--bus-foreground);margin:0 0 8px;font-size:28px;font-weight:700}.login-subtitle{color:var(--bus-muted-foreground);margin:0;font-size:14px}.login-error{background-color:var(--bus-state-error-bg);border:1px solid var(--bus-state-error);color:var(--bus-state-error);text-align:center;border-radius:8px;margin-bottom:24px;padding:14px 16px;font-size:14px}.login-form{flex-direction:column;gap:24px;display:flex}.password-input{background-color:var(--bus-muted);border:1px solid var(--bus-input);width:100%;color:var(--bus-foreground);box-sizing:border-box;border-radius:8px;padding:12px 48px 12px 16px;font-size:16px;transition:all .2s}.password-input:focus{border-color:var(--bus-state-success);box-shadow:0 0 0 3px color-mix(in srgb, var(--bus-state-success) 10%, transparent);outline:none}.password-input::placeholder{color:var(--bus-muted-foreground)}.password-input:disabled{opacity:.5;cursor:not-allowed}.login-button{background:var(--bus-state-success);color:var(--bus-primary-foreground);cursor:pointer;border:none;border-radius:8px;padding:14px 24px;font-size:16px;font-weight:600;transition:all .2s}.login-button:hover:not(:disabled){box-shadow:0 4px 12px color-mix(in srgb, var(--bus-state-success) 30%, transparent);transform:translateY(-1px)}.login-button:disabled{opacity:.5;cursor:not-allowed;transform:none}.forgot-password-link{text-align:right;margin-top:-8px}.forgot-password-link a{color:var(--bus-muted-foreground);font-size:13px;text-decoration:none;transition:color .2s}.forgot-password-link a:hover{color:var(--bus-state-success)}.loading-spinner{align-items:center;gap:8px;display:inline-flex}.login-footer{text-align:center;margin-top:24px}.back-link{color:var(--bus-muted-foreground);font-size:14px;text-decoration:none;transition:color .2s}.forgot-password-page{background:linear-gradient(135deg, var(--bus-background) 0%, var(--bus-card) 100%);justify-content:center;align-items:center;min-height:calc(100vh - 60px);padding:24px;display:flex}.forgot-password-container{background-color:var(--bus-card);width:100%;max-width:420px;box-shadow:var(--bus-shadow-float);border:1px solid var(--bus-border);border-radius:12px;padding:40px}.forgot-password-header{text-align:center;margin-bottom:32px}.forgot-password-icon{color:var(--bus-state-success);margin-bottom:16px}.forgot-password-title{color:var(--bus-foreground);margin:0 0 8px;font-size:28px;font-weight:700}.forgot-password-subtitle{color:var(--bus-muted-foreground);margin:0;font-size:14px}.forgot-password-error{background-color:var(--bus-state-error-bg);border:1px solid var(--bus-state-error);color:var(--bus-state-error-fg);text-align:center;border-radius:8px;margin-bottom:24px;padding:14px 16px;font-size:14px}.forgot-password-form{flex-direction:column;gap:24px;display:flex}.form-group{flex-direction:column;gap:8px;display:flex}.form-label{color:var(--bus-foreground);font-size:14px;font-weight:500}.input-with-icon{align-items:center;display:flex;position:relative}.input-icon{color:var(--bus-muted-foreground);pointer-events:none;position:absolute;left:14px}.form-input{background-color:var(--bus-background);border:1px solid var(--bus-border);width:100%;color:var(--bus-foreground);box-sizing:border-box;border-radius:8px;padding:12px 16px 12px 44px;font-size:16px;transition:all .2s}.form-input:focus{border-color:var(--bus-state-success);box-shadow:0 0 0 3px color-mix(in srgb, var(--bus-state-success) 10%, transparent);outline:none}.form-input::placeholder{color:var(--bus-muted-foreground)}.form-input:disabled{opacity:.5;cursor:not-allowed}.code-input{text-align:center;letter-spacing:4px;flex:1;padding-left:16px;font-size:18px;font-weight:600}.password-input-wrapper{align-items:center;display:flex;position:relative}.password-input{padding-left:44px;padding-right:48px}.password-toggle{color:var(--bus-muted-foreground);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:4px;transition:all .2s;display:flex;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.password-toggle:hover{color:var(--bus-foreground);background-color:color-mix(in srgb, var(--bus-foreground) 5%, transparent)}.password-toggle:disabled{opacity:.5;cursor:not-allowed}.password-mismatch{color:var(--bus-state-error);margin-top:4px;font-size:13px}.forgot-password-button{background:var(--bus-state-success);color:var(--bus-primary-foreground);cursor:pointer;border:none;border-radius:8px;padding:14px 24px;font-size:16px;font-weight:600;transition:all .2s}.forgot-password-button:hover:not(:disabled){box-shadow:0 4px 12px color-mix(in srgb, var(--bus-state-success) 30%, transparent);transform:translateY(-1px)}.forgot-password-button:disabled{opacity:.5;cursor:not-allowed;transform:none}.secondary-button{background-color:var(--bus-muted);color:var(--bus-muted-foreground);border:1px solid var(--bus-border);cursor:pointer;white-space:nowrap;border-radius:8px;padding:12px 16px;font-size:14px;font-weight:500;transition:all .2s}.secondary-button:hover:not(:disabled){background-color:var(--bus-border);color:var(--bus-foreground)}.secondary-button:disabled{opacity:.5;cursor:not-allowed}.success-content{flex-direction:column;align-items:center;gap:24px;padding:20px 0;display:flex}.success-icon{color:var(--bus-state-success)}.forgot-password-footer{text-align:center;margin-top:24px}.back-link{color:var(--bus-muted-foreground);align-items:center;gap:6px;font-size:14px;text-decoration:none;transition:color .2s;display:inline-flex}.company-home-container{flex-direction:column;gap:24px;max-width:1200px;margin:0 auto;padding:20px;display:flex}.company-loading-container{justify-content:center;align-items:center;padding:80px 20px;display:flex}.company-error-container{background:var(--bus-state-error-bg);border:1px solid var(--bus-state-error);text-align:center;border-radius:12px;margin:20px;padding:24px}.retry-button{background:var(--bus-state-error);color:var(--bus-primary-foreground);cursor:pointer;border:none;border-radius:8px;padding:10px 24px;font-size:14px;font-weight:500;transition:background .15s,transform .1s}.company-header-section{width:100%}.company-header-card{background:var(--bus-card);border-radius:16px;align-items:center;gap:20px;padding:24px;display:flex;box-shadow:0 2px 8px #00000014}.company-logo-container{flex-shrink:0}.company-logo{-o-object-fit:cover;object-fit:cover;background:var(--bus-muted);border-radius:12px;width:80px;height:80px}.company-logo-placeholder{background:linear-gradient(135deg, var(--bus-primary), var(--bus-accent-purple));color:#fff;border-radius:12px;justify-content:center;align-items:center;width:80px;height:80px;font-size:32px;font-weight:700;display:flex}.company-info{flex:1}.company-meta{flex-wrap:wrap;gap:8px;display:flex}.company-meta-item{color:var(--bus-muted-foreground);font-size:14px}.nav-cards-section{width:100%}.nav-cards-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.nav-card{background:var(--bus-card);border-radius:12px;align-items:center;gap:16px;padding:20px;text-decoration:none;transition:transform .15s,box-shadow .15s;display:flex;box-shadow:0 2px 8px #00000014}.nav-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0000001f}.nav-card:active{transform:scale(.98)}.nav-card-icon{color:var(--bus-primary);flex-shrink:0}.nav-card-content{flex:1}.nav-card-title{color:var(--bus-card-foreground);margin-bottom:4px;font-size:18px;font-weight:600}.nav-card-count{color:var(--bus-muted-foreground);font-size:13px}.section-title{color:var(--bus-card-foreground);align-items:center;gap:8px;margin:0 0 16px;font-size:20px;font-weight:600;display:flex}.vehicles-list{flex-direction:column;gap:12px;display:flex}.vehicle-item{background:var(--bus-muted);border-left:4px solid var(--bus-primary);border-radius:8px;justify-content:space-between;align-items:center;padding:16px;display:flex}.vehicle-info{align-items:center;gap:8px;display:flex}.vehicle-model{color:var(--bus-muted-foreground);font-size:14px}.vehicle-status{flex-shrink:0}.status-badge{border-radius:20px;padding:4px 12px;font-size:12px;font-weight:600}.status-active{background:var(--bus-state-success-bg);color:var(--bus-state-success-fg)}.status-inactive{background:var(--bus-state-error-bg);color:var(--bus-state-error-fg)}.branches-section{background:var(--bus-card);border-radius:12px;padding:20px;box-shadow:0 2px 8px #00000014}.branches-list{flex-direction:column;gap:12px;display:flex}.branch-item{background:var(--bus-muted);border-radius:8px;justify-content:space-between;align-items:center;padding:16px;display:flex}.branch-info{flex:1}.branch-name{color:var(--bus-card-foreground);margin-bottom:4px;font-size:16px;font-weight:600}.branch-address{color:var(--bus-muted-foreground);font-size:13px}.branch-routes-count{color:var(--bus-primary);background:var(--bus-state-info-bg);border-radius:6px;padding:6px 12px;font-size:14px;font-weight:500}.updates-section{background:var(--bus-card);border-radius:12px;padding:20px;box-shadow:0 2px 8px #00000014}.updates-container{flex-direction:column;gap:20px;display:flex}.date-group{flex-direction:column;gap:12px;display:flex}.date-header{color:var(--bus-muted-foreground);border-bottom:2px solid var(--bus-border);padding:4px 0;font-size:14px;font-weight:600}.updates-list{flex-direction:column;gap:8px;display:flex}.update-item{background:var(--bus-muted);border-left:3px solid var(--bus-accent-purple);border-radius:8px;align-items:flex-start;gap:16px;padding:12px 16px;display:flex}.update-text-content{flex:1;min-width:0}.update-title{color:var(--bus-card-foreground);margin-bottom:4px;font-size:15px;font-weight:600}.update-content{color:var(--bus-muted-foreground);font-size:13px;line-height:1.5}.update-image-container{cursor:pointer;border-radius:6px;flex-shrink:0;width:100px;height:100px;transition:transform .2s;overflow:hidden}.update-image-container:hover{transform:scale(1.02)}.update-image{-o-object-fit:cover;object-fit:cover;width:100%;height:100%;display:block}.no-data-container{text-align:center;background:var(--bus-card);border-radius:12px;padding:60px 20px;box-shadow:0 2px 8px #00000014}.no-data-icon{margin-bottom:16px;font-size:48px}.no-data-text{color:var(--bus-muted-foreground);font-size:16px}@media (width<=768px){.company-home-container{gap:16px;padding:16px}.company-header-card{text-align:center;flex-direction:column}.company-name{font-size:22px}.nav-cards-grid{grid-template-columns:1fr}.nav-card{padding:16px}.nav-card-icon{width:24px;height:24px}.nav-card-title{font-size:16px}}.company-routes-container{flex-direction:column;gap:24px;display:flex}.company-header{flex-direction:column;gap:16px;display:flex}.company-info{background:var(--bus-card);box-shadow:var(--bus-shadow-sm);border-radius:16px;align-items:flex-start;gap:20px;padding:24px;display:flex}.company-logo{background:var(--bus-muted);border-radius:12px;flex-shrink:0;width:80px;height:80px;overflow:hidden}.company-logo img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%}.company-details{flex-direction:column;flex:1;gap:8px;display:flex}.company-meta{color:var(--bus-muted-foreground);gap:16px;font-size:.9rem;display:flex}.stat-card{background:var(--bus-card);box-shadow:var(--bus-shadow-sm);text-align:center;border-radius:12px;padding:16px;transition:transform .15s,box-shadow .15s}.stat-card:hover{box-shadow:var(--bus-shadow-md);transform:translateY(-2px)}.company-routes-container .stat-card-total{color:#0369a1}.company-routes-container .stat-card-green{color:#16a34a}.company-routes-container .stat-card-gray{color:#64748b}.branch-section{flex-direction:column;gap:12px;display:flex}.branch-header{justify-content:space-between;align-items:center;display:flex}.branch-title{align-items:center;gap:8px;display:flex}.branch-title h2{color:var(--bus-foreground);margin:0;font-size:1.25rem;font-weight:600}.branch-link{color:var(--bus-primary);border-radius:6px;padding:6px 12px;font-size:.9rem;font-weight:500;text-decoration:none;transition:background .15s}.branch-link:hover{background:var(--bus-primary-100)}.route-card{cursor:pointer;color:inherit;background:var(--bus-card);box-shadow:var(--bus-shadow-sm);border-radius:12px;flex-direction:column;gap:6px;padding:16px;text-decoration:none;transition:transform .15s,box-shadow .15s;display:flex;position:relative;overflow:hidden}.retry-button:hover{background:var(--bus-state-error);filter:brightness(1.1)}@media (width>=640px){.company-routes-container{gap:32px}.company-name{font-size:2rem}.stat-card{padding:24px}.stat-card-value{margin-bottom:8px;font-size:2.5rem}.stat-card-label{font-size:.9rem}.branch-title h2{font-size:1.5rem}.routes-grid{grid-template-columns:repeat(2,1fr);gap:16px}.route-card{gap:8px;padding:20px}.route-card-name{font-size:1.25rem}}@media (width>=1024px){.routes-grid{grid-template-columns:repeat(3,1fr)}}.company-branch-container{flex-direction:column;gap:24px;display:flex}.branch-header{flex-direction:column;gap:16px;display:flex}.back-link{color:var(--bus-muted-foreground);background:var(--bus-card);border-radius:8px;align-self:flex-start;align-items:center;gap:6px;padding:8px 12px;font-size:.9rem;font-weight:500;text-decoration:none;transition:color .15s,background .15s;display:inline-flex}.back-link:hover{color:var(--bus-primary);background:var(--bus-muted)}.branch-info{background:var(--bus-card);border-radius:16px;flex-direction:column;gap:12px;padding:24px;display:flex;box-shadow:0 1px 3px #0000001a}.company-name{color:var(--bus-muted-foreground);text-transform:uppercase;letter-spacing:.5px;font-size:.9rem;font-weight:500}.branch-title-section{align-items:center;gap:10px;display:flex}.branch-title-section h1{color:var(--bus-card-foreground);margin:0;font-size:1.75rem;font-weight:700}.branch-meta{color:var(--bus-muted-foreground);font-size:.9rem}.stats-grid{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.stat-card{background:var(--bus-card);text-align:center;border-radius:12px;padding:16px;transition:transform .15s,box-shadow .15s;box-shadow:0 1px 3px #0000001a}.stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.stat-card:active{transform:scale(.98)}.stat-card-value{margin-bottom:4px;font-size:1.75rem;font-weight:700}.company-branch-container .stat-card-total{color:#0369a1}.company-branch-container .stat-card-green{color:#16a34a}.company-branch-container .stat-card-gray{color:#64748b}.routes-section{flex-direction:column;gap:12px;display:flex}.section-title{color:var(--bus-card-foreground);margin:0;font-size:1.25rem;font-weight:600}.route-card{cursor:pointer;color:inherit;background:var(--bus-card);border-radius:12px;flex-direction:column;gap:6px;padding:16px;text-decoration:none;transition:transform .15s,box-shadow .15s;display:flex;position:relative;overflow:hidden;box-shadow:0 1px 3px #0000001a}.route-card:before{content:"";opacity:0;background:linear-gradient(90deg,#0000,#fff6,#0000);height:3px;transition:opacity .15s;position:absolute;top:0;left:0;right:0}.route-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #00000026}.route-card:hover:before{opacity:1}.route-card:active{transform:scale(.98)}.route-card-name{color:var(--bus-card-foreground);text-overflow:ellipsis;white-space:nowrap;font-size:1.1rem;font-weight:700;overflow:hidden}.route-card-status{text-transform:uppercase;letter-spacing:.5px;font-size:.75rem;font-weight:600}.route-card-directions{color:var(--bus-muted-foreground);text-overflow:ellipsis;white-space:nowrap;margin-top:4px;font-size:.8rem;overflow:hidden}.no-data{text-align:center;color:var(--bus-muted-foreground);background:var(--bus-card);border-radius:12px;padding:32px;box-shadow:0 1px 3px #0000001a}.loading-container{justify-content:center;align-items:center;padding:48px;display:flex}.error-container{background:var(--bus-state-error-bg);border:1px solid var(--bus-state-error);text-align:center;border-radius:12px;padding:20px}.error-message{color:var(--bus-state-error);margin-bottom:12px;font-size:.95rem}.retry-button{background:var(--bus-state-error);color:var(--bus-primary-foreground);cursor:pointer;border:none;border-radius:8px;min-height:44px;padding:10px 24px;font-size:.9rem;font-weight:500;text-decoration:none;transition:background .15s,transform .1s;display:inline-block}.retry-button:active{transform:scale(.98)}@media (width>=640px){.company-branch-container{gap:32px}.branch-title-section h1{font-size:2rem}.stat-card{padding:24px}.stat-card-value{margin-bottom:8px;font-size:2.5rem}.stat-card-label{font-size:.9rem}.section-title{font-size:1.5rem}.routes-grid{grid-template-columns:repeat(2,1fr);gap:16px}.route-card{gap:8px;padding:20px}.route-card-name{font-size:1.25rem}}@media (width>=1024px){.routes-grid{grid-template-columns:repeat(3,1fr)}}.company-vehicles-container{max-width:1200px;margin:0 auto;padding:20px}.vehicles-header{margin-bottom:24px}.company-info{background:var(--bus-card);box-shadow:var(--bus-shadow-sm);border-radius:12px;padding:24px}.company-header-title{align-items:flex-start;gap:12px;display:flex}.company-header-title svg{color:var(--bus-primary);margin-top:4px}.company-name{color:var(--bus-foreground);margin:0 0 4px;font-size:24px;font-weight:600}.page-subtitle{color:var(--bus-muted-foreground);font-size:14px}.vehicles-stats{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:32px;display:grid}.stat-card{background:var(--bus-card);text-align:center;box-shadow:var(--bus-shadow-sm);border-radius:12px;flex-direction:column;align-items:center;gap:12px;padding:20px;display:flex}.company-vehicles-container .stat-card-total{color:#0f172a}.company-vehicles-container .stat-card-brand{color:#8b5cf6}.company-vehicles-container .stat-card-active{color:#16a34a}.brand-ranking-section{background:var(--bus-card);box-shadow:var(--bus-shadow-sm);border-radius:12px;margin-bottom:24px;padding:24px}.brand-ranking-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;display:grid}.brand-ranking-card{background:var(--bus-muted);border-radius:8px;align-items:center;gap:12px;padding:16px;text-decoration:none;transition:all .2s;display:flex}.brand-ranking-card:hover{background:var(--bus-border);transform:translateY(-2px)}.brand-rank-number{background:var(--bus-primary);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;font-weight:700;display:flex}.brand-rank-number:first-child{background:var(--bus-medal-gold)}.brand-rank-number:nth-child(2){background:var(--bus-medal-silver)}.brand-rank-number:nth-child(3){background:var(--bus-medal-bronze)}.brand-rank-info{flex:1;min-width:0}.brand-rank-name{color:var(--bus-foreground);margin-bottom:4px;font-size:16px;font-weight:600}.brand-rank-count{color:var(--bus-muted-foreground);font-size:13px}.vehicles-section{background:var(--bus-card);box-shadow:var(--bus-shadow-sm);border-radius:12px;padding:24px}.vehicle-card:hover{background:var(--bus-card);border-color:var(--bus-primary);box-shadow:var(--bus-shadow-sm);transform:translateY(-2px)}.vehicle-details{color:var(--bus-muted-foreground);gap:12px;margin-bottom:8px;font-size:13px;display:flex}.vehicle-year,.vehicle-seats{background:var(--bus-border);border-radius:4px;padding:2px 8px}.vehicle-routes{color:var(--bus-muted-foreground);border-top:1px solid var(--bus-border);padding-top:8px;font-size:12px}.vehicle-fuel-type{color:var(--bus-muted-foreground);margin-bottom:4px;font-size:12px}.vehicle-actual-qty{color:var(--bus-muted-foreground)}.brand-home-container{max-width:1200px;margin:0 auto;padding:20px}.brand-header{margin-bottom:24px}.brand-info{background:var(--bus-card);border-radius:12px;padding:24px;box-shadow:0 1px 3px #0000001a}.brand-header-title{align-items:flex-start;gap:16px;display:flex}.brand-logo-wrapper{background:var(--bus-muted);border-radius:16px;flex-shrink:0;justify-content:center;align-items:center;width:72px;height:72px;display:flex;overflow:hidden}.brand-logo{-o-object-fit:contain;object-fit:contain;width:100%;height:100%}.brand-logo-placeholder{width:100%;height:100%;color:var(--bus-muted-foreground);justify-content:center;align-items:center;display:flex}.brand-name{color:var(--bus-card-foreground);margin:0 0 4px;font-size:24px;font-weight:600}.brand-subtitle{color:var(--bus-muted-foreground);font-size:14px}.brand-stats{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:32px;display:grid}.stat-card{background:var(--bus-card);text-align:center;border-radius:12px;flex-direction:column;align-items:center;gap:12px;padding:20px;display:flex;box-shadow:0 1px 3px #0000001a}.stat-icon-wrapper{background:var(--bus-state-info-bg);width:48px;height:48px;color:var(--bus-primary);border-radius:12px;justify-content:center;align-items:center;display:flex}.stat-card-value{font-size:32px;font-weight:700}.brand-home-container .stat-card-vehicle{color:#8b5cf6}.brand-home-container .stat-card-route{color:#16a34a}.brand-home-container .stat-card-image{color:#d97706}.stat-card-label{color:var(--bus-muted-foreground);font-size:14px}.vehicles-section{background:var(--bus-card);border-radius:12px;padding:24px;box-shadow:0 1px 3px #0000001a}.vehicles-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.vehicle-card{background:var(--bus-muted);border:2px solid #0000;border-radius:8px;padding:16px;text-decoration:none;transition:all .2s;display:block}.vehicle-card:hover{background:var(--bus-card);border-color:var(--bus-primary);transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.vehicle-header{justify-content:space-between;align-items:flex-start;margin-bottom:8px;display:flex}.vehicle-brand{color:var(--bus-muted-foreground);font-size:14px;font-weight:500}.vehicle-model{color:var(--bus-card-foreground);margin-bottom:8px;font-size:18px;font-weight:600}.vehicle-details{flex-wrap:wrap;gap:8px;display:flex}.vehicle-year,.vehicle-seats{color:var(--bus-muted-foreground);background:var(--bus-muted);border-radius:4px;padding:2px 8px;font-size:13px}.vehicle-footer{border-top:1px solid var(--bus-border);justify-content:space-between;align-items:center;padding-top:8px;display:flex}.vehicle-routes{color:var(--bus-muted-foreground);font-size:12px}.vehicle-status{background:var(--bus-state-success-bg);color:var(--bus-state-success-fg);border-radius:4px;padding:2px 8px;font-size:12px}.no-data{text-align:center;color:var(--bus-muted-foreground);padding:40px;font-size:14px}.retry-button:hover{opacity:.9}.brand-vehicle-container{max-width:1200px;margin:0 auto;padding:20px}.vehicle-header{flex-direction:column;align-items:center;margin-bottom:24px;display:flex}.back-link{color:var(--bus-muted-foreground);align-items:center;gap:8px;margin-bottom:16px;font-size:14px;text-decoration:none;display:inline-flex}.back-link:hover{color:var(--bus-foreground)}.vehicle-info-card{background:var(--bus-card);box-shadow:var(--bus-shadow-sm);border-radius:12px;padding:24px}.vehicle-main-info{flex-direction:column;align-items:center;gap:12px;display:flex}.vehicle-brand-badge{background:var(--bus-primary-50);color:var(--bus-primary);border-radius:8px;align-items:center;gap:8px;width:fit-content;padding:6px 12px;font-size:14px;font-weight:500;display:inline-flex}.vehicle-model-title{color:var(--bus-foreground);margin:0;font-size:28px;font-weight:600}.vehicle-status-badge{background:var(--bus-state-success-bg);color:var(--bus-state-success-fg);border-radius:8px;align-items:center;width:fit-content;padding:6px 12px;font-size:14px;font-weight:500;display:inline-flex}.vehicle-details-section{background:var(--bus-card);box-shadow:var(--bus-shadow-sm);border-radius:12px;margin-bottom:24px;padding:24px}.details-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;display:grid}.detail-item{background:var(--bus-muted);border-radius:8px;align-items:center;gap:12px;padding:16px;display:flex}.detail-item svg{color:var(--bus-primary);flex-shrink:0}.detail-content{flex:1;min-width:0}.detail-label{color:var(--bus-muted-foreground);margin-bottom:4px;font-size:12px}.detail-value{color:var(--bus-foreground);font-size:16px;font-weight:600}.section-header{margin-bottom:20px}.section-title{align-items:center;gap:8px;display:flex}.section-title svg{color:var(--bus-primary)}.section-title h2{color:var(--bus-foreground);margin:0;font-size:18px;font-weight:600}.routes-section,.images-section,.idle-records-section,.transfer-records-section,.instances-section{background:var(--bus-card);box-shadow:var(--bus-shadow-sm);border-radius:12px;margin-bottom:24px;padding:24px}.routes-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.route-card{background:var(--bus-muted);border-radius:8px;padding:16px;text-decoration:none;transition:all .2s;display:block}.route-card:hover{box-shadow:var(--bus-shadow-md);transform:translateY(-2px)}.route-card-name{color:var(--bus-foreground);text-overflow:ellipsis;white-space:nowrap;margin-bottom:8px;font-size:18px;font-weight:600;overflow:hidden}.route-card-status{margin-bottom:8px;font-size:12px;font-weight:500}.route-card-directions{color:var(--bus-muted-foreground);font-size:13px}.images-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;display:grid}.records-grid{flex-direction:column;gap:8px;display:flex}.record-item{background:var(--bus-muted);border-radius:8px;flex-wrap:wrap;align-items:center;gap:16px;padding:12px 16px;display:flex}.record-status-type{border-radius:10px;padding:2px 10px;font-size:12px;font-weight:500;display:inline-block}.record-status-type.idle{background:var(--bus-state-warning-bg);color:var(--bus-state-warning-fg)}.record-status-type.retired{background:var(--bus-state-error-bg);color:var(--bus-state-error-fg)}.record-company{color:var(--bus-foreground);font-size:14px;font-weight:500}.record-quantity{color:var(--bus-muted-foreground);margin-left:auto;font-size:14px}.record-date{color:var(--bus-muted-foreground);font-size:13px}.instances-grid{flex-wrap:wrap;gap:8px;display:flex}.instance-item{background:var(--bus-primary-50);color:var(--bus-primary);white-space:nowrap;border-radius:8px;padding:6px 14px;font-size:14px;font-weight:500;text-decoration:none;transition:background .2s;display:inline-block}.instance-item:hover{background:var(--bus-primary-100)}.instance-plate{color:inherit}.vehicle-transfer-tag{background:var(--bus-state-warning-bg);color:var(--bus-state-warning-fg);white-space:nowrap;border-radius:10px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.image-item{aspect-ratio:4/3;background:var(--bus-muted);border-radius:8px;overflow:hidden}.vehicle-image{-o-object-fit:cover;object-fit:cover;width:100%;height:100%}.loading-container{justify-content:center;align-items:center;min-height:60vh;display:flex}.loading-spinner{border:4px solid var(--bus-border);border-top-color:var(--bus-primary);border-radius:50%;width:40px;height:40px;animation:1s linear infinite spin}.error-container{flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:60vh;display:flex}.error-message{color:var(--bus-state-error);font-size:16px}.retry-button{background:var(--bus-primary);color:var(--bus-primary-foreground);cursor:pointer;border:none;border-radius:8px;padding:10px 20px;font-size:14px;text-decoration:none}.retry-button:hover{background:var(--bus-primary-800)}
