/* app.css */
*,:after,:before{--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:rgba(59,130,246,.5);--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: }::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:rgba(59,130,246,.5);--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: }

/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter,Segoe UI,system-ui,-apple-system,Roboto,Arial,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{line-height:inherit}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings: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:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-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,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{color-scheme:light;--font-body:"Inter","Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif;--font-display:"Inter","Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif;--background:#e9edf1;--card:#fff;--card-sunken:#f3f5f8;--foreground:#12161c;--muted:rgba(18,24,33,.06);--muted-foreground:#556170;--accent:#eef1f5;--border:rgba(18,24,33,.12);--border-strong:rgba(18,24,33,.22);--color-background-light:#e9edf1;--color-background-dark:#090b0e;--color-card-light:#fff;--color-card-dark:#12161b;--color-modal-light:#fff;--color-modal-dark:#12161b;--a-200:255 226 222;--a-300:255 166 158;--a-400:240 86 74;--a-500:218 37 40;--a-600:184 24 30;--a-700:140 16 22;--primary:rgb(var(--a-500));--primary-glow:rgb(var(--a-500)/0.2);--color-accent-blue:rgb(var(--a-500));--on-primary:#fff;--gauge-ok:#17b26a;--gauge-warn:#f5a524;--gauge-bad:#f04438;--gauge-info:#2e90fa;--shadow-sm:0 1px 2px rgba(15,23,42,.06),0 2px 6px rgba(15,23,42,.05);--shadow-md:0 8px 24px -6px rgba(15,23,42,.16),0 2px 6px rgba(15,23,42,.06);--shadow-lg:0 24px 60px -12px rgba(15,23,42,.32);--edge-light:inset 0 1px 0 hsla(0,0%,100%,.7);--radius-sm:0.5rem;--radius-md:0.75rem;--radius-lg:1rem;--radius-xl:1.25rem;--gap:clamp(0.75rem,0.5rem + 1vw,1.5rem);--page-pad:clamp(1rem,0.6rem + 1.6vw,2rem);--touch:2.75rem;--ease:cubic-bezier(0.2,0.8,0.2,1)}.dark{color-scheme:dark;--background:#090b0e;--card:#12161b;--card-sunken:#0d1014;--foreground:#eef1f5;--muted:hsla(0,0%,100%,.06);--muted-foreground:#97a3b3;--accent:#1a1f26;--border:hsla(0,0%,100%,.09);--border-strong:hsla(0,0%,100%,.18);--shadow-sm:0 1px 2px rgba(0,0,0,.5);--shadow-md:0 10px 30px -8px rgba(0,0,0,.7);--shadow-lg:0 30px 70px -12px rgba(0,0,0,.85);--edge-light:inset 0 1px 0 hsla(0,0%,100%,.06)}html[data-accent=racing]{--a-200:255 226 222;--a-300:255 166 158;--a-400:240 86 74;--a-500:218 37 40;--a-600:184 24 30;--a-700:140 16 22}html.dark[data-accent=racing]{--a-200:120 26 26;--a-300:255 130 120;--a-400:255 92 80;--a-500:255 68 56;--a-600:228 44 36;--a-700:170 28 24}html[data-accent=blue]{--a-200:214 232 255;--a-300:150 196 255;--a-400:60 140 250;--a-500:21 112 239;--a-600:16 88 200;--a-700:12 66 150}html.dark[data-accent=blue]{--a-200:20 50 100;--a-300:130 186 255;--a-400:84 160 255;--a-500:64 148 255;--a-600:40 120 235;--a-700:20 84 180}html[data-accent=indigo]{--a-200:228 224 255;--a-300:180 170 255;--a-400:130 110 245;--a-500:99 79 230;--a-600:78 58 200;--a-700:58 42 150}html.dark[data-accent=indigo]{--a-200:50 40 110;--a-300:176 164 255;--a-400:150 130 255;--a-500:132 112 255;--a-600:108 88 240;--a-700:80 62 190}html[data-accent=emerald]{--a-200:208 245 226;--a-300:130 224 178;--a-400:40 190 122;--a-500:12 160 100;--a-600:8 128 80;--a-700:6 96 62}html.dark[data-accent=emerald]{--a-200:12 70 46;--a-300:110 231 175;--a-400:52 211 140;--a-500:34 197 120;--a-600:20 170 100;--a-700:14 120 74}html[data-accent=rose]{--a-200:255 222 236;--a-300:250 160 200;--a-400:240 90 160;--a-500:219 39 119;--a-600:186 26 98;--a-700:140 18 74}html.dark[data-accent=rose]{--a-200:100 20 60;--a-300:255 150 200;--a-400:250 100 170;--a-500:244 72 150;--a-600:220 44 126;--a-700:170 28 96}html[data-accent=amber]{--a-200:255 238 204;--a-300:255 214 130;--a-400:245 170 30;--a-500:217 138 0;--a-600:176 108 0;--a-700:130 78 0}html.dark[data-accent=amber]{--a-200:90 60 0;--a-300:255 214 130;--a-400:255 190 60;--a-500:255 176 32;--a-600:234 150 10;--a-700:180 110 0}html[data-accent=amber]{--on-primary:#1a1200}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;font-family:var(--font-body);font-size:1rem;line-height:1.5;color:var(--foreground);background-color:var(--background);background-image:radial-gradient(60rem 24rem at 80% -8rem,rgb(var(--a-500)/.1),transparent 70%),radial-gradient(40rem 20rem at 0 0,rgb(var(--a-500)/.05),transparent 70%);background-attachment:fixed;font-feature-settings:"cv11","ss01";font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-wrap:break-word;text-rendering:optimizeLegibility;transition:background-color .3s var(--ease),color .3s var(--ease)}.dark body{background-image:radial-gradient(60rem 26rem at 85% -10rem,rgb(var(--a-500)/.16),transparent 70%),radial-gradient(40rem 24rem at 0 0,rgb(var(--a-500)/.07),transparent 70%)}*{min-width:0}canvas,img,svg,video{max-width:100%}img{height:auto}h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;line-height:1.2;letter-spacing:-.02em;text-wrap:balance}h1{font-size:clamp(1.5rem,1.25rem + 1.2vw,2.1rem)}h2{font-size:clamp(1.15rem,1.05rem + .6vw,1.45rem)}h3{font-size:clamp(1rem,.95rem + .3vw,1.15rem)}p{text-wrap:pretty}.compact-kpi-value,.sim-total,.tabular,.tco-total,[class*=text-3xl],[class*=text-4xl],[class*=text-5xl]{font-variant-numeric:tabular-nums}::-moz-selection{background:rgb(var(--a-500)/.28)}::selection{background:rgb(var(--a-500)/.28)}:focus-visible{outline:2px solid rgb(var(--a-500));outline-offset:2px;border-radius:.25rem}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}::-webkit-scrollbar{width:.6rem;height:.6rem}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:9999px;border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-track{background:transparent}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}:root{--hub-c0:#2563eb;--hub-c1:#ea580c;--hub-c2:#0d9488;--hub-c3:#c026d3;--hub-like:#e11d48;--hub-good:#0e9a58;--hub-bad:#d92d20}.dark{--hub-c0:#60a5fa;--hub-c1:#fb923c;--hub-c2:#2dd4bf;--hub-c3:#e879f9;--hub-like:#fb7185;--hub-good:#4ade9b;--hub-bad:#ff8a80}.container{width:100%}@media (min-width:30rem){.container{max-width:30rem}}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.skip-link{position:fixed;left:1rem;top:-4rem;z-index:200;padding:.6rem 1rem;border-radius:var(--radius-md);background:rgb(var(--a-500));color:var(--on-primary);font-weight:700;transition:top .2s var(--ease)}.skip-link:focus{top:1rem}.app-main{width:100%;min-height:100dvh;padding:4.75rem var(--page-pad) calc(var(--page-pad) + env(safe-area-inset-bottom));position:relative;z-index:10}.app-content{width:100%;max-width:88rem;margin-inline:auto}@media (min-width:768px){.app-main{margin-left:16rem;width:calc(100% - 16rem);padding-top:var(--page-pad)}}:root{--mobile-bar-h:calc(3.5rem + env(safe-area-inset-top))}.mobile-bar{position:fixed;inset:0 0 auto 0;z-index:60;height:var(--mobile-bar-h);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.25rem;padding:env(safe-area-inset-top) .5rem 0;background:rgba(11,13,16,.86);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid hsla(0,0%,100%,.08);box-shadow:0 8px 24px -12px rgba(0,0,0,.6);color:#eef1f5;transform:translateY(0);transition:transform .3s var(--ease),box-shadow .3s var(--ease),background-color .3s;will-change:transform}.mobile-bar.is-hidden{transform:translateY(-100%);box-shadow:none}.mobile-bar.is-scrolled{background:rgba(11,13,16,.94)}.mobile-bar-brand{display:flex;align-items:center;padding-left:.25rem;min-width:0}.hamburger{position:relative;display:block;width:1.3rem;height:.95rem}.hamburger span{position:absolute;left:0;width:100%;height:.125rem;border-radius:9999px;background:currentColor;transition:transform .3s var(--ease),opacity .2s,top .3s var(--ease),width .3s var(--ease)}.hamburger span:first-child{top:0}.hamburger span:nth-child(2){top:calc(50% - .0625rem);width:70%}.hamburger span:nth-child(3){top:calc(100% - .125rem)}.mobile-menu-btn[aria-expanded=true] .hamburger span:first-child{top:calc(50% - .0625rem);transform:rotate(45deg)}.mobile-menu-btn[aria-expanded=true] .hamburger span:nth-child(2){opacity:0;transform:translateX(-.5rem)}.mobile-menu-btn[aria-expanded=true] .hamburger span:nth-child(3){top:calc(50% - .0625rem);transform:rotate(-45deg)}.mobile-menu-btn[aria-expanded=true]{background:rgb(var(--a-500)/.16);color:#fff}.mobile-bar:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:linear-gradient(90deg,rgb(var(--a-500)),rgb(var(--a-500)/.15) 60%,transparent)}.mobile-bar-btn{display:inline-flex;align-items:center;justify-content:center;width:var(--touch);height:var(--touch);border-radius:var(--radius-md);color:#eef1f5;transition:background-color .2s,transform .15s var(--ease)}.mobile-bar-btn:hover{background:hsla(0,0%,100%,.08)}.mobile-bar-btn:active{transform:scale(.92)}.\!sidebar{--foreground:#eef1f5!important;--muted-foreground:#8b97a7!important;--muted:hsla(0,0%,100%,.06)!important;--accent:hsla(0,0%,100%,.06)!important;--border:hsla(0,0%,100%,.09)!important;--card:#12161b!important;color:var(--foreground)!important;background-color:#0a0c0f!important;background-image:linear-gradient(135deg,hsla(0,0%,100%,.025) 25%,transparent 0),linear-gradient(225deg,hsla(0,0%,100%,.025) 25%,transparent 0),linear-gradient(315deg,hsla(0,0%,100%,.025) 25%,transparent 0),linear-gradient(45deg,hsla(0,0%,100%,.025) 25%,transparent 0)!important;background-size:.5rem .5rem!important;border-right:1px solid hsla(0,0%,100%,.07)!important;box-shadow:8px 0 32px -16px rgba(0,0,0,.7)!important;width:min(19rem,86vw)!important;overscroll-behavior:contain!important;position:fixed!important;left:0!important;z-index:50!important;top:var(--mobile-bar-h)!important;height:calc(100dvh - var(--mobile-bar-h))!important;transform:translateX(-100%)!important;visibility:hidden!important;transition:transform .35s var(--ease),visibility 0s linear .35s!important}.sidebar{--foreground:#eef1f5;--muted-foreground:#8b97a7;--muted:hsla(0,0%,100%,.06);--accent:hsla(0,0%,100%,.06);--border:hsla(0,0%,100%,.09);--card:#12161b;color:var(--foreground);background-color:#0a0c0f;background-image:linear-gradient(135deg,hsla(0,0%,100%,.025) 25%,transparent 0),linear-gradient(225deg,hsla(0,0%,100%,.025) 25%,transparent 0),linear-gradient(315deg,hsla(0,0%,100%,.025) 25%,transparent 0),linear-gradient(45deg,hsla(0,0%,100%,.025) 25%,transparent 0);background-size:.5rem .5rem;border-right:1px solid hsla(0,0%,100%,.07);box-shadow:8px 0 32px -16px rgba(0,0,0,.7);width:min(19rem,86vw);overscroll-behavior:contain;position:fixed;left:0;z-index:50;top:var(--mobile-bar-h);height:calc(100dvh - var(--mobile-bar-h));transform:translateX(-100%);visibility:hidden;transition:transform .35s var(--ease),visibility 0s linear .35s}.\!sidebar.is-open{transform:translateX(0)!important;visibility:visible!important;transition:transform .35s var(--ease),visibility 0s!important}.sidebar.is-open{transform:translateX(0);visibility:visible;transition:transform .35s var(--ease),visibility 0s}.\!sidebar.is-dragging{transition:none!important}.sidebar.is-dragging{transition:none}@media (min-width:768px){.sidebar,.sidebar.is-open{width:16rem;top:0;height:100dvh;transform:none;visibility:visible;transition:none}.\!sidebar,.\!sidebar.is-open{width:16rem!important;top:0!important;height:100dvh!important;transform:none!important;visibility:visible!important;transition:none!important}}.\!sidebar:before{content:""!important;position:absolute!important;inset:0 0 auto 0!important;height:3px!important;background:linear-gradient(90deg,rgb(var(--a-500)),rgb(var(--a-400)) 40%,transparent)!important}.sidebar:before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,rgb(var(--a-500)),rgb(var(--a-400)) 40%,transparent)}.sidebar-overlay{position:fixed;inset:var(--mobile-bar-h) 0 0 0;z-index:45;background:rgba(4,6,9,.6);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);opacity:0;visibility:hidden;transition:opacity .35s var(--ease),visibility 0s linear .35s}.sidebar-overlay.is-visible{opacity:1;visibility:visible;transition:opacity .35s var(--ease),visibility 0s}@media (min-width:768px){.sidebar-overlay{display:none}}@media (max-width:767.98px){.sidebar #searchTrigger,.sidebar .sidebar-nav-section,.sidebar .sidebar-profile-wrap{opacity:0;transform:translateX(-.75rem);transition:opacity .3s var(--ease),transform .35s var(--ease)}.sidebar.is-open #searchTrigger,.sidebar.is-open .sidebar-nav-section,.sidebar.is-open .sidebar-profile-wrap{opacity:1;transform:none}.sidebar.is-open #searchTrigger{transition-delay:.05s}.sidebar.is-open .sidebar-nav-section:first-child{transition-delay:.09s}.sidebar.is-open .sidebar-nav-section:nth-child(2){transition-delay:.13s}.sidebar.is-open .sidebar-nav-section:nth-child(3){transition-delay:.17s}.sidebar.is-open .sidebar-nav-section:nth-child(4){transition-delay:.21s}.sidebar.is-open .sidebar-nav-section:nth-child(5){transition-delay:.25s}.sidebar.is-open .sidebar-profile-wrap{transition-delay:.29s}.\!sidebar #searchTrigger,.\!sidebar .sidebar-nav-section,.\!sidebar .sidebar-profile-wrap{opacity:0!important;transform:translateX(-.75rem)!important;transition:opacity .3s var(--ease),transform .35s var(--ease)!important}.\!sidebar.is-open #searchTrigger,.\!sidebar.is-open .sidebar-nav-section,.\!sidebar.is-open .sidebar-profile-wrap{opacity:1!important;transform:none!important}.\!sidebar.is-open #searchTrigger{transition-delay:.05s!important}.\!sidebar.is-open .sidebar-nav-section:first-child{transition-delay:.09s!important}.\!sidebar.is-open .sidebar-nav-section:nth-child(2){transition-delay:.13s!important}.\!sidebar.is-open .sidebar-nav-section:nth-child(3){transition-delay:.17s!important}.\!sidebar.is-open .sidebar-nav-section:nth-child(4){transition-delay:.21s!important}.\!sidebar.is-open .sidebar-nav-section:nth-child(5){transition-delay:.25s!important}.\!sidebar.is-open .sidebar-profile-wrap{transition-delay:.29s!important}}.sidebar-scrollable{scrollbar-color:hsla(0,0%,100%,.18) transparent}.sidebar-nav{gap:.9rem}.sidebar-nav,.sidebar-nav-section{display:flex;flex-direction:column}.sidebar-nav-section{gap:.25rem}.sidebar-nav-toggle{width:100%;min-height:var(--touch);display:flex;align-items:center;gap:.6rem;padding:.35rem .5rem;border:0;background:transparent;color:inherit;cursor:pointer;text-align:left;border-radius:var(--radius-md);-webkit-tap-highlight-color:transparent;transition:background-color .2s}.sidebar-nav-toggle:active,.sidebar-nav-toggle:hover{background:var(--muted)}.sidebar-nav-title-wrap{flex:1;display:flex;align-items:center;gap:.55rem}.sidebar-nav-count{min-width:1.35rem;height:1.35rem;padding:0 .35rem;display:inline-flex;align-items:center;justify-content:center;border-radius:9999px;font-size:.7rem;font-weight:600;color:var(--muted-foreground);background:var(--muted);transition:opacity .2s}.sidebar-nav-toggle.is-open .sidebar-nav-count{opacity:0}.sidebar-nav-group-icon{width:1.5rem;height:1.5rem;display:inline-flex;align-items:center;justify-content:center;border-radius:.4rem;background:rgb(var(--a-500)/.14);color:rgb(var(--a-400));flex-shrink:0}.sidebar-nav-title{margin:0;font-family:var(--font-display);font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-foreground)}.sidebar-nav-chevron{display:inline-flex;color:var(--muted-foreground);transition:transform .3s var(--ease)}.sidebar-nav-toggle.is-open .sidebar-nav-title,.sidebar-nav-toggle:hover .sidebar-nav-title{color:var(--foreground)}.sidebar-nav-toggle.is-open .sidebar-nav-chevron{transform:rotate(180deg)}.sidebar-nav-list{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .3s var(--ease),opacity .25s var(--ease)}.sidebar-nav-list.is-open{grid-template-rows:1fr;opacity:1}.sidebar-nav-list-inner{overflow:hidden;display:flex;flex-direction:column;gap:.2rem;padding-left:.4rem;margin-left:.85rem;border-left:1px solid var(--border)}.sidebar-nav-list.is-open .sidebar-nav-list-inner{padding-top:.2rem}.sidebar-nav-list:not(.is-open) .nav-link{visibility:hidden;transition:visibility 0s linear .3s}.nav-link{position:relative;display:flex;align-items:center;gap:.75rem;min-height:var(--touch);padding:.5rem .85rem .5rem 1rem;border-radius:var(--radius-md);color:var(--muted-foreground);font-weight:600;letter-spacing:.01em;text-decoration:none;transition:background-color .2s,color .2s,transform .2s var(--ease)}.nav-link svg{flex-shrink:0;color:#6b7686;transition:color .2s}.nav-link:hover{background:var(--muted);color:var(--foreground)}.nav-link:active{transform:scale(.98)}.nav-link{-webkit-tap-highlight-color:transparent}.nav-link:hover svg{color:rgb(var(--a-400))}.nav-link.is-active{color:#fff;background:linear-gradient(90deg,rgb(var(--a-500)/.22),rgb(var(--a-500)/.04))}.nav-link.is-active svg{color:rgb(var(--a-400))}.nav-link.is-active:before{content:"";position:absolute;left:0;top:.4rem;bottom:.4rem;width:.2rem;border-radius:9999px;background:rgb(var(--a-500));box-shadow:0 0 12px rgb(var(--a-500)/.9)}.sidebar-profile-wrap{padding-top:1rem;padding-bottom:env(safe-area-inset-bottom)}.sidebar-profile{display:flex;align-items:center;gap:.25rem;padding:.35rem;border:1px solid var(--border);border-radius:var(--radius-lg);background:linear-gradient(180deg,hsla(0,0%,100%,.05),hsla(0,0%,100%,.02))}.sidebar-profile-link{flex:1;min-width:0;display:flex;align-items:center;gap:.65rem;padding:.3rem;border-radius:var(--radius-md);color:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;transition:background-color .2s}.sidebar-profile-link:hover{background:var(--muted)}.sidebar-profile-avatar{position:relative;width:2.25rem;height:2.25rem;border-radius:.65rem;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:600;font-size:.95rem;color:var(--on-primary);background:linear-gradient(145deg,rgb(var(--a-400)),rgb(var(--a-600)));flex-shrink:0;box-shadow:0 6px 16px -6px rgb(var(--a-500)/.6)}.sidebar-profile-avatar-image{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;border-radius:inherit}.sidebar-profile-status{position:absolute;right:-.15rem;bottom:-.15rem;width:.65rem;height:.65rem;border-radius:9999px;background:var(--gauge-ok);border:2px solid #0a0c0f}.sidebar-profile-meta{flex:1;min-width:0;display:flex;flex-direction:column}.sidebar-profile-name{display:flex;align-items:center;gap:.35rem;font-size:.85rem;font-weight:600;color:var(--foreground);white-space:nowrap;overflow:hidden}.sidebar-profile-email{font-size:.72rem;color:var(--muted-foreground);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-role-pill{flex:none;padding:.05rem .35rem;border-radius:.3rem;font-size:.62rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;background:rgb(var(--a-500)/.16);color:rgb(var(--a-300));border:1px solid rgb(var(--a-500)/.35)}.sidebar-profile-actions{display:flex;flex:none}.sidebar-icon-btn{width:2.5rem;height:2.5rem;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-md);color:var(--muted-foreground);-webkit-tap-highlight-color:transparent;transition:background-color .2s,color .2s,transform .15s var(--ease)}.sidebar-icon-btn:hover{background:var(--muted);color:var(--foreground)}.sidebar-icon-btn:active{transform:scale(.9)}.sidebar-icon-btn.is-danger:hover{background:rgba(240,68,56,.14);color:#ff7a70}.page-header{display:flex;flex-direction:column;align-items:stretch;gap:.9rem;position:relative}.page-header h1{display:flex;align-items:center;gap:.6rem;letter-spacing:0;font-weight:600}.page-header h1:before{content:"";flex:none;width:.9rem;height:1.4em;background:linear-gradient(rgb(var(--a-500)),rgb(var(--a-500))) 0 0 /.28rem 100% no-repeat,linear-gradient(rgb(var(--a-500)/.55),rgb(var(--a-500)/.55)) .5rem 0 /.28rem 100% no-repeat;border-radius:.1rem}@media (min-width:640px){.page-header{flex-direction:row;align-items:center;justify-content:space-between;flex-wrap:wrap}}.page-actions{display:flex;flex-direction:column-reverse;gap:.6rem}@media (min-width:40rem){.page-actions{flex-direction:row;align-items:center;flex-wrap:wrap}}.sidebar-shortcuts-btn{align-items:center;gap:.6rem;width:100%;margin-top:1rem;padding:.55rem .75rem;font-size:.82rem;color:var(--muted-foreground);border:1px dashed var(--border);border-radius:var(--radius-md);transition:color .15s,border-color .15s,background-color .15s}.sidebar-shortcuts-btn span{flex:1;text-align:left}.sidebar-shortcuts-btn:hover{color:var(--foreground);border-color:var(--border-strong);background:var(--muted)}.responsive-grid,.settings-sub-grid,.split-form-grid,.stats-grid-compact{display:grid;grid-template-columns:1fr;gap:1rem}@media (min-width:40rem){.responsive-grid,.split-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-grid-compact{grid-template-columns:repeat(3,minmax(0,1fr))}.settings-sub-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.kpi-grid-2,.kpi-grid-3,.kpi-grid-4{display:grid;gap:clamp(.6rem,.4rem + 1vw,1.5rem);grid-template-columns:repeat(2,minmax(0,1fr))}.kpi-grid-3{grid-template-columns:1fr}.kpi-grid-4 .card{padding:.9rem}.kpi-grid-4 .card h2{white-space:nowrap;font-size:clamp(1.15rem,1rem + 1vw,1.5rem)}@media (min-width:30rem){.kpi-grid-3{grid-template-columns:repeat(auto-fit,minmax(11rem,1fr))}}@media (min-width:48rem){.kpi-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:64rem){.kpi-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.card-compact-grid,.favorites-grid,.network-grid,.rutas-grid,.stats-filter,.vehicles-grid{display:grid;gap:var(--gap);grid-template-columns:repeat(auto-fill,minmax(min(100%,17.5rem),1fr))}.favorites-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,16rem),1fr))}.card-compact-grid,.stats-filter{grid-template-columns:repeat(auto-fit,minmax(min(100%,13.5rem),1fr))}.network-grid{grid-template-columns:1fr}@media (min-width:64rem){.network-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.vehicles-grid-premium{align-items:stretch}.docs-grid{display:grid;gap:var(--gap);grid-template-columns:repeat(2,minmax(0,1fr))}@media (min-width:40rem){.docs-grid{grid-template-columns:repeat(auto-fill,minmax(11.5rem,1fr))}}.app-filter-bar,.card-row-responsive,.connection-item,.dashboard-hero,.list-item,.metric-list-item,.route-card-header,.rutas-freq-header,.stack-mobile,.summary-header,.value-pair{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem}.filter-select{width:100%}@media (min-width:40rem){.filter-select{width:auto;min-width:12rem}}.responsive-footer{display:flex;flex-direction:column-reverse;gap:.6rem;padding-top:1rem;margin-top:1.25rem;border-top:1px solid var(--border)}.responsive-footer>*{width:100%}@media (min-width:40rem){.responsive-footer{flex-direction:row;justify-content:flex-end}.responsive-footer>*{width:auto}}.brand-lockup{display:inline-flex;align-items:center;gap:.6rem;text-decoration:none}.brand-wordmark{font-weight:700;letter-spacing:-.03em;color:var(--foreground);line-height:1}.brand-wordmark span{color:rgb(var(--a-500))}.\!sidebar .brand-wordmark{color:#fff!important}.mobile-bar .brand-wordmark,.sidebar .brand-wordmark{color:#fff}.mobile-bar .brand-wordmark span{color:rgb(var(--a-400))}.brand-sm .brand-wordmark{font-size:1.1rem}.brand-md .brand-wordmark{font-size:1.3rem}.brand-lg .brand-wordmark{font-size:1.9rem}.card{position:relative;background-color:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:clamp(1rem,.85rem + .7vw,1.5rem);box-shadow:var(--shadow-sm),var(--edge-light);transition:border-color .25s var(--ease),box-shadow .25s var(--ease),transform .25s var(--ease)}.card:before{content:"";position:absolute;inset:0 1.25rem auto;height:1px;background:linear-gradient(90deg,transparent,rgb(var(--a-500)/.45),transparent);pointer-events:none;opacity:.7}.card:hover{border-color:var(--border-strong)}.record-card:after{content:"";position:absolute;left:0;top:.9rem;bottom:.9rem;width:.2rem;border-radius:0 9999px 9999px 0;background:rgb(var(--a-500));box-shadow:0 0 14px rgb(var(--a-500)/.55);opacity:.85}.record-card{padding-left:clamp(1.1rem,1rem + .8vw,1.6rem)}.premium-surface{background:linear-gradient(180deg,var(--card),var(--card-sunken));box-shadow:var(--shadow-sm),var(--edge-light)}.compact-kpi-card{padding:1rem 1.1rem;border-radius:var(--radius-lg);isolation:isolate;overflow:hidden}.compact-kpi-card:after{content:"";position:absolute;right:-1.2rem;bottom:-1.6rem;width:5.5rem;height:5.5rem;z-index:-1;background:repeating-conic-gradient(from 225deg,rgb(var(--a-500)/.4) 0 1.4deg,transparent 1.4deg 9deg);-webkit-mask-composite:source-in;-webkit-mask:radial-gradient(circle,transparent 56%,#000 58%,#000 74%,transparent 76%),conic-gradient(from 225deg,#000 0 270deg,transparent 270deg);mask:radial-gradient(circle,transparent 56%,#000 58%,#000 74%,transparent 76%),conic-gradient(from 225deg,#000 0 270deg,transparent 270deg);-webkit-mask-composite:source-in,xor;mask-composite:intersect;opacity:.55;pointer-events:none}.compact-kpi-row{display:flex;align-items:center;justify-content:space-between;gap:.85rem}.compact-kpi-icon{width:2.5rem;height:2.5rem;border-radius:.7rem;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:inset 0 0 0 1px hsla(0,0%,100%,.06)}.compact-kpi-label{margin:0 0 .3rem;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted-foreground);line-height:1.1}.compact-kpi-label,.compact-kpi-value{font-family:var(--font-display);font-weight:600;overflow-wrap:normal}.compact-kpi-value{margin:0;font-size:clamp(1.1rem,.95rem + .7vw,1.6rem);letter-spacing:-.02em;white-space:nowrap;line-height:1.05;letter-spacing:0;color:var(--foreground)}.compact-kpi-help{margin:.3rem 0 0;font-size:.78rem;color:var(--muted-foreground);line-height:1.3}.sim-total,.tco-total{font-family:var(--font-display);font-weight:600;line-height:1;letter-spacing:0}.sim-total{font-size:clamp(2rem,1.4rem + 3vw,3rem)}.tco-total{font-size:clamp(1.75rem,1.3rem + 2.4vw,2.5rem)}.app-chip,.app-tag-chip,.soft-chip,.user-meta-chip,.user-role-badge,.user-status-badge{display:inline-flex;align-items:center;gap:.35rem;padding:.28rem .6rem;border-radius:.4rem;border:1px solid var(--border);background:var(--accent);color:var(--foreground);font-family:var(--font-display);font-size:.82rem;font-weight:600;letter-spacing:0;line-height:1.15}.app-tag-chip{border-color:rgb(var(--a-500)/.3);background:rgb(var(--a-500)/.1);color:rgb(var(--a-600))}.dark .app-tag-chip{color:rgb(var(--a-300))}.user-status-badge.is-active{background:rgba(23,178,106,.12);color:#0e9a58;border-color:rgba(23,178,106,.3)}.user-status-badge.is-inactive{background:rgba(240,68,56,.1);color:#d92d20;border-color:rgba(240,68,56,.3)}.dark .user-status-badge.is-active{color:#4ade9b}.dark .user-status-badge.is-inactive{color:#ff8a80}.icon-action-btn{width:var(--touch);height:var(--touch);display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-md);background:var(--accent);border:1px solid var(--border);transition:background-color .2s,border-color .2s,transform .2s var(--ease)}.icon-action-btn:hover{border-color:var(--border-strong);background:var(--muted);transform:translateY(-1px)}.account-avatar-preview,.user-admin-avatar,.user-overview-avatar{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden;font-family:var(--font-display);font-weight:600;color:var(--on-primary);background:linear-gradient(145deg,rgb(var(--a-400)),rgb(var(--a-600)));box-shadow:0 8px 20px -6px rgb(var(--a-500)/.55)}.user-admin-avatar{width:3rem;height:3rem;border-radius:.8rem;font-size:1.2rem}.user-overview-avatar{width:4.25rem;height:4.25rem;border-radius:1rem;font-size:1.6rem}.account-avatar-preview{width:5rem;height:5rem;border-radius:1.1rem;font-size:1.8rem}.account-avatar-image{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.account-avatar-row{display:flex;flex-direction:column;align-items:flex-start;gap:1rem}.account-card{min-height:100%}@media (min-width:40rem){.user-admin-card{justify-content:space-between}.account-avatar-row,.user-admin-card{flex-direction:row;align-items:center}}.spec-card{display:flex;flex-direction:column;gap:.25rem;padding:1rem;border-radius:var(--radius-lg);background:var(--card-sunken);border:1px solid var(--border);transition:border-color .2s,transform .2s var(--ease)}.spec-card:hover{border-color:rgb(var(--a-500)/.5);transform:translateY(-2px)}.spec-icon{width:2rem;height:2rem;margin-bottom:.5rem;display:flex;align-items:center;justify-content:center;border-radius:.5rem;background:rgb(var(--a-500)/.14);color:rgb(var(--a-500))}.route-card,.vehicle-shell-card{transition:transform .3s var(--ease),border-color .25s,box-shadow .3s}.vehicle-shell-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:rgb(var(--a-500)/.45)}.vehicle-card-body{display:flex;flex-direction:column;gap:.75rem}.route-card-info{display:flex;align-items:center;gap:.75rem}.route-card-info h3{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.route-card-stats{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:auto;padding-top:1rem;border-top:1px dashed var(--border-strong)}.connection-names{display:flex;align-items:center;flex-wrap:wrap;gap:.35rem;flex:1}.connection-meta{display:flex;align-items:center;gap:.75rem;flex-shrink:0}.connection-item{padding:.75rem 0;border-bottom:1px dashed var(--border)}.connection-delete,.route-card-actions,.touch-actions{display:flex;align-items:center;gap:.25rem;transition:opacity .2s}@media (hover:hover) and (min-width:48rem){.connection-delete,.route-card-actions,.touch-actions{opacity:0}.card:hover .route-card-actions,.card:hover .touch-actions,.connection-delete:focus-within,.connection-item:hover .connection-delete,.group:hover .touch-actions,.route-card-actions:focus-within,.touch-actions:focus-within{opacity:1}}.sidebar-mini-link{display:inline-flex;align-items:center;justify-content:center;min-height:2.25rem;padding:.3rem .8rem;border-radius:.5rem;border:1px solid var(--border-strong);background:var(--accent);color:var(--foreground);font-family:var(--font-display);font-size:.9rem;font-weight:600;letter-spacing:0;text-decoration:none;transition:border-color .2s,background-color .2s,color .2s}.sidebar-mini-link:hover{border-color:rgb(var(--a-500)/.7);color:rgb(var(--a-500));background:rgb(var(--a-500)/.08)}.dashboard-list-row{position:relative;border-radius:var(--radius-md)}.dashboard-list-row:hover{background:var(--muted);box-shadow:inset 3px 0 0 rgb(var(--a-500))}.record-card-main{min-width:0;flex:1 1 auto}.record-card-side{flex-wrap:wrap;row-gap:.75rem}.connection-delete button,.record-card-side button,.route-card-actions button,.touch-actions button{min-width:2.5rem;min-height:2.5rem}@media (max-width:47.99rem){.record-card-side{width:100%}.record-card-side>div,.record-card-side>p{flex:0 1 auto}}@media (max-width:29.99rem){.record-card-side{gap:.75rem 1rem}.record-card-side>div.border-l{border-left:0;padding-left:0}}.public-vehicle-card{transition:border-color .25s,transform .25s var(--ease)}.public-vehicle-card:hover{border-color:rgb(var(--a-500)/.5);transform:translateY(-2px)}.doc-card-premium,.docs-grid-premium{position:relative}.sidebar-profile-wrap{margin-top:auto}.btn-danger,.btn-ghost,.btn-primary,.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:var(--touch);padding:.6rem 1.2rem;border-radius:var(--radius-md);font-family:var(--font-display);font-size:.925rem;font-weight:600;letter-spacing:0;line-height:1.1;text-decoration:none;cursor:pointer;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;transition:transform .18s var(--ease),box-shadow .25s var(--ease),background-color .2s,border-color .2s,filter .2s}.btn-danger:disabled,.btn-ghost:disabled,.btn-primary:disabled,.btn-secondary:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.btn-primary{color:var(--on-primary);background:linear-gradient(180deg,rgb(var(--a-400)) 0,rgb(var(--a-500)) 52%,rgb(var(--a-600)) 100%);border:1px solid rgb(var(--a-600));box-shadow:0 8px 22px -6px rgb(var(--a-500)/.65),inset 0 1px 0 hsla(0,0%,100%,.32)}.btn-primary:hover:not(:disabled){filter:brightness(1.08);transform:translateY(-1px);box-shadow:0 12px 28px -6px rgb(var(--a-500)/.8),inset 0 1px 0 hsla(0,0%,100%,.36)}.btn-primary:active:not(:disabled){transform:translateY(1px);box-shadow:0 3px 8px -2px rgb(var(--a-500)/.6),inset 0 1px 2px rgba(0,0,0,.25)}.btn-secondary{color:var(--foreground);background:var(--accent);border:1px solid var(--border-strong)}.btn-secondary:hover:not(:disabled){border-color:rgb(var(--a-500)/.7);background:var(--muted);transform:translateY(-1px)}.btn-ghost{color:var(--muted-foreground);background:transparent;border:1px solid var(--border)}.btn-ghost:hover:not(:disabled){color:var(--foreground);background:var(--muted)}.btn-danger{color:#fff;background:linear-gradient(180deg,#f97066,#d92d20);border:1px solid #b42318;box-shadow:0 8px 20px -6px rgba(217,45,32,.6)}.btn-danger:hover:not(:disabled){filter:brightness(1.08);transform:translateY(-1px)}.btn-danger:focus-visible,.btn-ghost:focus-visible,.btn-primary:focus-visible,.btn-secondary:focus-visible{outline:none;box-shadow:0 0 0 3px var(--card),0 0 0 5px rgb(var(--a-500))}@media (max-width:39.99rem){.network-card-header .btn-primary,.page-header .btn-primary,.page-header .btn-secondary,.responsive-footer .btn-primary,.responsive-footer .btn-secondary,.rutas-freq-header .btn-primary{width:100%}.shortcut-hint{display:none}}.form-label,label{display:block;margin-bottom:.4rem;font-size:.9rem;font-weight:600;color:var(--foreground)}.form-label{font-family:var(--font-display);font-size:.85rem;font-weight:600;letter-spacing:0;color:var(--muted-foreground)}.input-field{display:block;width:100%;min-height:var(--touch);padding:.65rem .95rem;font:inherit;font-size:1rem;font-weight:500;color:var(--foreground);background-color:var(--card-sunken);border:1px solid var(--border-strong);border-radius:var(--radius-md);box-shadow:inset 0 1px 2px rgba(0,0,0,.06);transition:border-color .2s,box-shadow .2s,background-color .2s;-webkit-appearance:none;-moz-appearance:none;appearance:none}.input-field:hover{border-color:rgb(var(--a-500)/.45)}.input-field:focus{outline:none;border-color:rgb(var(--a-500));box-shadow:0 0 0 3px rgb(var(--a-500)/.22);background-color:var(--card)}.input-field::-moz-placeholder{color:var(--muted-foreground);opacity:.7;font-weight:400}.input-field::placeholder{color:var(--muted-foreground);opacity:.7;font-weight:400}.input-field:disabled{opacity:.55;cursor:not-allowed}.input-with-icon{padding-left:2.75rem}textarea.input-field{min-height:6rem;resize:vertical;line-height:1.5}select.input-field{cursor:pointer;padding-right:2.75rem;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%238b97a7' stroke-linecap='round' stroke-linejoin='round' stroke-width='2.2' viewBox='0 0 24 24'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .9rem center;background-size:1.1rem}input[type=checkbox],input[type=radio],input[type=range]{accent-color:rgb(var(--a-500))}input[type=checkbox],input[type=radio]{width:1.15rem;height:1.15rem}input[type=file].input-field{padding:.5rem}input[type=file]::file-selector-button{margin-right:.75rem;padding:.4rem .8rem;border:0;border-radius:.5rem;background:rgb(var(--a-500));color:var(--on-primary);font-weight:700;cursor:pointer}.danger-input{max-width:100%;border-color:rgba(240,68,56,.5)}@media (min-width:40rem){.danger-input{max-width:24rem}}.input-field.cursor-pointer{-webkit-user-select:none;-moz-user-select:none;user-select:none}.calc-tabs,.rutas-tabs{display:flex;gap:.35rem;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;scroll-snap-type:x proximity}.calc-tabs::-webkit-scrollbar,.rutas-tabs::-webkit-scrollbar{display:none}.calc-tabs{padding:.3rem;border-radius:var(--radius-md);background:var(--card-sunken)}.calc-tabs a,.rutas-tabs a{flex:0 0 auto;scroll-snap-align:start;min-height:2.5rem;display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:600;letter-spacing:0;white-space:nowrap}@media (max-width:39.99rem){.calc-tabs a{flex:1 0 auto}}.shortcut-hint{padding:.1rem .4rem;border-radius:.3rem;background:var(--muted);border:1px solid var(--border);color:var(--muted-foreground);font:.72rem/1.4 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}@keyframes modalPop{0%{opacity:0;transform:translateY(1rem) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(.75rem)}to{opacity:1;transform:translateY(0)}}@keyframes tick-in{0%{opacity:0;transform:scaleX(.4)}to{opacity:1;transform:scaleX(1)}}.app-modal-backdrop{background:rgba(4,6,9,.72);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.app-modal-panel,.modal-card{position:relative;background-color:var(--card);border:1px solid var(--border-strong);border-radius:1.25rem 1.25rem 0 0;box-shadow:var(--shadow-lg);max-height:92dvh}.app-modal-panel:before{content:"";position:absolute;inset:0 0 auto 0;height:3px;z-index:1;background:linear-gradient(90deg,rgb(var(--a-500)),rgb(var(--a-400)) 45%,transparent 90%)}@media (min-width:40rem){.app-modal-panel,.modal-card{border-radius:var(--radius-xl);max-height:88dvh}}.app-modal-header{background:linear-gradient(180deg,var(--card-sunken),var(--card))}.app-modal-body{background:var(--card);overscroll-behavior:contain}.app-modal-eyebrow{margin:0 0 .1rem;font-family:var(--font-display);font-size:.72rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:rgb(var(--a-500))}.app-modal-title{margin:0;font-size:clamp(1.25rem,1.1rem + .7vw,1.6rem);letter-spacing:0;line-height:1.1}.app-modal-close{width:var(--touch);height:var(--touch);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--accent);color:var(--muted-foreground);transition:color .2s,border-color .2s,transform .2s var(--ease)}.app-modal-close:hover{color:var(--foreground);border-color:var(--border-strong);transform:rotate(90deg)}.app-modal-form{display:flex;flex-direction:column;gap:1.25rem}.app-modal-footer{position:sticky;bottom:-1rem;z-index:2;background:var(--card);margin:1.25rem -1rem -1rem;padding:1rem;box-shadow:0 -.75rem 1rem -.9rem rgba(0,0,0,.22)}@media (min-width:40rem){.app-modal-footer{bottom:-1.25rem;margin:1.25rem -1.5rem -1.25rem;padding:1rem 1.5rem 1.25rem}}#searchModal{z-index:1000;background:rgba(4,6,9,.72);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}#searchModal .search-container{background:var(--card);border:1px solid var(--border-strong);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);max-height:82dvh;display:flex;flex-direction:column}#searchInput{background:transparent;border:0;box-shadow:none;color:var(--foreground);font-size:1.1rem}#searchInput:focus{outline:none;box-shadow:none}#searchResults{overflow-y:auto;max-height:60dvh}.search-result-item{display:flex;align-items:center;gap:.9rem;margin:.2rem .4rem;padding:.7rem .85rem;border-radius:var(--radius-md);cursor:pointer;transition:background-color .15s}.search-result-item.active,.search-result-item:hover{background:var(--muted);box-shadow:inset 3px 0 0 rgb(var(--a-500))}.search-result-item .icon-box{width:2.5rem;height:2.5rem;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:.65rem;background:var(--card-sunken);border:1px solid var(--border)}#vehicleDetailsOverlay{z-index:100}#vehicleDetailsPanel{z-index:101;transform:translateX(100%);transition:transform .4s var(--ease);background:var(--card);border-left:1px solid var(--border-strong);box-shadow:-20px 0 50px -20px rgba(0,0,0,.5)}#vehicleDetailsPanel.\!open{transform:translateX(0)!important}#vehicleDetailsPanel.open{transform:translateX(0)}.vd-header{position:relative;height:clamp(11rem,30vw,15rem);background:var(--card-sunken);overflow:hidden}.vd-header img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.vd-header-gradient{position:absolute;inset:0;background:linear-gradient(0deg,rgba(4,6,9,.9) 0,rgba(4,6,9,.25) 55%,transparent)}.vd-header-content{position:absolute;inset:auto 0 0 0;padding:1.25rem;z-index:10}.vd-close{position:absolute;top:.75rem;right:.75rem;z-index:20;width:var(--touch);height:var(--touch);display:flex;align-items:center;justify-content:center;border-radius:9999px;color:#fff;cursor:pointer;background:rgba(4,6,9,.55);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:background-color .2s,transform .2s var(--ease)}.vd-close:hover{background:rgba(4,6,9,.8);transform:scale(1.06)}@keyframes toastIn{0%{opacity:0;transform:translateY(.75rem) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes toastProgress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.toast-stack{position:fixed;z-index:1200;right:1rem;bottom:calc(1rem + env(safe-area-inset-bottom));width:min(24rem,calc(100vw - 2rem));display:flex;flex-direction:column;gap:.6rem;pointer-events:none}.\!toast{--toast-color:var(--gauge-ok)!important;position:relative!important;overflow:hidden!important;display:flex!important;align-items:flex-start!important;gap:.75rem!important;padding:.85rem .85rem .95rem 1rem!important;background:var(--card)!important;border:1px solid var(--border-strong)!important;border-left:.25rem solid var(--toast-color)!important;border-radius:var(--radius-lg)!important;box-shadow:var(--shadow-lg)!important;pointer-events:auto!important;animation:toastIn .28s var(--ease) both!important;transition:opacity .25s,transform .25s var(--ease)!important}.toast{--toast-color:var(--gauge-ok);position:relative;overflow:hidden;display:flex;align-items:flex-start;gap:.75rem;padding:.85rem .85rem .95rem 1rem;background:var(--card);border:1px solid var(--border-strong);border-left:.25rem solid var(--toast-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);pointer-events:auto;animation:toastIn .28s var(--ease) both;transition:opacity .25s,transform .25s var(--ease)}.\!toast.is-leaving{opacity:0!important;transform:translateX(1.5rem)!important}.toast.is-leaving{opacity:0;transform:translateX(1.5rem)}.toast-icon{flex:none;display:inline-flex;padding:.35rem;border-radius:9999px;color:var(--toast-color);background:color-mix(in srgb,var(--toast-color) 15%,transparent)}.toast-message{flex:1;margin:.3rem 0 0;font-size:.9rem;font-weight:500;line-height:1.35;color:var(--foreground);overflow-wrap:anywhere}.toast-action{flex:none;align-self:center;padding:.3rem .6rem;border-radius:var(--radius-sm);font-size:.8rem;font-weight:600;color:rgb(var(--a-500))}.toast-action:hover{background:var(--muted)}.toast-close{flex:none;display:inline-flex;padding:.35rem;border-radius:var(--radius-sm);color:var(--muted-foreground);transition:color .15s,background-color .15s}.toast-close:hover{color:var(--foreground);background:var(--muted)}.toast-progress{position:absolute;left:0;right:0;bottom:0;height:.15rem;background:var(--toast-color);opacity:.55;transform-origin:left;animation:toastProgress linear forwards}.\!toast.is-paused .toast-progress{animation-play-state:paused!important}.toast.is-paused .toast-progress{animation-play-state:paused}@media (max-width:39.99rem){.toast-stack{left:1rem;right:1rem;width:auto}}.ui-dialog-lock,.ui-dialog-lock body{overflow:hidden}.ui-dialog-overlay{position:fixed;inset:0;z-index:1100;display:flex;align-items:flex-end;justify-content:center;padding:0;opacity:0;transition:opacity .18s}.ui-dialog-overlay[hidden]{display:none}.ui-dialog-overlay.is-open{opacity:1}.ui-dialog-backdrop{position:absolute;inset:0;background:rgba(4,6,9,.72);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.ui-dialog{position:relative;width:100%;max-width:28rem;display:flex;flex-direction:column;gap:1.1rem;padding:1.35rem 1.25rem calc(1.25rem + env(safe-area-inset-bottom));background:var(--card);border:1px solid var(--border-strong);border-radius:var(--radius-xl) var(--radius-xl) 0 0;box-shadow:var(--shadow-lg);transform:translateY(1rem);transition:transform .2s var(--ease)}.ui-dialog-overlay.is-open .ui-dialog{transform:translateY(0)}.ui-dialog-head{display:flex;gap:.9rem;align-items:flex-start}.ui-dialog-icon{flex:none;display:inline-flex;padding:.6rem;border-radius:var(--radius-md);color:rgb(var(--a-500));background:rgb(var(--a-500)/.12)}.ui-dialog-overlay.is-danger .ui-dialog-icon{color:var(--gauge-bad);background:color-mix(in srgb,var(--gauge-bad) 14%,transparent)}.ui-dialog-title{margin:.1rem 0 .3rem;font-size:1.1rem;font-weight:600;line-height:1.25;color:var(--foreground)}.ui-dialog-message{margin:0;font-size:.9rem;line-height:1.45;color:var(--muted-foreground)}.ui-dialog-require{display:flex;flex-direction:column;gap:.4rem;font-size:.82rem;color:var(--muted-foreground)}.ui-dialog-require[hidden]{display:none}.ui-dialog-actions{display:flex;flex-direction:column-reverse;gap:.6rem}.ui-dialog-actions>*{width:100%}@media (min-width:40rem){.ui-dialog-overlay{align-items:center;padding:1rem}.ui-dialog{border-radius:var(--radius-xl);padding:1.5rem;transform:scale(.96)}.ui-dialog-overlay.is-open .ui-dialog{transform:scale(1)}.ui-dialog-actions{flex-direction:row;justify-content:flex-end}.ui-dialog-actions>*{width:auto}}.is-busy{cursor:progress}.search-group-label{margin:.6rem .9rem .25rem;font-size:.7rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-foreground)}.kbd{display:inline-flex;align-items:center;justify-content:center;min-width:1.5rem;height:1.5rem;padding:0 .4rem;font-family:var(--font-body);font-weight:600;line-height:1;color:var(--foreground);background:var(--card-sunken);border:solid var(--border-strong);border-width:1px 1px .15rem;border-radius:.35rem}.kbd,.kbd-sep{font-size:.72rem}.kbd-sep{margin:0 .2rem;color:var(--muted-foreground)}.kbd-pending{position:fixed;z-index:1150;left:50%;bottom:1.5rem;display:flex;align-items:center;gap:.6rem;padding:.5rem .9rem;font-size:.85rem;color:var(--foreground);background:var(--card);border:1px solid var(--border-strong);border-radius:9999px;box-shadow:var(--shadow-md);opacity:0;transform:translate(-50%,.5rem);pointer-events:none;transition:opacity .15s,transform .15s var(--ease)}.kbd-pending.is-visible{opacity:1;transform:translate(-50%)}.shortcut-help{display:grid;grid-template-columns:1fr;gap:1.5rem}@media (min-width:40rem){.shortcut-help{grid-template-columns:1fr 1fr}}.shortcut-group-title{margin:0 0 .5rem;font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:rgb(var(--a-500))}.shortcut-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column}.shortcut-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.55rem 0;font-size:.9rem;color:var(--foreground);border-bottom:1px solid var(--border)}.shortcut-row:last-child{border-bottom:0}.shortcut-keys{display:inline-flex;align-items:center;flex:none}.login-shell{--foreground:#eef1f5;--muted-foreground:#97a3b3;--card:#12161b;--card-sunken:#0c0f13;--accent:#1a1f26;--muted:hsla(0,0%,100%,.06);--border:hsla(0,0%,100%,.1);--border-strong:hsla(0,0%,100%,.2);color-scheme:dark;color:var(--foreground);position:relative;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:1.25rem;background-color:#07090b;background-image:radial-gradient(50rem 28rem at 50% 105%,rgb(var(--a-500)/.32),transparent 65%),radial-gradient(34rem 20rem at 12% -6%,rgb(var(--a-500)/.16),transparent 70%),linear-gradient(135deg,hsla(0,0%,100%,.022) 25%,transparent 25%),linear-gradient(225deg,hsla(0,0%,100%,.022) 25%,transparent 25%);background-size:auto,auto,.6rem .6rem,.6rem .6rem}.login-shell:before{left:50%;top:50%;width:min(62rem,150vw);aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;background:repeating-conic-gradient(from 225deg,hsla(0,0%,100%,.1) 0 .5deg,transparent .5deg 6deg);-webkit-mask-composite:source-in;-webkit-mask:radial-gradient(circle,transparent 60%,#000 61%,#000 68%,transparent 69%),conic-gradient(from 225deg,#000 0 270deg,transparent 270deg);mask:radial-gradient(circle,transparent 60%,#000 61%,#000 68%,transparent 69%),conic-gradient(from 225deg,#000 0 270deg,transparent 270deg);-webkit-mask-composite:source-in,xor;mask-composite:intersect;opacity:.55}.login-shell:after,.login-shell:before{content:"";position:absolute;pointer-events:none}.login-shell:after{left:0;right:0;bottom:0;height:.75rem;background:conic-gradient(#fff 25%,#0b0d10 0 50%,#fff 0 75%,#0b0d10 0) 0 0 /1.5rem 1.5rem;opacity:.16;mask-image:linear-gradient(90deg,transparent,#000 25%,#000 75%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 25%,#000 75%,transparent)}.login-card{background:linear-gradient(180deg,rgba(24,29,36,.92),rgba(14,17,21,.94));backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 30px 80px -20px rgba(0,0,0,.85),0 0 0 1px rgb(var(--a-500)/.18);overflow:hidden}.login-card:after{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,rgb(var(--a-500)),rgb(var(--a-400)) 45%,transparent)}.dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.9rem;padding:clamp(1.5rem,1rem + 3vw,3rem) 1.25rem;text-align:center;border:2px dashed var(--border-strong);border-radius:var(--radius-xl);background:var(--card-sunken);cursor:pointer;transition:border-color .25s,background-color .25s,transform .25s var(--ease)}.dropzone:hover{border-color:rgb(var(--a-500));background:rgb(var(--a-500)/.06)}.dropzone.dragover{border-color:rgb(var(--a-500));background:rgb(var(--a-500)/.14);transform:scale(1.01)}.doc-icon{width:3.5rem;height:3.5rem;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md)}.doc-icon-insurance{background:rgba(46,144,250,.14);color:#2e90fa;border:1px solid rgba(46,144,250,.3)}.doc-icon-receipt{background:rgba(23,178,106,.14);color:#17b26a;border:1px solid rgba(23,178,106,.3)}.doc-icon-manual{background:rgba(245,165,36,.14);color:#f5a524;border:1px solid rgba(245,165,36,.3)}.doc-icon-other{background:rgba(151,163,179,.14);color:#97a3b3;border:1px solid rgba(151,163,179,.3)}.doc-card{aspect-ratio:3/4;min-height:13rem;border-radius:var(--radius-md) 2.6rem var(--radius-md) var(--radius-md);background:var(--card);transition:transform .3s var(--ease),box-shadow .3s,border-color .25s}.doc-card:before{z-index:10;width:0;height:0;border-style:solid;border-width:0 2.6rem 2.6rem 0;border-color:transparent var(--background) transparent transparent}.doc-card:after,.doc-card:before{content:"";position:absolute;top:-1px;right:-1px}.doc-card:after{z-index:9;width:2.6rem;height:2.6rem;background:linear-gradient(225deg,transparent 50%,rgb(var(--a-500)/.35) 50%);border-bottom-left-radius:.6rem}.doc-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:rgb(var(--a-500)/.5)}@media (max-width:39.99rem){.doc-card{aspect-ratio:auto;min-height:14rem}}.route-card-stats .text-2xl,.route-card-stats .text-xl{font-family:var(--font-display);font-weight:600}.stats-breakdown-grid{display:grid;gap:.75rem;grid-template-columns:1fr}@media (min-width:40rem){.stats-breakdown-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}canvas{max-width:100%}.admin-eyebrow{margin:0 0 .2rem;font-size:.72rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:rgb(var(--a-500))}.admin-tabs{display:flex;gap:.35rem;padding:.3rem;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;background:var(--card-sunken);border:1px solid var(--border);border-radius:var(--radius-lg)}.admin-tabs::-webkit-scrollbar{display:none}.admin-tab{flex:1 0 auto;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:2.6rem;padding:0 1rem;border-radius:var(--radius-md);font-size:.9rem;font-weight:600;white-space:nowrap;color:var(--muted-foreground);transition:color .15s,background-color .15s,box-shadow .15s}.admin-tab:hover{color:var(--foreground);background:var(--muted)}.admin-tab.is-active{color:var(--foreground);background:var(--card);box-shadow:var(--shadow-sm),inset 0 -2px 0 rgb(var(--a-500))}.admin-tab-badge{min-width:1.25rem;height:1.25rem;padding:0 .35rem;display:inline-flex;align-items:center;justify-content:center;border-radius:9999px;font-size:.7rem;font-weight:700;color:#fff;background:var(--gauge-bad)}.admin-kpi{display:flex;flex-direction:column;gap:.45rem;min-width:0;color:inherit;text-decoration:none}a.admin-kpi:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.admin-kpi.is-warning{border-color:color-mix(in srgb,var(--gauge-warn) 55%,transparent)}.admin-kpi-label{display:inline-flex;align-items:center;gap:.45rem;font-size:.78rem;font-weight:600;letter-spacing:.02em;color:var(--muted-foreground)}.admin-kpi-label svg{color:rgb(var(--a-500));flex:none}.admin-kpi.is-warning .admin-kpi-label svg{color:var(--gauge-warn)}.admin-kpi-value{display:flex;align-items:baseline;flex-wrap:wrap;gap:.5rem;font-size:clamp(1.6rem,1.3rem + 1.2vw,2.2rem);font-weight:700;line-height:1.05;color:var(--foreground);font-variant-numeric:tabular-nums}.admin-kpi-value small{font-size:.5em;font-weight:600;color:var(--muted-foreground)}.admin-kpi-help{font-size:.8rem;color:var(--muted-foreground);line-height:1.3}.admin-kpi-meter{display:block;height:.35rem;border-radius:9999px;background:var(--muted);overflow:hidden}.admin-kpi-meter>span{display:block;height:100%;border-radius:inherit;background:rgb(var(--a-500))}.admin-trend{display:inline-flex;align-items:center;padding:.15rem .45rem;border-radius:9999px;font-size:.72rem;font-weight:700;letter-spacing:0}.admin-trend.is-up{color:#0e9a58;background:rgba(23,178,106,.12)}.admin-trend.is-down{color:#d92d20;background:rgba(240,68,56,.1)}.admin-trend.is-flat{color:var(--muted-foreground);background:var(--muted)}.admin-trend.is-up:before{content:"▲ ";font-size:.8em}.admin-trend.is-down:before{content:"▼ ";font-size:.8em}.dark .admin-trend.is-up{color:#4ade9b}.dark .admin-trend.is-down{color:#ff8a80}.admin-section-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:.75rem}.admin-section-title{margin:0;font-size:1.1rem;font-weight:600;color:var(--foreground)}.admin-section-sub{margin:.2rem 0 0;font-size:.85rem;color:var(--muted-foreground);line-height:1.4}.admin-grid-2,.admin-grid-sidebar{display:grid;gap:clamp(1rem,.8rem + 1vw,1.5rem);grid-template-columns:minmax(0,1fr)}@media (min-width:64rem){.admin-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-grid-sidebar{grid-template-columns:minmax(0,1fr) minmax(16rem,22rem);align-items:start}}.admin-empty{display:flex;align-items:center;gap:.6rem;padding:1rem 1.1rem;border:1px dashed var(--border-strong);border-radius:var(--radius-md);font-size:.9rem;color:var(--muted-foreground)}.admin-empty.is-ok{border-style:solid;border-color:rgba(23,178,106,.3);background:rgba(23,178,106,.08);color:var(--foreground)}.admin-empty.is-ok svg{color:var(--gauge-ok)}.admin-empty.is-large{flex-direction:column;justify-content:center;text-align:center;padding:3rem 1rem;gap:.9rem}.admin-alert-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.6rem}.admin-alert{--alert-color:var(--gauge-info);display:flex;align-items:flex-start;flex-wrap:wrap;gap:.8rem;padding:.85rem 1rem;border:1px solid color-mix(in srgb,var(--alert-color) 30%,transparent);border-left:.25rem solid var(--alert-color);border-radius:var(--radius-md);background:color-mix(in srgb,var(--alert-color) 7%,transparent)}.admin-alert.is-critical{--alert-color:var(--gauge-bad)}.admin-alert.is-warning{--alert-color:var(--gauge-warn)}.admin-alert-icon{flex:none;display:inline-flex;padding:.35rem;border-radius:9999px;color:var(--alert-color);background:color-mix(in srgb,var(--alert-color) 15%,transparent)}.admin-alert-title{margin:0;font-size:.92rem;font-weight:600;color:var(--foreground)}.admin-alert-text{margin:.15rem 0 0;font-size:.85rem;color:var(--muted-foreground);line-height:1.4}.admin-alert-link{align-self:center}.admin-stat-strip{display:grid;gap:1rem;grid-template-columns:repeat(2,minmax(0,1fr))}@media (min-width:40rem){.admin-stat-strip{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:80rem){.admin-stat-strip{grid-template-columns:repeat(6,minmax(0,1fr))}}.admin-stat{display:flex;flex-direction:column;gap:.25rem;min-width:0;padding-left:.8rem;border-left:2px solid var(--border)}.admin-stat-label{font-size:.75rem;font-weight:600;color:var(--muted-foreground)}.admin-stat-value{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem;font-size:clamp(1.05rem,.95rem + .5vw,1.3rem);font-weight:700;color:var(--foreground);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.admin-chart-card{display:flex;flex-direction:column;gap:1rem;margin:0}.admin-chart-wrap{position:relative;height:clamp(12rem,9rem + 10vw,16rem)}.admin-data-table summary{cursor:pointer;font-size:.8rem;font-weight:600;color:var(--muted-foreground)}.admin-data-table summary:hover{color:var(--foreground)}.admin-data-table table{width:100%;margin-top:.6rem;border-collapse:collapse;font-size:.85rem}.admin-data-table td,.admin-data-table th{padding:.35rem .5rem;border-bottom:1px solid var(--border);text-align:left}.admin-data-table td:last-child,.admin-data-table th:last-child{text-align:right;font-variant-numeric:tabular-nums}.admin-rank-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.35rem}.admin-rank-item{display:flex;align-items:center;gap:.8rem;padding:.55rem .6rem;border-radius:var(--radius-md);color:inherit;text-decoration:none;transition:background-color .15s}.admin-rank-item:hover{background:var(--muted)}.admin-avatar-sm{width:2.25rem!important;height:2.25rem!important;border-radius:.6rem!important;font-size:.9rem!important}.admin-rank-name{display:flex;align-items:center;gap:.4rem;margin-bottom:.35rem;font-size:.9rem;font-weight:600;color:var(--foreground);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-rank-bar{display:block;height:.3rem;border-radius:9999px;background:var(--muted);overflow:hidden}.admin-rank-bar>span{display:block;height:100%;min-width:.3rem;border-radius:inherit;background:rgb(var(--a-500))}.admin-rank-value{flex:none;text-align:right;font-size:.95rem;font-weight:700;color:var(--foreground);font-variant-numeric:tabular-nums}.admin-rank-value small{display:block;font-size:.72rem;font-weight:500;color:var(--muted-foreground)}.admin-timeline{margin:0;padding:0;list-style:none;display:flex;flex-direction:column}.admin-timeline-item{position:relative;display:flex;gap:.85rem;padding-bottom:1rem}.admin-timeline-item:not(:last-child):before{content:"";position:absolute;left:1rem;top:2.25rem;bottom:.2rem;width:1px;background:var(--border)}.admin-timeline-icon{--tone:var(--muted-foreground);flex:none;width:2rem;height:2rem;display:inline-flex;align-items:center;justify-content:center;border-radius:9999px;color:var(--tone);background:color-mix(in srgb,var(--tone) 13%,var(--card));border:1px solid color-mix(in srgb,var(--tone) 25%,transparent)}.admin-timeline-icon.is-ok{--tone:var(--gauge-ok)}.admin-timeline-icon.is-warn{--tone:var(--gauge-warn)}.admin-timeline-icon.is-bad{--tone:var(--gauge-bad)}.admin-timeline-icon.is-info{--tone:var(--gauge-info)}.admin-timeline-body{flex:1;min-width:0;padding-top:.2rem}.admin-timeline-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.25rem .75rem}.admin-timeline-title{margin:0;font-size:.9rem;font-weight:600;color:var(--foreground);overflow-wrap:anywhere}.admin-timeline-target{font-weight:500;color:var(--muted-foreground)}.admin-timeline-head time{flex:none;font-size:.78rem;color:var(--muted-foreground)}.admin-timeline-meta{margin:.15rem 0 0;font-size:.8rem;color:var(--muted-foreground);overflow-wrap:anywhere}.admin-timeline-meta a{color:var(--foreground);font-weight:500}.admin-timeline-meta a:hover{color:rgb(var(--a-500))}.admin-changes{margin-top:.45rem}.admin-changes summary{cursor:pointer;font-size:.78rem;font-weight:600;color:rgb(var(--a-500))}.admin-changes dl{margin:.45rem 0 0;padding:.6rem .75rem;display:grid;gap:.3rem;border-radius:var(--radius-sm);background:var(--card-sunken);border:1px solid var(--border)}.admin-changes dl>div{display:flex;flex-wrap:wrap;gap:.2rem .6rem;font-size:.8rem}.admin-changes dt{min-width:8rem;color:var(--muted-foreground)}.admin-changes dd{margin:0;color:var(--foreground);font-weight:500;overflow-wrap:anywhere}.admin-segments{display:flex;gap:.5rem;overflow-x:auto;scrollbar-width:none;padding-bottom:.1rem}.admin-segments::-webkit-scrollbar{display:none}.admin-segment{flex:none;display:inline-flex;align-items:center;gap:.45rem;min-height:2.4rem;padding:0 .9rem;border:1px solid var(--border);border-radius:9999px;background:var(--card);font-size:.85rem;font-weight:600;color:var(--muted-foreground);transition:border-color .15s,color .15s,background-color .15s}.admin-segment span{padding:.05rem .45rem;border-radius:9999px;background:var(--muted);font-size:.75rem;color:var(--foreground)}.admin-segment:hover{color:var(--foreground);border-color:var(--border-strong)}.admin-segment.is-active{color:var(--foreground);border-color:rgb(var(--a-500));background:rgb(var(--a-500)/.08)}.admin-segment.is-active span{background:rgb(var(--a-500));color:var(--on-primary)}.admin-filters{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem}.admin-search{position:relative;flex:1 1 16rem;min-width:0}.admin-search>svg{position:absolute;left:.85rem;top:50%;transform:translateY(-50%);color:var(--muted-foreground);pointer-events:none}.admin-search .input-field{padding-left:2.4rem;width:100%}.admin-filters .filter-select{flex:1 1 11rem;min-width:0;width:auto}.admin-date{display:flex;flex-direction:column;gap:.2rem;flex:1 1 9rem;min-width:0;font-size:.72rem;font-weight:600;color:var(--muted-foreground)}@media (max-width:39.99rem){.admin-filters>*{flex-basis:100%}}.admin-bulk-bar{position:sticky;top:.75rem;z-index:30;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;padding:.7rem .9rem;border:1px solid rgb(var(--a-500)/.45);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--card) 92%,rgb(var(--a-500)));box-shadow:var(--shadow-md);animation:fadeUp .2s var(--ease) both}.admin-bulk-bar[hidden]{display:none}.admin-bulk-count{margin:0;font-size:.9rem;color:var(--foreground)}.admin-bulk-actions{display:flex;flex-wrap:wrap;gap:.5rem}.admin-bulk-actions .btn-ghost,.admin-bulk-actions .btn-secondary{gap:.4rem;min-height:2.4rem;padding:0 .8rem;font-size:.85rem}@media (max-width:39.99rem){.admin-bulk-bar{top:auto;bottom:calc(.75rem + env(safe-area-inset-bottom));position:sticky}.admin-bulk-actions{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}}.admin-table-card{padding:0;overflow:visible}.admin-table-card.is-flat{border:0;box-shadow:none;background:transparent}.admin-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.9rem}.admin-table th{padding:.75rem 1rem;text-align:left;font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted-foreground);background:var(--card-sunken);border-bottom:1px solid var(--border)}.admin-table th:first-child{border-top-left-radius:var(--radius-lg)}.admin-table th:last-child{border-top-right-radius:var(--radius-lg)}.admin-table td{padding:.8rem 1rem;border-bottom:1px solid var(--border);vertical-align:middle;color:var(--foreground)}.admin-table tbody tr:last-child td{border-bottom:0}.admin-table tbody tr{transition:background-color .15s}.admin-table tbody tr:hover{background:var(--muted)}.admin-table tbody tr.is-selected{background:rgb(var(--a-500)/.07)}.admin-table tbody tr.is-inactive .admin-user-name,.admin-table tbody tr.is-inactive .user-admin-avatar{opacity:.6}.admin-table.is-dense td,.admin-table.is-dense th{padding:.5rem .75rem}.admin-table-card.is-flat .admin-table th{border-radius:0}.admin-col-check{width:2.75rem}.admin-col-check input,.admin-table input[type=checkbox]{width:1.1rem;height:1.1rem;accent-color:rgb(var(--a-500));cursor:pointer}.admin-col-actions{width:1%;white-space:nowrap;text-align:right}@media (max-width:63.99rem){.admin-table,.admin-table tbody,.admin-table td,.admin-table tr{display:block;width:100%}.admin-table thead{display:none}.admin-table tbody{display:flex;flex-direction:column;gap:.75rem}.admin-table-card{background:transparent;border:0;box-shadow:none}.admin-table-card:before{display:none}.admin-table tbody tr{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem 1rem;padding:1rem;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.admin-table td{padding:0;border:0;min-width:0}.admin-table td[data-label]:before{content:attr(data-label);display:block;margin-bottom:.15rem;font-size:.7rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--muted-foreground)}.admin-table td[data-label=Email],.admin-table td[data-label=Usuario]{grid-column:1/-1;padding-right:2rem}.admin-table td[data-label=Usuario]:before{display:none}.admin-table .admin-col-check{position:absolute;top:1rem;right:1rem;width:auto}.admin-table .admin-col-actions{grid-column:1/-1;text-align:left;padding-top:.6rem;border-top:1px solid var(--border)}.admin-table.is-dense tbody tr{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-table.is-dense td[data-label=Tabla]{grid-column:1/-1}.admin-table .text-right{text-align:left}}.admin-user-cell{display:flex;align-items:center;gap:.75rem;min-width:0;color:inherit;text-decoration:none}.admin-user-cell:hover .admin-user-name{color:rgb(var(--a-500))}.admin-user-name{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;font-weight:600;color:var(--foreground);transition:color .15s}.admin-user-name .user-meta-chip,.admin-user-name .user-role-badge{padding:.12rem .4rem;font-size:.7rem}.admin-user-email{display:block;font-size:.82rem;color:var(--muted-foreground);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-data-counts{display:inline-flex;gap:.75rem;font-variant-numeric:tabular-nums}.admin-data-counts>span{display:inline-flex;align-items:center;gap:.25rem;color:var(--foreground)}.admin-data-counts svg{color:var(--muted-foreground)}.admin-row-actions{display:inline-flex;align-items:center;gap:.35rem}.admin-row-actions .icon-action-btn{color:var(--muted-foreground)}.admin-row-actions .icon-action-btn:hover{color:var(--foreground)}.admin-menu{position:relative}.admin-menu>summary{list-style:none;cursor:pointer}.admin-menu>summary::-webkit-details-marker{display:none}.admin-menu[open]>summary{border-color:rgb(var(--a-500));color:var(--foreground)}.admin-menu-panel{position:absolute;right:0;top:calc(100% + .35rem);z-index:40;min-width:14rem;padding:.35rem;display:flex;flex-direction:column;background:var(--card);border:1px solid var(--border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);animation:fadeUp .15s var(--ease) both}.admin-menu.opens-up .admin-menu-panel{top:auto;bottom:calc(100% + .35rem)}@media (max-width:63.99rem){.admin-menu-panel{right:auto;left:0}}.admin-menu-panel form{margin:0}.admin-menu-item{width:100%;display:flex;align-items:center;gap:.6rem;padding:.6rem .7rem;border-radius:var(--radius-sm);font-size:.88rem;font-weight:500;text-align:left;color:var(--foreground);transition:background-color .15s}.admin-menu-item:hover{background:var(--muted)}.admin-menu-item svg{color:var(--muted-foreground)}.admin-menu-item.is-ok svg{color:var(--gauge-ok)}.admin-menu-item.is-warn svg{color:var(--gauge-warn)}.admin-menu-item.is-danger,.admin-menu-item.is-danger svg{color:var(--gauge-bad)}.admin-menu-panel form:last-child{margin-top:.25rem;padding-top:.25rem;border-top:1px solid var(--border)}.admin-pagination{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem}.admin-per-page{display:inline-flex;align-items:center;gap:.5rem;font-size:.82rem;color:var(--muted-foreground)}.admin-per-page select{min-height:2.4rem;padding:0 .6rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--accent);color:var(--foreground);font-size:.85rem}.admin-back-link{display:inline-flex;align-items:center;gap:.35rem;font-size:.88rem;font-weight:600;color:var(--muted-foreground)}.admin-back-link:hover{color:var(--foreground)}.admin-profile{display:flex;flex-direction:column;gap:1.25rem}.admin-profile-main{display:flex;flex-wrap:wrap;align-items:flex-start;gap:1.1rem}.admin-profile-name{margin:0;font-size:clamp(1.3rem,1.1rem + .8vw,1.7rem);font-weight:700;color:var(--foreground);overflow-wrap:anywhere}.admin-profile-email{display:flex;align-items:center;gap:.3rem;margin:0 0 .9rem;color:var(--muted-foreground);overflow-wrap:anywhere}.admin-copy{display:inline-flex;padding:.3rem;border-radius:var(--radius-sm);color:var(--muted-foreground);transition:color .15s,background-color .15s}.admin-copy:hover{color:var(--foreground);background:var(--muted)}.admin-profile-facts{margin:0;display:grid;gap:.75rem 1.5rem;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr))}.admin-profile-facts dt{font-size:.72rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--muted-foreground)}.admin-profile-facts dd{margin:.15rem 0 0;font-size:.9rem;font-weight:500;color:var(--foreground)}.admin-id{display:flex;align-items:center;gap:.2rem;font-size:.78rem!important;overflow-wrap:anywhere}.admin-action-bar{display:flex;flex-wrap:wrap;gap:.5rem;padding-top:1rem;border-top:1px solid var(--border)}.admin-action-bar form{margin:0}.admin-bar-btn{gap:.4rem}.admin-bar-btn.is-danger{color:var(--gauge-bad)}.admin-bar-btn.is-danger:hover:not(:disabled){border-color:var(--gauge-bad)}@media (max-width:39.99rem){.admin-action-bar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.admin-action-bar form .btn-secondary,.admin-action-bar>*{width:100%}}.admin-check-list,.admin-health-list,.admin-login-list,.admin-storage-list,.admin-vehicle-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column}.admin-vehicle{display:flex;align-items:center;gap:.8rem;padding:.75rem 0;border-bottom:1px solid var(--border)}.admin-vehicle:last-child{border-bottom:0}.admin-vehicle-icon{flex:none;display:inline-flex;padding:.55rem;border-radius:var(--radius-md);color:rgb(var(--a-500));background:rgb(var(--a-500)/.1)}.admin-vehicle-name{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin:0;font-weight:600;color:var(--foreground)}.admin-vehicle-meta{margin:.1rem 0 0;font-size:.8rem;color:var(--muted-foreground)}.admin-vehicle-figures{flex:none;text-align:right;font-weight:600;font-variant-numeric:tabular-nums}.admin-vehicle-figures small{display:block;font-size:.75rem;font-weight:500;color:var(--muted-foreground)}.admin-check-list li{display:flex;align-items:center;gap:.6rem;padding:.5rem 0;border-bottom:1px solid var(--border);font-size:.88rem;color:var(--foreground)}.admin-check-list li:last-child{border-bottom:0}.admin-check-list li span{flex:1}.admin-check-list li strong{font-size:.8rem}.admin-check-list li.is-on strong,.admin-check-list li.is-on svg{color:var(--gauge-ok)}.admin-check-list li.is-off strong,.admin-check-list li.is-off svg{color:var(--muted-foreground)}.admin-login-list li{display:flex;align-items:center;gap:.75rem;padding:.65rem 0;border-bottom:1px solid var(--border)}.admin-login-list li:last-child{border-bottom:0}.admin-login-name{margin:0;font-size:.9rem;font-weight:600;color:var(--foreground);overflow-wrap:anywhere}.admin-login-name a:hover{color:rgb(var(--a-500))}.admin-login-meta{margin:.1rem 0 0;overflow-wrap:anywhere}.admin-login-meta,.admin-login-time{font-size:.78rem;color:var(--muted-foreground)}.admin-login-time{flex:none}.admin-danger-zone{border-color:color-mix(in srgb,var(--gauge-bad) 40%,transparent);background:color-mix(in srgb,var(--gauge-bad) 5%,var(--card))}.admin-danger-zone .btn-danger{gap:.5rem}.admin-health-list li{display:flex;align-items:flex-start;gap:.7rem;padding:.65rem 0;border-bottom:1px solid var(--border)}.admin-health-list li:last-child{border-bottom:0}.admin-health-list li>svg{flex:none;margin-top:.15rem}.admin-health-list li.is-ok>svg{color:var(--gauge-ok)}.admin-health-list li.is-warn>svg{color:var(--gauge-warn)}.admin-health-label{margin:0;font-size:.9rem;font-weight:600;color:var(--foreground)}.admin-health-text{margin:.1rem 0 0;font-size:.82rem;color:var(--muted-foreground)}.admin-env-list{margin:0;display:flex;flex-direction:column}.admin-env-list>div{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.25rem 1rem;padding:.55rem 0;border-bottom:1px solid var(--border);font-size:.88rem}.admin-env-list>div:last-child{border-bottom:0}.admin-env-list dt{color:var(--muted-foreground)}.admin-env-list dd{margin:0;font-weight:600;color:var(--foreground);text-align:right;overflow-wrap:anywhere}.admin-storage-list{gap:.9rem}.admin-storage-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.25rem 1rem;margin-bottom:.35rem;font-size:.88rem;color:var(--foreground)}.admin-storage-head span:last-child{color:var(--muted-foreground);font-variant-numeric:tabular-nums}.admin-tip{display:flex;gap:.6rem;padding:.75rem .9rem;border-radius:var(--radius-md);background:var(--card-sunken);border:1px solid var(--border);font-size:.82rem;color:var(--muted-foreground)}.admin-tip svg{flex:none;margin-top:.1rem;color:var(--gauge-info)}.admin-tip p{margin:0}.admin-fieldset{margin:0;padding:0;border:0;display:flex;flex-direction:column;gap:.9rem;min-width:0}.admin-fieldset legend{margin-bottom:.75rem;padding:0;font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:rgb(var(--a-500))}.admin-field-hint{margin:0;font-size:.8rem;color:var(--muted-foreground);line-height:1.4}.admin-role-picker{display:grid;gap:.6rem;grid-template-columns:minmax(0,1fr)}@media (min-width:40rem){.admin-role-picker{grid-template-columns:repeat(2,minmax(0,1fr))}}.admin-role-option{position:relative;cursor:pointer}.admin-role-option input{position:absolute;opacity:0;pointer-events:none}.admin-role-option>span{display:grid;grid-template-columns:auto 1fr;gap:.15rem .6rem;align-items:center;height:100%;padding:.8rem .9rem;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--card-sunken);transition:border-color .15s,background-color .15s,box-shadow .15s}.admin-role-option svg{color:var(--muted-foreground)}.admin-role-option strong{font-size:.92rem;color:var(--foreground)}.admin-role-option small{grid-column:2;font-size:.78rem;color:var(--muted-foreground)}.admin-role-option input:checked+span{border-color:rgb(var(--a-500));background:rgb(var(--a-500)/.08);box-shadow:0 0 0 1px rgb(var(--a-500))}.admin-role-option input:checked+span svg{color:rgb(var(--a-500))}.admin-role-option input:focus-visible+span{box-shadow:0 0 0 3px var(--card),0 0 0 5px rgb(var(--a-500))}.admin-toggle-grid{display:grid;gap:.35rem 1rem;grid-template-columns:minmax(0,1fr)}@media (min-width:40rem){.admin-toggle-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.admin-switch{position:relative;display:flex;align-items:center;gap:.7rem;min-height:2.5rem;cursor:pointer;font-size:.9rem;color:var(--foreground)}.admin-switch[hidden]{display:none}.admin-switch input{position:absolute;opacity:0;width:1px;height:1px}.admin-switch small{color:var(--muted-foreground)}.admin-switch-track{position:relative;flex:none;width:2.5rem;height:1.4rem;border-radius:9999px;background:var(--border-strong);transition:background-color .2s}.admin-switch-track:after{content:"";position:absolute;top:.2rem;left:.2rem;width:1rem;height:1rem;border-radius:9999px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.3);transition:transform .2s var(--ease)}.admin-switch input:checked+.admin-switch-track{background:rgb(var(--a-500))}.admin-switch input:checked+.admin-switch-track:after{transform:translateX(1.1rem)}.admin-switch input:focus-visible+.admin-switch-track{box-shadow:0 0 0 3px var(--card),0 0 0 5px rgb(var(--a-500))}.admin-switch input:disabled+.admin-switch-track{opacity:.5}.admin-switch:has(input:disabled){cursor:not-allowed}.admin-password{display:flex;flex-direction:column;gap:.5rem}.admin-password-row{display:flex;gap:.4rem}.admin-password-row .input-field{flex:1;min-width:0}.admin-password-row .icon-action-btn{flex:none;color:var(--muted-foreground)}.admin-password-generate{flex:none;gap:.4rem}@media (max-width:39.99rem){.admin-password-row{flex-wrap:wrap}.admin-password-row .input-field{flex-basis:100%}.admin-password-generate{flex:1}}.admin-strength{display:flex;align-items:center;gap:.6rem}.admin-strength-bar{flex:1;display:grid;grid-template-columns:repeat(4,1fr);gap:.25rem;max-width:12rem}.admin-strength-bar span{height:.3rem;border-radius:9999px;background:var(--border);transition:background-color .2s}.admin-strength-label{font-size:.78rem;font-weight:600;color:var(--muted-foreground)}.admin-strength[data-strength="1"] .admin-strength-bar span:nth-child(-n+1){background:var(--gauge-bad)}.admin-strength[data-strength="2"] .admin-strength-bar span:nth-child(-n+2){background:var(--gauge-warn)}.admin-strength[data-strength="3"] .admin-strength-bar span:nth-child(-n+3),.admin-strength[data-strength="4"] .admin-strength-bar span{background:var(--gauge-ok)}@keyframes pageEnter{0%{opacity:0;transform:translateY(.6rem)}to{opacity:1;transform:none}}.animate-in{animation:pageEnter .45s var(--ease) backwards}.animate-in>*{animation:pageEnter .5s var(--ease) backwards}.animate-in>:nth-child(2){animation-delay:.04s}.animate-in>:nth-child(3){animation-delay:.08s}.animate-in>:nth-child(4){animation-delay:.12s}.animate-in>:nth-child(5){animation-delay:.16s}.animate-in>:nth-child(n+6){animation-delay:.2s}.animate-in>.admin-bulk-bar{animation:none}.admin-segment,.admin-tab,.btn-danger,.btn-ghost,.btn-primary,.btn-secondary,.icon-action-btn{-webkit-tap-highlight-color:transparent}.btn-danger:active:not(:disabled),.btn-ghost:active:not(:disabled),.btn-primary:active:not(:disabled),.btn-secondary:active:not(:disabled){transform:scale(.97)}.icon-action-btn:active{transform:scale(.92)}@media (hover:none){.card:hover{border-color:var(--border)}.record-card:active,a.admin-kpi:active{transform:scale(.99)}}@media (max-width:767.98px){.app-main{padding-top:calc(var(--mobile-bar-h) + 1rem)}.dark body,body{background-attachment:scroll}}@media (max-width:39.99rem){.page-header{padding:1rem!important;border-radius:var(--radius-lg)!important}.page-header h1.text-3xl{font-size:clamp(1.35rem,1.1rem + 2vw,1.6rem)}.page-header p{font-size:.9rem}.space-y-6>:not([hidden])~:not([hidden]){margin-top:1.1rem}.kpi-grid-3,.kpi-grid-4{gap:.6rem}.compact-kpi-card{padding:.85rem .95rem}}.ui-select{position:relative;width:100%}.ui-select-native{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}.ui-select-button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.5rem;text-align:left;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ui-select-button[aria-expanded=true]{border-color:rgb(var(--a-500));box-shadow:0 0 0 4px var(--primary-glow)}.ui-select-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-select-chevron,.ui-select-value.is-placeholder{color:var(--muted-foreground)}.ui-select-chevron{flex:none;transition:transform .25s var(--ease)}.ui-select-button[aria-expanded=true] .ui-select-chevron{transform:rotate(180deg)}.ui-select-popover{position:fixed;z-index:1300;max-height:min(18rem,50vh);overflow-y:auto;overscroll-behavior:contain;padding:.3rem;background:var(--card);border:1px solid var(--border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);opacity:0;transform:translateY(-.35rem) scale(.98);transform-origin:top center;transition:opacity .16s var(--ease),transform .2s var(--ease)}.ui-select-popover.opens-up{transform-origin:bottom center;transform:translateY(.35rem) scale(.98)}.ui-select-popover.is-open{opacity:1;transform:none}.ui-select-sheet-overlay{position:fixed;inset:0;z-index:1300;background:rgba(4,6,9,.6);opacity:0;transition:opacity .25s var(--ease)}.ui-select-sheet-overlay.is-open{opacity:1}.ui-select-sheet{position:fixed;left:0;right:0;bottom:0;z-index:1301;max-height:75dvh;display:flex;flex-direction:column;background:var(--card);border-top:1px solid var(--border-strong);border-radius:var(--radius-xl) var(--radius-xl) 0 0;box-shadow:var(--shadow-lg);padding-bottom:env(safe-area-inset-bottom);transform:translateY(100%);transition:transform .32s var(--ease);will-change:transform}.ui-select-sheet.is-open{transform:translateY(0)}.ui-select-sheet.is-dragging{transition:none}.ui-select-sheet-handle{width:2.5rem;height:.3rem;margin:.6rem auto .2rem;border-radius:9999px;background:var(--border-strong);flex:none}.ui-select-sheet-title{margin:0;padding:.5rem 1.25rem .75rem;font-size:.8rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted-foreground);border-bottom:1px solid var(--border);flex:none}.ui-select-sheet .ui-select-list{overflow-y:auto;overscroll-behavior:contain;padding:.4rem .6rem .8rem}.ui-select-list{margin:0;padding:0;list-style:none}.ui-select-option{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:2.5rem;padding:.55rem .75rem;border-radius:var(--radius-sm);font-size:.92rem;font-weight:500;color:var(--foreground);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background-color .12s}.ui-select-sheet .ui-select-option{min-height:3.1rem;font-size:1rem;padding:.7rem .9rem;border-radius:var(--radius-md)}.ui-select-option.is-active,.ui-select-option:hover{background:var(--muted)}.ui-select-option:active{background:rgb(var(--a-500)/.12)}.ui-select-option[aria-selected=true]{color:rgb(var(--a-500));font-weight:600;background:rgb(var(--a-500)/.08)}.ui-select-option[aria-disabled=true]{opacity:.45;cursor:not-allowed}.ui-select-check{flex:none;opacity:0;transform:scale(.6);transition:opacity .15s,transform .2s var(--ease)}.ui-select-option[aria-selected=true] .ui-select-check{opacity:1;transform:none}.ui-select-lock{overflow:hidden}.\!sidebar .kbd{color:var(--foreground)!important;background:hsla(0,0%,100%,.08)!important;border-color:hsla(0,0%,100%,.16)!important}.sidebar .kbd{color:var(--foreground);background:hsla(0,0%,100%,.08);border-color:hsla(0,0%,100%,.16)}@media (min-width:768px){.sidebar-profile .sidebar-role-pill{display:none}.sidebar-profile.is-admin .sidebar-profile-avatar{box-shadow:0 0 0 2px #0a0c0f,0 0 0 3.5px rgb(var(--a-400))}}@keyframes carIn{0%{opacity:0;transform:translateX(1.5rem) scale(.97)}to{opacity:1;transform:none}}@keyframes floorIn{0%{opacity:0;transform:translateX(-50%) scaleX(.6)}to{opacity:1;transform:translateX(-50%) scaleX(1)}}.vehicle-hero{--hero-bg:#0c0f13;--floor:2.4rem;container-type:inline-size;position:relative;display:flex;flex-wrap:wrap-reverse;overflow:hidden;border-radius:var(--radius-xl);border:1px solid hsla(0,0%,100%,.08);background:radial-gradient(120% 90% at 70% 0,rgb(var(--a-500)/.16),transparent 60%),linear-gradient(160deg,#161b22 0,var(--hero-bg) 55%,#07090c 100%);box-shadow:var(--shadow-lg),inset 0 1px 0 hsla(0,0%,100%,.06);color:#fff;cursor:pointer;isolation:isolate;-webkit-tap-highlight-color:transparent;transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .35s}.vehicle-hero:before{content:"";position:absolute;inset:0 0 auto 0;height:3px;z-index:3;background:linear-gradient(90deg,rgb(var(--a-500)),rgb(var(--a-400)) 40%,transparent 85%)}.vehicle-hero:hover{border-color:hsla(0,0%,100%,.16);box-shadow:0 32px 70px -18px rgba(0,0,0,.6),inset 0 1px 0 hsla(0,0%,100%,.08)}.vehicle-hero:active{transform:scale(.995)}.vehicle-hero:focus-visible{outline:3px solid rgb(var(--a-500));outline-offset:3px}.vehicle-hero-stage{position:relative;display:flex;align-items:flex-end;justify-content:center;height:clamp(11rem,52cqi,15.5rem);min-height:0;padding:1.5rem 1.25rem var(--floor)}.vehicle-hero-stage:before{content:"";position:absolute;left:50%;top:52%;width:85%;height:85%;transform:translate(-50%,-50%);background:radial-gradient(closest-side,rgb(var(--a-500)/.28),rgb(var(--a-500)/.06) 60%,transparent);pointer-events:none}.vehicle-hero-stage:after{content:"";position:absolute;inset:auto 0 0 0;height:calc(var(--floor) + .6rem);background:radial-gradient(60% 100% at 50% 0,hsla(0,0%,100%,.045),transparent 70%),linear-gradient(90deg,transparent,hsla(0,0%,100%,.07) 50%,transparent) top /100% 1px no-repeat;pointer-events:none}.vehicle-hero-img{position:relative;z-index:2;display:block;width:auto;height:auto;max-width:min(90%,31rem);max-height:100%;-o-object-fit:contain;object-fit:contain;filter:drop-shadow(0 .9rem .7rem rgba(0,0,0,.55)) drop-shadow(0 .2rem .25rem rgba(0,0,0,.4));opacity:0;transition:transform .6s var(--ease)}.vehicle-hero-img.is-ready{animation:carIn .7s var(--ease) .05s both}@media (scripting:none){.vehicle-hero-img{opacity:1}}.vehicle-hero-floor{position:absolute;z-index:1;left:50%;bottom:calc(var(--floor) - .7rem);width:min(76%,28rem);height:1.4rem;transform:translateX(-50%);border-radius:50%;background:radial-gradient(closest-side,rgba(0,0,0,.75),rgba(0,0,0,.35) 55%,transparent);filter:blur(2px);animation:floorIn .7s var(--ease) .1s both;transition:transform .6s var(--ease),opacity .6s}@media (hover:hover){.vehicle-hero:hover .vehicle-hero-img.is-ready{transform:translateY(-.2rem) scale(1.03)}.vehicle-hero:hover .vehicle-hero-floor{transform:translateX(-50%) scaleX(.9);opacity:.8}}.vehicle-hero-stage[data-photo=photo]{padding:0}.vehicle-hero-stage[data-photo=photo] .vehicle-hero-floor,.vehicle-hero-stage[data-photo=photo]:before{display:none}.vehicle-hero-stage[data-photo=photo] .vehicle-hero-img{position:absolute;inset:0;width:100%;height:100%;max-width:none;max-height:none;-o-object-fit:cover;object-fit:cover;filter:none}.vehicle-hero-stage[data-photo=photo]:after{height:100%;z-index:3;background:linear-gradient(to top,var(--hero-bg),transparent 55%)}.vehicle-hero-info{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:center;gap:.35rem;padding:0 clamp(1.25rem,1rem + 1.5vw,2.25rem) clamp(1.25rem,1rem + 1.5vw,2rem)}.vehicle-hero-eyebrow{margin:0;font-size:.72rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:rgb(var(--a-300))}.vehicle-hero-title{margin:0;font-size:clamp(1.6rem,1.2rem + 2vw,2.6rem);font-weight:700;line-height:1.05;letter-spacing:-.025em;color:#fff;text-wrap:balance;overflow-wrap:normal;word-break:normal;-webkit-hyphens:manual;hyphens:manual}.vehicle-hero-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .6rem;margin-top:.2rem;font-size:.95rem;font-weight:500;color:hsla(0,0%,100%,.72)}.vehicle-hero-meta>span:not(.vehicle-hero-chip)+span:not(.vehicle-hero-chip):before{content:"·";margin-right:.6rem;color:hsla(0,0%,100%,.35)}.vehicle-hero-chip{padding:.15rem .5rem;border-radius:.4rem;font-size:.75rem;font-weight:700;letter-spacing:.03em;color:#fff;background:rgb(var(--a-500)/.28);border:1px solid rgb(var(--a-500)/.45)}.vehicle-hero-cta{display:inline-flex;align-items:center;gap:.3rem;align-self:flex-start;margin-top:.75rem;padding:.4rem .8rem;border-radius:9999px;font-size:.82rem;font-weight:600;color:#fff;background:hsla(0,0%,100%,.08);border:1px solid hsla(0,0%,100%,.12);transition:background-color .2s,gap .25s var(--ease)}.vehicle-hero:hover .vehicle-hero-cta{background:rgb(var(--a-500)/.3);gap:.55rem}.vehicle-hero-info{order:-1;flex:1 1 17rem}.vehicle-hero-stage{flex:1.45 1 20rem}@container (min-width: 37rem){.vehicle-hero-info{padding:clamp(1.5rem,4cqi,2.75rem)}.vehicle-hero-stage{height:auto;min-height:17rem;padding:1.75rem 2rem var(--floor)}.vehicle-hero-stage[data-photo=photo]:after{background:linear-gradient(to right,var(--hero-bg),transparent 45%)}}@container (min-width: 60rem){.vehicle-hero-stage{min-height:19rem}}.vd-header{background:radial-gradient(70% 70% at 50% 45%,rgb(var(--a-500)/.22),transparent 70%),linear-gradient(160deg,#161b22,#07090c)}.vd-header:not([data-photo=photo]){height:clamp(16rem,70vw,19rem)}.vd-header:not([data-photo=photo]) img{position:absolute;left:1.5rem;right:1.5rem;top:1.25rem;width:calc(100% - 3rem);height:48%;-o-object-fit:contain;object-fit:contain;filter:drop-shadow(0 .8rem .6rem rgba(0,0,0,.55))}.vd-header:not([data-photo=photo]) .vd-header-gradient{background:linear-gradient(0deg,rgba(4,6,9,.85) 0,rgba(4,6,9,.2) 45%,transparent 60%)}.hub-page{min-width:0}.hub-muted{font-weight:500}.hub-muted,.hub-unit{color:var(--muted-foreground)}.hub-unit{font-size:.6em;font-weight:600;letter-spacing:0}.hub-inline-link{color:rgb(var(--a-500));font-weight:600;text-decoration:none}.hub-inline-link:hover{text-decoration:underline}.dark .hub-inline-link{color:rgb(var(--a-300))}.hub-text-btn{display:inline-flex;align-items:center;gap:.25rem;min-height:2rem;padding:.2rem .35rem;font-size:.8rem;font-weight:600;color:var(--muted-foreground);border-radius:var(--radius-sm);background:transparent;transition:color .15s,background-color .15s}.hub-text-btn:hover{color:var(--foreground);background:var(--muted)}.hub-text-btn.is-danger:hover{color:var(--hub-bad);background:rgba(240,68,56,.1)}.hub-notice{display:flex;align-items:flex-start;gap:.5rem;padding:.75rem .9rem;font-size:.875rem;line-height:1.45;color:var(--muted-foreground);background:var(--card-sunken);border:1px dashed var(--border-strong);border-radius:var(--radius-md)}.hub-notice>i,.hub-notice>svg{flex:none;margin-top:.1rem}.hub-alert{display:flex;align-items:flex-start;gap:.75rem;padding:1rem;font-size:.9rem;line-height:1.45;color:var(--foreground);background:rgba(245,165,36,.12);border:1px solid rgba(245,165,36,.4);border-radius:var(--radius-lg)}.hub-alert>svg{flex:none;color:#b7791f;margin-top:.1rem}.dark .hub-alert>svg{color:#f5a524}.hub-counter{font-size:.75rem;color:var(--muted-foreground);font-variant-numeric:tabular-nums}.hub-check{display:flex;align-items:center;gap:.55rem;margin:0;font-size:.9rem;font-weight:500;cursor:pointer}.hub-status{display:inline-flex;align-items:center;padding:.1rem .45rem;margin-right:.35rem;font-size:.7rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted-foreground);background:var(--muted);border-radius:.3rem}.hub-status.is-on{color:var(--hub-good);background:rgba(23,178,106,.14)}.hub-status.is-pending{color:#b7791f;background:rgba(245,165,36,.16)}.dark .hub-status.is-pending{color:#f5a524}.hub-status.is-blocked{color:var(--hub-bad);background:rgba(240,68,56,.12)}.hub-delta{font-weight:700;font-variant-numeric:tabular-nums}.hub-delta.is-good{color:var(--hub-good)}.hub-delta.is-bad{color:var(--hub-bad)}.hub-private-value{display:inline-flex;align-items:center;gap:.35rem;color:var(--muted-foreground);font-weight:600}.compact-kpi-value.hub-private-value{font-size:1rem}.hub-subnav{display:flex;gap:.35rem;padding:.3rem;overflow-x:auto;scrollbar-width:none;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);scroll-snap-type:x proximity}.hub-subnav::-webkit-scrollbar{display:none}.hub-subnav-link{flex:0 0 auto;display:inline-flex;align-items:center;gap:.45rem;min-height:2.5rem;padding:.45rem .9rem;font-size:.9rem;font-weight:600;color:var(--muted-foreground);border-radius:var(--radius-sm);text-decoration:none;scroll-snap-align:start;transition:color .15s,background-color .15s}.hub-subnav-link:hover{color:var(--foreground);background:var(--muted)}.hub-subnav-link.is-active{color:var(--foreground);background:var(--background);box-shadow:var(--shadow-sm),inset 0 -2px 0 rgb(var(--a-500))}.hub-subnav-link.is-active svg{color:rgb(var(--a-500))}.hub-section{display:flex;flex-direction:column;gap:1rem;min-width:0}.hub-section-head{justify-content:space-between;gap:.5rem 1rem}.hub-section-head,.hub-section-title{display:flex;flex-wrap:wrap;align-items:center}.hub-section-title{gap:.5rem;margin:0 0 .25rem;font-size:clamp(1.05rem,.98rem + .35vw,1.25rem);font-weight:700;color:var(--foreground)}.hub-section-title>svg{color:rgb(var(--a-500));flex:none}.card>.hub-section-title{margin-bottom:1rem}.hub-section-note{font-size:.82rem;color:var(--muted-foreground)}.hub-section-link{font-size:.875rem;font-weight:600;color:rgb(var(--a-500));text-decoration:none}.hub-section-link:hover{text-decoration:underline}.hub-filters{display:flex;flex-direction:column;gap:.9rem}.hub-filters-main{display:grid;gap:.75rem;grid-template-columns:1fr}.hub-filter-search{position:relative}.hub-filter-search>i,.hub-filter-search>svg{position:absolute;left:.95rem;top:50%;transform:translateY(-50%);color:var(--muted-foreground);pointer-events:none}@media (min-width:40rem){.hub-filters-main{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:64rem){.hub-filters-main{grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(0,1fr))}}.hub-filters-more>summary{display:inline-flex;align-items:center;gap:.45rem;min-height:2.25rem;font-size:.875rem;font-weight:600;color:var(--muted-foreground);cursor:pointer;list-style:none}.hub-filters-more>summary::-webkit-details-marker{display:none}.hub-filters-more>summary:hover{color:var(--foreground)}.hub-filters-grid{display:grid;gap:.75rem;grid-template-columns:repeat(2,minmax(0,1fr));padding-top:.75rem}.hub-filters-grid .hub-check{grid-column:1/-1}@media (min-width:48rem){.hub-filters-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.hub-filters-grid .hub-check{grid-column:span 2}}.hub-filters-bar{display:flex;flex-direction:column;gap:.75rem;padding-top:.75rem;border-top:1px dashed var(--border)}@media (min-width:48rem){.hub-filters-bar{flex-direction:row;align-items:center;justify-content:space-between}}.hub-filters-actions{display:flex;gap:.5rem;justify-content:flex-end}.hub-sort{display:flex;flex-wrap:wrap;gap:.35rem}.hub-sort-option{position:relative;margin:0;cursor:pointer}.hub-sort-option input{position:absolute;opacity:0;width:1px;height:1px}.hub-sort-option span{display:inline-flex;align-items:center;min-height:2.25rem;padding:.35rem .8rem;font-size:.85rem;font-weight:600;color:var(--muted-foreground);border:1px solid var(--border);border-radius:9999px;transition:color .15s,border-color .15s,background-color .15s}.hub-sort-option:hover span{color:var(--foreground);border-color:var(--border-strong)}.hub-sort-option input:checked+span,.hub-sort-option.is-active span{color:var(--on-primary);background:rgb(var(--a-500));border-color:rgb(var(--a-600))}.hub-sort-option input:focus-visible+span{box-shadow:0 0 0 3px rgb(var(--a-500)/.35)}.hub-carousel{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(11.5rem,1fr);gap:.75rem;margin:0;padding:0 0 .35rem;list-style:none;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin}.hub-carousel-item{scroll-snap-align:start;min-width:0}@media (min-width:64rem){.hub-carousel{grid-auto-flow:row;grid-template-columns:repeat(5,minmax(0,1fr));overflow:visible}}.hub-top-card{position:relative;display:flex;flex-direction:column;height:100%;overflow:hidden;text-decoration:none;color:var(--foreground);background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:transform .25s var(--ease),border-color .25s,box-shadow .25s}.hub-top-card:hover{transform:translateY(-3px);border-color:rgb(var(--a-500)/.5);box-shadow:var(--shadow-md)}.hub-top-photo{width:100%;aspect-ratio:16/10;-o-object-fit:cover;object-fit:cover;background:var(--card-sunken)}.hub-top-photo.is-placeholder{display:flex;align-items:center;justify-content:center;color:var(--muted-foreground)}.hub-top-rank{position:absolute;top:.5rem;left:.5rem;z-index:1;padding:.15rem .5rem;font-size:.8rem;font-weight:800;color:#fff;background:rgb(var(--a-500));border-radius:.4rem;box-shadow:0 4px 12px -2px rgb(var(--a-500)/.6)}.hub-top-info{display:flex;flex-direction:column;gap:.2rem;padding:.7rem .8rem .8rem;min-width:0}.hub-top-info strong{font-size:.95rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hub-top-info span{display:inline-flex;align-items:center;gap:.3rem;font-size:.8rem;color:var(--muted-foreground)}.hub-grid{display:grid;gap:var(--gap);grid-template-columns:1fr}@media (min-width:36rem){.hub-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:72rem){.hub-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:100rem){.hub-grid:not(.hub-grid-compact){grid-template-columns:repeat(4,minmax(0,1fr))}}.hub-card{display:flex;flex-direction:column;padding:0;overflow:hidden;min-width:0}.hub-card:hover{border-color:rgb(var(--a-500)/.45);box-shadow:var(--shadow-md)}.hub-card-media{position:relative;display:block;overflow:hidden;background:var(--card-sunken)}.hub-card-photo{display:block;width:100%;aspect-ratio:16/10;-o-object-fit:cover;object-fit:cover;transition:transform .5s var(--ease)}.hub-card-photo.is-placeholder,.hub-compare-photo.is-placeholder,.hub-contact-photo.is-placeholder,.hub-hero-photo.is-placeholder,.hub-publish-photo.is-placeholder,.hub-ranking-photo.is-placeholder{display:flex;align-items:center;justify-content:center;color:var(--muted-foreground);background:repeating-linear-gradient(135deg,var(--card-sunken) 0 .75rem,var(--muted) .75rem 1.5rem)}.hub-card:hover .hub-card-photo:not(.is-placeholder){transform:scale(1.04)}.hub-sale-tag{position:absolute;top:.6rem;right:.6rem;display:inline-flex;align-items:center;gap:.3rem;padding:.25rem .55rem;font-size:.75rem;font-weight:700;color:#fff;background:#0e9a58;border-radius:.4rem;box-shadow:0 6px 16px -4px rgba(0,0,0,.45)}.hub-sale-tag.is-large{top:.9rem;right:.9rem;font-size:.85rem;padding:.35rem .7rem}.hub-card-body{display:flex;flex-direction:column;gap:.75rem;padding:.95rem 1rem 1rem;flex:1;min-width:0}.hub-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem}.hub-card-title{margin:0;font-size:1.05rem;font-weight:700;line-height:1.25;overflow-wrap:anywhere}.hub-card-title a{color:var(--foreground);text-decoration:none}.hub-card-title a:hover{color:rgb(var(--a-500))}.hub-card-meta{margin:.15rem 0 0;font-size:.82rem;color:var(--muted-foreground)}.hub-card-hint{display:flex;align-items:center;gap:.35rem;margin:.35rem 0 0;font-size:.78rem;color:var(--muted-foreground)}.hub-card-badges{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.25rem;flex:none;max-width:45%}.hub-card-metric{display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem .6rem;min-height:1.75rem}.hub-card-metric-value{font-size:1.35rem;font-weight:700;font-variant-numeric:tabular-nums}.hub-card-metric-value small{font-size:.75rem;font-weight:600;color:var(--muted-foreground)}.hub-card-metric .hub-delta{font-size:.82rem}.hub-verified-icon{color:#2e90fa;align-self:center}.hub-card-private{display:inline-flex;align-items:center;gap:.35rem;font-size:.85rem;color:var(--muted-foreground)}.hub-card-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem;margin-top:auto;padding-top:.75rem;border-top:1px dashed var(--border)}.hub-card-owner{display:inline-flex;align-items:center;gap:.45rem;min-width:0;flex:1 1 8rem;font-size:.82rem;color:var(--muted-foreground)}.hub-card-owner>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hub-card-actions{display:flex;align-items:center;gap:.25rem}.hub-compare-btn,.hub-count-link,.hub-like-btn{display:inline-flex;align-items:center;justify-content:center;gap:.3rem;min-width:2.5rem;min-height:2.5rem;padding:.3rem .55rem;font-size:.85rem;font-weight:700;color:var(--muted-foreground);font-variant-numeric:tabular-nums;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);text-decoration:none;cursor:pointer;transition:color .15s,background-color .15s,border-color .15s,transform .15s var(--ease)}.hub-compare-btn:hover,.hub-count-link:hover,.hub-like-btn:hover:not(:disabled){color:var(--foreground);background:var(--muted)}.hub-like-btn:disabled{opacity:.55;cursor:not-allowed}.hub-like-btn.is-liked{color:var(--hub-like)}.hub-like-btn.is-liked svg{fill:currentColor}.hub-like-btn:active:not(:disabled){transform:scale(.92)}.hub-like-btn.is-popping svg{animation:hubPop .45s var(--ease)}.hub-like-btn.is-large{min-height:var(--touch);padding:.55rem 1rem;font-size:.95rem;border-color:var(--border-strong);background:var(--accent)}.hub-like-btn.is-large.is-liked{border-color:color-mix(in srgb,var(--hub-like) 55%,transparent);background:color-mix(in srgb,var(--hub-like) 12%,transparent)}@keyframes hubPop{0%{transform:scale(1)}40%{transform:scale(1.35)}to{transform:scale(1)}}.btn-secondary.is-active,.hub-follow-btn.is-active{border-color:rgb(var(--a-500)/.6);color:rgb(var(--a-600));background:rgb(var(--a-500)/.08)}.dark .btn-secondary.is-active,.dark .hub-follow-btn.is-active{color:rgb(var(--a-300))}.hub-badge{display:inline-flex;align-items:center;gap:.3rem;padding:.22rem .55rem;font-size:.78rem;font-weight:700;color:var(--foreground);background:var(--accent);border:1px solid var(--border);border-radius:9999px}.hub-badge.is-compact{width:1.7rem;height:1.7rem;padding:0;justify-content:center}.dark .hub-badge-verified{color:#84caff}.dark .hub-badge-efficient{color:#4ade9b}.dark .hub-badge-kilometrador{color:#bda4ff}.dark .hub-badge-maintained{color:#f5c26b}.dark .hub-badge-veteran{color:#c0c8d4}.dark .hub-badge-favorite{color:#fb7185}.hub-badge-row{display:flex;flex-wrap:wrap;gap:.4rem}.hub-badge-legend{display:grid;gap:.75rem;margin:1rem 0 0;padding:0;list-style:none}.hub-badge-legend li{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .75rem;font-size:.875rem;color:var(--muted-foreground)}@media (min-width:48rem){.hub-badge-legend{grid-template-columns:repeat(2,minmax(0,1fr))}}.hub-avatar{display:inline-flex;align-items:center;justify-content:center;flex:none;overflow:hidden;font-weight:700;color:var(--on-primary);background:linear-gradient(145deg,rgb(var(--a-400)),rgb(var(--a-600)));border-radius:9999px}.hub-avatar img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.hub-avatar-stack{display:inline-flex}.hub-avatar-stack .hub-avatar{box-shadow:0 0 0 2px var(--card)}.hub-avatar-stack .hub-avatar+.hub-avatar{margin-left:-.45rem}.hub-empty{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:clamp(1.5rem,1rem + 3vw,3rem) 1rem;text-align:center}.hub-empty-icon{display:inline-flex;align-items:center;justify-content:center;width:3.25rem;height:3.25rem;margin-bottom:.25rem;color:rgb(var(--a-500));background:rgb(var(--a-500)/.12);border-radius:9999px}.hub-empty-title{margin:0;font-size:1.1rem;font-weight:700}.hub-empty-text{margin:0;max-width:34rem;font-size:.925rem;color:var(--muted-foreground);line-height:1.5}.hub-empty-action{margin-top:.5rem}.hub-load-more{display:flex;justify-content:center}.is-busy{opacity:.6}.hub-tray,.is-busy{pointer-events:none}.hub-tray{position:fixed;left:0;right:0;bottom:0;z-index:60;padding:0 var(--page-pad) max(.75rem,env(safe-area-inset-bottom));animation:hubTrayIn .35s var(--ease)}.hub-tray[hidden]{display:none}@media (min-width:768px){.hub-tray{left:16rem}}@keyframes hubTrayIn{0%{transform:translateY(100%);opacity:0}to{transform:none;opacity:1}}.hub-tray-inner{pointer-events:auto;display:flex;flex-wrap:wrap;align-items:center;gap:.6rem .75rem;max-width:64rem;margin:0 auto;padding:.7rem .8rem;background:var(--card);border:1px solid var(--border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.hub-tray-head{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;color:var(--muted-foreground)}.hub-tray-head svg{color:rgb(var(--a-500))}.hub-tray-list{display:flex;gap:.4rem;flex:1 1 12rem;min-width:0;margin:0;padding:0;list-style:none;overflow-x:auto;scrollbar-width:none}.hub-tray-item{gap:.4rem;max-width:13rem;padding:.2rem .25rem .2rem .2rem;background:var(--card-sunken);border:1px solid var(--border)}.hub-tray-item,.hub-tray-thumb{display:inline-flex;align-items:center;flex:none;border-radius:9999px}.hub-tray-thumb{justify-content:center;width:1.9rem;height:1.9rem;-o-object-fit:cover;object-fit:cover;background:var(--muted);color:var(--muted-foreground)}.hub-tray-name{font-size:.8rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hub-tray-remove{display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;flex:none;border-radius:9999px;color:var(--muted-foreground)}.hub-tray-remove:hover{color:var(--foreground);background:var(--muted)}.hub-tray-actions{display:flex;gap:.5rem;margin-left:auto}.hub-tray-actions .btn-primary.is-disabled{opacity:.5}@media (max-width:39.99rem){.hub-tray-actions{width:100%}.hub-tray-actions>*{flex:1}}body.has-hub-tray .app-content{padding-bottom:7.5rem}.hub-profile{display:flex;flex-direction:column;gap:var(--gap);min-width:0}.hub-hero{display:grid;grid-template-columns:1fr;overflow:hidden;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm)}@media (min-width:64rem){.hub-hero{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}}.hub-hero-media{position:relative;min-height:12rem;background:#0c0f13}.hub-hero-photo{display:block;width:100%;height:100%;min-height:12rem;max-height:28rem;aspect-ratio:16/10;-o-object-fit:cover;object-fit:cover}@media (min-width:64rem){.hub-hero-photo{max-height:none;aspect-ratio:auto}}.hub-hero-info{display:flex;flex-direction:column;gap:.9rem;padding:clamp(1rem,.8rem + 1vw,1.75rem);min-width:0}.hub-hero-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem}.hub-back-link{display:inline-flex;align-items:center;gap:.35rem;font-size:.85rem;font-weight:600;color:var(--muted-foreground);text-decoration:none}.hub-back-link:hover{color:var(--foreground)}.hub-owner-pill{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .6rem;font-size:.78rem;font-weight:600;color:rgb(var(--a-600));background:rgb(var(--a-500)/.1);border-radius:9999px;text-decoration:none}.dark .hub-owner-pill{color:rgb(var(--a-300))}.hub-hero-title{margin:0;font-size:clamp(1.5rem,1.2rem + 1.5vw,2.25rem);font-weight:800;line-height:1.1;letter-spacing:-.01em;overflow-wrap:anywhere}.hub-hero-title span{color:var(--muted-foreground);font-weight:600}.hub-hero-meta{margin:0;font-size:.9rem;color:var(--muted-foreground);line-height:1.5}.hub-hero-owner{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap}.hub-hero-owner .min-w-0{flex:1 1 8rem}.hub-hero-owner-name{margin:0;font-weight:700}.hub-hero-owner-meta{margin:0;font-size:.8rem;color:var(--muted-foreground)}.hub-hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.hub-hero-more{display:flex;gap:.35rem;margin-left:auto}@media (max-width:29.99rem){.hub-hero-actions>.btn-secondary,.hub-hero-actions>.hub-like-btn{flex:1 1 calc(50% - 0.5rem)}.hub-hero-more{margin-left:0}}.hub-likers{gap:.6rem;margin:0;font-size:.85rem;color:var(--muted-foreground)}.hub-likers,.hub-sale-banner{display:flex;align-items:center}.hub-sale-banner{flex-wrap:wrap;justify-content:space-between;gap:.75rem;padding:.85rem 1rem;background:rgba(23,178,106,.1);border:1px solid rgba(23,178,106,.35);border-radius:var(--radius-md)}.hub-sale-label{margin:0;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted-foreground)}.hub-sale-price{margin:0;font-size:1.4rem;font-weight:800;color:var(--hub-good)}.hub-profile-grid{display:grid;gap:var(--gap);grid-template-columns:1fr}@media (min-width:64rem){.hub-profile-grid{grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);align-items:start}}.hub-profile-side{display:flex;flex-direction:column;gap:var(--gap);min-width:0}.hub-chart-card{min-width:0}.hub-chart-box{position:relative;height:clamp(14rem,12rem + 8vw,20rem)}.hub-chart-box.is-square{height:clamp(16rem,14rem + 10vw,22rem)}.hub-chart-box.is-short{height:clamp(10rem,9rem + 5vw,13rem);margin-top:1rem}.hub-chart-note{margin:.75rem 0 0;font-size:.8rem;color:var(--muted-foreground);line-height:1.45}.hub-chart-empty{display:flex;align-items:center;gap:.5rem;margin:0;padding:2.5rem 1rem;justify-content:center;color:var(--muted-foreground);font-size:.9rem;text-align:center}.hub-specs{display:grid;gap:0;margin:0}.hub-specs>div{display:flex;justify-content:space-between;gap:1rem;padding:.55rem 0;border-bottom:1px dashed var(--border);font-size:.9rem}.hub-specs>div:last-child{border-bottom:0}.hub-specs dt{color:var(--muted-foreground)}.hub-specs dd{margin:0;font-weight:600;text-align:right;overflow-wrap:anywhere}.hub-maint-list{display:flex;flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none}.hub-maint-list li{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .6rem;font-size:.875rem}.hub-maint-list strong{margin-left:auto;font-variant-numeric:tabular-nums}.hub-maint-meta{color:var(--muted-foreground)}.hub-maint-type{padding:.15rem .5rem;font-size:.75rem;font-weight:700;border-radius:.35rem;background:var(--muted)}.hub-maint-type.is-itv{color:#1570d6;background:rgba(46,144,250,.12)}.hub-maint-type.is-insurance{color:#7a4ce0;background:rgba(122,76,224,.12)}.hub-maint-type.is-revision{color:#0e9a58;background:rgba(23,178,106,.12)}.hub-maint-type.is-repair{color:#d92d20;background:rgba(240,68,56,.12)}.dark .hub-maint-type.is-itv{color:#84caff}.dark .hub-maint-type.is-insurance{color:#bda4ff}.dark .hub-maint-type.is-revision{color:#4ade9b}.dark .hub-maint-type.is-repair{color:#ff8a80}.hub-comments{scroll-margin-top:5rem}.hub-comment-form{display:flex;flex-direction:column;gap:.6rem;margin-bottom:1.25rem}.hub-comment-form-foot{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.hub-replying{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin:0;font-size:.85rem;color:var(--muted-foreground)}.hub-replying[hidden]{display:none}.hub-comments-empty{margin:0;padding:1rem 0;font-size:.9rem;color:var(--muted-foreground);text-align:center}.hub-comment-list{gap:1rem}.hub-comment-list,.hub-thread{display:flex;flex-direction:column}.hub-thread{gap:.75rem;padding-bottom:1rem;border-bottom:1px dashed var(--border)}.hub-thread:last-child{border-bottom:0;padding-bottom:0}.hub-comment{display:flex;gap:.7rem;min-width:0;scroll-margin-top:5rem}.hub-comment.is-reply{margin-left:clamp(1rem,.5rem + 3vw,2.75rem);padding-left:.85rem;border-left:2px solid var(--border)}.hub-comment-body{flex:1;min-width:0}.hub-comment-head{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .5rem;margin:0;font-size:.875rem}.hub-comment-head time{font-size:.78rem;color:var(--muted-foreground)}.hub-owner-tag{padding:.05rem .4rem;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--on-primary);background:rgb(var(--a-500));border-radius:.3rem}.hub-comment-text{margin:.3rem 0 0;font-size:.925rem;line-height:1.55;overflow-wrap:anywhere}.hub-comment-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.15rem;margin-top:.25rem;margin-left:-.35rem}.hub-comment-actions form{display:inline;margin:0}.hub-report-reasons{gap:.6rem;border:0}.hub-collection-picker,.hub-report-reasons{display:flex;flex-direction:column;margin:0;padding:0}.hub-collection-picker{gap:.35rem;max-height:50vh;overflow-y:auto;list-style:none}.hub-collection-option{justify-content:flex-start;padding:.55rem .7rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card-sunken)}.hub-collection-option span:not(.soft-chip){flex:1;min-width:0;overflow-wrap:anywhere}.hub-collection-new{display:flex;gap:.5rem}.hub-collection-new .input-field{flex:1;min-width:0}.hub-contact-car{display:flex;align-items:center;gap:.85rem;padding:.6rem;background:var(--card-sunken);border:1px solid var(--border);border-radius:var(--radius-md)}.hub-contact-photo{width:4.5rem;height:3rem;flex:none;-o-object-fit:cover;object-fit:cover;border-radius:var(--radius-sm)}.hub-contact-car p{margin:0}.hub-following{display:grid;gap:var(--gap);grid-template-columns:1fr}@media (min-width:72rem){.hub-following{grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);align-items:start}}.hub-timeline{display:flex;flex-direction:column;margin:0;padding:0;list-style:none}.hub-timeline-item{position:relative;display:flex;gap:.75rem;padding:0 0 1rem}.hub-timeline-item:not(:last-child):before{content:"";position:absolute;left:1rem;top:2.2rem;bottom:.2rem;width:1px;background:var(--border-strong)}.hub-timeline-icon{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;flex:none;border-radius:9999px;background:var(--muted);color:var(--muted-foreground)}.hub-timeline-icon.is-maintenance{color:#b7791f;background:rgba(245,165,36,.16)}.hub-timeline-icon.is-refuel{color:#1570d6;background:rgba(46,144,250,.14)}.hub-timeline-icon.is-published{color:rgb(var(--a-500));background:rgb(var(--a-500)/.12)}.hub-timeline-body{min-width:0;padding-top:.2rem}.hub-timeline-body p{margin:0;font-size:.9rem;line-height:1.45;overflow-wrap:anywhere}.hub-timeline-body a{color:var(--foreground);text-decoration:none}.hub-timeline-body a:hover{color:rgb(var(--a-500))}.hub-timeline-body time{font-size:.78rem;color:var(--muted-foreground)}.hub-ranking-tabs svg{flex:none}.hub-ranking-filters{display:flex;flex-wrap:wrap;gap:.5rem}.hub-ranking-filters .ui-select,.hub-ranking-filters>select{flex:1 1 11rem;min-width:0}.hub-ranking-list{display:flex;flex-direction:column;gap:.4rem;margin:1rem 0 0;padding:0;list-style:none}.hub-ranking-row{display:grid;align-items:center;gap:.5rem .75rem;grid-template-columns:2rem minmax(0,1fr) auto;grid-template-areas:"pos car value" "pos badges cmp";padding:.6rem .7rem;background:var(--card-sunken);border:1px solid var(--border);border-radius:var(--radius-md)}@media (min-width:48rem){.hub-ranking-row{grid-template-columns:2.25rem minmax(0,1fr) auto auto auto;grid-template-areas:"pos car badges value cmp"}}.hub-ranking-pos{grid-area:pos;font-size:1.1rem;font-weight:800;text-align:center;color:var(--muted-foreground);font-variant-numeric:tabular-nums}.hub-ranking-row.is-pos-1 .hub-ranking-pos{color:#d4a017}.hub-ranking-row.is-pos-2 .hub-ranking-pos{color:#8c96a3}.hub-ranking-row.is-pos-3 .hub-ranking-pos{color:#b87333}.hub-ranking-row.is-podium{border-color:var(--border-strong)}.hub-ranking-car{grid-area:car;display:flex;align-items:center;gap:.7rem;min-width:0;color:var(--foreground);text-decoration:none}.hub-ranking-car:hover strong{color:rgb(var(--a-500))}.hub-ranking-car strong{font-size:.95rem}.hub-ranking-car strong,.hub-ranking-owner{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hub-ranking-owner{font-size:.78rem;color:var(--muted-foreground)}.hub-ranking-photo{width:3.5rem;height:2.4rem;flex:none;-o-object-fit:cover;object-fit:cover;border-radius:var(--radius-sm)}.hub-ranking-badges{grid-area:badges;display:flex;flex-wrap:wrap;gap:.25rem}.hub-ranking-value{grid-area:value;font-size:1rem;font-weight:800;text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.hub-ranking-row .hub-compare-btn{grid-area:cmp;justify-self:end}.hub-bars{display:flex;flex-direction:column;gap:.6rem;margin:0;padding:0;list-style:none}.hub-bars li{display:grid;grid-template-columns:minmax(5.5rem,8rem) minmax(0,1fr) 2.5rem;align-items:center;gap:.75rem;font-size:.875rem}.hub-bars-value{text-align:right;font-weight:700;font-variant-numeric:tabular-nums}.hub-meter{width:100%;height:.7rem;border:0;border-radius:9999px;background:var(--muted);-moz-appearance:none;appearance:none;-webkit-appearance:none}.hub-meter::-webkit-meter-bar{background:var(--muted);border:0;border-radius:9999px;height:.7rem}.hub-meter::-webkit-meter-optimum-value{background:rgb(var(--a-500));border-radius:9999px}.hub-meter::-moz-meter-bar{background:rgb(var(--a-500));border-radius:9999px}.hub-compare{display:flex;flex-direction:column;gap:var(--gap);min-width:0}.hub-compare-letter{display:inline-flex;align-items:center;justify-content:center;flex:none;width:1.5rem;height:1.5rem;margin-right:.35rem;font-size:.75rem;font-weight:800;color:#fff;background:var(--col,var(--muted-foreground));border-radius:.35rem}.hub-compare-heads{position:sticky;top:0;z-index:20;display:grid;gap:.5rem;grid-template-columns:repeat(2,minmax(0,1fr));padding:.5rem 0;background:var(--background)}@media (min-width:48rem){.hub-compare-heads[data-cols="3"]{grid-template-columns:repeat(3,minmax(0,1fr))}.hub-compare-heads[data-cols="4"]{grid-template-columns:repeat(4,minmax(0,1fr))}}.hub-compare-head{position:relative;display:flex;align-items:center;gap:.55rem;min-width:0;padding:.5rem 2.25rem .5rem .5rem;background:var(--card);border:1px solid var(--border);border-top:3px solid var(--col);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.hub-compare-head .hub-compare-letter{position:absolute;top:.35rem;left:.35rem;z-index:1;margin:0}.hub-compare-photo{width:3.75rem;height:2.6rem;flex:none;-o-object-fit:cover;object-fit:cover;border-radius:var(--radius-sm)}.hub-compare-name{margin:0;font-size:.9rem;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hub-compare-name a{color:var(--foreground);text-decoration:none}.hub-compare-name a:hover{color:rgb(var(--a-500))}.hub-compare-sub{margin:0;font-size:.75rem;color:var(--muted-foreground);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hub-compare-remove{position:absolute;top:50%;right:.3rem;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:9999px;color:var(--muted-foreground)}.hub-compare-remove:hover{color:var(--foreground);background:var(--muted)}.hub-compare-picker{display:flex;flex-direction:column;gap:.35rem}.hub-compare-picker-row{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:.5rem}.hub-vs{font-size:.8rem;font-weight:700;color:var(--muted-foreground)}@media (min-width:48rem){.hub-compare-picker{display:none}}@media (max-width:47.99rem){.hub-compare[data-show] [data-col]:not(.is-picked){display:none}}.hub-compare-charts{display:grid;gap:var(--gap);grid-template-columns:1fr}@media (min-width:64rem){.hub-compare-charts{grid-template-columns:repeat(2,minmax(0,1fr))}.hub-compare-wide{grid-column:1/-1}}.hub-compare-table{display:flex;flex-direction:column}.hub-compare-row{display:grid;align-items:center;gap:.5rem;grid-template-columns:minmax(6.5rem,1.1fr) repeat(2,minmax(0,1fr));padding:.6rem 0;border-bottom:1px dashed var(--border);font-size:.875rem}.hub-compare-row:last-child{border-bottom:0}@media (min-width:48rem){.hub-compare-table[data-cols="3"] .hub-compare-row{grid-template-columns:minmax(9rem,1.2fr) repeat(3,minmax(0,1fr))}.hub-compare-table[data-cols="4"] .hub-compare-row{grid-template-columns:minmax(9rem,1.2fr) repeat(4,minmax(0,1fr))}}.hub-compare-row.is-head{position:sticky;top:0;font-weight:700;color:var(--muted-foreground)}.hub-compare-row.is-head .hub-compare-cell{display:flex;align-items:center;min-width:0;font-size:.8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hub-compare-label{color:var(--muted-foreground);font-weight:600}.hub-compare-cell{display:inline-flex;flex-wrap:wrap;align-items:center;gap:.3rem;min-width:0;font-weight:600;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.hub-compare-cell.is-winner{color:var(--col)}.hub-winner-icon{color:#d4a017;flex:none}.hub-own-list{display:flex;flex-wrap:wrap;gap:.5rem}.hub-own-chip{display:inline-flex;align-items:center;gap:.35rem;min-height:2.5rem;padding:.35rem .8rem;font-size:.875rem;font-weight:600;color:var(--foreground);background:var(--card-sunken);border:1px dashed var(--border-strong);border-radius:9999px;transition:border-color .15s,background-color .15s}.hub-own-chip:hover{border-color:rgb(var(--a-500));background:rgb(var(--a-500)/.06)}.hub-own-private{display:inline-flex;color:var(--muted-foreground)}.hub-compare-start{display:flex;flex-direction:column;gap:.5rem}.hub-collections{display:grid;gap:var(--gap);grid-template-columns:1fr}@media (min-width:64rem){.hub-collections{grid-template-columns:minmax(15rem,20rem) minmax(0,1fr);align-items:start}}.hub-collections-side{display:flex;flex-direction:column;gap:1rem}.hub-collections-main{display:flex;flex-direction:column;gap:var(--gap);min-width:0}.hub-collection-links{display:flex;flex-direction:column;gap:.25rem;margin:0;padding:0;list-style:none}.hub-collection-links a{display:flex;align-items:center;gap:.55rem;min-height:2.6rem;padding:.4rem .6rem;font-size:.9rem;font-weight:600;color:var(--muted-foreground);text-decoration:none;border-radius:var(--radius-sm)}.hub-collection-links a span:nth-child(2){flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hub-collection-links a:hover{color:var(--foreground);background:var(--muted)}.hub-collection-links a.is-active{color:var(--foreground);background:rgb(var(--a-500)/.1);box-shadow:inset 3px 0 0 rgb(var(--a-500))}.hub-collection-head{display:flex;flex-direction:column;gap:.75rem}@media (min-width:48rem){.hub-collection-head{flex-direction:row;align-items:center;justify-content:space-between}}.hub-collection-rename{display:flex;gap:.5rem;flex:1;min-width:0}.hub-title-input{font-size:1.15rem;font-weight:700}.hub-collection-tools{display:flex;flex-wrap:wrap;gap:.5rem}.hub-collection-tools form{margin:0}.hub-collection-item{display:flex;flex-direction:column;gap:.25rem;min-width:0}.hub-collection-remove{display:flex;justify-content:center;margin:0}.hub-owner-widget .kpi-grid-4{margin-top:.25rem}.hub-stat{display:flex;flex-direction:column;gap:.15rem;padding:.75rem .9rem;background:var(--card-sunken);border:1px solid var(--border);border-radius:var(--radius-md)}.hub-stat-label{font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted-foreground)}.hub-stat strong{font-size:1.5rem;font-variant-numeric:tabular-nums}.hub-publish-list{display:grid;gap:var(--gap);grid-template-columns:1fr}@media (min-width:80rem){.hub-publish-list{grid-template-columns:repeat(2,minmax(0,1fr))}}.hub-publish-card{display:flex;flex-direction:column;gap:1rem;min-width:0}.hub-publish-card.is-public{border-color:rgba(23,178,106,.45)}.hub-publish-main{display:flex;align-items:center;gap:.9rem;min-width:0}.hub-publish-photo{width:6rem;height:4rem;flex:none;-o-object-fit:cover;object-fit:cover;border-radius:var(--radius-md)}.hub-publish-controls{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.9rem 1.25rem;padding-top:.9rem;border-top:1px dashed var(--border)}.hub-price-field{flex:1 1 10rem;min-width:0}.hub-price-field[hidden]{display:none}.hub-publish-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-left:auto}.hub-switch{position:relative;display:flex;align-items:flex-start;gap:.7rem;margin:0;font-weight:600;cursor:pointer}.hub-switch input{position:absolute;opacity:0;width:1px;height:1px}.hub-switch-track{position:relative;flex:none;width:2.6rem;height:1.5rem;margin-top:.05rem;background:var(--border-strong);border-radius:9999px;transition:background-color .2s}.hub-switch-track:after{content:"";position:absolute;top:.1875rem;left:.1875rem;width:1.125rem;height:1.125rem;background:#fff;border-radius:9999px;box-shadow:0 1px 3px rgba(0,0,0,.3);transition:transform .2s var(--ease)}.hub-switch input:checked+.hub-switch-track{background:rgb(var(--a-500))}.hub-switch input:checked+.hub-switch-track:after{transform:translateX(1.1rem)}.hub-switch input:focus-visible+.hub-switch-track{box-shadow:0 0 0 3px rgb(var(--a-500)/.35)}.hub-switch small{display:block;margin-top:.15rem;font-size:.8rem;font-weight:400;color:var(--muted-foreground);line-height:1.4}.hub-prefs{display:flex;flex-direction:column;gap:1.1rem}.hub-prefs-privacy ul{display:flex;flex-wrap:wrap;gap:.4rem;margin:0;padding:0;list-style:none}.hub-prefs-privacy li{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .6rem;font-size:.8rem;color:var(--muted-foreground);background:var(--card-sunken);border:1px solid var(--border);border-radius:9999px}.hub-prefs-privacy li.is-on{color:var(--hub-good);border-color:rgba(23,178,106,.35)}.hub-inbox{display:grid;gap:var(--gap);grid-template-columns:1fr;min-width:0}@media (min-width:64rem){.hub-inbox{grid-template-columns:minmax(17rem,22rem) minmax(0,1fr);align-items:stretch}}@media (max-width:63.99rem){.hub-inbox.has-thread .hub-inbox-list,.hub-inbox:not(.has-thread) .hub-thread-panel{display:none}}@media (min-width:64rem){.hub-thread-back{display:none!important}}.hub-inbox-list{display:flex;flex-direction:column;gap:.75rem;padding:.75rem;min-width:0}.hub-inbox-tabs{display:flex;gap:.25rem;overflow-x:auto;scrollbar-width:none}.hub-inbox-tabs a{flex:0 0 auto;display:inline-flex;align-items:center;gap:.35rem;min-height:2.25rem;padding:.3rem .7rem;font-size:.82rem;font-weight:600;color:var(--muted-foreground);text-decoration:none;border-radius:var(--radius-sm)}.hub-inbox-tabs a.is-active,.hub-inbox-tabs a:hover{color:var(--foreground);background:var(--muted)}.hub-inbox-tabs a.is-active{box-shadow:inset 0 -2px 0 rgb(var(--a-500))}.hub-count-pill,.nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.25rem;height:1.25rem;padding:0 .35rem;font-size:.7rem;font-weight:800;color:#fff;background:rgb(var(--a-500));border-radius:9999px}.nav-badge{margin-left:auto}.nav-badge[hidden]{display:none}.hub-inbox-empty{margin:0;padding:1.5rem .5rem;font-size:.875rem;color:var(--muted-foreground);text-align:center;line-height:1.5}.hub-conversations{display:flex;flex-direction:column;gap:.2rem;margin:0;padding:0;list-style:none;max-height:70vh;overflow-y:auto}.hub-conversation{position:relative;display:flex;align-items:flex-start;gap:.65rem;padding:.6rem;color:var(--foreground);text-decoration:none;border-radius:var(--radius-md)}.hub-conversation:hover{background:var(--muted)}.hub-conversation.is-active{background:rgb(var(--a-500)/.1);box-shadow:inset 3px 0 0 rgb(var(--a-500))}.hub-conversation-body{display:flex;flex-direction:column;gap:.1rem;flex:1;min-width:0}.hub-conversation-top{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem}.hub-conversation-top strong{font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hub-conversation-top time{flex:none;font-size:.72rem;color:var(--muted-foreground)}.hub-conversation-car{display:inline-flex;align-items:center;gap:.25rem;font-size:.75rem;color:var(--muted-foreground)}.hub-conversation-last{font-size:.82rem;color:var(--muted-foreground);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hub-conversation.is-unread .hub-conversation-last{color:var(--foreground);font-weight:600}.hub-unread-dot{position:absolute;top:50%;right:.6rem;width:.55rem;height:.55rem;border-radius:9999px;background:rgb(var(--a-500))}.hub-blocked-list{display:flex;flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none}.hub-blocked-list li{display:flex;align-items:center;gap:.65rem}.hub-blocked-list small{display:block;font-size:.75rem;color:var(--muted-foreground)}.hub-blocked-list form{margin:0}.hub-thread-panel{display:flex;flex-direction:column;gap:.75rem;min-width:0;min-height:28rem;padding:.75rem}.hub-thread-placeholder{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;color:var(--muted-foreground)}.hub-thread-head{display:flex;align-items:center;gap:.65rem;padding-bottom:.75rem;border-bottom:1px solid var(--border)}.hub-thread-name{margin:0;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hub-thread-car{margin:0;font-size:.8rem;color:var(--muted-foreground)}.hub-thread-car a{color:inherit;font-weight:600}.hub-thread-car a:hover{color:rgb(var(--a-500))}.hub-menu{position:relative}.hub-menu>summary{list-style:none;cursor:pointer}.hub-menu>summary::-webkit-details-marker{display:none}.hub-menu-panel{position:absolute;right:0;top:calc(100% + .35rem);z-index:30;display:flex;flex-direction:column;min-width:11rem;padding:.35rem;background:var(--card);border:1px solid var(--border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-md)}.hub-menu-panel form{margin:0}.hub-menu-panel button{display:flex;align-items:center;gap:.5rem;width:100%;min-height:2.5rem;padding:.4rem .6rem;font-size:.875rem;font-weight:600;text-align:left;border-radius:var(--radius-sm)}.hub-menu-panel button:hover{background:var(--muted)}.hub-request-banner{display:flex;flex-direction:column;gap:.75rem;padding:.85rem 1rem;background:rgb(var(--a-500)/.07);border:1px solid rgb(var(--a-500)/.3);border-radius:var(--radius-md)}.hub-request-banner p{margin:0;font-size:.875rem;line-height:1.45}.hub-request-actions{display:flex;flex-wrap:wrap;gap:.5rem}.hub-request-actions form{margin:0}.hub-messages{display:flex;flex-direction:column;gap:.5rem;flex:1;min-height:12rem;max-height:60vh;margin:0;padding:.25rem;overflow-y:auto;list-style:none;overscroll-behavior:contain}.hub-message{align-self:flex-start;max-width:min(85%,36rem);padding:.55rem .8rem;background:var(--card-sunken);border:1px solid var(--border);border-radius:1rem 1rem 1rem .3rem}.hub-message.is-mine{align-self:flex-end;color:var(--on-primary);background:rgb(var(--a-500));border-color:rgb(var(--a-600));border-radius:1rem 1rem .3rem 1rem}.hub-message-text{margin:0;font-size:.925rem;line-height:1.45;overflow-wrap:anywhere;white-space:pre-line}.hub-message time{display:block;margin-top:.2rem;font-size:.68rem;opacity:.7;text-align:right}.hub-composer{display:flex;align-items:flex-end;gap:.5rem;padding-top:.75rem;border-top:1px solid var(--border)}.hub-composer textarea{flex:1;min-width:0;min-height:var(--touch);max-height:10rem;resize:none}.hub-composer .btn-primary{flex:none;padding-inline:.9rem}.hub-segmented{display:inline-flex;gap:.25rem;padding:.25rem;background:var(--card-sunken);border:1px solid var(--border);border-radius:var(--radius-md);flex-wrap:wrap}.hub-segmented a{display:inline-flex;align-items:center;min-height:2.25rem;padding:.3rem .8rem;font-size:.85rem;font-weight:600;color:var(--muted-foreground);text-decoration:none;border-radius:var(--radius-sm)}.hub-segmented a.is-active{color:var(--foreground);background:var(--card);box-shadow:var(--shadow-sm)}.hub-reports{margin:0;padding:0;list-style:none}.hub-report,.hub-reports{display:flex;flex-direction:column;gap:.75rem}.hub-report{padding:.9rem 1rem;background:var(--card-sunken);border:1px solid var(--border);border-radius:var(--radius-md)}@media (min-width:64rem){.hub-report{flex-direction:row;align-items:flex-start;justify-content:space-between}}.hub-report-main{display:flex;flex-direction:column;gap:.35rem;min-width:0;flex:1}.hub-report-head{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .6rem;margin:0;font-size:.9rem}.hub-report-head time{font-size:.78rem;color:var(--muted-foreground)}.hub-report-meta,.hub-report-target{margin:0;font-size:.85rem;overflow-wrap:anywhere}.hub-report-meta{color:var(--muted-foreground);font-size:.78rem}.hub-report-excerpt{margin:.25rem 0;padding:.5rem .75rem;font-size:.875rem;line-height:1.5;border-left:3px solid var(--border-strong);background:var(--card);border-radius:0 var(--radius-sm) var(--radius-sm) 0;overflow-wrap:anywhere}.hub-report-details{display:flex;gap:.35rem;align-items:flex-start;margin:0;font-size:.85rem;color:var(--muted-foreground);overflow-wrap:anywhere}.hub-report-actions{display:flex;flex-wrap:wrap;gap:.5rem;flex:none}.hub-report-actions form{margin:0}@media (prefers-reduced-motion:reduce){.hub-like-btn.is-popping svg,.hub-tray{animation:none}.hub-card-photo,.hub-switch-track:after,.hub-top-card{transition:none}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.invisible{visibility:hidden}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.bottom-2{bottom:.5rem}.left-3{left:.75rem}.left-3\.5{left:.875rem}.right-0{right:0}.right-2{right:.5rem}.right-3{right:.75rem}.top-0{top:0}.top-1\/2{top:50%}.top-3{top:.75rem}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-\[100\]{z-index:100}.z-\[80\]{z-index:80}.z-\[81\]{z-index:81}.col-span-1{grid-column:span 1/span 1}.col-span-full{grid-column:1/-1}.m-0{margin:0}.-my-1{margin-top:-.25rem;margin-bottom:-.25rem}.mx-auto{margin-left:auto;margin-right:auto}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-7{margin-bottom:1.75rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-4{margin-left:1rem}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-12{margin-top:3rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.line-clamp-1{-webkit-line-clamp:1}.line-clamp-1,.line-clamp-3{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical}.line-clamp-3{-webkit-line-clamp:3}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.\!grid{display:grid!important}.grid{display:grid}.contents{display:contents}.list-item{display:list-item}.hidden{display:none}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.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-64{height:16rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-fit{height:-moz-fit-content;height:fit-content}.h-full{height:100%}.max-h-\[92vh\]{max-height:92vh}.min-h-\[100px\]{min-height:100px}.min-h-\[2\.75rem\]{min-height:2.75rem}.min-h-\[260px\]{min-height:260px}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.w-10{width:2.5rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-24{width:6rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-32{width:8rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.min-w-0{min-width:0}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-5xl{max-width:64rem}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-xl{max-width:36rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.-translate-y-1\/2{--tw-translate-y:-50%}.-translate-y-1\/2,.translate-y-0{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))}.translate-y-0{--tw-translate-y:0px}.translate-y-6{--tw-translate-y:1.5rem}.-rotate-90,.translate-y-6{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))}.-rotate-90{--tw-rotate:-90deg}.rotate-90{--tw-rotate:90deg}.rotate-90,.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 spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize-none{resize:none}.resize{resize:both}.appearance-none{-webkit-appearance:none;-moz-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))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem*(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*(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*(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*(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*(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*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem*var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(2rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem*var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.truncate{overflow:hidden;text-overflow:ellipsis}.truncate,.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.rounded-t-\[1\.75rem\]{border-top-left-radius:1.75rem;border-top-right-radius:1.75rem}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-t{border-top-width:1px}.border-t-4{border-top-width:4px}.border-dashed{border-style:dashed}.border-none{border-style:none}.border-\[var\(--border\)\]{border-color:var(--border)}.border-\[var\(--primary\)\]{border-color:var(--primary)}.border-blue-500\/20{border-color:rgba(59,130,246,.2)}.border-blue-500\/30{border-color:rgba(59,130,246,.3)}.border-green-500\/20{border-color:rgba(34,197,94,.2)}.border-indigo-500\/10{border-color:rgb(var(--a-500)/.1)}.border-indigo-500\/50{border-color:rgb(var(--a-500)/.5)}.border-orange-500\/20{border-color:rgba(249,115,22,.2)}.border-purple-500\/20{border-color:rgb(var(--a-500)/.2)}.border-red-500\/20{border-color:rgba(239,68,68,.2)}.border-red-500\/30{border-color:rgba(239,68,68,.3)}.border-red-500\/50{border-color:rgba(239,68,68,.5)}.border-transparent{border-color:transparent}.border-white\/10{border-color:hsla(0,0%,100%,.1)}.border-white\/20{border-color:hsla(0,0%,100%,.2)}.border-yellow-200{--tw-border-opacity:1;border-color:rgb(254 240 138/var(--tw-border-opacity,1))}.border-yellow-500\/20{border-color:rgba(234,179,8,.2)}.border-t-\[var\(--primary\)\]{border-top-color:var(--primary)}.bg-\[var\(--accent\)\]{background-color:var(--accent)}.bg-\[var\(--background\)\]{background-color:var(--background)}.bg-\[var\(--card\)\]{background-color:var(--card)}.bg-\[var\(--color-modal-light\)\]{background-color:var(--color-modal-light)}.bg-\[var\(--muted\)\]{background-color:var(--muted)}.bg-\[var\(--primary\)\]{background-color:var(--primary)}.bg-\[var\(--primary-glow\)\]{background-color:var(--primary-glow)}.bg-amber-500\/15{background-color:rgba(245,158,11,.15)}.bg-black\/30{background-color:rgba(0,0,0,.3)}.bg-black\/40{background-color:rgba(0,0,0,.4)}.bg-black\/60{background-color:rgba(0,0,0,.6)}.bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.bg-blue-500\/10{background-color:rgba(59,130,246,.1)}.bg-blue-500\/15{background-color:rgba(59,130,246,.15)}.bg-blue-500\/20{background-color:rgba(59,130,246,.2)}.bg-emerald-500\/10{background-color:rgba(16,185,129,.1)}.bg-emerald-500\/15{background-color:rgba(16,185,129,.15)}.bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.bg-green-500\/15{background-color:rgba(34,197,94,.15)}.bg-green-500\/20{background-color:rgba(34,197,94,.2)}.bg-indigo-500\/10{background-color:rgb(var(--a-500)/.1)}.bg-indigo-500\/15{background-color:rgb(var(--a-500)/.15)}.bg-orange-500{--tw-bg-opacity:1;background-color:rgb(249 115 22/var(--tw-bg-opacity,1))}.bg-orange-500\/20{background-color:rgba(249,115,22,.2)}.bg-pink-500\/15{background-color:rgba(236,72,153,.15)}.bg-purple-500\/15{background-color:rgb(var(--a-500)/.15)}.bg-purple-500\/20{background-color:rgb(var(--a-500)/.2)}.bg-red-500\/10{background-color:rgba(239,68,68,.1)}.bg-red-500\/20{background-color:rgba(239,68,68,.2)}.bg-red-500\/5{background-color:rgba(239,68,68,.05)}.bg-red-500\/80{background-color:rgba(239,68,68,.8)}.bg-sky-500\/15{background-color:rgba(14,165,233,.15)}.bg-transparent{background-color:transparent}.bg-violet-500\/15{background-color:rgb(var(--a-500)/.15)}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-white\/20{background-color:hsla(0,0%,100%,.2)}.bg-yellow-50{--tw-bg-opacity:1;background-color:rgb(254 252 232/var(--tw-bg-opacity,1))}.bg-yellow-500\/10{background-color:rgba(234,179,8,.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))}.bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.from-black\/90{--tw-gradient-from:rgba(0,0,0,.9) var(--tw-gradient-from-position);--tw-gradient-to:transparent var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-blue-500{--tw-gradient-from:#3b82f6 var(--tw-gradient-from-position);--tw-gradient-to:rgba(59,130,246,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-blue-500\/10{--tw-gradient-from:rgba(59,130,246,.1) var(--tw-gradient-from-position);--tw-gradient-to:rgba(59,130,246,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-green-500\/10{--tw-gradient-from:rgba(34,197,94,.1) var(--tw-gradient-from-position);--tw-gradient-to:rgba(34,197,94,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-indigo-500{--tw-gradient-from:rgb(var(--a-500)/1) var(--tw-gradient-from-position);--tw-gradient-to:rgb(var(--a-500)/0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-indigo-500\/10{--tw-gradient-from:rgb(var(--a-500)/0.1) var(--tw-gradient-from-position);--tw-gradient-to:rgb(var(--a-500)/0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-orange-500\/10{--tw-gradient-from:rgba(249,115,22,.1) var(--tw-gradient-from-position);--tw-gradient-to:rgba(249,115,22,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-purple-500\/10{--tw-gradient-from:rgb(var(--a-500)/0.1) var(--tw-gradient-from-position);--tw-gradient-to:rgb(var(--a-500)/0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.via-black\/40{--tw-gradient-to:transparent var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),rgba(0,0,0,.4) var(--tw-gradient-via-position),var(--tw-gradient-to)}.to-green-500{--tw-gradient-to:#22c55e var(--tw-gradient-to-position)}.to-green-500\/10{--tw-gradient-to:rgba(34,197,94,.1) var(--tw-gradient-to-position)}.to-purple-500\/10{--tw-gradient-to:rgb(var(--a-500)/0.1) var(--tw-gradient-to-position)}.to-purple-600{--tw-gradient-to:rgb(var(--a-600)/1) var(--tw-gradient-to-position)}.to-transparent{--tw-gradient-to:transparent var(--tw-gradient-to-position)}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-12{padding:3rem}.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-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-3\.5{padding-left:.875rem;padding-right:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.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-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-4{padding-bottom:1rem}.pb-8{padding-bottom:2rem}.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.pl-6{padding-left:1.5rem}.pl-9{padding-left:2.25rem}.pr-8{padding-right:2rem}.pt-1{padding-top:.25rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.pt-\[10vh\]{padding-top:10vh}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.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-\[10px\]{font-size:10px}.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}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.tracking-\[0\.14em\]{letter-spacing:.14em}.tracking-tight{letter-spacing:-.025em}.tracking-wider{letter-spacing:.05em}.text-\[rgb\(var\(--a-500\)\)\]{color:rgb(var(--a-500))}.text-\[var\(--foreground\)\]{color:var(--foreground)}.text-\[var\(--muted-foreground\)\]{color:var(--muted-foreground)}.text-\[var\(--primary\)\]{color:var(--primary)}.text-amber-600{--tw-text-opacity:1;color:rgb(217 119 6/var(--tw-text-opacity,1))}.text-blue-300{--tw-text-opacity:1;color:rgb(147 197 253/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-cyan-500{--tw-text-opacity:1;color:rgb(6 182 212/var(--tw-text-opacity,1))}.text-emerald-500{--tw-text-opacity:1;color:rgb(16 185 129/var(--tw-text-opacity,1))}.text-emerald-600{--tw-text-opacity:1;color:rgb(5 150 105/var(--tw-text-opacity,1))}.text-foreground{color:var(--foreground)}.text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.text-indigo-500{--tw-text-opacity:1;color:rgb(var(--a-500)/var(--tw-text-opacity,1))}.text-indigo-600{--tw-text-opacity:1;color:rgb(var(--a-600)/var(--tw-text-opacity,1))}.text-muted-foreground{color:var(--muted-foreground)}.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-pink-600{--tw-text-opacity:1;color:rgb(219 39 119/var(--tw-text-opacity,1))}.text-purple-500{--tw-text-opacity:1;color:rgb(var(--a-500)/var(--tw-text-opacity,1))}.text-purple-600{--tw-text-opacity:1;color:rgb(var(--a-600)/var(--tw-text-opacity,1))}.text-red-300{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.text-sky-600{--tw-text-opacity:1;color:rgb(2 132 199/var(--tw-text-opacity,1))}.text-transparent{color:transparent}.text-violet-600{--tw-text-opacity:1;color:rgb(var(--a-600)/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.text-white\/50{color:hsla(0,0%,100%,.5)}.text-white\/70{color:hsla(0,0%,100%,.7)}.text-white\/80{color:hsla(0,0%,100%,.8)}.text-yellow-500{--tw-text-opacity:1;color:rgb(234 179 8/var(--tw-text-opacity,1))}.text-yellow-600{--tw-text-opacity:1;color:rgb(202 138 4/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}.placeholder-\[var\(--muted-foreground\)\]::-moz-placeholder{color:var(--muted-foreground)}.placeholder-\[var\(--muted-foreground\)\]::placeholder{color:var(--muted-foreground)}.opacity-0{opacity:0}.opacity-10{opacity:.1}.opacity-100{opacity:1}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.shadow-2xl,.shadow-inner{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-inner{--tw-shadow:inset 0 2px 4px 0 rgba(0,0,0,.05);--tw-shadow-colored:inset 0 2px 4px 0 var(--tw-shadow-color)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-lg,.shadow-sm{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 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.drop-shadow-md{--tw-drop-shadow:drop-shadow(0 4px 3px rgba(0,0,0,.07)) drop-shadow(0 2px 2px rgba(0,0,0,.06))}.drop-shadow-md,.drop-shadow-sm{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)}.drop-shadow-sm{--tw-drop-shadow:drop-shadow(0 1px 1px rgba(0,0,0,.05))}.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)}.backdrop-blur-md{--tw-backdrop-blur:blur(12px)}.backdrop-blur-md,.backdrop-blur-sm{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur:blur(4px)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-shadow{transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-1000{transition-duration:1s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.duration-700{transition-duration:.7s}@media (min-width:768px){.route-card-stats .md\:text-2xl{font-family:var(--font-display);font-weight:600}}.hover\:border-\[var\(--border\)\]:hover{border-color:var(--border)}.hover\:border-\[var\(--primary\)\]:hover{border-color:var(--primary)}.hover\:border-red-500\/50:hover{border-color:rgba(239,68,68,.5)}.hover\:bg-\[var\(--accent\)\]:hover{background-color:var(--accent)}.hover\:bg-blue-50:hover{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.hover\:bg-indigo-500\/10:hover{background-color:rgb(var(--a-500)/.1)}.hover\:bg-red-50:hover{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.hover\:bg-red-500:hover{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.hover\:bg-red-500\/10:hover{background-color:rgba(239,68,68,.1)}.hover\:bg-white\/40:hover{background-color:hsla(0,0%,100%,.4)}.hover\:text-\[var\(--foreground\)\]:hover{color:var(--foreground)}.hover\:text-indigo-600:hover{--tw-text-opacity:1;color:rgb(var(--a-600)/var(--tw-text-opacity,1))}.hover\:text-red-500:hover{--tw-text-opacity:1;color:rgb(239 68 68/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-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.hover\:shadow-xl:hover{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--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)}.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(var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-0:focus,.focus\:ring-2:focus{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)}.focus\:ring-emerald-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(16 185 129/var(--tw-ring-opacity,1))}.focus\:ring-indigo-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(var(--a-500)/var(--tw-ring-opacity,1))}.group:hover .group-hover\:scale-105{--tw-scale-x:1.05;--tw-scale-y:1.05}.group:hover .group-hover\:scale-105,.group:hover .group-hover\:scale-110{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))}.group:hover .group-hover\:scale-110{--tw-scale-x:1.1;--tw-scale-y:1.1}@keyframes bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;animation-timing-function:cubic-bezier(0,0,.2,1)}}.group:hover .group-hover\:animate-bounce{animation:bounce 1s infinite}.group:hover .group-hover\:bg-\[var\(--background\)\]{background-color:var(--background)}.group:hover .group-hover\:bg-\[var\(--primary\)\]{background-color:var(--primary)}.group:hover .group-hover\:text-\[rgb\(var\(--a-400\)\)\]{color:rgb(var(--a-400))}.group:hover .group-hover\:text-\[var\(--primary\)\]{color:var(--primary)}.group:hover .group-hover\:text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.group:hover .group-hover\:opacity-100{opacity:1}.dark\:border-yellow-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(133 77 14/var(--tw-border-opacity,1))}.dark\:bg-\[var\(--color-modal-dark\)\]:is(.dark *){background-color:var(--color-modal-dark)}.dark\:bg-slate-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.dark\:bg-yellow-900\/20:is(.dark *){background-color:rgba(113,63,18,.2)}.dark\:from-indigo-500\/20:is(.dark *){--tw-gradient-from:rgb(var(--a-500)/0.2) var(--tw-gradient-from-position);--tw-gradient-to:rgb(var(--a-500)/0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:to-purple-500\/20:is(.dark *){--tw-gradient-to:rgb(var(--a-500)/0.2) 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-400:is(.dark *){--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.dark\:text-emerald-400:is(.dark *){--tw-text-opacity:1;color:rgb(52 211 153/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-indigo-400:is(.dark *){--tw-text-opacity:1;color:rgb(var(--a-400)/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-pink-400:is(.dark *){--tw-text-opacity:1;color:rgb(244 114 182/var(--tw-text-opacity,1))}.dark\:text-purple-400:is(.dark *){--tw-text-opacity:1;color:rgb(var(--a-400)/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-violet-400:is(.dark *){--tw-text-opacity:1;color:rgb(var(--a-400)/var(--tw-text-opacity,1))}.dark\:text-yellow-200:is(.dark *){--tw-text-opacity:1;color:rgb(254 240 138/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\:hover\:bg-blue-900\/20:hover:is(.dark *){background-color:rgba(30,58,138,.2)}.dark\:hover\:bg-red-500\/10:hover:is(.dark *){background-color:rgba(239,68,68,.1)}@media (min-width:640px){.sm\:not-sr-only{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal}.sm\:inline{display:inline}.sm\:max-h-\[88vh\]{max-height:88vh}.sm\:translate-y-0{--tw-translate-y:0px}.sm\:scale-100,.sm\:translate-y-0{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))}.sm\:scale-100{--tw-scale-x:1;--tw-scale-y:1}.sm\:scale-95{--tw-scale-x:.95;--tw-scale-y:.95;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))}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:rounded-\[1\.75rem\]{border-radius:1.75rem}.sm\:p-4{padding:1rem}.sm\:p-9{padding:2.25rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-5{padding-top:1.25rem;padding-bottom:1.25rem}.sm\:text-base{font-size:1rem;line-height:1.5rem}.sm\:text-xs{font-size:.75rem;line-height:1rem}}@media (min-width:768px){.md\:col-span-2{grid-column:span 2/span 2}.md\:inline-block{display:inline-block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:h-80{height:20rem}.md\:w-56{width:14rem}.md\:w-72{width:18rem}.md\:w-auto{width:auto}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:items-center{align-items:center}.md\:justify-end{justify-content:flex-end}.md\:justify-between{justify-content:space-between}.md\:border-t-0{border-top-width:0}.md\:p-8{padding:2rem}.md\:pt-0{padding-top:0}.md\:text-2xl{font-size:1.5rem;line-height:2rem}.md\:text-4xl{font-size:2.25rem;line-height:2.5rem}.md\:text-base{font-size:1rem;line-height:1.5rem}}@media (min-width:1024px){.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1280px){.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}
.ui-select>.ui-select-native{position:absolute!important;opacity:0!important;pointer-events:none!important;width:1px!important;height:1px!important}
/* polish.css */
/* ==========================================================================
   POLISH — capa de acabado sobre el sistema "Motor" (se carga después de app.css).
   Una sola elevación por superficie (anillo + sombra), radios concentricos, números tabulares,
   pulsación 0.96, transiciones con propiedades explícitas y movimiento solo en transform/opacity.
   ========================================================================== */

:root {
  --ring: 0 0 0 1px var(--border);
  --lift-1: 0 1px 2px rgb(15 23 42 / 0.05), 0 10px 24px -14px rgb(15 23 42 / 0.16);
  --lift-2: 0 2px 4px rgb(15 23 42 / 0.06), 0 18px 36px -16px rgb(15 23 42 / 0.26);
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --press: 0.96;
}
.dark {
  --lift-1: 0 1px 2px rgb(0 0 0 / 0.5), 0 14px 30px -18px rgb(0 0 0 / 0.8);
  --lift-2: 0 2px 4px rgb(0 0 0 / 0.5), 0 22px 44px -18px rgb(0 0 0 / 0.9);
}

/* ---------- Tipografía y superficies del navegador ---------- */
html { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
h1, h2, h3, .ledger-figure { text-wrap: balance; }
p, li, .calc-panel p { text-wrap: pretty; }
.compact-kpi-value, .calc-result-value, .calc-stat strong, .ledger-figure, .ledger-row dd, .ledger-bar-value,
.activity-amount, .record-figure, table td, [data-tabular] { font-variant-numeric: tabular-nums; }

::selection { background: rgb(var(--a-500) / 0.28); color: inherit; }
:focus-visible { outline: 2px solid rgb(var(--a-500)); outline-offset: 2px; border-radius: 0.4rem; }
.input-field:focus-visible, .calc-input input:focus-visible { outline: none; }
* { scrollbar-width: thin; scrollbar-color: var(--border-strong) transparent; }

main img:not(.vehicle-hero-img):not(.no-outline) { outline: 1px solid oklch(0 0 0 / 0.1); outline-offset: -1px; }
.dark main img:not(.vehicle-hero-img):not(.no-outline) { outline-color: oklch(1 0 0 / 0.1); }

/* ---------- Tarjetas: una elevación, sin adornos ---------- */
.card {
  border: 0;
  border-radius: 1rem;
  box-shadow: var(--ring), var(--lift-1);
  transition-property: box-shadow, transform;
  transition-duration: 0.28s;
  transition-timing-function: var(--ease-out);
}
.card::before, .compact-kpi-card::after, .record-card::after { display: none; }
.card:hover { border-color: transparent; }
a.card:hover, .record-card:hover, .vehicle-shell-card:hover { box-shadow: 0 0 0 1px var(--border-strong), var(--lift-2); }
.record-card, .card.record-card { padding-left: clamp(1rem, 0.9rem + 0.8vw, 1.5rem); border-color: transparent; }
.page-header.card, .page-header { border: 0 !important; box-shadow: var(--ring), var(--lift-1) !important; }

/* Sin rayas de competición decorativas en los títulos */
.page-header h1::before { display: none; }
.page-header h1 { padding-left: 0; font-weight: 700; letter-spacing: -0.025em; }

/* ---------- Botones: planos, táctiles ---------- */
.btn-primary, .btn-secondary, .btn-ghost, .btn-danger, .icon-action-btn, .sidebar-mini-link {
  transition-property: transform, box-shadow, background-color, border-color, color;
  transition-duration: 0.18s;
  transition-timing-function: var(--ease-out);
}
.btn-primary {
  background: rgb(var(--a-500));
  border-color: transparent;
  box-shadow: 0 1px 2px rgb(var(--a-700) / 0.45), 0 8px 18px -8px rgb(var(--a-500) / 0.6), inset 0 1px 0 rgb(255 255 255 / 0.2);
}
.btn-primary:hover:not(:disabled) {
  filter: none;
  transform: none;
  background: rgb(var(--a-400));
  box-shadow: 0 1px 2px rgb(var(--a-700) / 0.45), 0 12px 24px -8px rgb(var(--a-500) / 0.7), inset 0 1px 0 rgb(255 255 255 / 0.26);
}
.btn-secondary { background: var(--card); border-color: transparent; box-shadow: var(--ring), 0 1px 2px rgb(15 23 42 / 0.05); }
.btn-secondary:hover:not(:disabled) { transform: none; border-color: transparent; background: var(--accent); box-shadow: 0 0 0 1px var(--border-strong), 0 1px 2px rgb(15 23 42 / 0.08); }
.btn-ghost:hover:not(:disabled), .btn-danger:hover:not(:disabled) { transform: none; }
.btn-primary:active:not(:disabled), .btn-secondary:active:not(:disabled), .btn-ghost:active:not(:disabled),
.btn-danger:active:not(:disabled), .sidebar-mini-link:active { transform: scale(var(--press)); }
.icon-action-btn:hover { transform: none; }
.icon-action-btn:active { transform: scale(var(--press)); }

/* Zonas de pulsación: botones de icono pequeños heredan 40x40 sin cambiar su aspecto */
.record-card-side button, .touch-actions button { position: relative; transition-property: transform, background-color, color; transition-duration: 0.16s; }
.record-card-side button:active, .touch-actions button:active { transform: scale(var(--press)); }

/* Botón en envío: giro discreto + bloqueo (evita dobles envíos) */
.is-loading { pointer-events: none; position: relative; color: transparent !important; }
.is-loading > * { visibility: hidden; }
.is-loading::after {
  content: ''; position: absolute; inset: 0; margin: auto; width: 1.1rem; height: 1.1rem;
  border: 2px solid rgb(255 255 255 / 0.4); border-top-color: #fff; border-radius: 50%;
  animation: polishSpin 0.7s linear infinite;
}
.btn-secondary.is-loading::after { border-color: var(--border-strong); border-top-color: rgb(var(--a-500)); }
@keyframes polishSpin { to { transform: rotate(360deg); } }

/* ---------- Formularios ---------- */
.input-field { border-color: transparent; box-shadow: 0 0 0 1px var(--border-strong); transition-property: box-shadow, background-color; transition-duration: 0.18s; }
.input-field:hover { border-color: transparent; box-shadow: 0 0 0 1px rgb(var(--a-500) / 0.5); }
.input-field:focus { border-color: transparent; box-shadow: 0 0 0 1.5px rgb(var(--a-500)), 0 0 0 5px rgb(var(--a-500) / 0.16); }

/* ---------- Pestañas con indicador deslizante (assets/js/motion.js) ---------- */
.calc-tabs, .rutas-tabs { position: relative; }
.tab-indicator { position: absolute; left: 0; top: 0; pointer-events: none; will-change: transform, width; }
.calc-tabs.has-indicator { border-color: transparent; box-shadow: var(--ring); }
.calc-tabs.has-indicator a { position: relative; z-index: 1; }
.calc-tabs.has-indicator a.is-active { background: transparent; box-shadow: none; }
.calc-tabs.has-indicator .tab-indicator { background: var(--card); border-radius: 9999px; box-shadow: 0 0 0 1px var(--border), 0 1px 3px rgb(15 23 42 / 0.12); }
.rutas-tabs.has-indicator a { border-bottom-color: transparent !important; }
.rutas-tabs.has-indicator .tab-indicator { height: 2px; bottom: 0; top: auto; border-radius: 2px; background: rgb(var(--a-500)); }

/* ---------- Libro de gastos (panel del dashboard) ---------- */
.ledger {
  display: grid; gap: 0; grid-template-columns: minmax(0, 1fr);
  background: var(--card); border-radius: 1.25rem; overflow: hidden;
  box-shadow: var(--ring), var(--lift-1);
}
@media (min-width: 60rem) { .ledger { grid-template-columns: minmax(0, 1.65fr) minmax(0, 1fr); } }
.ledger-main { padding: clamp(1.1rem, 0.8rem + 1.4vw, 1.9rem); display: flex; flex-direction: column; gap: 1.25rem; min-width: 0; }
.ledger-label { margin: 0; font-size: 0.9rem; font-weight: 600; color: var(--muted-foreground); }
.ledger-figure { margin: 0.2rem 0 0; font-size: clamp(2.4rem, 1.7rem + 3.6vw, 4rem); font-weight: 700; letter-spacing: -0.035em; line-height: 1; color: var(--foreground); }
.ledger-figure small { font-size: 0.45em; font-weight: 600; letter-spacing: -0.01em; color: var(--muted-foreground); margin-left: 0.2em; }
.ledger-delta { margin: 0.55rem 0 0; display: inline-flex; align-items: center; gap: 0.35rem; font-size: 0.875rem; font-weight: 600; color: var(--muted-foreground); }
.ledger-delta.is-up { color: var(--gauge-bad); }
.ledger-delta.is-down { color: var(--gauge-ok); }

.ledger-bars { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: clamp(0.4rem, 0.2rem + 1vw, 0.9rem); align-items: end; height: 9rem; margin-top: auto; }
.ledger-bar { display: grid; grid-template-rows: minmax(0, 1fr) auto; gap: 0.4rem; height: 100%; min-width: 0; }
.ledger-bar-track { display: flex; align-items: flex-end; min-height: 0; }
.ledger-bar-fill { display: block; width: 100%; min-height: 0.25rem; border-radius: 0.5rem 0.5rem 0.25rem 0.25rem; background: var(--muted); transform-origin: bottom; }
.ledger-bar.is-current .ledger-bar-fill { background: rgb(var(--a-500)); box-shadow: 0 8px 18px -8px rgb(var(--a-500) / 0.7); }
.ledger-bar-label { font-size: 0.72rem; font-weight: 600; text-align: center; color: var(--muted-foreground); text-transform: capitalize; white-space: nowrap; }
.ledger-bar.is-current .ledger-bar-label { color: var(--foreground); }
.ledger-bar-value { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }

.ledger-side { margin: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); background: var(--card-sunken); }
@media (min-width: 60rem) { .ledger-side { grid-template-columns: minmax(0, 1fr); align-content: stretch; } }
.ledger-row { padding: clamp(0.9rem, 0.7rem + 0.8vw, 1.4rem) clamp(0.9rem, 0.7rem + 1vw, 1.6rem); display: flex; flex-direction: column; justify-content: center; gap: 0.25rem; min-width: 0; }
.ledger-row + .ledger-row { border-left: 1px solid var(--border); }
@media (min-width: 60rem) { .ledger-row + .ledger-row { border-left: 0; border-top: 1px solid var(--border); } }
.ledger-row dt { font-size: 0.82rem; font-weight: 600; color: var(--muted-foreground); }
.ledger-row dd { margin: 0; font-size: clamp(1.1rem, 0.9rem + 1vw, 1.65rem); font-weight: 650; letter-spacing: -0.02em; line-height: 1.1; color: var(--foreground); overflow-wrap: anywhere; }
.ledger-row dd small { font-size: 0.55em; font-weight: 600; color: var(--muted-foreground); letter-spacing: 0; margin-left: 0.15em; }

/* ---------- Actividad reciente ---------- */
.activity-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0.75rem 0.5rem; margin-inline: -0.5rem; border-radius: 0.75rem; transition-property: background-color; transition-duration: 0.15s; }
.activity-row + .activity-row { box-shadow: 0 -1px 0 var(--border); }
.activity-row:hover { background: var(--muted); box-shadow: none; }
.activity-row:hover + .activity-row { box-shadow: none; }
.activity-mark { width: 2.25rem; height: 2.25rem; border-radius: 0.6rem; display: grid; place-items: center; flex: none; }
.activity-mark.is-refueling { color: rgb(var(--a-500)); background: rgb(var(--a-500) / 0.12); }
.activity-mark.is-maintenance { color: var(--gauge-ok); background: rgb(23 178 106 / 0.12); }
.activity-mark.is-expense { color: var(--gauge-warn); background: rgb(245 165 36 / 0.14); }
.activity-amount { font-weight: 650; letter-spacing: -0.01em; }

