:root{--primary:#f97316;--primary-dark:#c2410c;--primary-soft:#fff1e6;--ink:#0f172a;--ink-soft:#1e293b;--text:#0f172a;--muted:#64748b;--placeholder:#94a3b8;--bg:#f3f4f6;--surface:#fff;--border:#e2e8f0;--danger:#dc2626;--danger-soft:#fef2f2;--on-dark:#fff;--on-dark-muted:#cbd5e1;--radius-sm:8px;--radius:12px;--radius-lg:16px;--shadow:0 1px 2px #0f172a0f;--shadow-lg:0 6px 16px #0f172a40;--topbar-h:60px;--gutter:16px;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.45}*,:before,:after{box-sizing:border-box}body{background:var(--bg);min-height:100dvh;margin:0}h1,h2,h3,p,ul,dl,dd,fieldset{margin:0;padding:0}ul{list-style:none}fieldset{border:0;min-width:0}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit;color:inherit}:focus-visible{outline-offset:2px;outline:3px solid #f973168c}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.muted{color:var(--muted)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@media (width<=639.98px){.hide-mobile{display:none!important}}@media (width>=640px){.show-mobile,.fab{display:none!important}}.btn{border-radius:var(--radius);white-space:nowrap;cursor:pointer;-webkit-tap-highlight-color:transparent;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;min-height:48px;padding:0 20px;font-size:16px;font-weight:700;transition:background-color .15s,opacity .15s;display:inline-flex}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-block{width:100%}.btn-sm{min-height:40px;padding:0 14px;font-size:15px}.btn-primary{background:var(--primary);color:var(--on-dark)}.btn-primary:not(:disabled):hover{background:#ea580c}.btn-secondary{background:var(--surface);color:var(--ink);border-color:var(--border)}.btn-secondary:hover{background:#f8fafc}.btn-danger{background:var(--danger-soft);color:var(--danger)}.btn-danger:hover{background:#fee2e2}.btn-topbar{min-height:40px;color:var(--on-dark);background:#ffffff14;padding:0 12px;font-size:15px}.btn-topbar:hover{background:#ffffff29}.icon-btn{width:40px;height:40px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{background:#0f172a0f}.link-btn{color:var(--primary-dark);cursor:pointer;background:0 0;border:0;padding:0;font-weight:700}.link-btn:hover{text-decoration:underline}.spinner-wrap{justify-content:center;align-items:center;min-height:50dvh;display:flex}.spinner{border:4px solid var(--primary-soft);border-top-color:var(--primary);border-radius:50%;width:36px;height:36px;animation:.8s linear infinite girar}.spinner-sm{border-width:3px;border-color:#fff #fff6 #fff6;width:18px;height:18px}@keyframes girar{to{transform:rotate(360deg)}}.topbar{z-index:10;background:var(--ink);color:var(--on-dark);padding-top:env(safe-area-inset-top);position:sticky;top:0}.topbar-inner{max-width:1120px;height:var(--topbar-h);padding:0 max(var(--gutter), env(safe-area-inset-left));justify-content:space-between;align-items:center;gap:12px;margin:0 auto;display:flex}.brand{align-items:center;gap:10px;min-width:0;font-size:17px;font-weight:800;display:flex}.brand-logo{background:var(--primary);border-radius:10px;flex-shrink:0;place-items:center;width:36px;height:36px;display:grid}.brand-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.topbar-user{align-items:center;gap:12px;display:flex}.topbar-email{color:var(--on-dark-muted);font-size:14px;display:none}.container{max-width:1120px;padding:20px max(var(--gutter), env(safe-area-inset-left)) calc(96px + env(safe-area-inset-bottom));flex-direction:column;gap:16px;margin:0 auto;display:flex}.narrow{flex-direction:column;gap:16px;width:100%;max-width:720px;margin:0 auto;display:flex}.page-header{align-items:center;gap:8px;display:flex}.back-btn{color:var(--ink);margin-left:-8px}.page-header-text{flex:1;min-width:0}.page-header h1{color:var(--ink);font-size:24px;font-weight:800;line-height:1.2}.page-header p{color:var(--muted);margin-top:2px;font-size:14px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);flex-direction:column;gap:16px;padding:16px;display:flex}.card-title{color:var(--ink);padding:0;font-size:18px;font-weight:700}fieldset.card>legend.card-title{float:left;width:100%}fieldset.card>legend.card-title+*{clear:both}.section-title{color:var(--ink);font-size:18px;font-weight:700}.banner{border-radius:var(--radius);align-items:flex-start;gap:10px;padding:12px 14px;font-size:14px;display:flex}.banner svg{flex-shrink:0;margin-top:1px}.banner-danger{background:var(--danger-soft);color:var(--danger)}.banner-info{background:var(--primary-soft);color:var(--primary-dark)}.empty{text-align:center;flex-direction:column;align-items:center;gap:8px;padding:28px 8px;display:flex}.empty-icon{background:var(--primary-soft);width:72px;height:72px;color:var(--primary);border-radius:50%;place-items:center;margin-bottom:8px;display:grid}.empty h2{color:var(--ink);font-size:18px}.empty p{max-width:320px;color:var(--muted)}.empty .btn{margin-top:12px}.form{flex-direction:column;gap:16px;display:flex}.grid-2{grid-template-columns:minmax(0,1fr);gap:16px;display:grid}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field label{color:var(--ink-soft);font-size:14px;font-weight:600}.input-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:8px;min-height:50px;padding:0 12px;transition:border-color .15s,box-shadow .15s;display:flex}.input-wrap:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px #f973162e}.input-wrap.has-error{border-color:var(--danger)}.input-icon{color:var(--muted);flex-shrink:0}.input-wrap input,.input-wrap select,.input-wrap textarea{background:0 0;border:0;outline:0;flex:1;width:100%;min-width:0;padding:12px 0;font-size:16px}.input-wrap select{cursor:pointer}.input-wrap textarea{resize:vertical;min-height:88px}.input-wrap input::-ms-reveal{display:none}.input-wrap input::-ms-clear{display:none}.input-wrap input::placeholder,.input-wrap textarea::placeholder{color:var(--placeholder)}.input-action{margin-right:-6px}.field-error{color:var(--danger);font-size:13px}.field-hint{color:var(--muted);font-size:13px}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{cursor:pointer;position:relative}.chip input{opacity:0;pointer-events:none;position:absolute}.chip span{border:1px solid var(--border);background:var(--surface);color:var(--ink-soft);border-radius:999px;padding:10px 14px;font-size:14px;font-weight:600;transition:background-color .15s,color .15s;display:inline-block}.chip:hover span{border-color:var(--muted)}.chip input:checked+span{background:var(--ink);border-color:var(--ink);color:var(--on-dark)}.chip input:focus-visible+span{outline-offset:2px;outline:3px solid #f973168c}.form-actions{z-index:5;margin:0 calc(-1 * var(--gutter)) calc(-96px - env(safe-area-inset-bottom));padding:12px var(--gutter) calc(12px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--border);gap:10px;display:flex;position:sticky;bottom:0}.form-actions .btn-primary{flex:1}.login{background:var(--ink);flex-direction:column;min-height:100dvh;display:flex}.login-hero{color:var(--on-dark);padding:calc(28px + env(safe-area-inset-top)) 24px 32px}.login-hero-inner{max-width:480px;margin:0 auto}.login-logo{border-radius:var(--radius-lg);background:var(--primary);place-items:center;width:64px;height:64px;margin-bottom:16px;display:grid}.login-hero h1{font-size:30px;font-weight:800;line-height:1.15}.login-tagline{color:var(--on-dark-muted);margin-top:8px}.login-features{display:none}.login-panel{background:var(--bg);padding:28px 24px calc(40px + env(safe-area-inset-bottom));border-radius:28px 28px 0 0;flex:1}.login-form{flex-direction:column;gap:16px;max-width:480px;margin:0 auto;display:flex}.login-form h2{color:var(--ink);font-size:24px;font-weight:800}.forgot{align-self:flex-end;margin-top:-6px}.switch-mode{text-align:center;color:var(--muted)}.vehicle-grid{grid-template-columns:minmax(0,1fr);gap:12px;display:grid}.vehicle-card{gap:12px;height:100%;transition:box-shadow .15s,transform .15s,border-color .15s}.vehicle-card:hover{border-color:#cbd5e1;box-shadow:0 6px 16px #0f172a14}.vehicle-card:active{transform:scale(.99)}.vehicle-card-top{align-items:center;gap:12px;display:flex}.vehicle-icon{border-radius:var(--radius);background:var(--primary-soft);width:48px;height:48px;color:var(--primary);flex-shrink:0;place-items:center;display:grid}.vehicle-card-info{flex:1;min-width:0}.vehicle-card-info h2{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:17px;font-weight:700;overflow:hidden}.vehicle-card-info p{color:var(--muted);font-size:14px}.vehicle-number{border-radius:var(--radius);background:var(--primary-soft);min-width:48px;height:48px;color:var(--primary-dark);flex-shrink:0;place-items:center;padding:0 8px;font-size:18px;font-weight:800;display:grid}.vehicle-card.is-baja{opacity:.7}.vehicle-card.is-baja .vehicle-number{color:var(--muted);background:#f1f5f9}.badge{vertical-align:1px;border-radius:999px;margin-left:8px;padding:1px 8px;font-size:12px;font-weight:700;display:inline-block}.badge-baja,.badge-vencido{background:var(--danger-soft);color:var(--danger)}.badge-aviso{color:#92400e;background:#fef3c7}.oil-banner{border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:10px 12px;padding:12px 14px;font-size:14px;display:flex}.oil-banner p{flex:1;min-width:180px}.oil-banner-proximo{color:#92400e;background:#fef3c7}.oil-banner-vencido{background:var(--danger-soft);color:var(--danger)}.oil-alerts{border-color:#fcd34d;gap:10px}.oil-alerts-head{color:#b45309;align-items:center;gap:8px;display:flex}.oil-alerts-count{color:#92400e;text-align:center;background:#fef3c7;border-radius:999px;min-width:26px;margin-left:auto;padding:2px 8px;font-size:13px;font-weight:700}.oil-list{flex-direction:column;display:flex}.oil-item{border-top:1px solid var(--border);align-items:center;gap:12px;padding:10px 0;display:flex}.oil-item-text{min-width:0;color:var(--ink);flex-direction:column;flex:1;align-items:flex-start;gap:4px;font-size:15px;display:flex}.oil-item-text .badge{margin-left:0}.hero-number{width:auto;min-width:52px;padding:0 10px;font-size:20px;font-weight:800}.matches{border-radius:var(--radius);background:var(--primary-soft);color:var(--ink-soft);flex-direction:column;gap:4px;padding:10px 12px;font-size:14px;display:flex}.matches li{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.matches-notas{color:var(--muted)}.matches-mas{color:var(--primary-dark);font-weight:600}.home-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.home-tile{text-align:center;align-items:center;gap:6px;padding:22px 12px;transition:border-color .15s,box-shadow .15s}.home-tile:hover{border-color:#cbd5e1;box-shadow:0 6px 16px #0f172a14}.home-tile-icon{border-radius:var(--radius-lg);background:var(--primary);width:64px;height:64px;color:var(--on-dark);place-items:center;margin-bottom:4px;display:grid}.home-tile-title{color:var(--ink);font-size:18px;font-weight:800}.home-tile-sub{color:var(--muted);font-size:14px}.home-recent{flex-direction:column;gap:10px;display:flex}.section-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.recent-list{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;display:flex;overflow:hidden}.recent-list li+li{border-top:1px solid var(--border)}.recent-item{align-items:center;gap:12px;padding:12px;display:flex}.recent-item:hover{background:#f8fafc}.recent-text{flex-direction:column;flex:1;min-width:0;display:flex}.recent-title{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.recent-sub,.recent-fecha{color:var(--muted);font-size:13px}.recent-fecha{white-space:nowrap}.recent-chevron{color:var(--muted);flex-shrink:0}.select-tipo{flex:none}.history-total{color:var(--muted);font-size:14px}.history-total strong{color:var(--ink)}.history-row{align-items:flex-start;display:flex}.history-row .service-head{flex:1;min-width:0}.history-edit{margin:10px 8px 0 0}.history-vehiculo{color:var(--ink-soft);font-size:14px;font-weight:600}.history-notas{color:var(--ink-soft);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:2px;font-size:13px;display:-webkit-box;overflow:hidden}.picked,.picker-item{align-items:center;gap:12px;display:flex}.picked-text{flex-direction:column;flex:1;min-width:0;font-size:14px;display:flex}.picked-text strong{color:var(--ink);font-size:15px}.picker-list{border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;display:flex;overflow:hidden}.picker-list li+li{border-top:1px solid var(--border)}.picker-item{background:var(--surface);text-align:left;cursor:pointer;border:0;width:100%;padding:10px 12px}.picker-item:hover,.picker-item:focus-visible{background:var(--primary-soft)}.toolbar{flex-direction:column;gap:10px;display:flex}.search{flex:1}.segmented{border-radius:var(--radius);background:#e5e7eb;gap:4px;padding:4px;display:flex}.segmented button{min-height:40px;color:var(--ink-soft);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:9px;flex:1;padding:0 12px;font-size:15px;font-weight:600}.segmented button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}.segmented-count{color:var(--muted);font-weight:500}.datos{flex-direction:column;display:flex}.dato{border-top:1px solid var(--border);justify-content:space-between;gap:16px;padding:10px 0;font-size:14px;display:flex}.dato:first-child{border-top:0;padding-top:0}.dato dt{color:var(--muted);flex-shrink:0}.dato dd{text-align:right;color:var(--ink);overflow-wrap:anywhere;font-weight:600}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px}.plate{border:1.5px solid var(--ink);letter-spacing:1px;color:var(--ink);white-space:nowrap;border-radius:6px;flex-shrink:0;padding:3px 8px;font-size:13px;font-weight:800}.plate-light{background:var(--surface);border-color:var(--surface)}.vehicle-card-meta{border-top:1px solid var(--border);color:var(--ink-soft);flex-wrap:wrap;gap:6px 16px;padding-top:12px;font-size:14px;display:flex}.meta{align-items:center;gap:6px;min-width:0;display:inline-flex}.meta svg{color:var(--muted);flex-shrink:0}.meta-fixed{white-space:nowrap;flex-shrink:0}.fab{right:max(20px, env(safe-area-inset-right));bottom:calc(20px + env(safe-area-inset-bottom));z-index:5;background:var(--primary);height:56px;color:var(--on-dark);box-shadow:var(--shadow-lg);border-radius:28px;align-items:center;gap:6px;padding:0 20px 0 16px;font-weight:700;display:inline-flex;position:fixed}.detail{flex-direction:column;gap:16px;display:flex}.detail-side,.detail-main{flex-direction:column;gap:12px;min-width:0;display:flex}.hero-card{border-radius:var(--radius-lg);background:var(--ink);color:var(--on-dark);flex-direction:column;gap:16px;padding:16px;display:flex}.hero-top{align-items:center;gap:12px;display:flex}.hero-icon{border-radius:var(--radius);background:var(--primary);flex-shrink:0;place-items:center;width:52px;height:52px;display:grid}.hero-text{flex:1;min-width:0}.hero-text h2{font-size:20px;font-weight:800}.hero-text p{color:var(--on-dark-muted);font-size:14px}.stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.stat{border-radius:var(--radius);background:var(--ink-soft);text-align:center;flex-direction:column-reverse;align-items:center;padding:12px 6px;display:flex}.stat dd{white-space:nowrap;font-size:16px;font-weight:800}.stat dt{color:#94a3b8;font-size:12px}.service-list{flex-direction:column;gap:8px;display:flex}.service{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.service-head{text-align:left;background:0 0;border:0;align-items:center;gap:12px;width:100%;padding:12px;display:flex}button.service-head:not(:disabled){cursor:pointer}button.service-head:disabled{color:inherit}button.service-head:not(:disabled):hover{background:#f8fafc}.service-icon{background:var(--primary-soft);width:40px;height:40px;color:var(--primary-dark);border-radius:50%;flex-shrink:0;place-items:center;display:grid}.service-body{flex-direction:column;flex:1;min-width:0;display:flex}.service-row{justify-content:space-between;gap:8px;display:flex}.service-title,.service-cost{color:var(--ink);font-size:16px;font-weight:700}.service-cost{white-space:nowrap}.service-meta{color:var(--muted);font-size:13px}.chevron{color:var(--muted);flex-shrink:0;transition:transform .2s}.chevron.open{transform:rotate(180deg)}.service-actions{gap:8px;margin-top:6px;display:flex}.service-detail{color:var(--ink-soft);flex-direction:column;gap:4px;padding:0 12px 12px 64px;font-size:14px;display:flex}@media (width>=640px){:root{--gutter:24px}.container{padding-top:28px;padding-bottom:48px}.topbar-email{display:inline}.page-header h1{font-size:28px}.card{padding:20px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.toolbar{flex-direction:row;align-items:center}.segmented{flex:none}.vehicle-grid{grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:16px}.form-actions{background:0 0;border:0;justify-content:flex-end;margin:0;padding:0;position:static}.form-actions .btn-primary{flex:initial}.login{justify-content:center;align-items:center;padding:40px 24px}.login-hero{text-align:center;padding:0 0 24px}.login-logo{margin-inline:auto}.login-panel{flex:initial;background:var(--surface);border-radius:24px;width:100%;max-width:460px;padding:32px;box-shadow:0 20px 50px #00000059}}@media (width>=960px){.detail{grid-template-columns:360px minmax(0,1fr);align-items:start;gap:24px;display:grid}.detail-side{top:calc(var(--topbar-h) + 24px);position:sticky}.detail-main .section-title{margin-top:2px}.login{grid-template-columns:1.1fr 1fr;align-items:stretch;padding:0;display:grid}.login-hero{text-align:left;background:radial-gradient(circle at 20% 15%, #f9731638, transparent 45%), var(--ink);align-items:center;padding:48px 64px;display:flex}.login-logo{margin-inline:0}.login-hero h1{font-size:44px}.login-tagline{font-size:18px}.login-features{color:var(--on-dark-muted);flex-direction:column;gap:14px;margin-top:36px;display:flex}.login-features li{align-items:center;gap:12px;display:flex}.login-features svg{color:var(--primary)}.login-panel{background:var(--bg);max-width:none;box-shadow:none;border-radius:0;align-items:center;padding:48px;display:flex}.login-form{width:100%;max-width:400px}}
