:root { color:#e8f7ff; font-family:'Space Grotesk',system-ui,sans-serif; background:#02060b; }
* { box-sizing:border-box; }
body { margin:0; min-height:100vh; background:#02060b url('assets/gonzo-garage-hero-blueprint-full.png') center center / cover fixed no-repeat; }
body::before { content:''; position:fixed; inset:0; z-index:0; pointer-events:none; background:rgba(1, 7, 13, .32); }
body > header, body > section, body > main { position:relative; z-index:1; }
header { position:relative; min-height:220px; display:flex; flex-direction:column; justify-content:flex-end; padding:2.3rem max(2rem,calc((100% - 1180px)/2)); background:linear-gradient(180deg,#02060bc7 0%,#06121b70 72%,transparent 100%); border-bottom:1px solid #20d9ff; box-shadow:0 8px 30px #0009,0 2px 18px #00cfff6b; }
header::after { content:''; position:absolute; width:42%; height:3px; right:0; bottom:0; background:#28ddff; box-shadow:0 0 18px #28ddff; } header h1 { font:700 clamp(2.1rem,4vw,3.35rem) 'Rajdhani',sans-serif; letter-spacing:.06em; margin:0; text-transform:uppercase; text-shadow:0 0 18px #21d9ffb0; } header p { color:#a8eafa; margin:.25rem 0 0; text-shadow:0 1px 10px #000; }
.top-nav { position:absolute; top:1.5rem; right:max(2rem,calc((100% - 1180px)/2)); display:flex; align-items:center; gap:1.1rem; color:#c7dcff; font:600 .72rem 'Rajdhani',sans-serif; letter-spacing:.12em; }.brand-mark { border:1px solid #1680ff; color:#fff; padding:.35rem .45rem; box-shadow:0 0 12px #1680ff80; }
main { max-width:1180px; margin:2.5rem auto; padding:0 1.5rem; display:grid; grid-template-columns:290px 1fr; gap:1.5rem; } aside,.detail { background:rgba(2, 10, 20, .26); border:1px solid #20d9ff; border-radius:8px; padding:1.25rem; box-shadow:inset 0 0 28px #008dff20,0 0 24px #00cfff52,0 15px 45px #0007; } h2,h3,h4 { font-family:'Rajdhani',sans-serif; letter-spacing:.06em; text-shadow:0 2px 8px #000; } h2 { margin:0 0 .75rem; font-size:1.65rem; } h3 { margin:1rem 0 .7rem; }.client-list,.vehicle-list { display:grid; gap:.75rem; }
.quick-actions { max-width:1180px; margin:-2.1rem auto 0; padding:0 1.5rem; display:grid; grid-template-columns:repeat(5,1fr); gap:.8rem; position:relative; z-index:2; }.quick-actions article { min-height:128px; padding:1rem; background:rgba(2, 10, 20, .26); border:1px solid #20d9ff; border-top:2px solid #50e9ff; box-shadow:inset 0 0 18px #00cfff14,0 0 20px #00cfff42,0 12px 24px #0007; cursor:pointer; }.quick-actions span { color:#24dcff; text-shadow:0 0 13px #00cfffaa; font:700 1.55rem 'Rajdhani',sans-serif; letter-spacing:.08em; }.quick-actions h2 { color:#f2f8ff; margin:.3rem 0 .2rem; }.quick-actions p { color:#d2eaf2; font-size:.8rem; margin:0; text-shadow:0 1px 5px #000; } @media(max-width:800px){.quick-actions{grid-template-columns:repeat(2,1fr);margin:1rem auto}.top-nav span:not(.brand-mark){display:none}}
.inventory-panel { max-width:1180px; margin:3rem auto; padding:1.5rem; background:rgba(2, 10, 20, .26); border:1px solid #20d9ff; box-shadow:inset 0 0 28px #008dff20,0 0 24px #00cfff52,0 12px 30px #0007; }.inventory-form { display:grid; grid-template-columns:repeat(6,1fr); gap:.6rem; }.inventory-form input { min-width:0; } .stock-low { border-left-color:#ffb020; } @media(max-width:800px){.inventory-form{grid-template-columns:1fr 1fr}}
.report-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; }.report-grid article { display:grid; gap:.35rem; padding:1rem; border:1px solid #20d9ff; background:rgba(1, 14, 27, .28); border-left:3px solid #20d9ff; box-shadow:inset 0 0 16px #00cfff14; }.report-grid strong { color:#24dcff; text-shadow:0 0 13px #00cfffaa; font:700 1.7rem 'Rajdhani',sans-serif; }.report-grid span { color:#d2eaf2; font-size:.85rem; }.login-dialog { width:min(420px,calc(100vw - 2rem)); }.login-dialog h2 { margin-bottom:0; }.login-dialog small { color:#8db6c7; line-height:1.4; }.login-dialog::backdrop { background:#01060be8; backdrop-filter:blur(8px); } @media(max-width:800px){.report-grid{grid-template-columns:1fr 1fr}}
.client { width:100%; text-align:left; padding:.85rem; border:1px solid #20d9ff; background:rgba(1, 14, 27, .28); border-left:3px solid #20d9ff; border-radius:8px; cursor:pointer; color:#e8f7ff; transition:.18s; box-shadow:inset 0 0 16px #00cfff14; }.client:hover,.client.selected { transform:translateX(3px); border-color:#9bf2ff; background:rgba(1, 39, 62, .42); box-shadow:0 0 18px #00cfff8a; }.client small,.vehicle p { color:#c6e6f1; margin-top:.25rem; display:block; }
.detail-heading,.section-heading,.modal-heading,.form-actions,.vehicle-actions { display:flex; align-items:center; justify-content:space-between; gap:1rem; }.eyebrow { color:#28ddff; font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; font-weight:700; margin:0 0 .2rem; } button { border:1px solid #28ddff; border-radius:6px; padding:.62rem .9rem; background:linear-gradient(120deg,#0879ab,#0bc5e7); color:#031019; font-weight:700; cursor:pointer; box-shadow:0 0 12px #00d5ff42; transition:.18s; } button:hover { transform:translateY(-1px); box-shadow:0 0 20px #00d5ff8a; } button.secondary { background:#132635; color:#bdefff; border-color:#315f74; box-shadow:none; } button.danger { background:#6e202b; border-color:#fa6371; color:white; } button.icon-button { background:none; border:0; color:#7fe9ff; box-shadow:none; font-size:1.5rem; padding:0; }
.vehicle { border:1px solid #20d9ff; border-left:3px solid #20d9ff; border-radius:8px; padding:1rem; display:flex; align-items:center; justify-content:space-between; gap:1rem; background:rgba(1, 14, 27, .28); box-shadow:inset 0 0 16px #00cfff14; }.vehicle h4,.vehicle p { margin:0; }.empty-state,.empty-list { color:#d1eef8; text-align:center; padding:2rem 0; text-shadow:0 1px 6px #000; }
dialog { color:#e8f7ff; background:#0b1723; border:1px solid #27d9ff; border-radius:12px; width:min(520px,calc(100vw - 2rem)); box-shadow:0 0 40px #00c8ff4d; } dialog::backdrop { background:#01060bbb; backdrop-filter:blur(3px); } form { display:grid; gap:1rem; } label { display:grid; gap:.35rem; font-size:.9rem; color:#a7d9e9; } input,select,textarea { color:#e8f7ff; background:#07111a; padding:.65rem; border:1px solid #315e72; border-radius:5px; font:inherit; } .form-grid { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }.error { color:#ff8790; }.form-actions { justify-content:end; } #work-orders-section,#budgets-section { border-top:1px solid #245064; margin-top:1.5rem; padding-top:1.5rem; }
@media(max-width:700px){main{grid-template-columns:1fr;margin-top:1rem}.form-grid{grid-template-columns:1fr}.vehicle{align-items:flex-start;flex-direction:column}.vehicle-actions{width:100%;justify-content:end}}

/* Azul eléctrico inspirado en las llantas y la iluminación del taller. */
:root { --wheel-blue:#006dff; --wheel-blue-bright:#2b86ff; --wheel-blue-soft:#91bbff; --wheel-glow:rgba(0,109,255,.58); }
header { border-bottom-color:var(--wheel-blue); box-shadow:0 8px 30px #0009,0 2px 18px var(--wheel-glow); }
header::after { background:var(--wheel-blue); box-shadow:0 0 18px var(--wheel-blue); }
header h1 { text-shadow:0 0 18px var(--wheel-glow); }
header p,.eyebrow { color:var(--wheel-blue-soft); }
.brand-mark { border-color:var(--wheel-blue); box-shadow:0 0 12px var(--wheel-glow); }
aside,.detail,.inventory-panel { border-color:var(--wheel-blue); box-shadow:inset 0 0 28px rgba(0,82,210,.2),0 0 24px var(--wheel-glow),0 15px 45px #0007; }
.quick-actions article { border-color:var(--wheel-blue); border-top-color:var(--wheel-blue-bright); box-shadow:inset 0 0 18px rgba(0,82,210,.14),0 0 20px rgba(0,109,255,.42),0 12px 24px #0007; }
.quick-actions span,.report-grid strong { color:var(--wheel-blue-bright); text-shadow:0 0 13px var(--wheel-glow); }
.report-grid article { border-color:var(--wheel-blue); border-left-color:var(--wheel-blue); box-shadow:inset 0 0 16px rgba(0,82,210,.14); }
.client,.vehicle { border-color:var(--wheel-blue); border-left-color:var(--wheel-blue); box-shadow:inset 0 0 16px rgba(0,82,210,.14); }
.client:hover,.client.selected { border-color:var(--wheel-blue-soft); background:rgba(0,55,142,.36); box-shadow:0 0 18px var(--wheel-glow); }
button { border-color:var(--wheel-blue-bright); background:linear-gradient(120deg,#0048b8,var(--wheel-blue)); box-shadow:0 0 12px var(--wheel-glow); color:#f5f9ff; }
button:hover { box-shadow:0 0 20px var(--wheel-glow); }
button.secondary { border-color:#2964b2; background:rgba(0,46,114,.48); color:#d7e7ff; }
button.icon-button { color:var(--wheel-blue-soft); }
dialog { border-color:var(--wheel-blue); box-shadow:0 0 40px var(--wheel-glow); }
input,select,textarea { border-color:#265da8; background:rgba(1,11,27,.76); }

/* Navegación centrada en cápsula flotante. */
.top-nav { left:50%; right:auto; top:1.15rem; transform:translateX(-50%); width:max-content; max-width:calc(100vw - 2rem); padding:.28rem; gap:0; border:1px solid #2a80ff; border-radius:999px; background:rgba(0,20,45,.7); box-shadow:0 0 18px rgba(0,109,255,.38); }
.top-nav .brand-mark { width:34px; height:34px; display:grid; place-items:center; padding:0; border-radius:50%; background:#003e9a; border-color:#3486ff; }
.top-nav span:not(.brand-mark) { padding:.52rem 1.05rem; color:#e6efff; font-size:.78rem; line-height:1; }
.top-nav #logout { margin-left:.1rem; padding:.52rem 1.1rem; border-color:#398cff; border-radius:999px; background:#003c99; color:#f5f9ff; font:700 .78rem 'Rajdhani',sans-serif; letter-spacing:.11em; text-transform:uppercase; }
.language-picker { display:block; margin:0 .18rem; }
#language-selector { min-width:56px; padding:.46rem .38rem; border-color:#398cff; border-radius:999px; background:rgba(0,45,116,.88); color:#f5f9ff; font:700 .76rem 'Rajdhani',sans-serif; letter-spacing:.08em; cursor:pointer; }
@media(max-width:800px){.top-nav{justify-content:center;border-radius:14px}.top-nav #logout{width:auto}.top-nav span:not(.brand-mark){display:none}}

/* Equilibrio final: el garaje se ve, pero los datos se leen con claridad. */
body::before { background:linear-gradient(90deg,rgba(1,7,19,.66),rgba(1,7,19,.22) 52%,rgba(1,7,19,.52)),linear-gradient(180deg,rgba(1,7,19,.18),rgba(1,7,19,.5)); }
header { background:linear-gradient(180deg,rgba(2,6,11,.78) 0%,rgba(6,18,27,.44) 72%,transparent 100%); }
aside,.detail,.inventory-panel { background:rgba(1,10,23,.66); box-shadow:inset 0 0 22px rgba(0,88,187,.12),0 0 18px rgba(0,109,255,.32),0 14px 32px rgba(0,0,0,.5); }
.quick-actions article { background:rgba(2,12,27,.64); box-shadow:inset 0 0 15px rgba(0,88,187,.1),0 0 16px rgba(0,109,255,.26),0 10px 24px rgba(0,0,0,.45); }
.report-grid article { background:rgba(1,14,27,.64); }
.client,.vehicle { background:rgba(0,10,25,.64); }
.client:hover,.client.selected { background:rgba(0,39,95,.68); }
.top-nav { background:rgba(0,22,50,.83); box-shadow:0 0 18px rgba(0,109,255,.5),0 8px 24px rgba(0,0,0,.36); }
.top-nav #logout { background:#003c99; }
.toggle-label { display:flex; align-items:center; gap:.55rem; color:#d7e7ff; }
.toggle-label input { width:18px; height:18px; accent-color:var(--wheel-blue); }
.toggle-label input:disabled { cursor:not-allowed; opacity:.6; }

/* Tema 03 · Racing Shadow: negro profundo, rojo de competición y la
   fotografía completa del taller como protagonista. */
:root {
  --wheel-blue:#d9243b;
  --wheel-blue-bright:#ff6071;
  --wheel-blue-soft:#ffc2c9;
  --wheel-glow:rgba(217,36,59,.56);
}
body {
  background-color:#050204;
  background-image:url('assets/gonzo-garage-hero-blueprint-full.png');
  background-position:center top;
  background-size:cover;
  background-repeat:no-repeat;
  background-attachment:fixed;
}
body::before {
  background:
    linear-gradient(90deg,rgba(8,1,3,.52),rgba(8,1,3,.12) 50%,rgba(8,1,3,.46)),
    linear-gradient(180deg,rgba(5,1,2,.18),rgba(5,1,2,.38));
}
header {
  background:linear-gradient(180deg,rgba(8,2,4,.72),rgba(19,3,7,.33) 72%,transparent 100%);
  border-bottom-color:var(--wheel-blue);
}
.top-nav {
  background:rgba(27,3,8,.80);
  border-color:#e0394d;
  box-shadow:0 0 18px rgba(217,36,59,.46),0 8px 24px rgba(0,0,0,.44);
}
.top-nav .brand-mark { background:#821323; border-color:#ff6273; }
.top-nav #logout { background:#8f1728; border-color:#ff6575; }
#language-selector { background:rgba(104,14,28,.90); border-color:#ef5060; }
aside,.detail,.inventory-panel {
  background:rgba(14,3,6,.54);
  border-color:rgba(237,68,88,.90);
  box-shadow:inset 0 0 24px rgba(170,15,37,.16),0 0 19px rgba(217,36,59,.28),0 14px 32px rgba(0,0,0,.56);
  backdrop-filter:blur(3px);
}
.quick-actions article,.report-grid article,.client,.vehicle {
  background:rgba(18,3,7,.52);
  border-color:rgba(236,67,87,.86);
  border-left-color:var(--wheel-blue);
  box-shadow:inset 0 0 16px rgba(184,18,42,.12),0 9px 22px rgba(0,0,0,.42);
  backdrop-filter:blur(2px);
}
.quick-actions article { border-top-color:var(--wheel-blue-bright); }
.client:hover,.client.selected { background:rgba(89,7,20,.67); border-color:#ffacb5; }
button { background:linear-gradient(120deg,#8f1123,var(--wheel-blue)); border-color:#ff7382; }
button.secondary { background:rgba(86,10,22,.66); border-color:#b84251; color:#ffe7ea; }
button.danger { background:#891524; border-color:#ff6b7c; }
dialog { background:#17050a; border-color:var(--wheel-blue); }
input,select,textarea { background:rgba(14,2,6,.82); border-color:#8f3040; }

/* Portada: primero se presenta el taller; el panel de gestión empieza al bajar. */
body {
  background:#050204;
}
body::before { display:none; }
header {
  min-height:100svh;
  padding-bottom:clamp(4rem,11vh,8rem);
  background:
    linear-gradient(180deg,rgba(7,1,3,.26) 0%,rgba(7,1,3,.04) 47%,rgba(7,1,3,.68) 100%),
    url('assets/gonzo-garage-hero-blueprint-full.png') center center / cover no-repeat,
    #050204;
  box-shadow:inset 0 -90px 80px rgba(0,0,0,.30);
}
header h1,
header p {
  position:relative;
  z-index:1;
}
header h1 {
  max-width:1180px;
  width:100%;
  margin-left:auto;
  margin-right:auto;
}
header p {
  max-width:1180px;
  width:100%;
  margin-left:auto;
  margin-right:auto;
}
header p::after {
  content:'↓';
  display:block;
  width:max-content;
  margin-top:1.4rem;
  color:var(--wheel-blue-bright);
  font:700 2rem/1 'Rajdhani',sans-serif;
  text-shadow:0 0 16px var(--wheel-glow);
  animation:gonzo-scroll-cue 1.7s ease-in-out infinite;
}
.quick-actions {
  margin:2.5rem auto 0;
}
main {
  margin-top:1.8rem;
  margin-bottom:3rem;
}
@keyframes gonzo-scroll-cue {
  0%,100% { transform:translateY(0); opacity:.7; }
  50% { transform:translateY(8px); opacity:1; }
}
@media(max-width:800px) {
  header { min-height:92svh; padding-bottom:3.5rem; }
  .quick-actions { margin-top:1.25rem; }
}

/* Firma de acceso: en una placa inferior izquierda para no tapar el logo del
   suelo, el coche ni la moto. */
header {
  align-items:flex-start;
  padding-left:max(2rem,calc((100% - 1180px)/2));
  padding-right:max(2rem,calc((100% - 1180px)/2));
}
header h1 {
  width:auto;
  max-width:min(92vw,620px);
  margin:0;
  padding:.55rem 1rem .08rem;
  background:rgba(12,2,5,.67);
  border:1px solid rgba(255,104,120,.72);
  border-bottom:0;
  border-radius:9px 9px 0 0;
  box-shadow:0 9px 22px rgba(0,0,0,.40),0 0 16px rgba(217,36,59,.16);
}
header p {
  width:auto;
  max-width:min(92vw,620px);
  margin:0;
  padding:.06rem 1rem .62rem;
  background:rgba(12,2,5,.67);
  border:1px solid rgba(255,104,120,.72);
  border-top:0;
  border-radius:0 0 9px 9px;
  box-shadow:0 12px 22px rgba(0,0,0,.40),0 0 16px rgba(217,36,59,.16);
}
header p::after { margin-top:.85rem; }
@media(max-width:800px) {
  header { padding-left:1rem; padding-right:1rem; }
  header h1 { font-size:clamp(1.8rem,9vw,2.45rem); }
}

/* Variante elegida: firma en la esquina inferior derecha. */
header { align-items:flex-end; }
header h1,header p { text-align:right; }
header h1 {
  max-width:calc(100vw - 4rem);
  padding:0;
  border:0;
  border-radius:0;
  background:none;
  box-shadow:none;
  color:#fff7f8;
  font-size:clamp(1.35rem,2.35vw,2.25rem);
  letter-spacing:.07em;
  text-transform:uppercase;
  text-shadow:0 2px 12px #000,0 0 14px rgba(217,36,59,.28);
}
header p {
  max-width:calc(100vw - 4rem);
  margin-top:.2rem;
  padding:0;
  border:0;
  border-radius:0;
  background:none;
  box-shadow:none;
  color:#f5cbd0;
  font-size:clamp(.58rem,.85vw,.76rem);
  letter-spacing:.025em;
  text-shadow:0 2px 8px #000;
}
header p::after { display:none; }

/* Ubicación marcada: esquina inferior derecha de la portada. */
header {
  padding-right:clamp(1.25rem,3.5vw,4.5rem);
  padding-bottom:clamp(1.25rem,3.2vh,2.5rem);
}
@media(max-width:800px) {
  header { align-items:flex-start; padding-bottom:3.5rem; }
  header h1,header p { text-align:left; }
}

/* Carriles LED para enmarcar, sin invadir, el panel de gestión. */
body { position:relative; isolation:isolate; }
body::before,
body::after {
  content:'';
  display:block;
  position:absolute;
  top:calc(100svh + 1.5rem);
  bottom:0;
  left:auto;
  right:auto;
  width:2px;
  z-index:0;
  pointer-events:none;
  opacity:.92;
  background:repeating-linear-gradient(
    to bottom,
    #ff5065 0 18px,
    rgba(255,55,80,.44) 18px 28px,
    transparent 28px 38px
  );
  box-shadow:0 0 5px #ff5065,0 0 18px rgba(217,36,59,.90),0 0 42px rgba(217,36,59,.42);
}
body::before { left:clamp(1rem,3vw,4.25rem); }
body::after { right:clamp(1rem,3vw,4.25rem); }
@media(max-width:800px) { body::before,body::after { display:none; } }

/* Selector de idioma con banderas visibles. */
.language-picker { position:relative; margin:0 .24rem; }
.language-flags { display:flex; align-items:center; gap:.18rem; }
.language-flag {
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  padding:0;
  border:1px solid transparent;
  border-radius:50%;
  background:transparent;
  box-shadow:none;
  font-size:1rem;
  line-height:1;
  filter:saturate(.76) brightness(.88);
}
.language-flag:hover { transform:translateY(-1px) scale(1.08); background:rgba(217,36,59,.20); box-shadow:0 0 10px rgba(255,80,101,.45); }
.language-flag[aria-pressed="true"] { border-color:#ff7c8a; background:rgba(217,36,59,.28); box-shadow:0 0 11px rgba(255,80,101,.62); filter:saturate(1.15) brightness(1.12); }
#language-selector { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }

/* Los módulos se abren solo al elegirlos desde los accesos rápidos. */
.quick-actions article[role="button"]:focus-visible { outline:2px solid #ffd0d6; outline-offset:3px; }
.quick-actions article.active { border-color:#ffb0ba; background:rgba(80,5,18,.72); box-shadow:0 0 24px rgba(255,67,89,.55),inset 0 0 18px rgba(217,36,59,.18); }

/* Módulos principales accesibles desde la cápsula superior. */
.top-nav .nav-module {
  padding:.52rem .62rem;
  border:0;
  border-radius:999px;
  background:transparent;
  box-shadow:none;
  color:#ffe8eb;
  font:700 .67rem/1 'Rajdhani',sans-serif;
  letter-spacing:.075em;
  white-space:nowrap;
}
.top-nav .nav-module:hover { transform:none; background:rgba(217,36,59,.20); box-shadow:none; }
.top-nav .nav-module.active { color:#fff; background:rgba(217,36,59,.40); box-shadow:inset 0 0 0 1px rgba(255,131,145,.7),0 0 12px rgba(255,67,89,.42); }
@media(max-width:1180px) {
  .top-nav { width:calc(100vw - 2rem); flex-wrap:wrap; justify-content:center; border-radius:18px; }
  .top-nav .nav-module { padding:.44rem .48rem; font-size:.61rem; }
}
@media(max-width:620px) {
  .top-nav { top:.55rem; gap:.05rem; padding:.3rem; }
  .top-nav .nav-module { padding:.38rem .42rem; font-size:.55rem; letter-spacing:.045em; }
  .language-flag { width:24px; height:24px; font-size:.84rem; }
  .top-nav .brand-mark { width:28px; height:28px; font-size:.64rem; }
}

/* Área de trabajo flotante: los módulos se muestran sobre la portada. */
.quick-actions { display:none; }
body.workspace-open { overflow:hidden; }
/* Al cambiar de módulo, el anterior debe desaparecer por completo. */
body.workspace-open #customer-workspace[hidden],
body.workspace-open .inventory-panel[hidden] { display:none !important; }
/* Fuera del modo flotante no queda ningún módulo dentro de la página. */
body:not(.workspace-open) #customer-workspace,
body:not(.workspace-open) #inventory-panel,
body:not(.workspace-open) #agenda-panel,
body:not(.workspace-open) #reports-panel,
body:not(.workspace-open) #invoices-panel,
body:not(.workspace-open) #users-panel { display:none !important; }
body.workspace-open #customer-workspace,
body.workspace-open .inventory-panel {
  position:fixed;
  z-index:8;
  top:clamp(4.8rem,10vh,7.5rem);
  left:50%;
  width:min(1180px,calc(100vw - 2rem));
  max-height:calc(100svh - clamp(6.2rem,13vh,9rem));
  margin:0;
  overflow:auto;
  transform:translateX(-50%);
  background:rgba(14,3,6,.86);
  border-color:rgba(255,109,125,.94);
  box-shadow:0 22px 70px rgba(0,0,0,.70),0 0 32px rgba(217,36,59,.42),inset 0 0 28px rgba(170,15,37,.15);
  backdrop-filter:blur(10px);
}
body.workspace-open #customer-workspace { padding:1.25rem; }
.workspace-close {
  position:fixed;
  z-index:9;
  top:clamp(4.1rem,8.5vh,6.4rem);
  right:max(1rem,calc((100vw - 1180px)/2));
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  padding:0;
  border-radius:50%;
  background:#9b1528;
  border-color:#ff92a0;
  color:#fff;
  font:700 1.55rem/1 system-ui,sans-serif;
  box-shadow:0 0 18px rgba(255,65,88,.65);
}
#close-workspace[hidden] { display:none !important; }
@media(max-width:700px) {
  body.workspace-open #customer-workspace,
  body.workspace-open .inventory-panel { top:5.7rem; width:calc(100vw - 1rem); max-height:calc(100svh - 6.5rem); }
  .workspace-close { top:4.7rem; right:.8rem; }
}

/* Historial de presupuestos: un activo visible y el resto agrupado. */
#budgets { display:grid; gap:.8rem; }
.budget-active-section { display:grid; gap:.35rem; }
.budget-active-section .eyebrow { margin:0; color:#ffb1bb; }
.budget-card,
.budget-history-group {
  border:1px solid rgba(255,89,108,.72);
  border-radius:9px;
  background:rgba(28,3,8,.74);
  box-shadow:inset 0 0 22px rgba(191,11,37,.10);
}
.budget-card-active { padding:1rem; border-left:4px solid #ff536b; box-shadow:0 0 22px rgba(217,36,59,.22),inset 0 0 22px rgba(191,11,37,.12); }
.budget-card-summary { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.budget-card-summary h4 { margin:.18rem 0; color:#fff; }
.budget-card-summary p { margin:0; color:#c9a9af; font-size:.84rem; }
.budget-code { color:#ffbac3; font:700 .72rem/1 'Rajdhani',sans-serif; letter-spacing:.1em; }
.budget-card-amount { display:grid; justify-items:end; gap:.3rem; text-align:right; white-space:nowrap; }
.budget-card-amount strong { color:#fff; font:700 1.15rem 'Rajdhani',sans-serif; }
.budget-status { padding:.18rem .46rem; border-radius:999px; font:700 .7rem 'Rajdhani',sans-serif; letter-spacing:.06em; text-transform:uppercase; }
.status-pendiente { color:#ffe0a2; background:rgba(196,127,18,.22); border:1px solid rgba(255,193,65,.62); }
.status-aceptado { color:#b9ffd7; background:rgba(35,155,86,.22); border:1px solid rgba(95,233,143,.62); }
.status-rechazado { color:#ffd0d5; background:rgba(166,36,52,.28); border:1px solid rgba(255,101,117,.58); }
.budget-card-details { display:grid; gap:.65rem; margin-top:.85rem; padding-top:.8rem; border-top:1px solid rgba(255,109,125,.28); }
.budget-card-details .vehicle-actions { justify-content:flex-end; }
.budget-line-list { display:grid; gap:.28rem; margin:0; padding-left:1.2rem; color:#e9d7da; }
.budget-line-list li { display:flex; justify-content:space-between; gap:1rem; }
.budget-line-list span,.budget-totals,.budget-draft { color:#c9a9af; font-size:.86rem; }
.budget-line-controls { display:flex; align-items:center; justify-content:flex-end; gap:.55rem; white-space:nowrap; }
.budget-line-controls .budget-line-delete { min-width:1.7rem; min-height:1.7rem; padding:.1rem .4rem; line-height:1; }
.budget-totals,.budget-draft { margin:0; }
.budget-history-group { overflow:hidden; }
.budget-history-group > summary { display:flex; align-items:center; justify-content:space-between; padding:.75rem .9rem; cursor:pointer; color:#f8e9ec; font:700 .92rem 'Rajdhani',sans-serif; letter-spacing:.04em; list-style:none; }
.budget-history-group > summary::-webkit-details-marker,
.budget-card-compact > summary::-webkit-details-marker { display:none; }
.budget-history-group > summary strong { min-width:1.45rem; padding:.1rem .4rem; border-radius:999px; text-align:center; background:#8c1728; color:#fff; }
.budget-history-group[open] > summary { border-bottom:1px solid rgba(255,109,125,.35); background:rgba(255,58,81,.08); }
.budget-history-records { display:grid; gap:.55rem; padding:.55rem; }
.budget-card-compact { overflow:hidden; }
.budget-card-compact > summary { cursor:pointer; list-style:none; padding:.75rem .85rem; }
.budget-card-compact > summary:hover { background:rgba(255,58,81,.10); }
.budget-card-compact[open] > summary { border-bottom:1px solid rgba(255,109,125,.25); }
.budget-card-compact .budget-card-details { margin:.75rem .85rem .85rem; }
@media(max-width:620px) {
  .budget-card-summary { align-items:flex-start; flex-direction:column; }
  .budget-card-amount { justify-items:start; text-align:left; }
  .budget-line-list li { align-items:flex-start; flex-direction:column; gap:.1rem; }
  .budget-card-details .vehicle-actions { justify-content:flex-start; flex-wrap:wrap; }
}

/* CÃ¡psula superior mÃ¡s legible en pantallas de escritorio. */
@media(min-width:1181px) {
  .top-nav { padding:.46rem .56rem; }
  .top-nav .brand-mark { width:48px; height:48px; font-size:.84rem; }
  .top-nav .nav-module { padding:.73rem .92rem; font-size:.94rem; letter-spacing:.09em; }
  .language-flag { width:42px; height:42px; font-size:1.22rem; }
  .top-nav #logout { padding:.73rem 1.34rem; font-size:.94rem; }
}

/* Calendarios claros y con icono visible sobre el tema oscuro. */
input[type="date"],
input[type="datetime-local"] { color-scheme:light; }
input[type="date"]::-webkit-calendar-picker-indicator,
input[type="datetime-local"]::-webkit-calendar-picker-indicator {
  cursor:pointer;
  filter:invert(1) brightness(1.7);
  opacity:.95;
}

/* Nombre completo de la marca dentro de la cÃ¡psula de navegaciÃ³n. */
.top-nav .brand-mark {
  width:auto;
  min-width:126px;
  height:34px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0 .65rem;
  white-space:nowrap;
  color:#fff;
  font:800 .74rem/1 'Rajdhani',sans-serif;
  letter-spacing:.07em;
}
@media(min-width:1181px) {
  .top-nav .brand-mark { min-width:164px; height:48px; padding:0 .9rem; font-size:.96rem; }
}
@media(max-width:620px) {
  .top-nav .brand-mark { min-width:98px; height:28px; padding:0 .42rem; font-size:.58rem; letter-spacing:.04em; }
}

.top-nav .brand-mark { cursor:pointer; transition:transform .18s,box-shadow .18s,background .18s; }
.top-nav .brand-mark:hover { transform:translateY(-1px); background:#a81b2f; box-shadow:0 0 20px rgba(255,68,91,.72); }
.top-nav .brand-mark:focus-visible { outline:2px solid #fff; outline-offset:3px; }

/* Salida con la misma cÃ¡psula ovalada de la marca. */
.top-nav #logout {
  min-width:126px;
  min-height:34px;
  border:1px solid #ff6273;
  border-radius:999px;
  background:linear-gradient(135deg,#a81b2f,#7f1122);
  box-shadow:0 0 14px rgba(255,68,91,.48),inset 0 0 0 1px rgba(255,205,211,.12);
  font:800 .74rem/1 'Rajdhani',sans-serif;
  letter-spacing:.07em;
  text-transform:none;
}
.top-nav #logout:hover { background:linear-gradient(135deg,#bd253b,#90142a); box-shadow:0 0 21px rgba(255,68,91,.75); }
@media(min-width:1181px) {
  .top-nav #logout { min-width:164px; min-height:48px; border-width:2px; padding:0 .9rem; font-size:.96rem; }
}
@media(max-width:620px) {
  .top-nav #logout { min-width:98px; min-height:28px; padding:0 .42rem; font-size:.58rem; letter-spacing:.04em; }
}

/* Selector de idioma desplegable, inspirado en el panel de referencia. */
.language-picker.language-menu-ready { position:relative; margin:0 .38rem; }
.language-picker.language-menu-ready .language-flags { display:none; }
.language-menu-toggle {
  min-width:126px;
  min-height:34px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.55rem;
  padding:0 .65rem;
  border:1px solid #ff6273;
  border-radius:999px;
  background:linear-gradient(135deg,#a81b2f,#7f1122);
  color:#fff;
  font:800 .74rem/1 'Rajdhani',sans-serif;
  letter-spacing:.07em;
  box-shadow:0 0 14px rgba(255,68,91,.48),inset 0 0 0 1px rgba(255,205,211,.12);
}
.language-menu-toggle:hover { transform:translateY(-1px); background:linear-gradient(135deg,#bd253b,#90142a); box-shadow:0 0 21px rgba(255,68,91,.75); }
.language-menu-arrow { color:#ffb0ba; font-size:1rem; transition:transform .18s; }
.language-picker.open .language-menu-arrow { transform:rotate(180deg); }
.language-menu {
  position:absolute;
  z-index:30;
  top:calc(100% + .55rem);
  right:0;
  width:176px;
  display:grid;
  gap:.18rem;
  padding:.42rem;
  border:1px solid rgba(255,102,121,.62);
  border-radius:10px;
  background:rgba(22,4,9,.98);
  box-shadow:0 16px 34px rgba(0,0,0,.58),0 0 22px rgba(217,36,59,.26);
  opacity:0;
  visibility:hidden;
  transform:translateY(-5px);
  transition:opacity .16s,transform .16s,visibility .16s;
  pointer-events:none;
}
.language-picker.open .language-menu { opacity:1; visibility:visible; transform:translateY(0); pointer-events:auto; }
.language-menu-option {
  width:100%;
  display:flex;
  align-items:center;
  gap:.65rem;
  padding:.62rem .68rem;
  border:1px solid transparent;
  border-radius:7px;
  background:transparent;
  color:#f8e7e9;
  box-shadow:none;
  text-align:left;
  font:700 .82rem/1 'Rajdhani',sans-serif;
  letter-spacing:.03em;
}
.language-menu-option:hover,
.language-menu-option[aria-pressed="true"] { transform:none; border-color:rgba(255,110,128,.5); background:rgba(217,36,59,.20); box-shadow:none; }
.language-menu-option span { font-size:1.05rem; }
@media(min-width:1181px) {
  .language-menu-toggle { min-width:164px; min-height:48px; padding:0 .9rem; border-width:2px; font-size:.96rem; }
  .language-menu { width:204px; padding:.5rem; }
  .language-menu-option { padding:.72rem .8rem; font-size:.96rem; }
}
@media(max-width:620px) {
  .language-picker.language-menu-ready { margin:0 .12rem; }
  .language-menu-toggle { min-width:98px; min-height:28px; padding:0 .42rem; font-size:.58rem; letter-spacing:.04em; gap:.25rem; }
  .language-menu { right:-2rem; width:150px; }
}

/* Banderas CSS: no dependen de que el sistema tenga fuente de emojis. */
.language-menu-current { display:flex; align-items:center; gap:.48rem; }
.country-flag {
  position:relative;
  width:20px;
  height:13px;
  display:inline-block;
  flex:0 0 20px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.26);
  border-radius:2px;
  box-shadow:0 1px 3px rgba(0,0,0,.55);
}
.country-flag-es { background:linear-gradient(to bottom,#aa151b 0 25%,#f1bf00 25% 75%,#aa151b 75% 100%); }
.country-flag-de { background:linear-gradient(to bottom,#171717 0 33%,#d7242a 33% 66%,#f7d04a 66% 100%); }
.country-flag-en { background:#012169; }
.country-flag-en::before,
.country-flag-en::after { content:''; position:absolute; inset:0; }
.country-flag-en::before { background:linear-gradient(90deg,transparent 35%,#fff 35% 65%,transparent 65%),linear-gradient(transparent 31%,#fff 31% 69%,transparent 69%); }
.country-flag-en::after { background:linear-gradient(90deg,transparent 43%,#c8102e 43% 57%,transparent 57%),linear-gradient(transparent 39%,#c8102e 39% 61%,transparent 61%); }
.country-flag-ro { background:linear-gradient(90deg,#002b7f 0 33%,#fcd116 33% 66%,#ce1126 66% 100%); }
.country-flag-hr { background:linear-gradient(to bottom,#ff0000 0 33%,#fff 33% 66%,#171796 66% 100%); }
.language-menu-option .country-flag { margin-right:.02rem; }
.language-menu-option span:not(.country-flag) { font-size:inherit; }

/* Proveedores y compras: dos columnas legibles dentro de la zona de trabajo. */
.suppliers-panel { max-width:1280px; }
.panel-help { margin:.2rem 0 0; color:var(--muted); }
.supplier-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.supplier-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.65rem; padding:1rem; border:1px solid rgba(255,82,105,.5); border-radius:10px; background:rgba(25,2,8,.54); }
.supplier-form h3,.supplier-form textarea,.supplier-form button { grid-column:1 / -1; }
.supplier-form h3 { margin:0; }
.supplier-form textarea { resize:vertical; }
.supplier-lists { margin-top:1rem; }
.supplier-lists > div { min-width:0; }
.supplier-lists h3 { margin:.25rem 0 .65rem; }
.purchase-lines { grid-column:1 / -1; display:grid; gap:.55rem; }
.purchase-line { display:grid; grid-template-columns:minmax(0,1fr) 74px 118px 36px; gap:.45rem; align-items:center; }
.purchase-line .remove-purchase-line { padding:.35rem; min-width:0; min-height:0; line-height:1; }
@media(max-width:800px) { .supplier-grid { grid-template-columns:1fr; } .supplier-form { grid-template-columns:1fr; } }
@media(max-width:520px) { .purchase-line { grid-template-columns:1fr 64px 94px 32px; gap:.3rem; } }

/* Recepción del vehículo y galería de fotos de la orden. */
.reception-grid { display:grid; grid-template-columns:minmax(220px,.9fr) minmax(260px,1.1fr); gap:1rem; margin:1rem 0; }
.reception-grid fieldset { min-width:0; margin:0; padding:.85rem; border:1px solid rgba(255,92,113,.48); border-radius:9px; }
.reception-grid legend { padding:0 .35rem; color:#ffdfe4; font-weight:800; }
.checklist-list { display:grid; gap:.6rem; }
.checklist-list label { display:flex; gap:.55rem; align-items:center; font-size:.92rem; }
.checklist-list input { width:auto; min-width:auto; accent-color:#ef3150; }
.reception-grid > div { display:grid; align-content:start; gap:.7rem; }
.photo-gallery { display:grid; grid-template-columns:repeat(auto-fill,minmax(130px,1fr)); gap:.75rem; margin-top:.8rem; }
.photo-gallery figure { position:relative; margin:0; overflow:hidden; min-height:106px; border:1px solid rgba(255,96,116,.5); border-radius:8px; background:#080408; }
.photo-gallery img { width:100%; height:130px; display:block; object-fit:cover; }
.photo-gallery button { position:absolute; right:.38rem; bottom:.38rem; padding:.35rem .5rem; font-size:.72rem; }
.order-parts { margin-top:.35rem; padding-top:.85rem; border-top:1px solid rgba(255,92,113,.28); }
.order-parts h3 { margin:0 0 .55rem; font-size:1rem; }
.order-parts-add { display:grid; grid-template-columns:minmax(0,1fr) 70px auto; gap:.45rem; }
.order-parts .vehicle { padding:.5rem .65rem; margin-top:.55rem; }
.order-parts .vehicle h4 { font-size:.82rem; }
.order-parts .vehicle p { margin:.1rem 0 0; font-size:.78rem; }
.vehicle-history-card { display:flex; justify-content:space-between; gap:1rem; margin:1.1rem 0; padding:1rem; border:1px solid rgba(255,92,113,.48); border-left:3px solid var(--wheel-blue); border-radius:9px; background:rgba(25,2,8,.56); box-shadow:inset 0 0 18px rgba(217,36,59,.11); }
.vehicle-history-card h3,.vehicle-history-card p { margin:.12rem 0; }
.vehicle-history-card .review-forecast { min-width:230px; align-self:center; padding:.7rem .85rem; border:1px solid rgba(255,155,166,.36); border-radius:7px; background:rgba(85,8,21,.30); }
.vehicle-history-card.review-due { border-color:#ffb23d; border-left-color:#ffb23d; box-shadow:0 0 18px rgba(255,178,61,.24),inset 0 0 18px rgba(255,178,61,.10); }
.vehicle-history-card.review-due .review-forecast { border-color:#ffb23d; color:#ffe0a2; }
@media(max-width:720px) { .vehicle-history-card { display:grid; } .vehicle-history-card .review-forecast { min-width:0; } }
.appointment-reminders { display:grid; gap:.6rem; margin:1rem 0 1.35rem; padding:1rem; border:1px solid rgba(255,178,61,.55); border-left:3px solid #ffb23d; border-radius:9px; background:rgba(65,32,2,.34); box-shadow:inset 0 0 18px rgba(255,178,61,.08); }
.appointment-reminders h3,.appointment-reminders p { margin:0; }
.appointment-reminders .reminder-item { border-color:rgba(255,188,85,.62); background:rgba(54,18,3,.34); }
.appointment-reminders .empty-list { padding:.3rem 0; text-align:left; }

/* Agenda operativa: lectura rápida por día, estado y recepción. */
.agenda-panel { width:min(1320px,calc(100vw - 3rem)); max-width:1320px; }
.agenda-heading { align-items:center; }
.agenda-live-label { padding:.38rem .7rem; border:1px solid rgba(72,157,255,.55); border-radius:999px; background:rgba(4,43,91,.55); color:#b7d9ff; font-size:.72rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.agenda-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.75rem; margin:1rem 0; }
.agenda-summary article { display:grid; gap:.1rem; min-height:76px; align-content:center; padding:.8rem 1rem; border:1px solid rgba(255,82,105,.45); border-radius:9px; background:linear-gradient(145deg,rgba(58,5,15,.68),rgba(11,4,8,.82)); box-shadow:inset 0 0 22px rgba(208,24,51,.08); }
.agenda-summary strong { color:#ff667d; font:800 1.65rem 'Rajdhani',sans-serif; line-height:1; }
.agenda-summary span { color:#e6cfd3; font-size:.78rem; }
.agenda-form { display:grid; grid-template-columns:170px minmax(190px,.85fr) minmax(210px,.95fr) minmax(250px,1.25fr) auto; gap:.7rem; align-items:end; margin:0 0 1rem; padding:1rem; border:1px solid rgba(255,82,105,.52); border-radius:10px; background:linear-gradient(135deg,rgba(42,3,11,.84),rgba(12,4,8,.88)); box-shadow:inset 0 0 28px rgba(207,27,52,.08); }
.agenda-form-heading { grid-column:1 / -1; display:flex; align-items:center; justify-content:space-between; gap:1rem; padding-bottom:.25rem; }
.agenda-form-heading h3,.agenda-form-heading p { margin:0; }
.agenda-form-heading p { color:var(--muted); font-size:.78rem; }
.agenda-form label,.agenda-toolbar label { display:grid; gap:.3rem; min-width:0; color:#efdce0; font-size:.72rem; font-weight:800; }
.agenda-form input,.agenda-form select,.agenda-toolbar input,.agenda-toolbar select { width:100%; min-width:0; }
.agenda-form > button:last-child { min-height:42px; white-space:nowrap; }
.agenda-toolbar { display:grid; grid-template-columns:minmax(260px,1.5fr) minmax(150px,.65fr) minmax(150px,.65fr); gap:.7rem; align-items:end; margin:1rem 0 1.1rem; padding:.8rem; border-top:1px solid rgba(255,82,105,.25); border-bottom:1px solid rgba(255,82,105,.25); background:rgba(8,2,5,.32); }
.appointment-timeline { display:grid; gap:1rem; }
.appointment-day { display:grid; gap:.55rem; }
.appointment-day > h3 { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin:0; padding:.25rem .15rem .45rem; border-bottom:1px solid rgba(72,157,255,.38); color:#dcecff; text-transform:capitalize; }
.appointment-day > h3 small { color:#82b9f7; font-size:.7rem; font-weight:700; text-transform:none; }
.appointment-day-list { display:grid; gap:.55rem; }
.appointment-card { display:grid; grid-template-columns:84px minmax(260px,1fr) minmax(220px,auto); gap:.9rem; align-items:center; padding:.8rem .9rem; border:1px solid rgba(255,82,105,.42); border-left:3px solid #e53452; border-radius:9px; background:linear-gradient(120deg,rgba(42,4,11,.78),rgba(10,5,8,.86)); box-shadow:inset 0 0 20px rgba(201,26,48,.07); }
.appointment-card > time { display:grid; justify-items:center; gap:.05rem; padding:.48rem .35rem; border:1px solid rgba(72,157,255,.4); border-radius:7px; background:rgba(2,27,61,.54); color:#d9ebff; }
.appointment-card > time strong { font:800 1.28rem 'Rajdhani',sans-serif; line-height:1; }
.appointment-card > time span { color:#8ebdec; font-size:.67rem; text-transform:uppercase; }
.appointment-main { min-width:0; }
.appointment-title { display:flex; align-items:center; gap:.55rem; flex-wrap:wrap; }
.appointment-title h4 { margin:0; color:#fff; font-size:.98rem; overflow-wrap:anywhere; }
.appointment-status-badge { display:inline-flex; padding:.18rem .48rem; border:1px solid currentColor; border-radius:999px; font-size:.64rem; font-weight:800; line-height:1; text-transform:uppercase; }
.appointment-status-badge.status-programada { color:#83bfff; background:rgba(17,83,151,.28); }
.appointment-status-badge.status-confirmada { color:#74e3aa; background:rgba(18,109,67,.28); }
.appointment-status-badge.status-completada { color:#c5b8ca; background:rgba(91,75,98,.3); }
.appointment-status-badge.status-cancelada { color:#ff8b98; background:rgba(132,20,38,.3); }
.appointment-status-confirmada { border-left-color:#36c881; }
.appointment-status-completada { border-left-color:#8a7d91; opacity:.82; }
.appointment-status-cancelada { border-left-color:#c13a50; opacity:.68; }
.appointment-meta { display:flex; flex-wrap:wrap; gap:.25rem .75rem; margin-top:.35rem; color:#cdbfc3; font-size:.76rem; }
.appointment-notes { display:flex; gap:.35rem; flex-wrap:wrap; margin-top:.4rem; }
.appointment-note { padding:.16rem .42rem; border:1px solid rgba(255,178,61,.48); border-radius:4px; background:rgba(105,57,0,.25); color:#ffd493; font-size:.65rem; font-weight:700; }
.appointment-order-note { border-color:rgba(65,214,139,.45); background:rgba(11,92,57,.26); color:#9df1c5; }
.appointment-actions { justify-content:flex-end; }
.appointment-actions button { min-height:32px; padding:.4rem .62rem; font-size:.7rem; }
.appointment-confirm { border-color:#33bd7a; color:#a6efc9; }
.appointment-create-order,.appointment-view-order { border-color:#318cf2; color:#b8d9ff; }
.agenda-empty { padding:2.2rem 1rem; border:1px dashed rgba(255,82,105,.4); border-radius:9px; text-align:center; background:rgba(20,3,8,.46); }
.agenda-empty strong { color:#fff; }
.agenda-empty p { margin:.25rem 0 0; color:var(--muted); }
@media(max-width:1080px) {
  .agenda-form { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .agenda-form-heading,.agenda-form > button:last-child { grid-column:1 / -1; }
  .agenda-form > button:last-child { justify-self:end; }
  .appointment-card { grid-template-columns:76px minmax(220px,1fr); }
  .appointment-actions { grid-column:2; justify-content:flex-start; }
}
@media(max-width:700px) {
  .agenda-panel { width:calc(100vw - 1rem); }
  .agenda-live-label { display:none; }
  .agenda-summary { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.5rem; }
  .agenda-summary article { min-height:64px; padding:.65rem .75rem; }
  .agenda-form,.agenda-toolbar { grid-template-columns:1fr; }
  .agenda-form-heading,.agenda-form > button:last-child { grid-column:auto; }
  .agenda-form-heading { align-items:flex-start; }
  .agenda-form > button:last-child { justify-self:stretch; }
  .appointment-card { grid-template-columns:68px minmax(0,1fr); gap:.65rem; padding:.7rem; }
  .appointment-actions { grid-column:1 / -1; }
  .appointment-actions button { flex:1 1 auto; }
  .appointment-meta { display:grid; gap:.2rem; }
}
@media(max-width:720px) { .reception-grid { grid-template-columns:1fr; } }

/* La recepción necesita más espacio que los diálogos de alta rápida. */
#reception-dialog {
  width:min(960px,calc(100vw - 3rem));
  max-width:960px;
  max-height:calc(100svh - 3rem);
  padding:1.45rem 1.65rem;
  overflow-x:hidden;
  overflow-y:auto;
}
#reception-dialog form { min-width:0; }
#reception-dialog .reception-grid { grid-template-columns:minmax(270px,1fr) minmax(360px,1.35fr); gap:1.35rem; }
#reception-dialog textarea { min-height:150px; }
@media(max-width:720px) {
  #reception-dialog { width:calc(100vw - 1.25rem); max-height:calc(100svh - 1.25rem); padding:1rem; }
  #reception-dialog .reception-grid { grid-template-columns:1fr; }
}

/* Módulos operativos v1.1: informes, mantenimiento, firma y auditoría. */
.report-actions { display:flex; align-items:center; justify-content:flex-end; gap:.5rem; flex-wrap:wrap; }
.report-actions input { width:auto; }
.report-section { margin-top:1.5rem; padding-top:1rem; border-top:1px solid rgba(255,92,113,.34); }
.report-table,.audit-list { display:grid; gap:.45rem; }
.report-row { display:grid; grid-template-columns:minmax(220px,1.6fr) repeat(3,minmax(110px,.7fr)); gap:.75rem; align-items:center; padding:.7rem .8rem; border:1px solid rgba(255,92,113,.38); border-radius:7px; background:rgba(33,4,9,.48); }
.report-row-head { color:#ffc2c9; font-weight:800; }
.report-row span { display:grid; gap:.12rem; }
.report-row small { color:var(--muted); }
.positive-value { color:#85e9b0; }
.negative-value { color:#ff8790; }
.audit-list article { display:grid; grid-template-columns:160px minmax(220px,1fr) 180px; gap:.75rem; padding:.6rem .75rem; border-bottom:1px solid rgba(255,92,113,.25); }
.audit-list time { color:var(--muted); text-align:right; }
.vehicle-maintenance { margin:1rem 0 1.4rem; padding:1rem; border:1px solid rgba(255,178,61,.55); border-radius:9px; background:rgba(48,21,2,.28); }
.maintenance-form { display:grid; grid-template-columns:150px minmax(190px,1fr) 150px 160px auto; gap:.5rem; margin-bottom:.75rem; }
.maintenance-completed { opacity:.66; }
.maintenance-overdue { border-color:#ffb23d; border-left-color:#ffb23d; }
.signature-panel { display:grid; gap:.65rem; margin-top:1rem; padding:1rem; border:1px solid rgba(255,92,113,.42); border-radius:9px; }
#signature-canvas,.signature-canvas { width:100%; height:180px; touch-action:none; border:1px solid #8f3040; border-radius:6px; background:#fff; cursor:crosshair; }
#signature-canvas.signature-locked,.signature-canvas.signature-locked { opacity:.55; cursor:not-allowed; background:#ddd; }
.signature-panel > button { justify-self:start; }
.budget-signature-dialog { width:min(720px,calc(100vw - 2rem)); max-width:720px; max-height:calc(100svh - 2rem); }
.budget-signature-dialog form { min-width:0; }
.budget-signature-dialog #clear-budget-signature { justify-self:start; }
.budget-signature-summary { display:grid; grid-template-columns:1fr auto; gap:.2rem 1rem; padding:.8rem 1rem; border:1px solid rgba(72,157,255,.48); border-radius:8px; background:rgba(3,20,42,.6); }
.budget-signature-summary span { color:#a9d2f8; font-weight:800; }
.budget-signature-summary strong { color:#fff; font:700 1.35rem 'Rajdhani',sans-serif; }
.budget-signature-summary small { grid-column:1/-1; color:var(--muted); }
.budget-signature-consent { display:flex; grid-template-columns:none; align-items:flex-start; gap:.65rem; padding:.8rem; border:1px solid rgba(255,190,62,.6); border-radius:7px; background:rgba(91,54,0,.3); color:#ffe1a1; line-height:1.4; }
.budget-signature-consent input { flex:0 0 auto; width:auto; margin-top:.18rem; }
.budget-signed { display:grid; gap:.15rem; padding:.7rem .8rem; border:1px solid rgba(61,215,142,.55); border-radius:7px; background:rgba(9,74,48,.32); color:#caffdf; }
.budget-signed strong { color:#76efad; }
.budget-signed time,.budget-signed small { color:#a5cfb7; }
.diagnostic-import-form { display:grid; grid-template-columns:minmax(220px,1fr) minmax(220px,1fr) auto; align-items:end; gap:.7rem; margin:1rem 0; padding:1rem; border:1px dashed rgba(255,96,113,.45); border-radius:8px; }
.diagnostic-import-form h3,.diagnostic-import-form p { margin:.1rem 0; }
@media(max-width:850px) {
  .report-row { grid-template-columns:1fr 1fr; }
  .report-row-head { display:none; }
  .maintenance-form,.diagnostic-import-form { grid-template-columns:1fr 1fr; }
  .audit-list article { grid-template-columns:1fr; }
  .audit-list time { text-align:left; }
}
@media(max-width:540px) { .maintenance-form,.diagnostic-import-form { grid-template-columns:1fr; } }
@media(max-width:540px) { .budget-signature-dialog { width:calc(100vw - 1rem); padding:1rem; } .budget-signature-summary { grid-template-columns:1fr; } .budget-signature-summary small { grid-column:auto; } }

/* Historial y movimientos de inventario: operaciones trazables, sin editar el stock a ciegas. */
#stock-movement-dialog {
  width:min(760px,calc(100vw - 2rem));
  max-width:760px;
  max-height:calc(100svh - 2rem);
  overflow:auto;
}
#stock-movement-dialog .modal-heading { align-items:flex-start; }
#stock-movement-dialog .modal-heading h2 { margin:.1rem 0; }
#stock-movement-dialog .panel-help { margin:.2rem 0 0; }
.stock-movement-history { border-top:1px solid rgba(255,92,113,.28); padding-top:1rem; }
.stock-movement-history h3 { margin:0 0 .7rem; }
#stock-movement-list { display:grid; gap:.55rem; max-height:250px; overflow:auto; padding-right:.15rem; }
#stock-movement-list .empty-list { padding:.6rem 0; }
.stock-movement { padding:.7rem .8rem; }
.stock-movement h4 { font-size:.92rem; }
.stock-movement small { color:var(--muted); }
.stock-movement strong { min-width:45px; text-align:right; font-size:1.1rem; }
.stock-movement-entrada { border-left-color:#44c979; }
.stock-movement-salida { border-left-color:#ffaf55; }
.stock-movement-ajuste { border-left-color:var(--wheel-blue-bright); }
@media(max-width:620px) {
  #stock-movement-dialog { width:calc(100vw - 1rem); max-height:calc(100svh - 1rem); padding:1rem; }
  #stock-movement-dialog .form-grid { grid-template-columns:1fr; gap:.65rem; }
}

/* Alertas de reposición: una compra se prepara, pero nunca se confirma automáticamente. */
.low-stock-alerts {
  display:grid;
  gap:.75rem;
  margin:1rem 0;
  padding:1rem;
  border:1px solid rgba(255,178,61,.72);
  border-left:3px solid #ffb23d;
  border-radius:9px;
  background:rgba(63,27,2,.44);
  box-shadow:inset 0 0 18px rgba(255,178,61,.1),0 0 16px rgba(255,142,29,.12);
}
.low-stock-alerts h3,.low-stock-alerts p { margin:0; }
.low-stock-alerts p { color:#ffe1a5; font-size:.9rem; }
.low-stock-alert-list { display:grid; gap:.55rem; }
.low-stock-alert-item { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.7rem .8rem; border:1px solid rgba(255,192,97,.56); border-radius:7px; background:rgba(42,13,3,.46); }
.low-stock-alert-item div { display:grid; gap:.15rem; }
.low-stock-alert-item span { color:#ffd9a0; font-size:.85rem; }
.low-stock-alert-item button { white-space:nowrap; }
.purchase-draft-notice { grid-column:1 / -1; min-height:1.2rem; margin:0; color:#ffe0a1; font-size:.86rem; }
@media(max-width:620px) { .low-stock-alert-item { align-items:flex-start; flex-direction:column; } }

/* Ficha de empresa: datos fiscales visibles y editables solo por administración. */
.company-panel { max-width:980px; }
.company-form { max-width:900px; }
.company-form .company-wide { grid-column:1 / -1; }
.company-form textarea { resize:vertical; }
.system-health { margin-top:1.35rem; padding-top:1.15rem; border-top:1px solid rgba(38,157,255,.35); }
.system-health-heading { align-items:center; }
.system-health-heading h3 { margin:0 0 .25rem; }
.system-health-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.75rem; margin-top:.85rem; }
.system-health-card { display:grid; gap:.22rem; min-height:104px; padding:.85rem; border:1px solid rgba(49,164,255,.42); border-left:4px solid #238ee8; border-radius:8px; background:rgba(2,13,24,.78); }
.system-health-card span { color:#a9c7dc; font-size:.72rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; }
.system-health-card strong { color:#e8f7ff; font-size:1rem; }
.system-health-card small { color:#9db2c2; line-height:1.25; }
.system-health-ok { border-left-color:#35d58b; }
.system-health-warning { border-left-color:#ffb83d; }
.system-health-error { border-left-color:#ff5269; }
.system-health .loading-state { grid-column:1 / -1; }
.success-message { color:#85e9b0; }
@media(max-width:700px) { .company-form .company-wide { grid-column:auto; } .system-health-grid { grid-template-columns:1fr; } }

/* Logo corporativo vectorial: nítido en cualquier pantalla y sin ocultar el taller. */
header .hero-identity {
  position:relative;
  z-index:2;
  width:min(470px,34vw);
  max-width:calc(100vw - 4rem);
  margin:0;
  display:grid;
  justify-items:end;
  gap:.2rem;
}
header .hero-identity img {
  display:block;
  width:100%;
  height:auto;
  filter:drop-shadow(0 8px 14px rgba(0,0,0,.72));
}
header .hero-identity #session-label {
  width:auto;
  margin:0;
  padding:0;
  border:0;
  background:none;
  box-shadow:none;
  color:#f2f7ff;
  font-size:.68rem;
  line-height:1.2;
  text-align:right;
  text-shadow:0 2px 5px #000;
}
header .hero-identity #session-label::before,
header .hero-identity #session-label::after { display:none; }
@media(max-width:800px) {
  header .hero-identity { width:min(420px,76vw); justify-items:start; }
  header .hero-identity #session-label { text-align:left; }
}

/* Firma del taller: el logo ya contiene el lema; debajo solo aparece el usuario activo. */
header { align-items:center; }
header .hero-identity {
  width:min(520px,42vw);
  margin:0 auto;
  justify-items:center;
  align-self:center;
}
header .hero-identity #session-label {
  min-height:1.1em;
  text-align:center;
  color:#f5f7ff;
  font-size:.76rem;
  font-weight:700;
  letter-spacing:.025em;
}
@media(max-width:800px) {
  header { align-items:center; }
  header .hero-identity { width:min(450px,84vw); justify-items:center; }
  header .hero-identity #session-label { text-align:center; }
}

/* Firma corporativa: situada en el hueco libre de la esquina inferior derecha. */
header { align-items:flex-end; }
header .hero-identity {
  width:min(390px,26vw);
  margin:0;
  justify-items:end;
  align-self:flex-end;
}
header .hero-identity #session-label { text-align:right; }
@media(max-width:800px) {
  header { align-items:center; }
  header .hero-identity { width:min(390px,82vw); margin:0 auto; justify-items:center; }
  header .hero-identity #session-label { text-align:center; }
}

/* El usuario queda centrado bajo el logotipo, formando una sola firma visual. */
header .hero-identity { justify-items:center; }
header .hero-identity #session-label {
  width:100%;
  text-align:center;
}

/* Portada estable: la navegación no salta de sitio al estrechar la ventana y
   la firma corporativa permanece anclada en la esquina inferior derecha. */
header {
  /* El selector se abre debajo de la barra. No debe quedar recortado por
     la portada cuando la ventana se hace estrecha. */
  overflow:visible;
  padding-top:clamp(4.75rem,8vw,6.5rem);
}
.top-nav {
  left:clamp(.7rem,2vw,2rem);
  right:clamp(.7rem,2vw,2rem);
  width:auto;
  max-width:none;
  transform:none;
  flex-wrap:nowrap;
  justify-content:flex-start;
  overflow-x:auto;
  overscroll-behavior-x:contain;
  scrollbar-width:none;
}
.top-nav::-webkit-scrollbar { display:none; }
header .hero-identity {
  position:absolute;
  right:clamp(1rem,3.5vw,4.5rem);
  bottom:clamp(1rem,3vh,2.5rem);
  width:clamp(220px,26vw,390px);
  max-width:calc(100vw - 2rem);
  margin:0;
  align-self:auto;
}
@media (max-width:1500px) {
  .top-nav { gap:0; }
  .top-nav .brand-mark { min-width:130px; height:40px; padding:0 .72rem; font-size:.8rem; }
  .top-nav .nav-module { padding:.56rem .58rem; font-size:.72rem; letter-spacing:.06em; }
  .language-menu-toggle { min-width:132px; min-height:40px; padding:0 .72rem; font-size:.78rem; }
  .top-nav #logout { min-width:130px; min-height:40px; padding:0 .72rem; font-size:.8rem; }
}
@media (min-width:1200px) and (max-width:1350px) {
  .top-nav .brand-mark { min-width:105px; padding:0 .45rem; font-size:.67rem; }
  .top-nav .nav-module { padding:.5rem .34rem; font-size:.61rem; letter-spacing:.025em; }
  .language-menu-toggle { min-width:104px; padding:0 .45rem; font-size:.66rem; }
  .top-nav #logout { min-width:88px; margin-left:.2rem; padding:0 .45rem; font-size:.68rem; }
}
@media (max-width:800px) {
  header { align-items:flex-end; }
  header .hero-identity {
    right:1rem;
    bottom:1.2rem;
    width:min(300px,70vw);
    margin:0;
    justify-items:center;
  }
  header .hero-identity #session-label { text-align:center; }
  .top-nav { top:.6rem; }
}

/* En pantallas amplias, los controles de sesión quedan al final de la barra
   y separados de los módulos de trabajo. */
@media (min-width:1200px) {
  .top-nav .language-picker { margin-left:auto; }
  .top-nav #logout { margin-left:.7rem; }
}

/* Pantallas pequeñas: ninguna opción desaparece. La barra se organiza en una
   cuadrícula compacta y la firma corporativa se mantiene anclada a la vista. */
@media (max-width:1199px) {
  header {
    min-height:520px;
    padding-top:7.6rem;
  }
  .top-nav {
    display:grid;
    grid-template-columns:repeat(7,minmax(0,1fr));
    align-items:stretch;
    gap:.18rem;
    overflow:visible;
    padding:.3rem;
    border-radius:16px;
  }
  .top-nav .brand-mark {
    grid-column:span 2;
    width:100%;
    min-width:0;
    height:30px;
    padding:0 .28rem;
    font-size:.58rem;
  }
  .top-nav .nav-module {
    min-width:0;
    min-height:30px;
    padding:.28rem .18rem;
    white-space:normal;
    font-size:.53rem;
    line-height:.95;
    letter-spacing:.025em;
  }
  .top-nav .language-picker {
    grid-column:span 2;
    min-width:0;
    margin:0;
  }
  .language-picker.language-menu-ready { margin:0; }
  .language-picker.language-menu-ready { z-index:60; }
  .language-menu-toggle {
    width:100%;
    min-width:0;
    min-height:30px;
    padding:0 .34rem;
    font-size:.54rem;
    letter-spacing:.025em;
  }
  .language-menu {
    /* Se fija a la ventana: así no puede quedar recortado por la cápsula
       ni por la cabecera en formato compacto. */
    position:fixed;
    z-index:1000;
    top:3.8rem;
    right:.65rem;
    max-height:min(310px,calc(100vh - 5.5rem));
    overflow-y:auto;
  }
  .top-nav #logout {
    grid-column:span 2;
    width:100%;
    min-width:0;
    min-height:30px;
    margin:0;
    padding:0 .34rem;
    font-size:.56rem;
    letter-spacing:.04em;
  }
  header .hero-identity {
    position:fixed;
    z-index:2;
    right:.7rem;
    bottom:.7rem;
    width:min(210px,48vw);
  }
}
@media (max-width:480px) {
  .top-nav { grid-template-columns:repeat(5,minmax(0,1fr)); }
  .top-nav .brand-mark { grid-column:span 2; }
  .top-nav .language-picker,
  .top-nav #logout { grid-column:span 2; }
  .top-nav .nav-module { font-size:.5rem; }
}

/* Selector de idioma fiable: se usa el control nativo del navegador sobre la
   cápsula visual. Así las opciones siempre se abren, incluso si una cabecera
   o un navegador móvil intenta recortar un menú personalizado. */
.language-picker.language-menu-ready #language-selector {
  position:absolute;
  inset:0;
  z-index:1001;
  width:100%;
  height:100%;
  opacity:0;
  pointer-events:auto;
  cursor:pointer;
}
.language-picker.language-menu-ready .language-menu-toggle { pointer-events:none; }
.language-picker.language-menu-ready .language-menu { display:none !important; }

/* Catálogo operativo dentro de inventario. */
.inventory-heading,.suppliers-heading { align-items:flex-start; gap:1.25rem; }
.inventory-heading .eyebrow,.suppliers-heading .eyebrow { margin:0 0 .25rem; color:#ff8fa0; font-size:.68rem; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }
.inventory-heading h2,.suppliers-heading h2 { margin:.1rem 0; }
.inventory-summary,.supplier-summary { display:grid; grid-template-columns:repeat(3,minmax(92px,1fr)); gap:.55rem; }
.inventory-summary article,.supplier-summary article { display:grid; gap:.15rem; min-width:96px; padding:.65rem .75rem; border:1px solid rgba(255,72,96,.58); border-radius:8px; background:linear-gradient(145deg,rgba(49,4,12,.82),rgba(15,2,6,.72)); box-shadow:inset 0 0 15px rgba(255,58,86,.09); }
.inventory-summary strong,.supplier-summary strong { color:#ff6378; font-size:1.25rem; line-height:1; }
.inventory-summary span,.supplier-summary span { color:#f3c8ce; font-size:.68rem; font-weight:700; letter-spacing:.04em; }
.inventory-create-form { grid-template-columns:1.05fr 1.5fr .62fr .72fr .82fr auto; align-items:end; margin-top:1rem; padding:1rem; border:1px solid rgba(255,75,99,.52); border-radius:9px; background:rgba(27,2,7,.64); }
.inventory-create-form h3 { grid-column:1 / -1; margin:0 0 .15rem; }
.inventory-create-form label,.inventory-toolbar label { display:grid; gap:.3rem; min-width:0; color:#f3cbd0; font-size:.72rem; font-weight:750; letter-spacing:.035em; }
.inventory-create-form button { min-height:41px; }
.inventory-toolbar { display:grid; grid-template-columns:minmax(240px,1fr) minmax(190px,280px); gap:.75rem; align-items:end; margin:1rem 0; }
.inventory-cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; }
.inventory-card { display:grid; gap:.8rem; padding:1rem; border:1px solid rgba(255,70,95,.46); border-left:3px solid #3ed28d; border-radius:9px; background:linear-gradient(145deg,rgba(31,3,9,.82),rgba(10,2,5,.76)); box-shadow:inset 0 0 18px rgba(255,57,85,.06); }
.inventory-card.stock-low { border-left-color:#ffb13b; }
.inventory-card-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:.8rem; }
.inventory-card-heading h4 { margin:.22rem 0 0; font-size:1rem; }
.inventory-reference,.supplier-card-label { color:#ff93a2; font-family:ui-monospace,SFMono-Regular,Consolas,monospace; font-size:.68rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.inventory-stock-badge,.purchase-status { display:inline-flex; align-items:center; width:max-content; padding:.2rem .45rem; border:1px solid; border-radius:999px; font-size:.65rem; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }
.inventory-stock-badge.is-ok { border-color:rgba(62,210,141,.65); background:rgba(7,73,45,.45); color:#8ff0bc; }
.inventory-stock-badge.is-low { border-color:rgba(255,177,59,.72); background:rgba(91,49,2,.5); color:#ffd28e; }
.inventory-card-values { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.45rem; }
.inventory-card-values span { display:grid; gap:.15rem; padding:.52rem .6rem; border:1px solid rgba(255,92,113,.24); border-radius:6px; background:rgba(12,1,4,.48); }
.inventory-card-values small { color:#c99ca3; font-size:.62rem; }
.inventory-card-values strong { color:#fff; font-size:.86rem; }
.inventory-card-actions { display:flex; justify-content:flex-end; flex-wrap:wrap; gap:.42rem; padding-top:.1rem; }
.inventory-card-actions button { padding:.48rem .62rem; font-size:.72rem; }
.inventory-empty { grid-column:1 / -1; display:grid; justify-items:center; gap:.3rem; padding:2.1rem 1rem; border:1px dashed rgba(255,95,115,.42); border-radius:9px; background:rgba(22,2,6,.42); text-align:center; }
.inventory-empty strong { color:#fff; }
.inventory-empty span { color:var(--muted); font-size:.86rem; }

.services-catalog-panel {
  margin-top:1.25rem;
  padding-top:1.25rem;
  border-top:1px solid rgba(217,36,59,.62);
}
.services-catalog-panel .panel-help { margin:.15rem 0 .8rem; }
.services-catalog-panel .section-heading { align-items:flex-start; }
.services-catalog-panel #load-starter-services { white-space:nowrap; }
@media(max-width:560px) { .services-catalog-panel .section-heading { display:grid; gap:.65rem; } .services-catalog-panel #load-starter-services { width:100%; } }

.supplier-summary { align-self:start; }
.supplier-form button:disabled { cursor:not-allowed; opacity:.46; box-shadow:none; }
.supplier-card-label { display:block; margin-bottom:.2rem; }
.purchase-card { align-items:stretch; border-left:3px solid #ffb13b; }
.purchase-card.purchase-status-recibida { border-left-color:#3ed28d; }
.purchase-card.purchase-status-cancelada { border-left-color:#78808e; opacity:.75; }
.purchase-status { margin-bottom:.35rem; border-color:rgba(255,177,59,.68); background:rgba(91,49,2,.45); color:#ffd28e; }
.purchase-status-recibida .purchase-status { border-color:rgba(62,210,141,.62); background:rgba(7,73,45,.42); color:#8ff0bc; }
.purchase-status-cancelada .purchase-status { border-color:rgba(151,160,174,.52); background:rgba(41,45,52,.45); color:#c8ced8; }
.purchase-card small { color:var(--muted); }
.purchase-card-total { display:grid; justify-items:end; align-content:space-between; gap:.65rem; min-width:110px; }
.purchase-card-total > strong { color:#ff7083; font-size:1.05rem; }

@media(max-width:900px) {
  .inventory-heading,.suppliers-heading { display:grid; }
  .inventory-summary,.supplier-summary { width:100%; }
  .inventory-create-form { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .inventory-create-form h3 { grid-column:1 / -1; }
  .inventory-cards { grid-template-columns:1fr; }
}
@media(max-width:620px) {
  .inventory-summary,.supplier-summary { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .inventory-summary article,.supplier-summary article { min-width:0; padding:.55rem; }
  .inventory-create-form,.inventory-toolbar { grid-template-columns:1fr; }
  .inventory-create-form h3 { grid-column:auto; }
  .inventory-card-values { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .inventory-card-actions { justify-content:stretch; }
  .inventory-card-actions button { flex:1 1 auto; }
  .purchase-card { align-items:flex-start; }
  .purchase-card-total { justify-items:start; min-width:0; }
}

/* GoNzo's Garage Diagnostics: interfaz propia para el trabajo de diagnosis. */
.diagnostics-panel { max-width:1180px; }
.diagnostics-heading { display:flex; justify-content:space-between; gap:1rem; align-items:flex-start; margin-bottom:1rem; }
.diagnostics-heading h2 { margin:.1rem 0; }
.diagnostic-capabilities { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:.45rem; }
.diagnostic-capabilities span,.diagnostic-source { border:1px solid rgba(38,145,255,.7); background:rgba(0,53,111,.36); color:#b9e1ff; padding:.28rem .5rem; border-radius:999px; font-size:.74rem; font-weight:700; }
.diagnostic-form { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.7rem; padding:1rem; border:1px solid rgba(38,145,255,.55); background:rgba(1,9,18,.65); }
.diagnostic-form textarea { grid-column:span 2; resize:vertical; }
.diagnostics-list { display:grid; gap:.8rem; margin-top:1rem; }
.diagnostic-record { border:1px solid rgba(38,145,255,.62); background:rgba(2,10,21,.72); padding:1rem; box-shadow:inset 0 0 18px rgba(0,86,180,.13); }
.diagnostic-record-head { display:flex; justify-content:space-between; gap:1rem; }
.diagnostic-record-head h3 { margin:.35rem 0; }
.diagnostic-record-head p { margin:0; color:#d4e8fa; }
.diagnostic-record-head > div:last-child { display:grid; justify-items:end; align-content:start; gap:.3rem; color:#a9d9ff; }
.diagnostic-code-list { display:grid; gap:.55rem; margin:.85rem 0; }
.diagnostic-code { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.65rem .75rem; border-left:4px solid #ffbd45; background:rgba(26,15,2,.45); }
.diagnostic-code.severity-alta,.diagnostic-code.severity-critica { border-left-color:#f3485c; background:rgba(51,4,12,.42); }
.diagnostic-code.severity-baja { border-left-color:#28d59b; background:rgba(2,42,31,.38); }
.diagnostic-code strong { margin-right:.5rem; color:#fff; }
.diagnostic-code span { color:#b9ddf5; font-size:.82rem; }
.diagnostic-code p { margin:.25rem 0 0; color:#edf6ff; font-size:.9rem; }
.diagnostic-code.resolved { opacity:.62; border-left-color:#28d59b; }
@media(max-width:850px) { .diagnostics-heading { display:grid; } .diagnostic-capabilities { justify-content:flex-start; } .diagnostic-form { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:560px) { .diagnostic-form { grid-template-columns:1fr; } .diagnostic-form textarea { grid-column:auto; } .diagnostic-record-head,.diagnostic-code { align-items:flex-start; flex-direction:column; } .diagnostic-record-head > div:last-child { justify-items:start; } }

/* Archivo seguro de clientes: los activos con vehículo en taller destacan y
   los archivados quedan fuera de la lista cotidiana. */
.client-list-actions,.customer-actions { display:flex; align-items:center; gap:.55rem; }
.customer-actions { flex-wrap:wrap; justify-content:flex-end; }
.client-list-actions .secondary { white-space:nowrap; }
.workshop-badge { display:block; width:max-content; margin:.32rem 0 .08rem; padding:.12rem .38rem; border:1px solid rgba(255,190,72,.75); border-radius:999px; background:rgba(105,61,2,.42); color:#ffe2a1; font-size:.64rem; font-weight:800; letter-spacing:.08em; }
#archive-client:disabled { cursor:not-allowed; opacity:.54; box-shadow:none; }
@media(max-width:620px) { .client-list-actions,.customer-actions { gap:.35rem; } .customer-actions { justify-content:flex-start; } .client-list-actions button,.customer-actions button { padding:.5rem .58rem; font-size:.74rem; } }

/* Ficha de clientes: dos paneles con una separación clara y controles que no
   se encogen ni se solapan al crear un cliente nuevo. */
body.workspace-open #customer-workspace {
  grid-template-columns:minmax(320px,360px) minmax(0,1fr);
  gap:clamp(2rem,3vw,3.25rem);
  align-items:start;
}
body.workspace-open #customer-workspace > aside,
body.workspace-open #customer-workspace > .detail { min-width:0; }
body.workspace-open #customer-workspace > aside .section-heading {
  display:grid;
  grid-template-columns:1fr;
  align-items:start;
  gap:.6rem;
}
body.workspace-open #customer-workspace > aside .section-heading h2 { margin:0; }
body.workspace-open #customer-workspace > aside .client-list-actions {
  width:100%;
  flex:1 1 auto;
  flex-wrap:nowrap;
  justify-content:stretch;
  margin-bottom:.65rem;
}
body.workspace-open #customer-workspace > aside .client-list-actions button {
  flex:1 1 0;
  min-width:0;
  white-space:nowrap;
}
@media(max-width:900px) {
  body.workspace-open #customer-workspace { grid-template-columns:1fr; gap:1.25rem; }
  body.workspace-open #customer-workspace > aside .section-heading { align-items:center; }
}

/* Lista de idiomas profesional: flotante, con banderas y sin depender del
   desplegable del sistema. Al estar anclada al documento nunca se recorta. */
.language-picker.language-menu-ready #language-selector { display:none !important; }
.language-picker.language-menu-ready .language-menu-toggle { pointer-events:auto; }
.language-popover {
  position:fixed !important;
  z-index:5000 !important;
  display:grid !important;
  width:184px;
  gap:.22rem;
  padding:.42rem;
  border:1px solid rgba(255,102,121,.75);
  border-radius:11px;
  background:rgba(22,4,9,.98);
  box-shadow:0 18px 36px rgba(0,0,0,.65),0 0 22px rgba(217,36,59,.30);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(-5px);
  transition:opacity .16s,transform .16s,visibility .16s;
}
.language-popover.open {
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateY(0);
}
.language-popover .language-menu-option {
  min-height:38px;
  gap:.75rem;
  padding:.52rem .6rem;
  color:#fff2f4;
  font-size:.82rem;
}
.language-popover .country-flag {
  width:27px;
  height:18px;
  flex:0 0 27px;
  border-color:rgba(255,255,255,.35);
  box-shadow:0 1px 4px rgba(0,0,0,.45);
}
.language-popover .language-menu-option span:not(.country-flag) { font-size:.86rem; }
.language-popover .language-menu-option:hover,
.language-popover .language-menu-option[aria-pressed="true"] {
  border-color:rgba(255,127,142,.65);
  background:rgba(217,36,59,.25);
  box-shadow:inset 3px 0 0 #ff6575;
}
@media(max-width:620px) {
  .language-popover { width:166px; }
  .language-popover .language-menu-option { min-height:35px; font-size:.76rem; }
}

/* Portada más luminosa: conserva el contraste racing, pero deja respirar la
   fotografía y hace legibles los detalles del taller. */
header {
  background:
    linear-gradient(180deg,rgba(7,1,3,.12) 0%,rgba(7,1,3,.015) 48%,rgba(7,1,3,.38) 100%),
    url('assets/gonzo-garage-hero-blueprint-full.png') center center / cover no-repeat,
    #050204;
  box-shadow:inset 0 -70px 70px rgba(0,0,0,.18);
}

/* Barra superior en el azul eléctrico de las llantas de la moto. Este bloque
   solo modifica color y brillo; conserva medidas, comportamiento y eventos. */
.top-nav {
  border-color:#087cff;
  background:rgba(1,14,35,.88);
  box-shadow:0 0 18px rgba(0,109,255,.62),0 8px 24px rgba(0,0,0,.44);
}
.top-nav .brand-mark,
.top-nav #logout,
.language-menu-toggle {
  border-color:#55a8ff;
  background:linear-gradient(135deg,#087cff,#0047b8);
  box-shadow:0 0 14px rgba(0,109,255,.58),inset 0 0 0 1px rgba(190,225,255,.14);
}
.top-nav .brand-mark:hover,
.top-nav #logout:hover,
.language-menu-toggle:hover {
  background:linear-gradient(135deg,#2492ff,#0058db);
  box-shadow:0 0 21px rgba(0,132,255,.82);
}
.top-nav .nav-module { color:#e8f4ff; }
.top-nav .nav-module:hover {
  background:rgba(0,109,255,.24);
}
.top-nav .nav-module.active {
  color:#fff;
  background:rgba(0,109,255,.46);
  box-shadow:inset 0 0 0 1px rgba(116,187,255,.78),0 0 12px rgba(0,109,255,.58);
}
.language-menu-arrow { color:#9fd0ff; }
.language-menu,
.language-popover {
  border-color:rgba(71,159,255,.82);
  background:rgba(1,12,30,.98);
  box-shadow:0 18px 36px rgba(0,0,0,.65),0 0 22px rgba(0,109,255,.38);
}
.language-menu-option { color:#edf7ff; }
.language-menu-option:hover,
.language-menu-option[aria-pressed="true"],
.language-popover .language-menu-option:hover,
.language-popover .language-menu-option[aria-pressed="true"] {
  border-color:rgba(92,177,255,.70);
  background:rgba(0,109,255,.28);
  box-shadow:inset 3px 0 0 #2b86ff;
}

/* Gastos generales v1.2: captura compacta y lectura contable por periodo. */
.expenses-section .section-heading { align-items:center; }
#expense-total { color:#8fdcff; font-size:1.35rem; text-shadow:0 0 12px rgba(0,109,255,.45); }
.expense-form { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.7rem; margin:.85rem 0 1rem; padding:1rem; border:1px solid rgba(62,151,255,.52); border-radius:9px; background:rgba(1,13,31,.54); }
.expense-form label { display:grid; gap:.32rem; }
.expense-form .expense-concept { grid-column:span 2; }
.expense-form .expense-notes { grid-column:span 3; }
.expense-form #expense-error { grid-column:1 / -1; margin:0; }
.expense-form > button { align-self:end; }
.expense-list { display:grid; gap:.5rem; }
.expense-row { display:grid; grid-template-columns:minmax(220px,1.6fr) 110px 130px 120px auto; gap:.75rem; align-items:center; padding:.7rem .8rem; border:1px solid rgba(62,151,255,.38); border-left:3px solid #087cff; border-radius:7px; background:rgba(1,13,31,.46); }
.expense-row > div { display:grid; gap:.18rem; }
.expense-row span,.expense-row time { color:#b9d8f5; font-size:.82rem; }
.report-grid .positive-result strong { color:#85e9b0; }
.report-grid .negative-result strong { color:#ff8790; }
@media(max-width:850px) { .expense-form { grid-template-columns:repeat(2,minmax(0,1fr)); } .expense-form .expense-notes { grid-column:span 2; } .expense-row { grid-template-columns:1fr 1fr; } }
@media(max-width:540px) { .expense-form { grid-template-columns:1fr; } .expense-form .expense-concept,.expense-form .expense-notes { grid-column:auto; } .expense-row { grid-template-columns:1fr; } }

/* Control de vencimientos y avisos internos de cobro. */
.invoice-alerts { display:flex; justify-content:space-between; gap:1rem; margin:.75rem 0 1rem; padding:.8rem 1rem; border:1px solid #ff5867; border-left:4px solid #ff3045; border-radius:8px; background:rgba(92,0,13,.62); box-shadow:0 0 18px rgba(255,35,66,.24); }
.invoice-alerts strong { color:#ffb2b9; }
.invoice-alerts span { color:#fff; }
.invoice-overdue { border-color:rgba(255,66,84,.8) !important; box-shadow:inset 4px 0 0 #ff3045,0 0 16px rgba(255,35,66,.18); }
.invoice-overdue-days { display:inline-block; margin-left:.45rem; padding:.1rem .42rem; border-radius:999px; color:#fff; background:#b9142b; font-weight:700; }
.collection-reminder-last { margin:.3rem 0 0; color:#ffd4d9; font-size:.82rem; }
.collection-reminder-history { margin-top:.5rem; max-width:520px; border:1px solid rgba(255,104,120,.34); border-radius:7px; background:rgba(12,3,7,.32); }
.collection-reminder-history summary { padding:.42rem .6rem; cursor:pointer; color:#fff; font-weight:700; }
.collection-reminder-records { display:grid; gap:.35rem; padding:.2rem .6rem .55rem; }
.collection-reminder-records p { display:grid; gap:.1rem; margin:0; padding:.38rem 0; border-top:1px solid rgba(255,104,120,.2); }
.collection-reminder-records span { color:#ffc5cc; font-size:.8rem; }
.collection-summary { margin-top:1rem; }
.collection-ageing { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:.6rem; margin:.7rem 0 1rem; }
.collection-ageing article { display:grid; gap:.2rem; padding:.7rem; border:1px solid rgba(62,151,255,.38); border-radius:7px; background:rgba(1,13,31,.46); }
.collection-ageing span,.collection-ageing small { color:#b9d8f5; font-size:.78rem; }
.collection-ageing strong { color:#fff; }
.collection-row { display:grid; grid-template-columns:minmax(220px,1.5fr) minmax(110px,.7fr) minmax(110px,.65fr) minmax(175px,1fr) auto; gap:.75rem; align-items:center; padding:.7rem .8rem; border:1px solid rgba(62,151,255,.38); border-left:3px solid #087cff; border-radius:7px; background:rgba(1,13,31,.46); }
.collection-row span { display:grid; gap:.12rem; }
.collection-row small { color:#b9d8f5; }
.collection-row-overdue { border-color:rgba(255,66,87,.64); border-left-color:#ff3045; background:rgba(74,3,14,.46); }
.collection-row-head { color:#ffc2c9; font-weight:800; }
.invoice-highlight { animation:invoice-focus 2.2s ease; }
@keyframes invoice-focus { 0%,100% { box-shadow:inset 0 0 16px rgba(184,18,42,.12); } 30%,70% { box-shadow:0 0 28px rgba(44,137,255,.9),inset 0 0 20px rgba(25,105,255,.32); border-color:#65b1ff; } }
@media(max-width:900px) { .collection-ageing { grid-template-columns:repeat(2,minmax(0,1fr)); } .collection-row { grid-template-columns:1fr 1fr; } .collection-row-head { display:none; } }
@media(max-width:540px) { .collection-ageing,.collection-row { grid-template-columns:1fr; } }
.payment-history-dialog { width:min(720px,calc(100vw - 2rem)); }
.payment-history-list { display:grid; gap:.65rem; margin:1rem 0; }
.payment-record { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.8rem; border:1px solid rgba(62,151,255,.45); border-left:3px solid #087cff; border-radius:8px; background:rgba(1,13,31,.58); }
.payment-record div { display:grid; gap:.2rem; }
.payment-record .payment-record-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:.45rem; }
.payment-record strong { color:#fff; font-size:1.05rem; }
.payment-record span { color:#b9d8f5; font-size:.82rem; }
@media(max-width:540px) { .payment-record { align-items:stretch; flex-direction:column; } }
@media(max-width:650px) { .invoice-alerts { flex-direction:column; gap:.25rem; } }

/* Estadísticas v1.6: panel comparativo sin dependencias gráficas externas. */
.statistics-section { overflow:hidden; }
.statistics-section > .section-heading { align-items:flex-end; gap:1rem; }
.statistics-filters { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:.55rem; align-items:flex-end; }
.statistics-filters label { display:grid; gap:.25rem; min-width:100px; color:#b9d8f5; font-size:.75rem; }
.statistics-filters select { min-height:36px; padding:.35rem .5rem; }
.statistics-filters button { min-height:36px; }
.statistics-note { margin:.75rem 0; padding:.7rem .85rem; border:1px solid rgba(255,190,62,.6); border-radius:7px; color:#ffe1a1; background:rgba(91,54,0,.4); }
.statistics-summary { margin-top:1rem; }
.statistics-comparisons { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; margin:1rem 0; }
.statistics-comparisons > section { padding:.8rem; border:1px solid rgba(62,151,255,.38); border-radius:8px; background:rgba(1,13,31,.46); }
.statistics-comparisons h4 { margin:0 0 .55rem; color:#dceeff; }
.statistics-trend { display:grid; grid-template-columns:minmax(120px,1fr) auto; gap:.15rem .7rem; align-items:center; padding:.38rem 0; border-bottom:1px solid rgba(98,160,220,.18); }
.statistics-trend:last-child { border-bottom:0; }
.statistics-trend span { color:#b9d8f5; }
.statistics-trend strong { color:#fff; }
.statistics-trend small { grid-column:1 / -1; color:#91b6d8; }
.statistics-chart-heading { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-top:1rem; }
.statistics-legend { display:flex; flex-wrap:wrap; gap:.75rem; color:#b9d8f5; font-size:.74rem; }
.statistics-legend span::before { content:''; display:inline-block; width:9px; height:9px; margin-right:.35rem; border-radius:2px; background:#278bff; box-shadow:0 0 7px currentColor; }
.statistics-legend .collected::before { background:#28d8b2; }
.statistics-legend .profit::before { background:#ffd05a; }
.statistics-chart { display:grid; grid-template-columns:repeat(12,minmax(34px,1fr)); gap:.38rem; align-items:end; min-height:230px; margin:.7rem 0 1rem; padding:1rem .7rem .45rem; border:1px solid rgba(62,151,255,.38); border-radius:8px; background:linear-gradient(180deg,rgba(1,13,31,.48),rgba(1,13,31,.72)); }
.statistics-chart-month { display:grid; grid-template-rows:180px auto; gap:.35rem; min-width:0; text-align:center; }
.statistics-chart-month.selected { padding:.2rem; border-radius:5px; background:rgba(38,130,255,.16); box-shadow:inset 0 0 0 1px rgba(88,171,255,.42); }
.statistics-bars { display:flex; align-items:flex-end; justify-content:center; gap:3px; height:100%; }
.statistics-bar { display:block; width:clamp(5px,24%,13px); min-height:0; border-radius:4px 4px 1px 1px; background:linear-gradient(180deg,#5cb2ff,#0865dd); box-shadow:0 0 9px rgba(39,139,255,.38); }
.statistics-bar.collected { background:linear-gradient(180deg,#65f0cf,#10997d); box-shadow:0 0 9px rgba(40,216,178,.34); }
.statistics-bar.profit { background:linear-gradient(180deg,#ffe88c,#c98b00); box-shadow:0 0 9px rgba(255,208,90,.3); }
.statistics-bar.profit.loss { background:linear-gradient(180deg,#ff7583,#b20d25); }
.statistics-chart-month small { overflow:hidden; color:#b9d8f5; font-size:.67rem; text-transform:uppercase; }
.statistics-table { display:grid; gap:.38rem; }
.statistics-row { display:grid; grid-template-columns:minmax(155px,1.3fr) repeat(5,minmax(90px,.75fr)); gap:.65rem; align-items:center; padding:.58rem .7rem; border:1px solid rgba(62,151,255,.3); border-radius:6px; background:rgba(1,13,31,.42); }
.statistics-row > span { min-width:0; text-align:right; }
.statistics-row > span:first-child { display:grid; gap:.12rem; text-align:left; }
.statistics-row small { color:#91b6d8; }
.statistics-row-head { color:#b9d8f5; font-size:.74rem; font-weight:800; text-transform:uppercase; }
@media(max-width:980px) { .statistics-section > .section-heading { align-items:stretch; flex-direction:column; } .statistics-filters { justify-content:flex-start; } .statistics-chart { overflow-x:auto; grid-template-columns:repeat(12,minmax(42px,1fr)); } .statistics-row { grid-template-columns:minmax(150px,1.2fr) repeat(3,minmax(90px,.8fr)); } .statistics-row > span:nth-child(5),.statistics-row > span:nth-child(6) { display:none; } }
@media(max-width:680px) { .statistics-comparisons { grid-template-columns:1fr; } .statistics-filters label,.statistics-filters button { width:100%; } .statistics-row { grid-template-columns:1fr 1fr; } .statistics-row-head { display:none; } .statistics-row > span { text-align:left; } .statistics-row > span:nth-child(4) { display:none; } }

/* Acceso al manual: situado sobre el frontal negro de la mesa, en la zona
   inferior izquierda de la portada, y con el azul de la navegación. */
.manual-link {
  position:absolute;
  left:clamp(14rem,13vw,17rem);
  right:auto;
  bottom:clamp(7.25rem,14vh,9rem);
  z-index:25;
  display:inline-flex;
  align-items:center;
  gap:.58rem;
  min-height:42px;
  padding:.48rem 1rem .48rem .52rem;
  border:1px solid #55a8ff;
  border-radius:999px;
  color:#fff;
  background:linear-gradient(135deg,#087cff,#0047b8);
  box-shadow:0 0 18px rgba(0,109,255,.68),0 8px 22px rgba(0,0,0,.42);
  font:700 .82rem 'Rajdhani',sans-serif;
  letter-spacing:.09em;
  text-decoration:none;
  text-transform:uppercase;
  transition:transform .18s,background .18s,box-shadow .18s;
}
.manual-symbol {
  display:grid;
  place-items:center;
  width:28px;
  height:28px;
  border:1px solid rgba(255,255,255,.78);
  border-radius:50%;
  background:rgba(0,20,55,.42);
  font:700 1rem Arial,sans-serif;
}
.manual-link:hover {
  transform:translateY(-2px);
  background:linear-gradient(135deg,#2492ff,#0058db);
  box-shadow:0 0 24px rgba(0,132,255,.88),0 10px 24px rgba(0,0,0,.5);
}
.manual-link:focus-visible { outline:2px solid #fff; outline-offset:3px; }
@media(max-width:800px) {
  .manual-link { position:fixed; left:auto; right:.8rem; bottom:1rem; min-height:38px; padding:.4rem .78rem .4rem .44rem; }
  .manual-symbol { width:25px; height:25px; }
}

/* Navegación móvil v1.15: una cabecera legible y un panel de módulos bajo
   demanda sustituyen la cuadrícula de textos diminutos. */
#mobile-nav-toggle { display:none; }

@media(max-width:1100px) {
  header {
    min-height:100svh;
    padding-top:5.8rem;
  }
  .top-nav {
    top:.55rem;
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:.35rem;
    padding:.4rem;
    overflow:visible;
    border-radius:18px;
  }
  .top-nav .brand-mark {
    order:1;
    flex:1 1 130px;
    width:auto;
    min-width:100px;
    height:38px;
    padding:0 .72rem;
    font-size:.72rem;
    white-space:nowrap;
  }
  #mobile-nav-toggle {
    order:2;
    flex:0 0 96px;
    min-height:38px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:.42rem;
    padding:0 .65rem;
    border-radius:999px;
    border-color:#55a8ff;
    background:linear-gradient(135deg,#087cff,#0047b8);
    color:#fff;
    font:700 .72rem 'Rajdhani',sans-serif;
    letter-spacing:.05em;
    box-shadow:0 0 14px rgba(0,109,255,.55);
  }
  #mobile-nav-toggle[aria-expanded="true"] {
    background:linear-gradient(135deg,#2492ff,#0058db);
    box-shadow:0 0 20px rgba(0,132,255,.82);
  }
  .top-nav .mobile-nav-icon,
  .top-nav .mobile-nav-label,
  .top-nav .language-menu-arrow,
  .top-nav .language-menu-current > span {
    display:inline-block !important;
  }
  .mobile-nav-icon { font:700 1rem/1 Arial,sans-serif; }
  .top-nav .language-picker {
    order:3;
    flex:0 0 112px;
    min-width:0;
    margin:0;
  }
  .language-picker.language-menu-ready { margin:0; }
  .language-menu-toggle {
    width:100%;
    min-width:0;
    min-height:38px;
    padding:0 .58rem;
    font-size:.72rem;
    letter-spacing:.025em;
  }
  .top-nav .language-menu-current { min-width:0; display:flex !important; color:#fff; }
  .language-menu-current > span:not(.country-flag) {
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .top-nav #logout {
    order:4;
    flex:0 0 82px;
    width:auto;
    min-width:0;
    min-height:38px;
    margin:0;
    padding:0 .62rem;
    font-size:.72rem;
  }
  .top-nav #install-app {
    order:5;
    display:none;
    flex:1 1 calc(50% - .35rem);
    min-height:38px;
  }
  .top-nav .nav-module {
    order:5;
    display:none;
    flex:1 1 calc(33.333% - .35rem);
    min-width:120px;
    min-height:40px;
    padding:.52rem .48rem;
    border:1px solid rgba(77,164,255,.42);
    border-radius:10px;
    background:rgba(1,30,70,.68);
    color:#eff8ff;
    font-size:.72rem;
    line-height:1.05;
    letter-spacing:.035em;
  }
  .top-nav.mobile-open .nav-module { display:block; }
  .top-nav.mobile-open #install-app:not([hidden]) { display:block; }
  header .hero-identity {
    position:absolute;
    right:.8rem;
    bottom:1rem;
    width:min(230px,54vw);
  }
}

@media(max-width:560px) {
  header { padding-top:7.7rem; }
  .top-nav .brand-mark { flex:1 0 100%; }
  #mobile-nav-toggle,
  .top-nav .language-picker,
  .top-nav #logout { flex:1 1 0; }
  #mobile-nav-toggle { min-width:92px; }
  .top-nav .language-picker { min-width:86px; }
  .top-nav #logout { min-width:68px; }
  .top-nav .nav-module {
    flex-basis:calc(50% - .35rem);
    min-width:105px;
    font-size:.68rem;
  }
}

/* Controles móviles v1.16: fichas, formularios y acciones pensados para
   trabajar con una mano, sin botones estrechos ni acciones fuera de vista. */
@media(max-width:700px) {
  body.workspace-open {
    overflow-x:hidden;
  }
  body.workspace-open main,
  body.workspace-open .inventory-panel {
    width:calc(100% - 1rem);
    margin:.65rem auto 5.5rem;
    padding:.75rem;
    box-sizing:border-box;
  }
  body.workspace-open aside,
  body.workspace-open .detail,
  body.workspace-open .report-section {
    min-width:0;
    padding:.85rem;
    border-radius:12px;
  }
  body.workspace-open button,
  dialog button {
    min-height:44px;
  }
  body.workspace-open input,
  body.workspace-open select,
  body.workspace-open textarea,
  dialog input,
  dialog select,
  dialog textarea {
    width:100%;
    min-width:0;
    min-height:46px;
    box-sizing:border-box;
    font-size:16px;
  }
  body.workspace-open textarea,
  dialog textarea {
    min-height:104px;
  }
  .detail-heading,
  .section-heading {
    align-items:stretch;
    flex-direction:column;
    gap:.75rem;
  }
  .client-list-actions,
  .customer-actions,
  .vehicle-actions,
  .report-actions {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    width:100%;
    gap:.5rem;
  }
  .client-list-actions button,
  .customer-actions button,
  .vehicle-actions button,
  .report-actions > * {
    width:100%;
    min-width:0;
  }
  .customer-actions #edit-client,
  .customer-actions #send-portal-access,
  .report-actions input {
    grid-column:1 / -1;
  }
  .inventory-create-form,
  .inventory-toolbar,
  .agenda-form,
  .agenda-toolbar {
    grid-template-columns:1fr;
    padding:.85rem;
  }
  .inventory-create-form h3,
  .inventory-create-form button,
  .agenda-form-heading,
  .agenda-form > button:last-child {
    grid-column:1 / -1;
    width:100%;
  }
  .agenda-form-heading {
    align-items:stretch;
    flex-direction:column;
  }
  .agenda-form-heading button {
    width:100%;
  }
  .inventory-summary,
  .agenda-summary,
  .report-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .inventory-card-actions {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    width:100%;
  }
  .inventory-card-actions button {
    width:100%;
    min-height:44px;
  }

  dialog {
    width:calc(100vw - .75rem);
    max-width:none;
    max-height:calc(100svh - .75rem);
    margin:auto;
    padding:0;
    overflow:auto;
    border-radius:16px;
  }
  dialog form {
    gap:.8rem;
    padding:0 1rem 1rem;
  }
  dialog .modal-heading {
    position:sticky;
    top:0;
    z-index:5;
    margin:0 -1rem .15rem;
    padding:.8rem 1rem;
    background:rgba(28,4,9,.97);
    border-bottom:1px solid rgba(255,70,95,.55);
    box-shadow:0 8px 20px rgba(0,0,0,.3);
    backdrop-filter:blur(10px);
  }
  dialog .modal-heading h2 {
    margin:0;
    font-size:1.28rem;
    line-height:1.1;
  }
  dialog .icon-button {
    display:grid;
    place-items:center;
    flex:0 0 44px;
    width:44px;
    height:44px;
    padding:0;
    border:1px solid rgba(255,103,124,.82);
    border-radius:50%;
    background:rgba(111,10,27,.82);
    color:#fff;
  }
  dialog .form-grid {
    grid-template-columns:1fr;
    gap:.8rem;
  }
  dialog label {
    gap:.32rem;
    font-size:.86rem;
  }
  dialog .form-actions {
    position:sticky;
    bottom:-1rem;
    z-index:5;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:.6rem;
    margin:.15rem -1rem -1rem;
    padding:.75rem 1rem calc(.75rem + env(safe-area-inset-bottom));
    background:rgba(28,4,9,.97);
    border-top:1px solid rgba(255,70,95,.55);
    box-shadow:0 -8px 20px rgba(0,0,0,.3);
    backdrop-filter:blur(10px);
  }
  dialog .form-actions button {
    width:100%;
    min-width:0;
  }
}

@media(max-width:430px) {
  .client-list-actions,
  .customer-actions,
  .vehicle-actions,
  .report-actions,
  .inventory-card-actions {
    grid-template-columns:1fr;
  }
  .customer-actions #edit-client,
  .customer-actions #send-portal-access,
  .report-actions input {
    grid-column:auto;
  }
}

/* Dirección visual v1.23: puesto de mando sobrio, técnico y consistente. */
:root {
  --pro-bg:#05080d;
  --pro-surface:rgba(9,17,29,.94);
  --pro-surface-2:rgba(13,25,42,.94);
  --pro-border:rgba(116,160,211,.28);
  --pro-border-strong:rgba(76,159,255,.68);
  --pro-blue:#1687ff;
  --pro-blue-bright:#76bdff;
  --pro-text:#f2f7fc;
  --pro-muted:#9fb1c7;
  --pro-success:#43d694;
  color-scheme:dark;
  font-family:"Segoe UI Variable","Segoe UI",system-ui,sans-serif;
}

html { background:var(--pro-bg); }
body {
  background:
    radial-gradient(circle at 15% 0,rgba(22,135,255,.1),transparent 34rem),
    var(--pro-bg);
  color:var(--pro-text);
  font-family:"Segoe UI Variable","Segoe UI",system-ui,sans-serif;
}
body::before,body::after { display:none; }

header {
  min-height:clamp(390px,54svh,610px);
  padding:5.6rem clamp(1rem,3vw,3rem) 1.4rem;
  border-bottom:1px solid rgba(91,148,210,.24);
  background:
    linear-gradient(90deg,rgba(3,8,15,.87) 0%,rgba(3,8,15,.38) 45%,rgba(3,8,15,.1) 70%),
    linear-gradient(0deg,#05080d 0%,transparent 42%),
    url('assets/gonzo-garage-hero-blueprint-full.png') center center / cover no-repeat,
    #05080d;
  box-shadow:inset 0 -45px 70px rgba(0,0,0,.45);
}

.top-nav {
  position:fixed;
  z-index:100;
  top:.75rem;
  left:clamp(.75rem,2vw,2rem);
  right:clamp(.75rem,2vw,2rem);
  width:auto;
  max-width:none;
  min-height:50px;
  padding:.38rem;
  gap:.1rem;
  border:1px solid var(--pro-border);
  border-radius:16px;
  background:rgba(5,12,22,.9);
  box-shadow:0 16px 44px rgba(0,0,0,.38);
  backdrop-filter:blur(18px) saturate(130%);
}
.top-nav .brand-mark,
.top-nav #logout,
.top-nav #install-app,
.language-menu-toggle {
  min-height:40px;
  border:1px solid rgba(93,166,246,.45);
  border-radius:11px;
  background:rgba(18,67,124,.62);
  box-shadow:none;
  color:#f4f9ff;
  font-family:inherit;
}
.top-nav .brand-mark {
  min-width:146px;
  letter-spacing:.035em;
}
.top-nav .nav-module {
  min-height:40px;
  padding:.58rem .68rem;
  border:1px solid transparent;
  border-radius:9px;
  color:#c4d2e2;
  font-family:inherit;
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.055em;
}
.top-nav .nav-module:hover {
  border-color:rgba(83,157,238,.32);
  background:rgba(29,86,151,.28);
  color:#fff;
}
.top-nav .nav-module.active {
  border-color:rgba(90,174,255,.6);
  background:linear-gradient(135deg,rgba(22,135,255,.7),rgba(9,80,163,.7));
  box-shadow:0 7px 20px rgba(0,84,180,.28);
  color:#fff;
}
.top-nav .brand-mark:hover,
.top-nav #logout:hover,
.top-nav #install-app:hover,
.language-menu-toggle:hover {
  background:rgba(28,100,182,.78);
  box-shadow:none;
}

header .hero-identity {
  right:clamp(1rem,3vw,3rem);
  bottom:1.5rem;
  width:clamp(230px,25vw,380px);
  padding:1rem 1.1rem;
  border:1px solid rgba(136,173,213,.26);
  border-radius:16px;
  background:rgba(4,11,19,.72);
  box-shadow:0 18px 46px rgba(0,0,0,.4);
  backdrop-filter:blur(10px);
}
header .hero-identity img { max-height:132px; filter:drop-shadow(0 8px 20px rgba(0,0,0,.5)); }
header .hero-identity #session-label {
  margin:.55rem 0 0;
  color:#c7d5e5;
  font-family:inherit;
  font-size:.78rem;
  letter-spacing:.035em;
}
.manual-link {
  border-color:rgba(111,168,232,.42);
  border-radius:11px;
  background:rgba(7,20,35,.82);
  box-shadow:none;
}

body.workspace-open #customer-workspace,
body.workspace-open .inventory-panel {
  top:5.25rem;
  max-height:calc(100svh - 6rem);
  border:1px solid var(--pro-border-strong);
  border-radius:18px;
  background:linear-gradient(155deg,rgba(10,20,34,.97),rgba(5,11,20,.98));
  box-shadow:0 26px 80px rgba(0,0,0,.62);
  backdrop-filter:blur(16px);
}
.workspace-close {
  top:4.65rem;
  border:1px solid rgba(119,178,241,.65);
  background:#123b68;
  box-shadow:0 9px 28px rgba(0,0,0,.45);
}
.workspace-close:hover { background:#19528f; box-shadow:0 9px 28px rgba(0,0,0,.45); }

aside,.detail,.report-section,.inventory-panel dialog form {
  border-color:var(--pro-border);
  background:rgba(9,18,31,.75);
  box-shadow:none;
}
.section-heading,.detail-heading {
  padding-bottom:.8rem;
  border-bottom:1px solid rgba(119,157,199,.2);
}
.section-heading h2,.detail-heading h2,.modal-heading h2 {
  color:#f4f8fd;
  font-family:inherit;
  letter-spacing:-.015em;
  text-transform:none;
}
.eyebrow { color:var(--pro-blue-bright); font-family:inherit; letter-spacing:.11em; }
.panel-help,.muted,small { color:var(--pro-muted); }

button {
  border-color:rgba(80,159,245,.7);
  border-radius:10px;
  background:linear-gradient(135deg,#147fe9,#0756aa);
  box-shadow:none;
  font-family:inherit;
  font-weight:700;
  letter-spacing:.015em;
}
button:hover { box-shadow:0 8px 22px rgba(0,83,177,.28); }
button.secondary {
  border-color:rgba(123,157,194,.38);
  background:rgba(24,42,64,.76);
  color:#e8f0f9;
}
button.danger { border-color:rgba(255,105,119,.56); background:#822135; }
button:focus-visible,a:focus-visible,[role="button"]:focus-visible {
  outline:3px solid #87c5ff;
  outline-offset:3px;
}
input,select,textarea {
  border:1px solid rgba(118,156,200,.38);
  border-radius:9px;
  background:#08111e;
  color:#f3f7fb;
  box-shadow:none;
}
input:focus,select:focus,textarea:focus {
  border-color:#4fa7ff;
  outline:2px solid rgba(79,167,255,.22);
  outline-offset:1px;
}
dialog {
  border:1px solid var(--pro-border-strong);
  border-radius:18px;
  background:#091321;
  box-shadow:0 28px 90px rgba(0,0,0,.7);
}
dialog::backdrop { background:rgba(1,5,10,.76); backdrop-filter:blur(8px); }

.client,.vehicle,.work-order-card,.invoice-card,.budget-card-active,
.inventory-card,.appointment-card,.supplier-card,.purchase-card,.report-grid article {
  border-color:rgba(116,160,211,.28);
  border-radius:13px;
  background:linear-gradient(145deg,rgba(16,31,51,.78),rgba(8,17,29,.82));
  box-shadow:none;
}
.client:hover,.vehicle:hover,.inventory-card:hover,.appointment-card:hover {
  border-color:rgba(78,161,255,.64);
  background:linear-gradient(145deg,rgba(20,43,72,.86),rgba(9,21,37,.9));
}
.expense-form,.expense-row,.inventory-summary article,.appointment-summary article {
  border-color:rgba(116,160,211,.28);
  background:rgba(8,20,35,.7);
}

.language-menu,.language-popover {
  border-color:var(--pro-border-strong);
  border-radius:12px;
  background:rgba(6,15,27,.98);
  box-shadow:0 20px 50px rgba(0,0,0,.55);
}
.language-menu-option:hover,
.language-menu-option[aria-pressed="true"],
.language-popover .language-menu-option:hover,
.language-popover .language-menu-option[aria-pressed="true"] {
  border-color:rgba(92,177,255,.55);
  background:rgba(22,135,255,.2);
  box-shadow:inset 3px 0 0 var(--pro-blue);
}

.connection-banner {
  position:fixed;
  z-index:300;
  right:1rem;
  bottom:1rem;
  display:flex;
  align-items:flex-start;
  gap:.7rem;
  width:min(420px,calc(100vw - 2rem));
  padding:.85rem 1rem;
  border:1px solid rgba(255,181,86,.64);
  border-radius:12px;
  background:rgba(35,24,8,.96);
  box-shadow:0 18px 50px rgba(0,0,0,.48);
  color:#fff2d8;
  font-size:.86rem;
  line-height:1.45;
}
.connection-banner[hidden] { display:none!important; }
.connection-indicator {
  width:10px;
  height:10px;
  flex:0 0 auto;
  margin-top:.28rem;
  border-radius:50%;
  background:#ffb547;
  box-shadow:0 0 0 4px rgba(255,181,71,.16);
}

@media(max-width:1100px) {
  header { min-height:420px; padding-top:6.6rem; }
  .top-nav { overflow:visible; }
  .top-nav.mobile-open {
    max-height:calc(100svh - 1.5rem);
    overflow:auto;
    border-radius:16px;
  }
  header .hero-identity { width:min(260px,62vw); }
  body.workspace-open #customer-workspace,
  body.workspace-open .inventory-panel { top:6rem; max-height:calc(100svh - 6.7rem); }
  .workspace-close { top:5.35rem; }
}
@media(max-width:560px) {
  header { min-height:390px; padding-top:7.4rem; }
  .top-nav { top:.5rem; left:.5rem; right:.5rem; }
  .top-nav .brand-mark { min-width:0; }
  header .hero-identity { right:.75rem; bottom:.75rem; padding:.7rem; }
  header .hero-identity img { max-height:96px; }
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after { scroll-behavior:auto!important; animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; }
}

/* Portada inmersiva v1.23: la fotografía llena la pantalla incluso cuando el
   panel aplica su escala automática para mantener todos los módulos visibles. */
body:not(.workspace-open) {
  height:calc(100svh * var(--automatic-zoom-inverse,1));
  min-height:calc(100svh * var(--automatic-zoom-inverse,1));
  overflow:hidden;
}
body:not(.workspace-open) header {
  width:100%;
  height:calc(100svh * var(--automatic-zoom-inverse,1));
  min-height:calc(100svh * var(--automatic-zoom-inverse,1));
  padding-top:5.6rem;
  padding-bottom:1.5rem;
  background-position:center center;
  /* Muestra la composición completa en cualquier proporción de pantalla. */
  background-size:100% 100%;
  border-bottom-color:rgba(75,158,255,.48);
}
body:not(.workspace-open) header::after { display:none; }
@media(max-width:1100px) {
  body:not(.workspace-open) header {
    height:100svh;
    min-height:100svh;
    padding-top:6.6rem;
    /* En móvil y tablet conserva la proporción; las bandas oscuras pertenecen
       al lienzo de la portada y evitan deformar el taller. */
    background-size:100% 100%,100% 100%,contain;
  }
}

/* v1.24 · Decisiones operativas integradas y avisos que no interrumpen el trabajo. */
.action-dialog {
  width:min(520px,calc(100vw - 2rem));
  padding:0;
  border:1px solid rgba(83,166,255,.72);
  border-radius:18px;
  background:linear-gradient(155deg,rgba(11,25,42,.98),rgba(3,10,19,.99));
  color:#f4f8ff;
  box-shadow:0 28px 90px rgba(0,0,0,.72),inset 0 1px 0 rgba(255,255,255,.06);
}
.action-dialog form { display:grid; gap:1rem; padding:clamp(1.1rem,4vw,1.6rem); }
.action-dialog .modal-heading { align-items:flex-start; }
.action-dialog .modal-heading h2 { margin:.2rem 0 0; }
.action-dialog .panel-help { margin:0; color:#c5d2e4; line-height:1.55; }
.action-dialog-fields { display:grid; gap:.85rem; }
.action-dialog-fields:empty { display:none; }
.action-dialog-fields label { display:grid; gap:.4rem; color:#d9e5f5; font-size:.78rem; font-weight:750; }
.action-dialog-fields input,.action-dialog-fields select { width:100%; min-height:46px; }
.action-dialog .form-actions { margin-top:.2rem; }
.action-dialog .form-actions button { min-height:46px; }
.notice-region {
  position:fixed;
  z-index:3000;
  right:clamp(.75rem,2vw,1.5rem);
  bottom:clamp(.75rem,2vw,1.5rem);
  display:grid;
  gap:.65rem;
  width:min(420px,calc(100vw - 1.5rem));
  pointer-events:none;
}
.app-notice {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:.9rem 1rem;
  border:1px solid rgba(70,210,145,.68);
  border-radius:12px;
  background:rgba(6,34,27,.97);
  color:#dcffed;
  box-shadow:0 14px 45px rgba(0,0,0,.46);
  pointer-events:auto;
  animation:notice-enter .18s ease-out;
}
.app-notice-error { border-color:rgba(255,93,115,.78); background:rgba(48,8,16,.98); color:#ffe5e9; }
.app-notice-close { min-width:36px; min-height:36px; padding:.15rem; border:0; background:transparent; color:inherit; font-size:1.3rem; }
@keyframes notice-enter { from { opacity:0; transform:translateY(10px); } }
@media(max-width:560px) {
  .action-dialog { width:calc(100vw - 1rem); max-height:calc(100svh - 1rem); }
  .action-dialog form { padding:1rem; }
  .action-dialog .form-actions { grid-template-columns:1fr; }
}
@media(prefers-reduced-motion:reduce) { .app-notice { animation:none; } }
@media(max-width:560px) {
  body:not(.workspace-open) header { padding-top:7.4rem; }
}

/* Firma transparente: el logotipo pertenece a la fotografía, no a una tarjeta. */
body:not(.workspace-open) header .hero-identity {
  padding:.5rem;
  border-color:transparent;
  background:transparent;
  box-shadow:none;
  backdrop-filter:none;
}
body:not(.workspace-open) header .hero-identity img {
  filter:drop-shadow(0 5px 12px rgba(0,0,0,.9));
}
body:not(.workspace-open) header .hero-identity #session-label {
  color:#f2f7fc;
  text-shadow:0 2px 7px #000,0 0 12px rgba(0,0,0,.85);
}

/* Instalación gratuita: ayuda accesible cuando el navegador no ofrece el aviso nativo. */
.install-help-dialog { width:min(520px,calc(100vw - 1.5rem)); }
.install-help-dialog section { display:grid; gap:1rem; padding:1.25rem; }
.install-help-dialog h2,.install-help-dialog p { margin:0; }
.install-help-dialog p { color:#c9d8e8; line-height:1.65; }
#install-help-instructions {
  padding:1rem;
  border:1px solid rgba(87,161,241,.34);
  border-radius:12px;
  background:rgba(14,52,94,.42);
  color:#f4f9ff;
}

/* Acceso SaaS: bloquea el puesto de trabajo hasta que el taller esté activo. */
.subscription-dialog {
  width:min(500px,calc(100vw - 2rem));
  border-top:3px solid #087cff;
}
.subscription-dialog section { display:grid; gap:1rem; padding:.6rem; }
.subscription-dialog h2 { margin:0; }
.subscription-dialog::backdrop { background:#01060be8; backdrop-filter:blur(8px); }
.subscription-price {
  display:grid;
  padding:1.1rem;
  border:1px solid #265da8;
  background:rgba(0,46,114,.28);
}
.subscription-price strong { font:700 2.5rem 'Rajdhani',sans-serif; color:#8fc0ff; }
.subscription-price span,.subscription-dialog small { color:#9ab0c8; }
.subscription-status { margin:0; color:#dce9f8; }
.subscription-actions { display:grid; grid-template-columns:1fr 1fr; gap:.7rem; }
.subscription-actions button:first-child { grid-column:1/-1; }
@media(max-width:520px) {
  .subscription-actions { grid-template-columns:1fr; }
  .subscription-actions button:first-child { grid-column:auto; }
}

/* Tarjetas operativas móviles v1.17: órdenes, presupuestos y facturas
   separan la información de sus acciones y eliminan controles amontonados. */
.invoice-alerts[hidden] { display:none !important; }

@media(max-width:700px) {
  .work-order-card,
  .invoice-card {
    display:grid;
    grid-template-columns:1fr;
    align-items:stretch;
    gap:.8rem;
    padding:.9rem;
  }
  .work-order-main,
  .invoice-main {
    display:grid;
    gap:.32rem;
    min-width:0;
  }
  .work-order-main h4,
  .invoice-main h4 {
    margin:0;
    font-size:1.08rem;
  }
  .work-order-main p,
  .invoice-main p,
  .work-order-main small,
  .invoice-main small {
    margin:0;
    overflow-wrap:anywhere;
    line-height:1.42;
  }
  .work-order-card .vehicle-actions,
  .invoice-card .vehicle-actions,
  .budget-card-details .vehicle-actions {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    align-items:stretch;
    width:100%;
    gap:.5rem;
  }
  .work-order-card .vehicle-actions button,
  .invoice-card .vehicle-actions button,
  .budget-card-details .vehicle-actions button {
    width:100%;
    min-width:0;
    min-height:44px;
    padding:.58rem .45rem;
    white-space:normal;
    line-height:1.15;
  }
  .invoice-card .invoice-amount {
    grid-column:1 / -1;
    display:block;
    width:100%;
    padding:.65rem .75rem;
    border:1px solid rgba(255,92,113,.4);
    border-radius:7px;
    background:rgba(82,4,17,.46);
    color:#fff;
    font:800 1.28rem 'Rajdhani',sans-serif;
    text-align:right;
  }
  .budget-card-active {
    padding:.85rem;
  }
  .budget-card-summary {
    gap:.55rem;
  }
  .budget-card-summary h4 {
    overflow-wrap:anywhere;
  }
  .budget-card-amount {
    display:flex;
    align-items:center;
    justify-content:space-between;
    width:100%;
    gap:.7rem;
    text-align:left;
  }
  .budget-card-amount strong {
    font-size:1.3rem;
  }
  .budget-line-list {
    gap:.45rem;
    padding:0;
    list-style:none;
  }
  .budget-line-list li {
    gap:.4rem;
    padding:.55rem .6rem;
    border:1px solid rgba(255,92,113,.28);
    border-radius:7px;
    background:rgba(73,5,16,.32);
  }
  .budget-line-controls {
    justify-content:space-between;
    width:100%;
    white-space:normal;
  }
  .budget-totals {
    padding:.65rem .7rem;
    border-radius:7px;
    background:rgba(82,4,17,.36);
    line-height:1.55;
  }
  .budget-history-group > summary,
  .budget-card-compact > summary {
    min-height:44px;
    box-sizing:border-box;
  }
}

@media(max-width:430px) {
  .work-order-card .vehicle-actions,
  .invoice-card .vehicle-actions,
  .budget-card-details .vehicle-actions {
    grid-template-columns:1fr;
  }
}

/* Manual junto al margen izquierdo, en la posición señalada de la portada. */
body:not(.workspace-open) .manual-link {
  left:clamp(1rem,2vw,2rem);
  right:auto;
}
@media(max-width:800px) {
  body:not(.workspace-open) .manual-link {
    position:fixed;
    left:.75rem;
    right:auto;
    bottom:1rem;
  }
}