/* ---------- Registro de repostajes ---------- */
.record-figure { font-size: 1.25rem; font-weight: 700; letter-spacing: -0.02em; }
.record-card .record-mark { width: 2.75rem; height: 2.75rem; border-radius: 0.8rem; display: grid; place-items: center; flex: none; color: rgb(var(--a-500)); background: rgb(var(--a-500) / 0.1); }
.record-card .record-actions button { border-radius: 0.6rem; }

/* ---------- Calculadora: respuesta al calcular ---------- */
.calc-result-value { font-variant-numeric: tabular-nums; }

@media (prefers-reduced-motion: reduce) {
  .is-loading::after { animation-duration: 2s; }
}

.calc-grid .calc-panel { border: 0; box-shadow: var(--ring), var(--lift-1); }

/* Iconos de indicadores: neutros (el color queda para el estado y el acento) */
.compact-kpi-icon { background: var(--muted) !important; color: var(--muted-foreground) !important; box-shadow: none; border-radius: 0.65rem; }
@media (max-width: 29.99rem) {
  .ledger-row dd { font-size: 1rem; white-space: nowrap; }
  .ledger-row dt { font-size: 0.75rem; }
}

/* ==========================================================================
   IDENTIDAD GLOBAL — papel cálido + tinta, Bricolage Grotesque para títulos y cifras.
   Sobrescribe los tokens de tokens.css, así que cambia TODA la web (incluida la zona admin y el Hub).
   ========================================================================== */
:root {
  --font-display: 'Bricolage Grotesque', 'Inter', 'Segoe UI', system-ui, sans-serif;
  --background: #eeece7;
  --card: #fffefb;
  --card-sunken: #f5f3ee;
  --foreground: #17130f;
  --muted: rgba(23, 19, 15, 0.06);
  --muted-foreground: #5f5850;
  --accent: #f2f0eb;
  --border: rgba(23, 19, 15, 0.1);
  --border-strong: rgba(23, 19, 15, 0.2);
  --color-background-light: #eeece7;
}
.dark {
  --background: #0d0c0b;
  --card: #161412;
  --card-sunken: #100e0d;
  --foreground: #f5f2ed;
  --muted: rgba(255, 244, 230, 0.06);
  --muted-foreground: #a8a096;
  --accent: #1e1b18;
  --border: rgba(255, 244, 230, 0.09);
  --border-strong: rgba(255, 244, 230, 0.18);
}
body, .dark body { background-image: none; background-color: var(--background); font-feature-settings: 'cv11'; }

h1, h2, h3, h4, .page-header h1 { font-family: var(--font-display); font-weight: 700; letter-spacing: -0.028em; line-height: 1.08; }
h1, .page-header h1 { font-size: clamp(1.9rem, 1.4rem + 2.2vw, 3rem); }
h2 { font-size: clamp(1.25rem, 1.1rem + 0.8vw, 1.7rem); }
h3 { font-size: clamp(1.05rem, 1rem + 0.35vw, 1.25rem); }
[class*='text-3xl'], [class*='text-4xl'] { font-family: var(--font-display); letter-spacing: -0.03em; }
.btn-primary, .btn-secondary, .btn-ghost, .btn-danger, .sidebar-mini-link, .calc-tabs a { font-family: var(--font-display); letter-spacing: -0.005em; }

/* Cabeceras de página: sin caja, el título manda y las acciones se alinean a la derecha */
.page-header, .page-header.card {
  background: transparent !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  padding: 0.25rem 0 0.75rem !important;
  align-items: flex-end;
}
.page-header p { color: var(--muted-foreground); }
.page-header + * { margin-top: 0; }

/* Colores heredados: los matices decorativos pasan a neutro; verde/rojo/ámbar siguen siendo semánticos */
[class*='bg-gradient-to']:not([class*='from-black']) { background-image: none !important; }
[class*='bg-blue-500/'], [class*='bg-purple-500/'], [class*='bg-indigo-500/'], [class*='bg-pink-500/'], [class*='bg-orange-500/'],
[class*='bg-cyan-500/'], [class*='bg-sky-500/'], [class*='bg-violet-500/'], [class*='bg-teal-500/'] { background-color: var(--muted) !important; }
[class*='text-blue-'], [class*='text-purple-'], [class*='text-indigo-'], [class*='text-pink-'], [class*='text-orange-'],
[class*='text-cyan-'], [class*='text-sky-'], [class*='text-violet-'], [class*='text-teal-'] { color: var(--muted-foreground) !important; }
[class*='border-blue-500/'], [class*='border-purple-500/'], [class*='border-green-500/'], [class*='border-orange-500/'], [class*='border-indigo-500/'] { border-color: var(--border) !important; }
.card.border-dashed { box-shadow: none; border: 1.5px dashed var(--border-strong); background: transparent; }

/* Tablas: densas, sin rejilla, cabecera discreta */
table { border-collapse: collapse; width: 100%; }
th { font-size: 0.75rem; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: var(--muted-foreground); text-align: left; }
th, td { padding: 0.7rem 0.9rem; }
tbody tr { box-shadow: 0 -1px 0 var(--border); }
tbody tr:hover { background: var(--muted); }

/* Chips y etiquetas: planos */
.soft-chip, .app-chip, .app-tag-chip, .user-meta-chip, .user-role-badge, .user-status-badge { border-color: transparent; background: var(--muted); border-radius: 9999px; font-family: var(--font-body); }
.app-tag-chip { background: rgb(var(--a-500) / 0.1); }

/* Barra lateral: activo con marca de acento sin brillo, rótulos más silenciosos */
.sidebar::before { display: none; }
.sidebar .nav-link { border-radius: 0.65rem; transition-property: background-color, color; transition-duration: 0.15s; }
.sidebar .nav-link.active, .sidebar .nav-link.is-active, .sidebar .nav-link[aria-current='page'] { box-shadow: none; background: rgb(var(--a-500) / 0.14); }
.sidebar-nav-title { letter-spacing: 0.08em; }

/* Superposiciones */
.app-modal-panel::before { display: none; }
.app-modal-panel, .modal-card { border: 0; box-shadow: var(--ring), var(--lift-2); border-radius: 1.25rem; }
.app-modal-header { background: var(--card); }

/* Entradas de formulario del resto de la web */
select.input-field { background-color: var(--card-sunken); }

/* ==========================================================================
   MOVIMIENTO COMÚN — el mismo gesto en toda la web (CSS interrumpible; GSAP solo orquesta entradas/salidas)
   ========================================================================== */
:root { --t-fast: 0.16s; --t-base: 0.28s; }

/* Tarjetas interactivas: se elevan 2px al pasar el ratón */
a.card, .vehicle-shell-card, .route-card, .public-vehicle-card, .spec-card, .hub-post, .hub-card, .doc-card-premium, .record-card, .admin-kpi {
  transition-property: transform, box-shadow, background-color;
  transition-duration: var(--t-base);
  transition-timing-function: var(--ease-out);
}
@media (hover: hover) {
  a.card:hover, .vehicle-shell-card:hover, .route-card:hover, .public-vehicle-card:hover, .spec-card:hover, .hub-post:hover, .hub-card:hover,
  .doc-card-premium:hover, .record-card:hover, a.admin-kpi:hover { transform: translateY(-2px); }
}
a.card:active, .vehicle-shell-card:active, .route-card:active, .public-vehicle-card:active, .record-card:active { transform: scale(0.985); }

/* Navegación y chips: color suave + pulsación */
.nav-link, .sidebar-nav-toggle, .hub-subnav a, .hub-chip, .hub-pill, .hub-filter-chip, .soft-chip, .admin-tab, .admin-segment, .page-actions > * {
  transition-property: background-color, color, box-shadow, transform;
  transition-duration: var(--t-fast);
  transition-timing-function: var(--ease-out);
}
.nav-link:active, .hub-subnav a:active, .hub-chip:active, .hub-pill:active, .admin-tab:active, .admin-segment:active { transform: scale(0.97); }

/* Iconos de acción: giran/escalan sin saltos */
.icon-action-btn svg, .record-actions svg, .touch-actions svg { transition: transform var(--t-fast) var(--ease-out); }
.icon-action-btn:hover svg, .record-actions button:hover svg { transform: scale(1.1); }

/* Avisos, filas y desplegables: aparecen con fundido */
tbody tr, .activity-row, .connection-item, .dashboard-list-row { transition: background-color var(--t-fast) var(--ease-out); }

/* Enlaces de texto: subrayado que crece */
.page-header a:not([class*='btn']):not([class*='card']), .card p a { text-underline-offset: 0.2em; transition: color var(--t-fast) var(--ease-out); }

/* Con movimiento reducido: sin elevaciones ni escalas, solo cambios de color */
@media (prefers-reduced-motion: reduce) {
  a.card:hover, .vehicle-shell-card:hover, .route-card:hover, .record-card:hover { transform: none; }
  a.card:active, .nav-link:active, .record-card:active { transform: none; }
}

/* Sello de administrador: cristal ámbar con escudo y estrella */
.admin-seal { display: inline-flex; align-items: center; gap: 0.3rem; vertical-align: middle; margin-left: 0.4rem; padding: 0.12rem 0.55rem 0.12rem 0.38rem; border-radius: 9999px; font-size: 0.68rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; line-height: 1.4; white-space: nowrap; color: #92400e; background: linear-gradient(135deg, rgb(252 211 77 / 0.5), rgb(245 158 11 / 0.16)); box-shadow: inset 0 0 0 1px rgb(217 119 6 / 0.4), inset 0 1px 0 rgb(255 255 255 / 0.55), 0 1px 3px rgb(180 83 9 / 0.2); backdrop-filter: blur(6px); }
.admin-seal.is-icon { gap: 0; padding: 0.18rem; }
.admin-seal svg { flex: none; }
:root[data-theme="dark"] .admin-seal, .dark .admin-seal { color: #fcd34d; background: linear-gradient(135deg, rgb(251 191 36 / 0.28), rgb(245 158 11 / 0.08)); box-shadow: inset 0 0 0 1px rgb(251 191 36 / 0.35), inset 0 1px 0 rgb(255 255 255 / 0.12), 0 1px 3px rgb(0 0 0 / 0.35); }
.user-menu-head .admin-seal { align-self: flex-start; margin: 0.35rem 0 0.1rem; color: #92400e; font-size: 0.68rem; overflow: visible; text-overflow: clip; }
.user-menu-head .admin-seal span { font-size: inherit; color: inherit; }
:root[data-theme="dark"] .user-menu-head .admin-seal, .dark .user-menu-head .admin-seal { color: #fcd34d; }

/* Ficha del vehículo: entra deslizando con curva suave y el contenido aparece escalonado; en móvil es una hoja inferior */
#vehicleDetailsOverlay { backdrop-filter: none !important; background: rgb(0 0 0 / 0.45) !important; transition: opacity 0.3s var(--ease-out-expo) !important; }
#vehicleDetailsPanel { transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1); will-change: transform; }
#vehicleDetailsPanel:not(.open) { transition-duration: 0.32s; transition-timing-function: cubic-bezier(0.4, 0, 1, 1); }
#vehicleDetailsPanel > * { opacity: 0; transform: translateY(10px); transition: opacity 0.35s var(--ease-out-expo), transform 0.45s cubic-bezier(0.22, 1, 0.36, 1); }
#vehicleDetailsPanel.open > * { opacity: 1; transform: none; transition-delay: 0.12s; }
#vehicleDetailsPanel.open > *:nth-child(n+2) { transition-delay: 0.18s; }
@media (max-width: 40rem) {
  #vehicleDetailsPanel { top: auto; right: 0; bottom: 0; left: 0; height: auto; max-height: 92dvh; max-width: none; border-left: 0; border-radius: 1.5rem 1.5rem 0 0; transform: translateY(100%); overscroll-behavior: contain; }
  #vehicleDetailsPanel.open { transform: translateY(0); }
}
/* Con movimiento reducido (el sistema lo pide, p. ej. Windows con efectos de animación apagados) la ficha no se desliza, pero sí hace un fundido suave:
   la regla global de app.css anula todas las transiciones, así que aquí se reactiva solo la opacidad */
@media (prefers-reduced-motion: reduce) {
  #vehicleDetailsOverlay { transition: opacity 0.25s var(--ease-out-expo) !important; }
  #vehicleDetailsPanel { transform: none !important; opacity: 0; transition: opacity 0.3s var(--ease-out-expo) !important; }
  #vehicleDetailsPanel.open { opacity: 1; }
  #vehicleDetailsPanel > * { opacity: 1; transform: none; transition: none !important; }
}

/* Pie legal */
.legal-foot { width: 100%; display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem 1.25rem; align-items: center; padding: 2.5rem 0 1.5rem; font-size: .8rem; color: var(--muted-foreground); }
.legal-foot a { color: inherit; text-decoration: none; }
.legal-foot a:hover { text-decoration: underline; text-underline-offset: 3px; }

/* ---------- Administración: estado de presencia ("En directo") ---------- */
.user-status-badge.is-online { color: #15803d; background: rgb(34 197 94 / 0.14); }
.user-status-badge.is-online::before { content: ''; display: inline-block; width: 0.45rem; height: 0.45rem; margin-right: 0.35rem; border-radius: 50%; background: #22c55e; vertical-align: 0.08em; animation: live-pulse 1.8s ease-out infinite; }
.user-status-badge.is-offline { color: var(--muted-foreground); background: var(--muted); }
.user-status-badge.is-inactive { color: #b42318; background: rgb(240 68 56 / 0.12); }
.dark .user-status-badge.is-online { color: #4ade80; }
.dark .user-status-badge.is-inactive { color: #f97066; }
.live-dot { display: inline-block; width: 0.55rem; height: 0.55rem; border-radius: 50%; background: #22c55e; box-shadow: 0 0 0 0 rgb(34 197 94 / 0.55); animation: live-pulse 1.8s ease-out infinite; }
@keyframes live-pulse { 70% { box-shadow: 0 0 0 0.45rem rgb(34 197 94 / 0); } 100% { box-shadow: 0 0 0 0 rgb(34 197 94 / 0); } }
@media (prefers-reduced-motion: reduce) { .live-dot, .user-status-badge.is-online::before { animation: none; } }
/* navigation.css */
/* ==========================================================================
   NAVEGACIÓN — 5 destinos planos (barra lateral / barra inferior), pestañas de sección,
   menú de usuario y botón "Añadir". Se carga después de polish.css.
   ========================================================================== */

/* ---------- Barra lateral: buscador, añadir y destinos ---------- */
.rail-search {
  width: 100%; margin-bottom: 0.6rem;
  display: flex; align-items: center; gap: 0.7rem;
  min-height: 2.6rem; padding: 0 0.85rem;
  border-radius: 0.75rem;
  color: var(--muted-foreground); font-size: 0.9rem;
  background: var(--muted);
  box-shadow: inset 0 0 0 1px var(--border);
  transition-property: background-color, color, box-shadow;
  transition-duration: 0.16s;
}
.rail-search:hover { background: rgba(255, 255, 255, 0.09); color: var(--foreground); }

.rail-add {
  width: 100%;
  display: flex; align-items: center; gap: 0.6rem;
  min-height: 2.6rem; padding: 0 0.85rem;
  border-radius: 0.75rem;
  color: #fff; font-family: var(--font-display); font-weight: 700; font-size: 0.92rem;
  background: rgb(var(--a-500));
  box-shadow: 0 1px 2px rgb(var(--a-700) / 0.5), 0 8px 18px -8px rgb(var(--a-500) / 0.7), inset 0 1px 0 rgb(255 255 255 / 0.2);
  transition-property: transform, background-color, box-shadow;
  transition-duration: 0.18s;
  transition-timing-function: var(--ease-out);
}
.rail-add > span { flex: 1; text-align: left; }
.rail-add .kbd { color: #fff; background: rgb(0 0 0 / 0.18); border-color: rgb(255 255 255 / 0.22); }
.rail-add:hover { background: rgb(var(--a-400)); }
.rail-add:active { transform: scale(var(--press)); }

.rail-nav { position: relative; display: flex; flex-direction: column; gap: 0.2rem; margin-top: 1.4rem; }
.rail-indicator {
  position: absolute; inset: 0 0 auto 0; height: 2.75rem;
  border-radius: 0.75rem;
  background: rgb(var(--a-500) / 0.16);
  box-shadow: inset 0 0 0 1px rgb(var(--a-500) / 0.22);
  opacity: 0; pointer-events: none; will-change: transform, height;
}
.rail-indicator.is-ready { opacity: 1; }

.rail-link {
  position: relative; z-index: 1;
  display: flex; align-items: center; gap: 0.8rem;
  min-height: 2.75rem; padding: 0 0.9rem;
  border-radius: 0.75rem;
  color: var(--muted-foreground);
  font-family: var(--font-display); font-weight: 600; font-size: 0.97rem; letter-spacing: -0.005em;
  text-decoration: none;
  transition-property: color, background-color, transform;
  transition-duration: 0.16s;
  transition-timing-function: var(--ease-out);
  -webkit-tap-highlight-color: transparent;
}
.rail-link svg { flex: none; transition: transform 0.22s var(--ease-out), color 0.16s; }
.rail-link:hover { color: var(--foreground); background: var(--muted); }
.rail-link:hover svg { transform: translateX(2px); }
.rail-link:active { transform: scale(0.98); }
.rail-link.is-active { color: #fff; background: transparent; }
.rail-link.is-active svg { color: rgb(var(--a-400)); }
.rail-link.is-active:hover svg { transform: none; }
.rail-label { flex: 1; }

/* Insignias numéricas */
.nav-badge {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 1.25rem; height: 1.25rem; padding: 0 0.35rem;
  border-radius: 9999px;
  font-size: 0.7rem; font-weight: 700; line-height: 1; font-variant-numeric: tabular-nums;
  color: #fff; background: rgb(var(--a-500));
}

/* ---------- Perfil: abre el menú de usuario ---------- */
.user-trigger {
  width: 100%;
  display: flex; align-items: center; gap: 0.65rem;
  padding: 0.45rem; border-radius: 0.85rem; text-align: left;
  color: var(--foreground);
  background: var(--muted);
  box-shadow: inset 0 0 0 1px var(--border);
  transition-property: background-color, box-shadow;
  transition-duration: 0.16s;
  -webkit-tap-highlight-color: transparent;
}
.user-trigger:hover, .user-trigger[aria-expanded='true'] { background: rgba(255, 255, 255, 0.1); }
.user-trigger.is-active { box-shadow: inset 0 0 0 1px rgb(var(--a-500) / 0.5); }
.user-trigger.is-admin .sidebar-profile-avatar { box-shadow: 0 0 0 2px #0a0c0f, 0 0 0 3.5px rgb(var(--a-400)); }
.user-trigger-chevron { flex: none; color: var(--muted-foreground); transition: transform 0.25s var(--ease-out); }
.user-trigger[aria-expanded='true'] .user-trigger-chevron { transform: rotate(180deg); }
.user-chip { font-family: var(--font-display); font-weight: 700; font-size: 0.95rem; }
.user-chip > span, .user-chip-img { width: 2.1rem; height: 2.1rem; border-radius: 0.65rem; display: grid; place-items: center; background: rgb(var(--a-500)); color: #fff; object-fit: cover; }

.user-menu {
  position: fixed; z-index: 1400;
  display: flex; flex-direction: column; gap: 0.1rem;
  min-width: 14rem; max-width: calc(100vw - 1rem);
  padding: 0.4rem;
  border-radius: 1rem;
  background: var(--card);
  box-shadow: 0 0 0 1px var(--border-strong), 0 2px 4px rgb(0 0 0 / 0.08), 0 24px 48px -16px rgb(0 0 0 / 0.45);
  will-change: transform, opacity;
}
.user-menu[hidden] { display: none; }
.user-menu-head { display: flex; flex-direction: column; padding: 0.55rem 0.7rem 0.65rem; gap: 0.1rem; }
.user-menu-head strong { font-family: var(--font-display); font-size: 0.95rem; color: var(--foreground); }
.user-menu-head span { font-size: 0.78rem; color: var(--muted-foreground); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.user-menu-item {
  display: flex; align-items: center; gap: 0.7rem;
  min-height: 2.6rem; padding: 0 0.7rem; width: 100%;
  border-radius: 0.65rem; text-align: left;
  font-size: 0.92rem; font-weight: 600; color: var(--foreground); text-decoration: none;
  transition-property: background-color, color; transition-duration: 0.12s;
}
.user-menu-item svg { color: var(--muted-foreground); flex: none; }
.user-menu-item > span { flex: 1; }
.user-menu-item:hover, .user-menu-item:focus-visible { background: var(--muted); outline: none; }
.user-menu-item.is-active { color: rgb(var(--a-500)); }
.user-menu-item.is-active svg { color: rgb(var(--a-500)); }
.user-menu-item.is-danger, .user-menu-item.is-danger svg { color: var(--gauge-bad); }
.user-menu-item.is-danger:hover { background: rgb(240 68 56 / 0.1); }
.user-menu-sep { height: 1px; margin: 0.3rem 0.5rem; background: var(--border); }
.user-menu-item .kbd { color: var(--muted-foreground); }

/* ---------- Pestañas de sección (páginas hermanas) ---------- */
.section-tabs {
  position: relative;
  display: flex; gap: 0.2rem;
  width: fit-content; max-width: 100%;
  margin-bottom: clamp(1rem, 0.8rem + 1vw, 1.75rem);
  padding: 0.3rem;
  border-radius: 9999px;
  background: var(--card-sunken);
  box-shadow: inset 0 0 0 1px var(--border);
  overflow-x: auto; scrollbar-width: none;
}
.section-tabs::-webkit-scrollbar { display: none; }
.section-tabs a {
  position: relative; z-index: 1; flex: none;
  display: inline-flex; align-items: center; gap: 0.5rem;
  min-height: 2.5rem; padding: 0 1rem;
  border-radius: 9999px;
  font-family: var(--font-display); font-weight: 600; font-size: 0.92rem; letter-spacing: -0.005em;
  color: var(--muted-foreground); text-decoration: none; white-space: nowrap;
  transition-property: color, transform; transition-duration: 0.16s; transition-timing-function: var(--ease-out);
}
.section-tabs a:hover { color: var(--foreground); }
.section-tabs a:active { transform: scale(var(--press)); }
.section-tabs a.is-active { color: var(--foreground); }
.section-tabs a.is-active svg { color: rgb(var(--a-500)); }
.section-tabs .tab-indicator { background: var(--card); border-radius: 9999px; box-shadow: 0 0 0 1px var(--border), 0 1px 3px rgb(15 23 42 / 0.12); }
/* Sin JS el indicador no existe: la pestaña activa lleva su propio fondo */
.section-tabs:not(.has-indicator) a.is-active { background: var(--card); box-shadow: 0 0 0 1px var(--border), 0 1px 3px rgb(15 23 42 / 0.12); }

/* ---------- Añadir: modal de elección ---------- */
.quick-add-grid { display: grid; gap: 0.6rem; }
@media (min-width: 40rem) { .quick-add-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.quick-add-item {
  display: flex; align-items: center; gap: 0.9rem;
  padding: 0.85rem 1rem; border-radius: 1rem;
  background: var(--card-sunken); box-shadow: inset 0 0 0 1px var(--border);
  color: var(--foreground); text-decoration: none;
  transition-property: transform, box-shadow, background-color; transition-duration: 0.18s; transition-timing-function: var(--ease-out);
}
.quick-add-item:hover { background: var(--card); box-shadow: 0 0 0 1px rgb(var(--a-500) / 0.55), var(--lift-1); }
.quick-add-item:active { transform: scale(var(--press)); }
.quick-add-icon { width: 2.6rem; height: 2.6rem; border-radius: 0.75rem; display: grid; place-items: center; flex: none; color: rgb(var(--a-500)); background: rgb(var(--a-500) / 0.12); }
.quick-add-text { display: flex; flex-direction: column; min-width: 0; }
.quick-add-text strong { font-family: var(--font-display); font-size: 1rem; }
.quick-add-text small { font-size: 0.8rem; color: var(--muted-foreground); }

/* ---------- Móvil: barra superior + barra inferior + botón flotante ---------- */
.mobile-bar { grid-template-columns: 1fr auto auto; }
.mobile-bar.is-hidden { transform: none; }

.bottom-nav {
  position: fixed; inset: auto 0 0 0; z-index: 60;
  display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr);
  padding: 0.25rem 0.25rem calc(0.25rem + env(safe-area-inset-bottom));
  background: rgba(11, 13, 16, 0.92);
  -webkit-backdrop-filter: saturate(1.4) blur(14px); backdrop-filter: saturate(1.4) blur(14px);
  box-shadow: 0 -1px 0 rgba(255, 255, 255, 0.08), 0 -12px 24px -16px rgba(0, 0, 0, 0.6);
}
.bottom-nav-link {
  position: relative;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.2rem;
  min-height: 3.4rem; border-radius: 0.8rem;
  color: #8b97a7; font-size: 0.66rem; font-weight: 600; text-decoration: none;
  transition-property: color, transform; transition-duration: 0.16s; transition-timing-function: var(--ease-out);
  -webkit-tap-highlight-color: transparent;
}
.bottom-nav-link::before {
  content: ''; position: absolute; top: 0; left: 30%; right: 30%; height: 2px; border-radius: 0 0 2px 2px;
  background: rgb(var(--a-400)); transform: scaleX(0); transition: transform 0.3s var(--ease-out);
}
.bottom-nav-link:active { transform: scale(0.94); }
.bottom-nav-link.is-active { color: #fff; }
.bottom-nav-link.is-active svg { color: rgb(var(--a-400)); }
.bottom-nav-link.is-active::before { transform: scaleX(1); }
.bottom-nav .nav-badge { position: absolute; top: 0.35rem; left: calc(50% + 0.45rem); min-width: 1.05rem; height: 1.05rem; font-size: 0.62rem; }

@media (max-width: 29.99rem) {
  .section-tabs a { padding: 0 0.8rem; gap: 0.4rem; font-size: 0.88rem; }
}
@media (max-width: 767.98px) {
  .app-main { padding-bottom: calc(6rem + env(safe-area-inset-bottom)); }
}
@media (min-width: 768px) {
  .bottom-nav { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .rail-link:hover svg { transform: none; }
  .bottom-nav-link:active, .rail-link:active { transform: none; }
}

/* ---------- Barra inferior de 5: repostaje central destacado + hoja "Más" ---------- */
.bottom-nav-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); align-items: center; }
.bottom-nav-5 .bottom-nav-link { background: none; border: 0; font-family: inherit; cursor: pointer; }
.bottom-nav-add { position: relative; display: grid; place-items: center; min-height: 3.4rem; text-decoration: none; -webkit-tap-highlight-color: transparent; }
.bottom-nav-add span {
  display: grid; place-items: center; width: 3.3rem; height: 3.3rem; margin-top: -1.1rem; border-radius: 1.15rem; color: #fff;
  background: rgb(var(--a-500));
  box-shadow: 0 0 0 4px rgba(11, 13, 16, 0.92), 0 2px 4px rgb(var(--a-700) / 0.5), 0 12px 24px -8px rgb(var(--a-500) / 0.8), inset 0 1px 0 rgb(255 255 255 / 0.22);
  transition: transform 0.18s var(--ease-out);
}
.bottom-nav-add:active span { transform: scale(var(--press)); }

html.more-lock { overflow: hidden; }
.more-sheet { position: fixed; inset: 0; z-index: 1500; display: grid; align-items: end; }
.more-sheet[hidden] { display: none; }
.more-sheet-backdrop { position: absolute; inset: 0; background: rgb(12 14 18 / 0.5); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); }
.more-sheet-panel { position: relative; padding: 0.4rem 1rem calc(1rem + env(safe-area-inset-bottom)); background: var(--card); color: var(--foreground); border-radius: 1.6rem 1.6rem 0 0; box-shadow: 0 -1px 0 var(--border), 0 -24px 60px -20px rgb(0 0 0 / 0.45); outline: none; max-height: 88dvh; overflow-y: auto; }
.more-sheet-grab { display: grid; place-items: center; padding: 0.35rem 0 0.7rem; touch-action: none; }
.more-sheet-grab span { width: 2.5rem; height: 0.3rem; border-radius: 9999px; background: var(--border-strong); }
.more-sheet-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.5rem; }
.more-tile { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.4rem; min-height: 5.2rem; border-radius: 1.1rem; font-size: 0.82rem; font-weight: 650; text-align: center; background: var(--card-sunken); box-shadow: inset 0 0 0 1px var(--border); color: var(--foreground); transition: scale 0.16s var(--ease-out); }
.more-tile svg { color: rgb(var(--a-500)); }
.more-tile:active { scale: var(--press); } /* con la propiedad scale: el transform queda libre para la entrada animada (una transición de transform peleaba con GSAP y daba el tirón) */
.more-tile .nav-badge { position: absolute; top: 0.5rem; right: 0.6rem; min-width: 1.1rem; height: 1.1rem; font-size: 0.65rem; font-style: normal; }
.more-sheet-list { display: grid; margin-top: 0.7rem; border-top: 1px solid var(--border); }
.more-sheet-list a { display: flex; align-items: center; gap: 0.7rem; min-height: 3rem; padding: 0 0.4rem; font-size: 0.92rem; font-weight: 600; color: var(--foreground); border-bottom: 1px solid var(--border); }
.more-sheet-list a:last-child { border-bottom: 0; }
.more-sheet-list svg { color: var(--muted-foreground); }
.more-sheet-list .is-danger { color: var(--gauge-bad); }
/* Cerrar sesión es un formulario POST con token: el botón se ve igual que los enlaces de la lista */
.user-menu-form, .more-sheet-form { margin: 0; }
.user-menu-form .user-menu-item, .more-sheet-form button { border: 0; background: none; cursor: pointer; font-family: inherit; }
.more-sheet-form button { display: flex; align-items: center; gap: 0.7rem; width: 100%; min-height: 3rem; padding: 0 0.4rem; font-size: 0.92rem; font-weight: 600; text-align: left; }
@media (min-width: 768px) { .more-sheet { display: none; } }
@media (prefers-reduced-motion: reduce) { .more-sheet-backdrop { -webkit-backdrop-filter: none; backdrop-filter: none; } }

/* ---------- Avisos en móvil: arriba, bajo la barra superior (no tapan la barra inferior ni el botón +) ---------- */
@keyframes toastInTop { from { opacity: 0; transform: translateY(-0.75rem); } to { opacity: 1; transform: translateY(0); } }
@media (max-width: 767.98px) {
  .toast-stack { top: calc(4rem + env(safe-area-inset-top)); bottom: auto; right: 0.75rem; left: 0.75rem; width: auto; z-index: 1300; gap: 0.45rem; }
  .toast { padding: 0.6rem 0.7rem 0.7rem 0.8rem; animation-name: toastInTop; box-shadow: 0 10px 28px -12px rgb(0 0 0 / 0.45); }
  .toast.is-leaving { transform: translateY(-0.75rem); }
  .toast-message { margin-top: 0.2rem; font-size: 0.86rem; }
  .toast-icon { padding: 0.25rem; }
}
@media (prefers-reduced-motion: reduce) { .toast { animation: none; } }

/* Variantes de aviso: el CSS compilado de Tailwind no las incluía y todas salían en verde */
.toast-error { --toast-color: var(--gauge-bad); }
.toast-warning { --toast-color: var(--gauge-warn); }
.toast-info { --toast-color: var(--gauge-info); }

/* Barra inferior: píldora activa que se desliza detrás del icono (sustituye a la línea superior) */
.bottom-nav-pill { position: absolute; left: 0; top: 0; width: 3.4rem; height: 2rem; border-radius: 999px; background: rgb(var(--a-500) / 0.2); box-shadow: inset 0 0 0 1px rgb(var(--a-500) / 0.28), 0 6px 16px -8px rgb(var(--a-500) / 0.7); opacity: 0; pointer-events: none; will-change: transform; }
.bottom-nav-pill.is-ready { opacity: 1; }
.bottom-nav.has-pill .bottom-nav-link::before { display: none; }
.bottom-nav.has-pill .bottom-nav-link.is-active svg { color: #fff; }
.bottom-nav-link:active svg { transform: scale(0.9); }
.bottom-nav-link svg { transition: transform 0.18s var(--ease-out), color 0.16s; }
/* fuel.css */
/* ==========================================================================
   GASOLINERAS — sección de precios (MITECO), selector del repostaje, ficha y mapa.
   Usa los mismos tokens, tarjetas y botones del resto de la app (claro/oscuro, móvil primero).
   ========================================================================== */

/* ---------- Piezas comunes ---------- */
.fuel-mark {
  width: 2.5rem; height: 2.5rem; flex: none; border-radius: 0.75rem;
  display: grid; place-items: center;
  font-family: var(--font-display); font-weight: 700; font-size: 1.05rem;
  color: rgb(var(--a-500)); background: rgb(var(--a-500) / 0.12);
}
/* Logo de marca: imagen si existe; si no, iniciales sobre un tono estable derivado del nombre (--h) */
.fuel-logo {
  --s: 2.75rem;
  position: relative; flex: none; display: grid; place-items: center; overflow: hidden;
  width: var(--s); height: var(--s); border-radius: 50%;
  font-family: var(--font-display); font-weight: 700; font-size: calc(var(--s) * 0.36); letter-spacing: 0.02em; line-height: 1;
  color: hsl(var(--h) 38% 30%); background: hsl(var(--h) 42% 90%);
  box-shadow: 0 1px 2px rgb(15 23 42 / 0.1);
}
.fuel-logo.is-xs { --s: 1.5rem; font-size: 0.6rem; }
.fuel-logo.is-sm { --s: 2.1rem; }
.fuel-logo.is-lg { --s: 3.25rem; }
.dark .fuel-logo { color: hsl(var(--h) 55% 82%); background: hsl(var(--h) 24% 22%); }
.fuel-logo::after { content: ''; position: absolute; inset: 0; border-radius: inherit; box-shadow: inset 0 0 0 1px oklch(0 0 0 / 0.1); pointer-events: none; }
.dark .fuel-logo::after { box-shadow: inset 0 0 0 1px oklch(1 0 0 / 0.1); }
.fuel-logo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; padding: 16%; background: #fff; }
.fuel-badge {
  display: inline-flex; align-items: center; width: fit-content;
  padding: 0.12rem 0.55rem; border-radius: 9999px;
  font-size: 0.72rem; font-weight: 700; letter-spacing: 0.02em;
  color: #0b7a47; background: rgb(23 178 106 / 0.14);
}
.dark .fuel-badge { color: #4ade9b; }
.fuel-note { margin: 0.4rem 0 0; font-size: 0.82rem; line-height: 1.45; color: var(--muted-foreground); }
.fuel-note.is-visible:empty { display: none; }
.fuel-note.is-error { color: var(--gauge-bad); }
.fuel-section-title { margin: 1.25rem 0 0.5rem; font-family: var(--font-display); font-size: 0.8rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted-foreground); }

/* ---------- Historial de repostajes ---------- */
.fuel-chip {
  display: inline-flex; align-items: center; gap: 0.5rem; max-width: 100%;
  min-height: 2.5rem; padding: 0.3rem 0.5rem 0.3rem 0.7rem; border-radius: 0.8rem; text-align: left;
  color: var(--foreground); background: var(--card-sunken); box-shadow: inset 0 0 0 1px var(--border);
  transition-property: background-color, box-shadow, transform; transition-duration: 0.16s; transition-timing-function: var(--ease-out);
}
.fuel-chip:hover { background: var(--card); box-shadow: 0 0 0 1px rgb(var(--a-500) / 0.5); }
.fuel-chip:active { transform: scale(var(--press)); }
.fuel-chip > svg:first-child { color: rgb(var(--a-500)); flex: none; }
.fuel-chip-text { display: flex; flex-direction: column; min-width: 0; line-height: 1.2; }
.fuel-chip-text strong { font-size: 0.9rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fuel-chip-text small { font-size: 0.75rem; color: var(--muted-foreground); }
.fuel-chip-arrow { flex: none; color: var(--muted-foreground); transform: rotate(-90deg); }
.fuel-type-tag, .fuel-paid-tag { display: inline-block; padding: 0.05rem 0.45rem; border-radius: 9999px; font-size: 0.7rem; font-weight: 700; vertical-align: middle; }
.fuel-type-tag { color: rgb(var(--a-600)); background: rgb(var(--a-500) / 0.12); }
.dark .fuel-type-tag { color: rgb(var(--a-300)); }
.fuel-paid-tag { color: var(--muted-foreground); background: var(--muted); }

/* ---------- Selector dentro del formulario de repostaje ---------- */
.fuel-station-field { display: flex; flex-direction: column; gap: 0.6rem; padding: 0.9rem; border-radius: 1rem; background: var(--card-sunken); box-shadow: inset 0 0 0 1px var(--border); }
.fuel-station-field > .form-label small { font-weight: 400; }
.fuel-station-selected { display: flex; align-items: center; gap: 0.7rem; }
.fuel-station-selected[hidden], .fuel-picker[hidden], .fuel-suggestion[hidden], [data-fuel-open][hidden] { display: none; }
.fuel-station-selected-text { display: flex; flex-direction: column; flex: 1; min-width: 0; line-height: 1.25; }
.fuel-station-selected-text strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fuel-station-selected-text small { color: var(--muted-foreground); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fuel-mini-btn { min-height: 2.25rem; padding: 0.3rem 0.7rem; font-size: 0.82rem; }
.fuel-picker { display: flex; flex-direction: column; gap: 0.5rem; }
.fuel-picker-bar { display: grid; gap: 0.5rem; }
@media (min-width: 40rem) { .fuel-picker-bar { grid-template-columns: minmax(0, 1fr) auto; } }
.fuel-picker-list { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 0.3rem; max-height: 16rem; overflow-y: auto; overscroll-behavior: contain; }
.fuel-result { display: flex; align-items: center; gap: 0.7rem; width: 100%; min-height: 3.25rem; padding: 0.45rem 0.6rem; border-radius: 0.8rem; text-align: left; background: var(--card); box-shadow: inset 0 0 0 1px var(--border); transition-property: box-shadow, transform; transition-duration: 0.14s; }
.fuel-result:hover { box-shadow: 0 0 0 1px rgb(var(--a-500) / 0.6); }
.fuel-result:active { transform: scale(var(--press)); }
.fuel-result .fuel-mark { width: 2.1rem; height: 2.1rem; font-size: 0.9rem; border-radius: 0.6rem; }
.fuel-result-text { display: flex; flex-direction: column; flex: 1; min-width: 0; line-height: 1.25; }
.fuel-result-text strong { font-size: 0.9rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fuel-result-text small { font-size: 0.76rem; color: var(--muted-foreground); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fuel-result-price { flex: none; font-weight: 700; font-size: 0.88rem; font-variant-numeric: tabular-nums; }
.fuel-result-price small { font-weight: 500; color: var(--muted-foreground); }

.fuel-suggestion { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.75rem; padding: 0.8rem 1rem; border-radius: 1rem; background: rgb(var(--a-500) / 0.08); box-shadow: inset 0 0 0 1px rgb(var(--a-500) / 0.25); }
.fuel-suggestion > div { display: flex; flex-direction: column; gap: 0.1rem; min-width: 0; flex: 1 1 12rem; }
.fuel-suggestion-label { font-size: 0.78rem; font-weight: 600; color: var(--muted-foreground); }
.fuel-suggestion-price { font-family: var(--font-display); font-size: 1.4rem; font-variant-numeric: tabular-nums; }
.fuel-suggestion small { font-size: 0.76rem; color: var(--muted-foreground); }

/* ---------- Ficha (modal) ---------- */
.fuel-detail-head { display: flex; align-items: center; gap: 0.85rem; }
.fuel-detail-head h3 { margin: 0; font-size: 1.15rem; }
.fuel-detail-head p { margin: 0.1rem 0 0; font-size: 0.88rem; color: var(--muted-foreground); }
.fuel-detail-meta { display: flex; flex-wrap: wrap; gap: 0.3rem 1rem; margin: 0.8rem 0 0; font-size: 0.88rem; font-weight: 600; }
.fuel-price-list { margin: 0; padding: 0; list-style: none; display: grid; gap: 0.15rem; }
.fuel-price-list li { display: flex; justify-content: space-between; gap: 1rem; padding: 0.55rem 0.75rem; border-radius: 0.65rem; }
.fuel-price-list li:nth-child(odd) { background: var(--card-sunken); }
.fuel-price-list li.is-selected { background: rgb(var(--a-500) / 0.1); font-weight: 700; }
.fuel-price-list strong { font-variant-numeric: tabular-nums; }
.fuel-compare { display: grid; gap: 0.6rem; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); }
.fuel-compare > div { display: flex; flex-direction: column; gap: 0.1rem; padding: 0.8rem 1rem; border-radius: 1rem; background: var(--card-sunken); box-shadow: inset 0 0 0 1px var(--border); }
.fuel-compare.is-current > div:first-child { box-shadow: inset 0 0 0 1px rgb(var(--a-500) / 0.4); }
.fuel-compare span { font-size: 0.78rem; font-weight: 600; color: var(--muted-foreground); }
.fuel-compare strong { font-family: var(--font-display); font-size: 1.35rem; font-variant-numeric: tabular-nums; }
.fuel-compare strong.is-down { color: #0b7a47; }
.fuel-compare strong.is-up { color: var(--gauge-bad); }
.dark .fuel-compare strong.is-down { color: #4ade9b; }
.fuel-compare small { font-size: 0.76rem; color: var(--muted-foreground); }
.fuel-actions { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 1.25rem; }
.fuel-actions > * { flex: 1 1 9rem; }

/* ---------- Dashboard: tu gasolinera ---------- */
.fuel-dash { display: flex; flex-direction: column; gap: 0.9rem; }
.fuel-dash-head { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; }
.fuel-dash-head h3 { margin: 0; }
.fuel-dash-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.6rem; }
.fuel-dash-row > div { display: flex; flex-direction: column; gap: 0.1rem; padding: 0.75rem 0.9rem; border-radius: 0.9rem; background: var(--card-sunken); }
.fuel-dash-row span { font-size: 0.76rem; font-weight: 600; color: var(--muted-foreground); }
.fuel-dash-row strong { font-family: var(--font-display); font-size: 1.3rem; font-variant-numeric: tabular-nums; }
.fuel-dash-row strong.is-down { color: #0b7a47; }
.fuel-dash-row strong.is-up { color: var(--gauge-bad); }
.dark .fuel-dash-row strong.is-down { color: #4ade9b; }
.fuel-dash-sub { margin: 0; font-size: 0.82rem; color: var(--muted-foreground); }
/* fuel-board.css */
/* ==========================================================================
   GASOLINERAS — panel de precios en directo (solo se carga en /gasolineras).
   Lenguaje: instrumento financiero sobrio. Cifras tabulares, tonos desaturados (salvia / grafito / arcilla),
   controles segmentados con "pulgar" deslizante y tarjetas físicas (elevación al pasar el ratón).
   ========================================================================== */
.fuel-board, .fuel-sheet {
  /* Escala de precio relativa: ganga · precio medio · por encima (nada de verdes/rojos saturados) */
  --tier-low: #6f9a85;      --tier-low-bg: rgb(111 154 133 / 0.16);  --tier-low-ink: #3b6a54;
  --tier-mid: #8a94a0;      --tier-mid-bg: rgb(138 148 160 / 0.16);  --tier-mid-ink: #5a6571;
  --tier-high: #b98369;     --tier-high-bg: rgb(185 131 105 / 0.17); --tier-high-ink: #8f553b;
  --ink-fill: var(--foreground);
  /* Parpadeo del precio al actualizarse: ajusta duración y colores aquí */
  --flash-ms: 1.4s;
  --flash-down: rgb(111 154 133 / 0.38);
  --flash-up: rgb(185 131 105 / 0.38);
}
.dark .fuel-board, .dark .fuel-sheet {
  --tier-low: #86b39d;      --tier-low-bg: rgb(134 179 157 / 0.16);  --tier-low-ink: #a6d1bb;
  --tier-mid: #98a3af;      --tier-mid-bg: rgb(152 163 175 / 0.14);  --tier-mid-ink: #b3bcc6;
  --tier-high: #cf9a80;     --tier-high-bg: rgb(207 154 128 / 0.16); --tier-high-ink: #e6b49c;
}

/* ---------- Cabecera + insignia en directo ---------- */
.fuel-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 0.75rem 1rem; }
.fuel-head h1 { margin: 0; }
.fuel-head p { margin: 0.25rem 0 0; color: var(--muted-foreground); }
.fuel-head[hidden], .fuel-live[hidden] { display: none; }

.fuel-live {
  display: inline-flex; align-items: center; gap: 0.55rem;
  min-height: 2rem; padding: 0 0.85rem 0 0.7rem; border-radius: 9999px;
  font-size: 0.8rem; font-weight: 600; font-variant-numeric: tabular-nums;
  color: var(--tier-mid-ink); background: var(--tier-mid-bg);
}
.fuel-live-dot { position: relative; width: 0.5rem; height: 0.5rem; border-radius: 50%; background: currentColor; flex: none; }
.fuel-live[data-level='live'] { color: var(--tier-low-ink); background: var(--tier-low-bg); }
.fuel-live[data-level='old'] { color: #8a6a2c; background: rgb(196 150 70 / 0.16); }
.dark .fuel-live[data-level='old'] { color: #dcbc7d; }
.fuel-live[data-level='stale'] { color: var(--tier-high-ink); background: var(--tier-high-bg); }
.fuel-live[data-level='live'] .fuel-live-dot::after {
  content: ''; position: absolute; inset: 0; border-radius: 50%; background: currentColor;
  animation: fuelPulse 2.2s cubic-bezier(0.2, 0.6, 0.3, 1) infinite;
}
@keyframes fuelPulse { 0% { transform: scale(1); opacity: 0.55; } 80%, 100% { transform: scale(3.2); opacity: 0; } }

/* ---------- Barra de control ---------- */
.fuel-bar { display: flex; flex-direction: column; gap: 0.9rem; padding: clamp(0.9rem, 0.7rem + 1vw, 1.4rem); border-radius: 1.25rem; background: var(--card); box-shadow: var(--ring), var(--lift-1); }
.fuel-where { display: grid; gap: 0.6rem; }
@media (min-width: 40rem) { .fuel-where { grid-template-columns: minmax(0, 1fr) auto; } }
.fuel-where-field {
  position: relative; display: flex; align-items: center; gap: 0.6rem;
  min-height: 3rem; padding: 0 1rem; border-radius: 9999px;
  background: var(--card-sunken); box-shadow: inset 0 0 0 1px var(--border);
  transition: box-shadow 0.18s var(--ease-out), background-color 0.18s;
}
.fuel-where-field:focus-within { background: var(--card); box-shadow: 0 0 0 1.5px rgb(var(--a-500)), 0 0 0 5px rgb(var(--a-500) / 0.14); }
.fuel-where-field > svg { color: var(--muted-foreground); flex: none; }
.fuel-where-field input { flex: 1; min-width: 0; height: 100%; padding: 0; border: 0; outline: none; background: transparent; font: inherit; font-size: 1rem; color: var(--foreground); }
.fuel-where-field input::placeholder { color: var(--muted-foreground); }
.fuel-locate-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
  min-height: 3rem; padding: 0 1.2rem; border-radius: 9999px;
  font-family: var(--font-display); font-weight: 600; font-size: 0.92rem; color: var(--foreground);
  background: var(--card); box-shadow: var(--ring), 0 1px 2px rgb(15 23 42 / 0.06);
  transition-property: box-shadow, transform, background-color; transition-duration: 0.18s; transition-timing-function: var(--ease-out);
}
.fuel-locate-btn:hover { box-shadow: 0 0 0 1px rgb(var(--a-500) / 0.6), 0 2px 8px -2px rgb(var(--a-500) / 0.3); }
.fuel-locate-btn:active { transform: scale(var(--press)); }
.fuel-locate-btn svg { color: rgb(var(--a-500)); }
.fuel-location-label { margin: -0.3rem 0 0; padding-left: 0.4rem; font-size: 0.82rem; color: var(--muted-foreground); }
.fuel-location-label[hidden], .fuel-controls[hidden] { display: none; }

.fuel-place-list {
  position: absolute; inset: calc(100% + 0.45rem) 0 auto 0; z-index: 30;
  margin: 0; padding: 0.35rem; list-style: none; max-height: 18rem; overflow-y: auto;
  background: var(--card); border-radius: 1rem; box-shadow: 0 0 0 1px var(--border-strong), var(--lift-2);
}
.fuel-place-list[hidden] { display: none; }
.fuel-place-list li { display: flex; justify-content: space-between; align-items: center; gap: 0.75rem; min-height: 2.75rem; padding: 0 0.8rem; border-radius: 0.65rem; cursor: pointer; }
.fuel-place-list li:hover, .fuel-place-list li:focus-visible { background: var(--muted); outline: none; }
.fuel-place-list small { color: var(--muted-foreground); white-space: nowrap; }
.fuel-place-empty { cursor: default !important; color: var(--muted-foreground); font-size: 0.88rem; }

.fuel-controls { display: flex; flex-direction: column; gap: 0.8rem; }

/* Píldoras (combustible y marca): una fila deslizable, sin <select> */
.fuel-pills { display: flex; gap: 0.4rem; overflow-x: auto; scrollbar-width: none; scroll-snap-type: x proximity; padding: 0.15rem 0.1rem; margin-inline: -0.1rem; }
.fuel-pills::-webkit-scrollbar { display: none; }
@media (max-width: 39.99rem) { .fuel-pills { -webkit-mask-image: linear-gradient(90deg, #000 90%, transparent); mask-image: linear-gradient(90deg, #000 90%, transparent); } }
.fuel-pill {
  flex: none; scroll-snap-align: start;
  min-height: 2.5rem; padding: 0 1rem; border-radius: 9999px; white-space: nowrap;
  font-family: var(--font-display); font-weight: 600; font-size: 0.92rem; letter-spacing: -0.005em; color: var(--muted-foreground);
  background: var(--card-sunken); box-shadow: inset 0 0 0 1px var(--border);
  transition-property: color, background-color, box-shadow, transform; transition-duration: 0.18s; transition-timing-function: var(--ease-out);
}
.fuel-pill small { margin-left: 0.2rem; font-weight: 500; opacity: 0.65; font-variant-numeric: tabular-nums; }
@media (hover: hover) { .fuel-pill:hover { color: var(--foreground); box-shadow: inset 0 0 0 1px var(--border-strong); } }
.fuel-pill:active { transform: scale(var(--press)); }
.fuel-pill[aria-checked='true'] { color: var(--card); background: var(--ink-fill); box-shadow: 0 6px 14px -8px rgb(0 0 0 / 0.5); }

/* Control segmentado con pulgar deslizante */
.fuel-seg { position: relative; display: inline-flex; padding: 0.25rem; border-radius: 0.95rem; background: var(--card-sunken); box-shadow: inset 0 0 0 1px var(--border); max-width: 100%; }
.fuel-seg-thumb { position: absolute; top: 0.25rem; bottom: 0.25rem; left: 0; width: 0; border-radius: 0.7rem; background: var(--card); box-shadow: 0 0 0 1px var(--border), 0 1px 3px rgb(15 23 42 / 0.14); opacity: 0; pointer-events: none; will-change: transform, width; }
.fuel-seg-thumb.is-ready { opacity: 1; }
.fuel-seg button {
  position: relative; z-index: 1; flex: 1 1 auto;
  display: inline-flex; align-items: center; justify-content: center; gap: 0.4rem;
  min-height: 2.5rem; padding: 0 0.95rem; border-radius: 0.7rem; white-space: nowrap;
  font-family: var(--font-display); font-weight: 600; font-size: 0.9rem; color: var(--muted-foreground);
  transition-property: color, transform; transition-duration: 0.16s; transition-timing-function: var(--ease-out);
}
.fuel-seg button:active { transform: scale(var(--press)); }
.fuel-seg button[aria-checked='true'] { color: var(--foreground); }
.fuel-seg:not(:has(.is-ready)) button[aria-checked='true'] { background: var(--card); box-shadow: 0 0 0 1px var(--border); }

.fuel-controls-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.6rem; }
.fuel-controls-row > .fuel-seg { flex: 1 1 auto; }
@media (min-width: 40rem) { .fuel-controls-row > .fuel-seg { flex: 0 1 auto; } }
.fuel-more-btn { display: inline-flex; align-items: center; gap: 0.5rem; min-height: 2.85rem; padding: 0 1rem; border-radius: 0.95rem; font-family: var(--font-display); font-weight: 600; font-size: 0.9rem; color: var(--foreground); background: var(--card-sunken); box-shadow: inset 0 0 0 1px var(--border); transition: transform 0.16s var(--ease-out), box-shadow 0.16s; }
.fuel-more-btn:active { transform: scale(var(--press)); }
.fuel-more-btn[aria-expanded='true'] { box-shadow: inset 0 0 0 1px var(--border-strong); }
.fuel-more-count { display: inline-grid; place-items: center; min-width: 1.25rem; height: 1.25rem; padding: 0 0.3rem; border-radius: 9999px; font-size: 0.7rem; font-weight: 700; color: var(--card); background: var(--ink-fill); }
.fuel-more-count[hidden] { display: none; }

.fuel-field { display: flex; flex-direction: column; gap: 0.4rem; min-width: 0; }
.fuel-field > span:first-child { font-size: 0.78rem; font-weight: 600; color: var(--muted-foreground); }
.fuel-price-input { display: flex; align-items: center; gap: 0.5rem; min-height: 2.85rem; padding: 0 0.95rem; border-radius: 0.95rem; background: var(--card-sunken); box-shadow: inset 0 0 0 1px var(--border); max-width: 11rem; transition: box-shadow 0.18s; }
.fuel-price-input:focus-within { background: var(--card); box-shadow: 0 0 0 1.5px rgb(var(--a-500)), 0 0 0 5px rgb(var(--a-500) / 0.14); }
.fuel-price-input input { width: 100%; min-width: 0; padding: 0; border: 0; outline: none; background: transparent; font: inherit; font-size: 1rem; font-variant-numeric: tabular-nums; color: var(--foreground); }
.fuel-price-input input::placeholder { color: var(--muted-foreground); }
.fuel-price-input em { font-style: normal; font-size: 0.8rem; font-weight: 600; color: var(--muted-foreground); }

/* ---------- Avisos y estados ---------- */
.fuel-notice { display: flex; align-items: center; gap: 0.6rem; padding: 0.7rem 1rem; border-radius: 0.95rem; font-size: 0.88rem; font-weight: 500; color: #8a6a2c; background: rgb(196 150 70 / 0.16); }
.dark .fuel-notice { color: #dcbc7d; }
.fuel-notice.is-stale { color: var(--tier-high-ink); background: var(--tier-high-bg); }
.fuel-notice[hidden], .fuel-board-summary[hidden], .fuel-results-head[hidden], .fuel-state[hidden], .fuel-list[hidden], .fuel-map-wrap[hidden], .fuel-footnote[hidden] { display: none; }
.fuel-state { display: flex; flex-direction: column; align-items: center; gap: 0.75rem; padding: clamp(1.5rem, 1rem + 3vw, 3rem) 1rem; text-align: center; color: var(--muted-foreground); }
.fuel-state h2 { margin: 0; color: var(--foreground); }
.fuel-state p { margin: 0; max-width: 34rem; }
.fuel-state.is-error svg { color: var(--tier-high); }
.fuel-state.is-loading { align-items: stretch; padding: 0; }
.fuel-skeleton { height: 9rem; border-radius: 1.15rem; background: linear-gradient(100deg, var(--card-sunken) 30%, var(--muted) 50%, var(--card-sunken) 70%); background-size: 200% 100%; animation: fuelShimmer 1.4s linear infinite; }
@keyframes fuelShimmer { to { background-position: -200% 0; } }

/* ---------- Resumen: mejor precio + reparto ---------- */
.fuel-board-summary { display: grid; gap: 1.25rem; padding: clamp(1.1rem, 0.8rem + 1.4vw, 1.9rem); border-radius: 1.4rem; background: var(--card); box-shadow: var(--ring), var(--lift-1); }
@media (min-width: 56rem) { .fuel-board-summary { grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 2.5rem; } }
.fuel-best-block { display: flex; flex-direction: column; gap: 0.35rem; align-items: flex-start; }
.fuel-best-label { font-size: 0.85rem; font-weight: 600; color: var(--muted-foreground); }
.fuel-best-row { display: flex; align-items: baseline; gap: 0.4rem; }
.fuel-best-price { font-family: var(--font-display); font-size: clamp(2.6rem, 1.8rem + 4vw, 4.2rem); font-weight: 700; letter-spacing: -0.04em; line-height: 0.95; font-variant-numeric: tabular-nums; }
.fuel-price-unit { font-size: 0.9rem; font-weight: 600; color: var(--muted-foreground); }
.fuel-best-where { font-size: 0.95rem; font-weight: 500; }
.fuel-tier { display: inline-flex; align-items: center; min-height: 1.5rem; padding: 0 0.6rem; border-radius: 9999px; font-size: 0.75rem; font-weight: 650; font-variant-numeric: tabular-nums; color: var(--t-ink, var(--tier-mid-ink)); background: var(--t-bg, var(--tier-mid-bg)); }
.fuel-tier.is-low { --t-ink: var(--tier-low-ink); --t-bg: var(--tier-low-bg); }
.fuel-tier.is-mid { --t-ink: var(--tier-mid-ink); --t-bg: var(--tier-mid-bg); }
.fuel-tier.is-high { --t-ink: var(--tier-high-ink); --t-bg: var(--tier-high-bg); }

.fuel-strip-wrap { min-width: 0; padding: 0 0.6rem; }
.fuel-strip { position: relative; height: 5.2rem; margin-bottom: 1rem; }
.fuel-strip-track { position: absolute; inset: auto 0 1.2rem 0; height: 0.4rem; border-radius: 9999px; background: linear-gradient(90deg, var(--tier-low-bg), var(--tier-mid-bg) 50%, var(--tier-high-bg)); }
.fuel-strip-avg { position: absolute; bottom: 0.7rem; left: calc(var(--x, 0.5) * 100%); width: 0; height: 1.3rem; border-left: 1.5px dashed var(--border-strong); }
.fuel-strip-avg em { position: absolute; top: calc(100% + 0.15rem); left: 0; transform: translateX(-50%); font-style: normal; font-size: 0.7rem; font-weight: 600; white-space: nowrap; color: var(--muted-foreground); font-variant-numeric: tabular-nums; }
.fuel-dot {
  position: absolute; bottom: calc(1.05rem + var(--lane, 0) * 1rem); left: calc(var(--x, 0) * 100%);
  width: 0.95rem; height: 0.95rem; margin-left: -0.475rem; border-radius: 50%;
  background: var(--tier-mid); box-shadow: 0 0 0 2px var(--card);
  transition: scale 0.2s var(--ease-out);
}
.fuel-dot.is-low { background: var(--tier-low); }
.fuel-dot.is-high { background: var(--tier-high); }
.fuel-dot.is-best { width: 1.25rem; height: 1.25rem; margin-left: -0.625rem; bottom: 0.9rem; z-index: 2; --lane: 0; box-shadow: 0 0 0 2px var(--card), 0 0 0 4px var(--tier-low-bg); }
.fuel-dot:hover, .fuel-dot:focus-visible { scale: 1.35; z-index: 3; }
.fuel-strip-scale { display: flex; justify-content: space-between; font-size: 0.74rem; color: var(--muted-foreground); font-variant-numeric: tabular-nums; }

.fuel-results-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.75rem; }
.fuel-count { margin: 0; font-size: 0.9rem; color: var(--muted-foreground); }

/* ---------- Tarjetas ---------- */
.fuel-list { display: grid; gap: 0.9rem; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 64rem) { .fuel-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.fuel-more-results { grid-column: 1 / -1; justify-self: center; }
.fuel-card {
  --t: var(--tier-mid); --t-ink: var(--tier-mid-ink); --t-bg: var(--tier-mid-bg);
  position: relative; display: flex; flex-direction: column; gap: 0.8rem;
  padding: clamp(0.95rem, 0.75rem + 0.9vw, 1.3rem); border-radius: 1.2rem;
  background: var(--card); box-shadow: 0 0 0 1px var(--border), var(--lift-1);
  transition: box-shadow 0.3s var(--ease-out), translate 0.3s var(--ease-out), scale 0.18s var(--ease-out);
}
.fuel-card.is-low { --t: var(--tier-low); --t-ink: var(--tier-low-ink); --t-bg: var(--tier-low-bg); }
.fuel-card.is-high { --t: var(--tier-high); --t-ink: var(--tier-high-ink); --t-bg: var(--tier-high-bg); }
.fuel-card.is-best { box-shadow: 0 0 0 1.5px var(--tier-low), var(--lift-1); }
@media (hover: hover) {
  .fuel-card:hover { translate: 0 -3px; box-shadow: 0 0 0 1px var(--border-strong), 0 2px 4px rgb(15 23 42 / 0.06), 0 22px 40px -18px rgb(15 23 42 / 0.3); }
  .fuel-card.is-best:hover { box-shadow: 0 0 0 1.5px var(--tier-low), 0 2px 4px rgb(15 23 42 / 0.06), 0 22px 40px -18px rgb(15 23 42 / 0.3); }
  .dark .fuel-card:hover { box-shadow: 0 0 0 1px var(--border-strong), 0 22px 40px -18px rgb(0 0 0 / 0.8); }
}
.fuel-card:active { scale: 0.99; }
.fuel-card[data-trend='down'] .fuel-price-num { --flash: var(--flash-down); animation: fuelNumFlash var(--flash-ms) ease-out; }
.fuel-card[data-trend='up'] .fuel-price-num { --flash: var(--flash-up); animation: fuelNumFlash var(--flash-ms) ease-out; }
.fuel-card.is-pulse { animation: fuelPulseRing 1.5s var(--ease-out); }
@keyframes fuelNumTint { 0% { background-color: var(--flash); } 100% { background-color: transparent; } }
@keyframes fuelNumFlash { 0%, 38% { background-color: var(--flash); } 22% { background-color: transparent; } 100% { background-color: transparent; } }
@keyframes fuelPulseRing { 0% { box-shadow: 0 0 0 3px rgb(var(--a-500) / 0.7), var(--lift-1); } 100% { box-shadow: 0 0 0 0 rgb(var(--a-500) / 0), var(--lift-1); } }

.fuel-card-head { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 0.85rem; align-items: start; }
.fuel-card-text { min-width: 0; }
.fuel-card-text h3 { margin: 0; font-size: 1.05rem; line-height: 1.2; overflow-wrap: anywhere; }
.fuel-card-text p { margin: 0.2rem 0 0; font-size: 0.84rem; color: var(--muted-foreground); overflow-wrap: anywhere; }
.fuel-card-price { display: flex; align-items: baseline; gap: 0.25rem; }
.fuel-price-num { margin: 0 -0.25rem; padding: 0.1rem 0.25rem; border-radius: 0.45rem; font-family: var(--font-display); font-size: clamp(1.7rem, 1.4rem + 1.2vw, 2.3rem); font-weight: 700; letter-spacing: -0.035em; line-height: 1; font-variant-numeric: tabular-nums; }
.fuel-card-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem 0.75rem; font-size: 0.82rem; }
.fuel-dist { display: inline-flex; align-items: center; gap: 0.25rem; font-weight: 650; font-variant-numeric: tabular-nums; }
.fuel-dist svg { color: var(--muted-foreground); }
.fuel-sched { color: var(--muted-foreground); }
.fuel-best { display: inline-flex; align-items: center; min-height: 1.5rem; padding: 0 0.6rem; border-radius: 9999px; font-size: 0.72rem; font-weight: 700; color: var(--card); background: var(--ink-fill); }

.fuel-meter { position: relative; height: 0.4rem; border-radius: 9999px; background: linear-gradient(90deg, var(--tier-low-bg), var(--tier-mid-bg) 50%, var(--tier-high-bg)); }
.fuel-meter-dot { position: absolute; top: 50%; left: calc(var(--pos, 0.5) * (100% - 0.9rem)); width: 0.9rem; height: 0.9rem; margin-top: -0.45rem; border-radius: 50%; background: var(--t); box-shadow: 0 0 0 2px var(--card); transition: left 0.7s var(--ease-out), background-color 0.3s; }
.fuel-card-others { display: flex; flex-wrap: wrap; gap: 0.25rem 1rem; font-size: 0.8rem; color: var(--muted-foreground); }
.fuel-card-others strong { color: var(--foreground); font-variant-numeric: tabular-nums; }
.fuel-card-actions { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; margin-top: 0.1rem; }
.fuel-card-actions .btn-primary { flex: 1 1 9rem; }
.fuel-icon-btn { width: 2.75rem; height: 2.75rem; display: grid; place-items: center; flex: none; border-radius: var(--radius-md); color: var(--muted-foreground); background: var(--card-sunken); box-shadow: inset 0 0 0 1px var(--border); transition: color 0.16s, background-color 0.16s, transform 0.16s var(--ease-out); }
.fuel-icon-btn:hover { color: var(--foreground); background: var(--muted); }
.fuel-icon-btn:active { transform: scale(var(--press)); }
@media (max-width: 29.99rem) {
  .fuel-card-head { grid-template-columns: auto minmax(0, 1fr); }
  .fuel-card-price { grid-column: 1 / -1; order: 3; }
  .fuel-card-actions .btn-primary { flex-basis: 100%; }
  .fuel-card-actions .btn-secondary { flex: 1 1 0; }
}
.fuel-footnote { margin: 0; font-size: 0.8rem; color: var(--muted-foreground); text-align: center; }

/* ---------- Mapa ---------- */
.fuel-map-wrap { border-radius: 1.2rem; overflow: hidden; box-shadow: var(--ring), var(--lift-1); }
.fuel-map { height: min(70dvh, 38rem); min-height: 22rem; background: var(--card-sunken); }
.dark .fuel-map .leaflet-tile-pane { filter: invert(1) hue-rotate(180deg) brightness(0.9) contrast(0.9); }
.fuel-marker-wrap { background: none; border: 0; }
.fuel-marker { display: inline-block; transform: translate(-50%, -100%); white-space: nowrap; padding: 0.25rem 0.55rem; border-radius: 0.6rem; font: 700 0.78rem/1 var(--font-body); font-variant-numeric: tabular-nums; color: #fff; background: #2a323c; box-shadow: 0 2px 6px rgb(0 0 0 / 0.35); }
.fuel-marker.is-cheapest { background: #4f7f68; }
.fuel-map .leaflet-popup-content-wrapper { border-radius: 1rem; background: var(--card); color: var(--foreground); }
.fuel-map .leaflet-popup-tip { background: var(--card); }
.fuel-map .leaflet-popup-content { margin: 0.85rem 1rem; font-family: var(--font-body); }
.fuel-pop { display: flex; flex-direction: column; gap: 0.3rem; }
.fuel-pop strong { font-family: var(--font-display); font-size: 1rem; }
.fuel-pop-price { font-size: 1.35rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.fuel-pop-price small { font-size: 0.72rem; font-weight: 500; color: var(--muted-foreground); }
.fuel-pop-meta { font-size: 0.8rem; color: var(--muted-foreground); }
.fuel-pop-actions { display: grid; gap: 0.4rem; margin-top: 0.4rem; }
.fuel-pop-actions a { min-height: 2.5rem; padding: 0.4rem 0.8rem; color: inherit; }
.fuel-pop-actions .btn-primary { color: #fff; }

@media (prefers-reduced-motion: reduce) {
  .fuel-card, .fuel-pill, .fuel-seg button, .fuel-more-btn, .fuel-dot { transition: none; }
  .fuel-card:active { scale: none; }
  .fuel-live[data-level='live'] .fuel-live-dot::after, .fuel-skeleton, .fuel-card.is-pulse { animation: none; }
  /* sin parpadeo: un único cambio de tono que se desvanece (la señal visual se mantiene, el movimiento no) */
  .fuel-card[data-trend] .fuel-price-num { animation: fuelNumTint 0.9s ease-out; }
  .fuel-card:hover { translate: none; }
  .fuel-meter-dot { transition: none; }
}

.fuel-price-input em { white-space: nowrap; flex: none; }
.fuel-price-input { min-width: 9.5rem; }

/* Cabecera: botón de simulación (solo local) + insignia */
.fuel-head-end { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; }
.fuel-sim-btn { display: inline-flex; align-items: center; gap: 0.4rem; min-height: 2rem; padding: 0 0.8rem; border-radius: 9999px; font-size: 0.78rem; font-weight: 600; color: var(--muted-foreground); background: transparent; box-shadow: inset 0 0 0 1px var(--border-strong); border: 0; transition: color 0.16s, transform 0.16s var(--ease-out); }
.fuel-sim-btn:hover { color: var(--foreground); }
.fuel-sim-btn:active { transform: scale(var(--press)); }
.fuel-nav-icon { display: block; }
.fuel-icon-btn:hover .fuel-nav-icon { color: rgb(var(--a-500)); }

/* ---------- Móvil: cabecera de controles ultra-compacta (los precios entran sin hacer scroll) ---------- */
@media (max-width: 39.99rem) {
  .fuel-board { gap: 0.7rem; }
  .fuel-board.space-y-6 > * { margin-top: 0; }
  .fuel-head { flex-wrap: nowrap; align-items: center; gap: 0.5rem; }
  .fuel-head h1 { font-size: 1.5rem; }
  .fuel-head p, .fuel-lbl-long, .fuel-location-label, .fuel-sim-btn span, .fuel-strip-scale, .fuel-best-block .fuel-tier, .fuel-footnote { display: none; }
  .fuel-live { min-height: 1.75rem; padding: 0 0.65rem 0 0.55rem; font-size: 0.72rem; }
  .fuel-sim-btn { min-height: 1.75rem; padding: 0 0.55rem; }

  .fuel-bar { gap: 0.5rem; padding: 0.55rem; border-radius: 1.1rem; }
  .fuel-where { grid-template-columns: minmax(0, 1fr) auto; gap: 0.4rem; }
  .fuel-where-field, .fuel-locate-btn { min-height: 2.75rem; }
  .fuel-where-field { padding: 0 0.85rem; }
  .fuel-locate-btn { width: 2.75rem; padding: 0; }
  .fuel-controls { gap: 0.45rem; }
  /* combustible: carrusel horizontal a sangre */
  .fuel-pills { margin-inline: -0.55rem; padding-inline: 0.55rem; scroll-padding-inline: 0.55rem; }
  .fuel-pill { min-height: 2.25rem; padding: 0 0.85rem; font-size: 0.86rem; }
  .fuel-controls-row { flex-wrap: nowrap; gap: 0.4rem; }
  .fuel-controls-row > .fuel-seg { flex: 1 1 0; min-width: 0; }
  .fuel-seg { padding: 0.2rem; }
  .fuel-seg-thumb { top: 0.2rem; bottom: 0.2rem; }
  .fuel-seg button { flex: 1 1 0; min-height: 2.25rem; padding: 0 0.4rem; font-size: 0.84rem; }
  .fuel-more-btn { position: relative; flex: none; justify-content: center; width: 2.75rem; min-height: 2.65rem; padding: 0; }
  .fuel-more-count { position: absolute; top: -0.3rem; right: -0.3rem; min-width: 1.1rem; height: 1.1rem; font-size: 0.65rem; box-shadow: 0 0 0 2px var(--card); }

  /* resumen: una sola fila compacta */
  .fuel-board-summary { gap: 0.55rem; padding: 0.8rem 0.95rem 0.6rem; border-radius: 1.1rem; }
  .fuel-best-block { gap: 0.15rem; }
  .fuel-best-label { font-size: 0.75rem; }
  .fuel-best-price { font-size: 2.2rem; }
  .fuel-best-where { font-size: 0.82rem; }
  .fuel-strip-wrap { padding: 0 0.4rem; }
  .fuel-strip { height: 2.4rem; }
  .fuel-strip-track { bottom: 0.45rem; }
  .fuel-strip-avg { bottom: 0.1rem; height: 1.2rem; }
  .fuel-dot { bottom: 0.3rem; }
  .fuel-dot.is-best { bottom: 0.15rem; }
  .fuel-results-head { gap: 0.5rem; }
  .fuel-count { font-size: 0.8rem; min-width: 0; flex: 1 1 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .fuel-results-head .fuel-seg button { min-height: 2.25rem; padding: 0 0.7rem; }
}

@media (max-width: 39.99rem) {
  /* título solo para lectores de pantalla: la navegación inferior ya indica dónde estás */
  .fuel-head > div:first-child { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .fuel-head { justify-content: flex-start; }
  .fuel-best-label { display: none; }
  .fuel-board-summary { padding: 0.65rem 0.95rem 0.5rem; }
  .fuel-results-head { margin-top: -0.1rem; }
}
@media (max-width: 29.99rem) {
  /* el precio se queda arriba a la derecha de la tarjeta (más cerca del borde superior de la pantalla) */
  .fuel-card-head { grid-template-columns: auto minmax(0, 1fr) auto; gap: 0.65rem; }
  .fuel-card-price { grid-column: auto; order: 0; }
  .fuel-mark { width: 2.25rem; height: 2.25rem; }
  .fuel-card { padding: 0.85rem; gap: 0.65rem; }
}
@media (max-width: 39.99rem) {
  .fuel-board.space-y-6 > :not([hidden]) ~ :not([hidden]) { margin-top: 0.6rem; }
  .fuel-board .fuel-state.is-loading { gap: 0.6rem; }
}
.fuel-lbl-short { display: none; }
@media (max-width: 39.99rem) { .fuel-lbl-short { display: inline; } }

/* ==========================================================================
   Iteración: menos ruido. Segmentado de combustible, hoja de filtros, logos y precio único por tarjeta.
   ========================================================================== */
.fuel-seg-fuel { flex: 1 1 auto; }
@media (min-width: 40rem) { .fuel-seg-fuel { flex: 0 1 auto; } .fuel-seg-fuel button { padding: 0 1.25rem; } }
.fuel-more-btn { min-height: 2.85rem; }

.fuel-results-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; }
.fuel-results-head .fuel-seg button { min-height: 2.25rem; }
.fuel-lbl-short { display: none; }
@media (max-width: 39.99rem) { .fuel-lbl-short { display: inline; } }

/* Tarjeta: un solo precio grande + detalle discreto de otros tipos */
.fuel-card-price { display: flex; flex-direction: column; align-items: flex-end; gap: 0.15rem; }
.fuel-price-row { display: flex; align-items: baseline; gap: 0.25rem; }
.fuel-more-types { padding: 0.15rem 0.35rem; margin: 0 -0.35rem; border-radius: 0.4rem; font-size: 0.72rem; font-weight: 600; color: var(--muted-foreground); opacity: 0.8; font-variant-numeric: tabular-nums; transition: opacity 0.16s, color 0.16s; }
.fuel-more-types:hover { opacity: 1; color: var(--foreground); }

/* Píldoras dentro de la hoja: se reparten en varias líneas */
.fuel-pills-wrap { flex-wrap: wrap; overflow: visible; scroll-snap-type: none; -webkit-mask-image: none !important; mask-image: none !important; }
.fuel-pill.has-logo { display: inline-flex; align-items: center; gap: 0.45rem; padding-left: 0.4rem; }
.fuel-pill.has-logo .fuel-logo { box-shadow: none; }
.fuel-pill[aria-checked='true'] .fuel-logo { outline: 1.5px solid rgb(255 255 255 / 0.5); }

/* ---------- Hoja de filtros ---------- */
html.fuel-sheet-lock { overflow: hidden; }
.fuel-sheet { position: fixed; inset: 0; z-index: 1600; display: grid; align-items: end; justify-items: center; }
.fuel-sheet[hidden] { display: none; }
.fuel-sheet-backdrop { position: absolute; inset: 0; background: rgb(12 14 18 / 0.5); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); }
.fuel-sheet-panel {
  position: relative; display: flex; flex-direction: column; width: 100%; max-height: min(88dvh, 40rem);
  background: var(--card); color: var(--foreground); outline: none;
  border-radius: 1.6rem 1.6rem 0 0; box-shadow: 0 -1px 0 var(--border), 0 -24px 60px -20px rgb(0 0 0 / 0.45);
  padding-bottom: env(safe-area-inset-bottom);
}
.fuel-sheet-grab { display: grid; place-items: center; padding: 0.6rem 0 0.2rem; touch-action: none; cursor: grab; }
.fuel-sheet-grab span { width: 2.5rem; height: 0.3rem; border-radius: 9999px; background: var(--border-strong); }
.fuel-sheet-head { display: flex; align-items: center; justify-content: space-between; padding: 0.3rem 1.1rem 0.5rem 1.4rem; touch-action: none; }
.fuel-sheet-head h2 { margin: 0; font-size: 1.3rem; }
.fuel-sheet-x { display: grid; place-items: center; width: 2.75rem; height: 2.75rem; border-radius: 50%; color: var(--muted-foreground); transition: background-color 0.16s, color 0.16s, transform 0.16s var(--ease-out); }
.fuel-sheet-x:hover { background: var(--muted); color: var(--foreground); }
.fuel-sheet-x:active { transform: scale(var(--press)); }
.fuel-sheet-body { display: flex; flex-direction: column; gap: 1.35rem; padding: 0.4rem 1.4rem 1.2rem; overflow-y: auto; overscroll-behavior: contain; min-height: 0; }
.fuel-sheet-body .fuel-field[hidden] { display: none; }
.fuel-sheet-row { display: flex; flex-wrap: wrap; gap: 1.1rem 1.5rem; align-items: flex-start; }
.fuel-sheet-row .fuel-seg { width: 100%; }
.fuel-sheet-foot { display: flex; gap: 0.6rem; padding: 0.8rem 1.4rem 1rem; border-top: 1px solid var(--border); }
.fuel-sheet-foot .btn-primary { flex: 1 1 auto; }
@media (min-width: 40rem) {
  .fuel-sheet { align-items: center; padding: 1.5rem; }
  .fuel-sheet-panel { width: min(32rem, 100%); border-radius: 1.6rem; box-shadow: 0 0 0 1px var(--border-strong), 0 40px 80px -24px rgb(0 0 0 / 0.5); padding-bottom: 0; }
  .fuel-sheet-grab { display: none; }
  .fuel-sheet-head { padding-top: 1.1rem; }
}
@media (prefers-reduced-motion: reduce) { .fuel-sheet-backdrop { -webkit-backdrop-filter: none; backdrop-filter: none; } }

/* Móvil: la fila de combustible y la de orden/vista siguen siendo compactas */
@media (max-width: 39.99rem) {
  .fuel-results-head { flex-wrap: nowrap; }
  .fuel-results-tools { flex-wrap: nowrap; width: 100%; justify-content: space-between; }
  .fuel-results-tools .fuel-seg:first-child { flex: 1 1 auto; }
  .fuel-results-head .fuel-seg button { padding: 0 0.6rem; }
  .fuel-count, .fuel-sched { display: none; }
  .fuel-card-head { gap: 0.65rem; }
  .fuel-logo.is-md { --s: 2.5rem; }
}
