/* Portal de clientes IECE. Mismos tokens de la propuesta web: naranja del logo sobre neutros cálidos. */
:root{
  --bg:#F4F3F1; --surface:#FFFFFF; --sunk:#ECEAE6; --ink:#1C1B1A; --muted:#625D57; --line:#DEDAD4;
  --accent:#E8701F; --accent-ink:#A9480C; --accent-soft:#FCEADD; --on-accent:#1C1B1A;
  --crit:#B02E25; --crit-soft:#F9E1DE; --warn:#8A5A00; --warn-soft:#F7ECD6; --ok:#276B33; --ok-soft:#E1F0E2; --info:#5A5650; --info-soft:#E9E7E3;
  --f-display:"Barlow Condensed","Arial Narrow",Arial,sans-serif;
  --f-body:"IBM Plex Sans","Segoe UI",Roboto,Arial,sans-serif;
  --f-mono:"IBM Plex Mono",Consolas,"Courier New",monospace;
  --r:6px; color-scheme:light;
}
/* Tema: sigue al sistema, salvo que el usuario elija claro u oscuro (data-tema en <html>) */
@media (prefers-color-scheme: dark){:root:not([data-tema="claro"]){
  --bg:#131211; --surface:#1C1B19; --sunk:#242220; --ink:#F1EEEA; --muted:#A8A199; --line:#33302C;
  --accent:#F08236; --accent-ink:#F7A266; --accent-soft:#3A2417; --on-accent:#141312;
  --crit:#F0716A; --crit-soft:#3D1F1C; --warn:#E3AE4F; --warn-soft:#3A2E17; --ok:#73C27E; --ok-soft:#1D3220; --info:#BDB6AD; --info-soft:#2A2825;
  --grua:#E8B840; color-scheme:dark;}}
:root[data-tema="oscuro"]{
  --bg:#131211; --surface:#1C1B19; --sunk:#242220; --ink:#F1EEEA; --muted:#A8A199; --line:#33302C;
  --accent:#F08236; --accent-ink:#F7A266; --accent-soft:#3A2417; --on-accent:#141312;
  --crit:#F0716A; --crit-soft:#3D1F1C; --warn:#E3AE4F; --warn-soft:#3A2E17; --ok:#73C27E; --ok-soft:#1D3220; --info:#BDB6AD; --info-soft:#2A2825;
  --grua:#E8B840; color-scheme:dark;}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:15px;line-height:1.55;min-height:100vh}
/* Textos largos sin espacios (un enlace, un código, un dato pegado): se parten en el borde de su recuadro en vez de salirse.
   En las tablas no: ahí una columna ancha se desplaza dentro de su recuadro (.tbl-wrap). */
body{overflow-wrap:anywhere}
table{overflow-wrap:normal}
td,th{overflow-wrap:break-word}
input,select,textarea,button{overflow-wrap:normal}
h1,h2,h3,h4{font-family:var(--f-display);font-weight:700;line-height:1.05;margin:0;text-wrap:balance;text-transform:uppercase}
p{margin:0}
a{color:var(--accent-ink)}
img{max-width:100%}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--accent-ink);outline-offset:2px;border-radius:2px}
[hidden]{display:none!important}
.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}
.small{font-size:13px;color:var(--muted)}
.eyebrow{font-family:var(--f-mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}

/* Estructura */
.shell{display:grid;grid-template-columns:230px 1fr;min-height:100vh}
.side{border-right:1px solid var(--line);background:var(--surface);padding:16px 12px;display:flex;flex-direction:column;gap:4px;position:sticky;top:0;height:100vh;overflow:auto}
.logo-plate{display:block;margin-bottom:14px;padding:2px 0}
.logo-plate img{display:block;height:38px;width:auto}
.who{padding:4px 10px 14px;border-bottom:1px solid var(--line);margin-bottom:8px}
.who b{display:block;font-size:14px;line-height:1.3}
.who span{font-size:12px;color:var(--muted)}
.nav a{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;border-radius:var(--r);color:var(--muted);text-decoration:none;font-size:14px}
.nav a:hover{background:var(--sunk);color:var(--ink)}
.nav a[aria-current="page"]{background:var(--accent-soft);color:var(--accent-ink);font-weight:600}
.nav .n{font-family:var(--f-mono);font-size:11.5px}
.side-menu{display:flex;flex-direction:column;gap:4px;flex:1 1 auto}
.side-pie{margin-top:auto;display:flex;flex-direction:column;gap:2px}
.side .salir{width:100%;text-align:left;background:none;border:0;padding:8px 10px;color:var(--muted);cursor:pointer;border-radius:var(--r)}
.side .salir:hover{background:var(--sunk);color:var(--ink)}
.side a.salir{display:block;text-decoration:none;font-size:15px}
.main{padding:24px max(16px,3vw) 48px;min-width:0;max-width:1180px}
.main-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.main-head h1{font-size:34px}
.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.toolbar select{border:1px solid var(--line);background:var(--surface);border-radius:var(--r);padding:7px 10px;font-size:14px}

/* Piezas */
.chip{display:inline-flex;align-items:center;gap:6px;font-family:var(--f-mono);font-size:11.5px;letter-spacing:.04em;text-transform:uppercase;padding:2px 8px;border-radius:999px;white-space:nowrap;font-weight:500}
.chip::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.c-crit{background:var(--crit-soft);color:var(--crit)}
.c-warn{background:var(--warn-soft);color:var(--warn)}
.c-ok{background:var(--ok-soft);color:var(--ok)}
.c-info{background:var(--info-soft);color:var(--info)}
.c-acc{background:var(--accent-soft);color:var(--accent-ink)}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px;min-width:0}
.kpi .l{font-size:12.5px;color:var(--muted)}
.kpi .v{font-family:var(--f-display);font-size:34px;font-weight:700;line-height:1.1}
.kpi .s{font-size:12px;color:var(--muted)}
.kpi.alert{border-color:var(--crit)}
.kpi.alert .v{color:var(--crit)}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px;min-width:0}
.panel h2{font-size:20px;margin-bottom:10px}
.panel + .panel{margin-top:12px}
.two{display:grid;grid-template-columns:1.3fr 1fr;gap:12px;align-items:start}
.two + .panel,.panel + .two,.two + .two{margin-top:12px}
.stack{display:grid;gap:12px}
.list .row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}
.list .row:first-child{border-top:0;padding-top:0}
.row>div{min-width:0}
.row b{font-size:14px;display:block;line-height:1.35}
.row span.d{font-size:12.5px;color:var(--muted)}
.tbl-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
table{border-collapse:collapse;width:100%;font-size:13.5px}
th{font-family:var(--f-mono);font-weight:500;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);text-align:left;padding:9px 12px;border-bottom:1px solid var(--line);white-space:nowrap;background:var(--sunk)}
td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}
tr:last-child td{border-bottom:0}
td.num{font-family:var(--f-mono);font-variant-numeric:tabular-nums;white-space:nowrap}
.meta{display:flex;gap:16px;flex-wrap:wrap;font-size:13px;color:var(--muted)}
.meta b{color:var(--ink);font-weight:600}
.vacio{padding:28px;text-align:center;color:var(--muted);font-size:14px}

/* Formularios */
.field{display:grid;gap:6px}
.field label{font-size:13px;font-weight:600}
.field input,.field select,.field textarea{border:1px solid var(--line);background:var(--bg);border-radius:var(--r);padding:9px 12px;width:100%}
.field select.calculada{border-style:dashed;cursor:not-allowed}
.field textarea{min-height:90px;resize:vertical}
.field .ayuda{font-size:12px;color:var(--muted)}
.grid-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;align-items:end}
.form{display:grid;gap:12px}
.check{display:flex;gap:10px;align-items:flex-start;font-size:14px}
.check input{margin-top:4px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:var(--r);padding:9px 16px;font-weight:600;cursor:pointer;text-decoration:none;font-size:14px;white-space:nowrap}
.btn-pri{background:var(--accent);color:var(--on-accent)}
.btn-pri:hover{filter:brightness(1.05)}
.btn-sec{background:transparent;border-color:var(--line);color:var(--ink)}
.btn-sec:hover{background:var(--sunk)}
.btn-sm{padding:5px 10px;font-size:13px}
.inline{display:inline-flex;gap:6px;align-items:center;flex-wrap:wrap}
.inline select{border:1px solid var(--line);background:var(--bg);border-radius:var(--r);padding:5px 8px;font-size:13px}
.aviso{border-radius:var(--r);padding:10px 14px;font-size:14px;margin-bottom:14px}
.aviso.ok{background:var(--ok-soft);color:var(--ok)}
.aviso.error{background:var(--crit-soft);color:var(--crit)}
.aviso.info{background:var(--accent-soft);color:var(--accent-ink)}
.barra{height:8px;border-radius:999px;background:var(--sunk);overflow:hidden}
.barra i{display:block;height:100%;background:var(--accent);width:0}

/* Ingreso */
.codigo-input{font-family:var(--f-mono);font-size:28px!important;letter-spacing:.4em;text-align:center}
.legal{max-width:70ch;display:grid;gap:12px}
.legal h2{font-size:22px;margin-top:8px}

/* Placa QR y gráfico */
.plate{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center;border:2px solid var(--ink);border-radius:4px;padding:12px;background:var(--surface);max-width:380px}
.plate svg{width:84px;height:84px;display:block}
.plate .t{font-family:var(--f-mono);font-size:12px;line-height:1.4;min-width:0;word-break:break-all}
.plate .t b{font-family:var(--f-display);font-size:22px;display:block;word-break:normal}
.chart svg{width:100%;height:auto;display:block}
.leyenda{display:flex;gap:16px;flex-wrap:wrap;margin-top:8px}
.leyenda span{display:inline-flex;align-items:center;gap:6px}
.leyenda i{width:12px;height:12px;border-radius:2px;border:1px solid var(--line);display:inline-block}

/* Marca del cliente */
.logo-cliente{display:block;background:#0E3A7B;border-radius:var(--r);padding:10px;margin-bottom:8px}
.logo-cliente img{display:block;height:54px;width:auto;margin:0 auto}
.logo-plate.con-cliente{padding:0}
.logo-plate.con-cliente img{height:28px}
.logos-ingreso{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.logos-ingreso .logo-cli{height:62px;width:auto;background:#0E3A7B;border-radius:4px;padding:6px 10px}

/* Torregrúas */
:root{--grua:#D9A21B}

h2.sub{font-size:22px;margin:22px 0 10px}
.panel-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}
.panel-head h2{margin:0}
.flota-resumen{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:14px}
.flota-resumen div{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:12px 14px}
.flota-resumen b{display:block;font-family:var(--f-display);font-size:34px;line-height:1}
.flota-resumen span{font-size:12.5px;color:var(--muted)}
.flota-resumen .alerta{border-color:var(--crit)}
.flota-resumen .alerta b{color:var(--crit)}
.flota{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:14px}
.grua-card{display:flex;flex-direction:column;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px;color:inherit;text-decoration:none;transition:box-shadow .15s,transform .15s}
.grua-card:hover{box-shadow:0 8px 24px rgba(0,0,0,.08);transform:translateY(-2px)}
.gc-top{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center}
.gc-top b{font-family:var(--f-display);font-size:24px;display:block;line-height:1}
.gc-top span{font-size:12.5px;color:var(--muted)}
.ico-grua{width:44px;height:44px;flex:none}
.gc-partes{display:grid;grid-template-columns:repeat(9,1fr);gap:4px}
.gc-partes i{height:8px;border-radius:4px;display:block}
.grua-card dl,.gh-datos{margin:0;display:grid;grid-template-columns:1fr 1fr;gap:10px 14px}
.grua-card dt,.gh-datos dt{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-family:var(--f-mono)}
.grua-card dd,.gh-datos dd{margin:2px 0 0;font-size:13.5px;font-weight:600;line-height:1.3}
.grua-card dd small,.gh-datos dd small{display:block;font-weight:400;color:var(--muted);font-size:12px}
.gc-pie{display:flex;gap:6px;flex-wrap:wrap;align-items:center;border-top:1px solid var(--line);padding-top:10px;margin-top:auto}
.gc-pie .ver{margin-left:auto;font-size:13px;color:var(--accent-ink);font-weight:600}
.flota-mini{margin-bottom:12px}
.fm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px}
.fm-item{display:flex;gap:8px;align-items:center;padding:8px;border:1px solid var(--line);border-radius:8px;color:inherit;text-decoration:none}
.fm-item:hover{background:var(--sunk)}
.fm-item .ico-grua{width:34px;height:34px}
.fm-item b{font-family:var(--f-display);font-size:18px;display:block;line-height:1}
.fm-item small{display:block;font-size:11.5px;color:var(--muted);line-height:1.3}
.grua-hero{display:grid;grid-template-columns:auto 1fr;gap:14px 24px;align-items:start;margin-bottom:12px}
.gh-id{display:flex;gap:14px;align-items:center}
.gh-id .ico-grua{width:64px;height:64px}
.gh-id h1{font-size:44px}
.gh-chips{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}
.gh-datos{grid-column:1/-1;grid-template-columns:repeat(3,1fr);background:var(--sunk);border-radius:10px;padding:14px}
.esquema{width:100%;height:auto;display:block;max-height:460px}
.esquema .marca circle{transition:r .15s}
.esquema .marca:hover circle{r:18}
.partes{list-style:none;margin:0;padding:0}
.partes li{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:9px 6px;border-top:1px solid var(--line);border-radius:6px}
.partes li:first-child{border-top:0}
.partes li:target{background:var(--accent-soft)}
.partes .pn{width:26px;height:26px;border-radius:50%;color:#fff;font-weight:700;font-size:13px;display:grid;place-items:center}
.partes b{font-size:14px;display:block;line-height:1.3}
.partes small{font-size:12px;color:var(--muted)}
.crono td{vertical-align:middle}
.crono th.mes,.crono td.mes{text-align:center;width:52px;padding-left:4px;padding-right:4px}
.ciclo{height:8px;border-radius:4px;background:var(--sunk);overflow:hidden;min-width:110px}
.ciclo i{display:block;height:100%;background:var(--ok)}
.ciclo.proxima i{background:var(--warn)}
.ciclo.vencida i{background:var(--crit)}
.crono small{font-size:11.5px;color:var(--muted)}
.punto{display:inline-block;width:14px;height:14px;border-radius:50%;background:var(--accent)}
.punto.vencido{background:var(--crit);box-shadow:0 0 0 3px var(--crit-soft)}
.leyenda .punto{width:11px;height:11px;border:0}
.pat{display:grid;gap:8px}
.pat-fila{display:grid;grid-template-columns:minmax(150px,240px) 1fr auto;gap:10px;align-items:center}
.pat-fila>b{white-space:nowrap;text-align:right}
.pat-obra{font-size:13px;font-weight:600;line-height:1.25}
.pat-obra small{display:block;font-weight:400;color:var(--muted);font-size:11.5px}
.pat-barra{height:14px;background:var(--sunk);border-radius:7px;overflow:hidden}
.pat-barra i{display:block;height:100%;border-radius:7px}
.pat-barra i.c-ok{background:var(--ok)}.pat-barra i.c-warn{background:var(--warn)}.pat-barra i.c-crit{background:var(--crit)}
.ingresos{display:grid;gap:12px}
.ing-card{border:1px solid var(--line);border-radius:10px;padding:14px;display:grid;gap:12px}
.ing-card header{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.ing-card header b{font-size:15px;display:block}
.ing-card header small{font-size:12px;color:var(--muted)}
.mets{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.met{background:var(--sunk);border-radius:8px;padding:10px}
.met span{display:block;font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);font-family:var(--f-mono)}
.met b{display:block;font-size:20px;font-weight:600;margin-top:2px}
.met small{font-size:11.5px;color:var(--muted)}
.fuente{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;border-radius:8px;padding:10px 12px;background:var(--info-soft);font-size:13.5px}
.fuente.planta{background:var(--accent-soft)}
.fuente small{display:block;font-size:12.5px;color:var(--muted)}
/* Aviso de demostración, unifilar e indicadores */
.demo-aviso{background:repeating-linear-gradient(135deg,var(--accent-soft) 0 14px,var(--surface) 14px 28px);border:1px dashed var(--accent);color:var(--accent-ink);border-radius:8px;padding:8px 14px;font-size:13px;font-weight:600;margin-bottom:14px}
.vista-iece{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;background:var(--ink);color:var(--surface);border-radius:8px;padding:8px 8px 8px 14px;margin-bottom:10px;font-size:13.5px}
.vista-iece .btn-sec{background:var(--surface);color:var(--ink)}
.op-equipo{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center}
.op-equipo .ico-grua{width:72px;height:72px}
.op-equipo h1{font-size:40px}
.op-falla textarea{min-height:110px;font-size:16px}
.op-falla .btn-pri{width:100%;padding:14px;font-size:17px}
.op-parado{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.op-parado label{display:flex;gap:8px;align-items:center;justify-content:center;border:2px solid var(--line);border-radius:10px;padding:12px;font-weight:600;cursor:pointer}
.op-parado input:checked + span{color:var(--accent-ink)}
.op-parado label:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}
.unifilar{width:100%;height:auto;display:block}
.unifilar .nodo{cursor:pointer}
.unifilar .nodo:hover>*{filter:drop-shadow(0 0 4px rgba(0,0,0,.25))}
.indicadores{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;margin-bottom:12px}
.indicadores .panel + .panel{margin-top:0}
.dona-fila{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.ind-num{border-radius:8px;padding:10px;background:var(--sunk);border-top:4px solid var(--c)}
.ind-num b{display:block;font-family:var(--f-display);font-size:30px;line-height:1;color:var(--c)}
.ind-num span{font-size:11.5px;color:var(--muted)}
.barra-apilada{display:flex;height:18px;border-radius:9px;overflow:hidden;background:var(--sunk)}
.barra-apilada i{display:block;height:100%}
.ind-lista{display:grid;gap:4px;margin-top:10px;font-size:13px}
.ind-lista span{display:flex;align-items:center;gap:8px}
.ind-lista i{width:11px;height:11px;border-radius:3px;display:inline-block}
.ind-lista b{margin-left:auto;font-weight:600}
a.pat-fila{color:inherit;text-decoration:none;border-radius:6px}
a.pat-fila:hover{background:var(--sunk)}
/* Gestión: indicadores, repuestos, personal y reuniones */
.filtros{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr)) auto;gap:12px;align-items:end;margin-bottom:14px}
.filtros-acc{display:flex;gap:8px}
.kpis-mtto .v{font-size:30px}
.kpis-mtto .s a{color:var(--accent-ink)}
.disp{display:flex;align-items:center;gap:8px}
.disp .ciclo{flex:1;min-width:70px}
.disp b{font-size:13px;white-space:nowrap}
.barras-mes{display:flex;align-items:flex-end;gap:10px;height:170px;padding-top:8px}
.barras-mes>div{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:4px;min-width:0}
.barras-mes i{display:block;width:100%;max-width:46px;background:var(--crit);border-radius:6px 6px 0 0;min-height:2px}
.barras-mes small{font-size:11px;color:var(--muted)}
.barras-mes span{font-size:12px;font-weight:600}
.formula{margin-top:12px}
details.nuevo>summary{list-style:none;display:inline-flex}
details.nuevo>summary::-webkit-details-marker{display:none}
.tabs{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
.tabs>a{padding:7px 12px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--muted);text-decoration:none;font-size:13.5px}
.tabs>a[aria-current="page"]{background:var(--accent-soft);color:var(--accent-ink);border-color:var(--accent);font-weight:600}
.tabs .buscar{margin-left:auto}
.tabs .buscar input{border:1px solid var(--line);background:var(--surface);border-radius:var(--r);padding:6px 10px;font-size:13px;min-width:220px}
td .form select,td .form input{border:1px solid var(--line);background:var(--bg);border-radius:var(--r);padding:5px 8px;font-size:13px}
.avatar{width:44px;height:44px;border-radius:50%;background:var(--accent-soft);color:var(--accent-ink);display:grid;place-items:center;font-family:var(--f-display);font-weight:700;font-size:18px}
.persona dd a{color:var(--accent-ink)}
.reunion{display:grid;grid-template-columns:76px 1fr;gap:14px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px;margin-bottom:10px}
.re-fecha{background:var(--accent-soft);color:var(--accent-ink);border-radius:10px;text-align:center;padding:8px 4px;align-self:start}
.re-fecha b{display:block;font-family:var(--f-display);font-size:30px;line-height:1}
.re-fecha span,.re-fecha small{display:block;font-size:11.5px}
.re-cuerpo h3{font-size:19px}
.compromisos{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:6px}
.compromisos li{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;border-top:1px solid var(--line);padding-top:6px}
.compromisos li b{font-size:13.5px;display:block;font-weight:600}
.compromisos li small{font-size:12px;color:var(--muted)}
.compromisos li.cumplido b{text-decoration:line-through;color:var(--muted)}
.ck{width:22px;height:22px;border-radius:6px;border:2px solid var(--line);background:var(--surface);display:grid;place-items:center;font-size:13px;font-weight:700;color:var(--ok);cursor:pointer;padding:0}
li.cumplido .ck{border-color:var(--ok);background:var(--ok-soft)}
li.vencido .ck{border-color:var(--crit)}
.checks{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.checks li{display:flex;gap:8px;align-items:center;font-size:13.5px}
.checks li span{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;flex:none;background:var(--info-soft);color:var(--info)}
.checks li.ok span{background:var(--ok-soft);color:var(--ok)}
.checks li.no span{background:var(--crit-soft);color:var(--crit)}
.checks li.no{color:var(--crit);font-weight:600}
.checklist td.op{text-align:center;width:90px}
.checklist input{width:18px;height:18px;accent-color:var(--accent)}
.linea-tiempo{display:grid;gap:0;border-left:2px solid var(--line);margin-left:6px}
.linea-tiempo>div{position:relative;padding:0 0 14px 18px}
.linea-tiempo>div::before{content:"";position:absolute;left:-7px;top:4px;width:12px;height:12px;border-radius:50%;background:var(--accent);border:2px solid var(--surface)}
.linea-tiempo b{display:block;font-size:14px}

@media (max-width:900px){
  .flota-resumen{grid-template-columns:repeat(3,1fr)}
  .gh-datos{grid-template-columns:1fr 1fr}
  .grua-hero{grid-template-columns:1fr}
  .gh-chips{justify-content:flex-start}
  .pat-fila{grid-template-columns:1fr 60px}
  .pat-barra{grid-column:1/-1;grid-row:2}
  .mets{grid-template-columns:repeat(2,1fr)}
  .filtros{grid-template-columns:1fr 1fr}
  .filtros-acc{grid-column:1/-1}
  .tabs .buscar{margin-left:0;width:100%}
  .tabs .buscar input{min-width:0;flex:1}
  .shell{grid-template-columns:1fr}
  .side{position:static;height:auto;border-right:0;border-bottom:1px solid var(--line);flex-direction:row;flex-wrap:wrap;align-items:center}
  .logo-plate{margin-bottom:0}
  .who{border-bottom:0;margin-bottom:0;padding-bottom:4px;flex:1 1 200px}
  .nav{display:flex;flex-wrap:wrap;gap:2px;width:100%}
  .side-pie{margin-top:0;flex-direction:row;flex-wrap:wrap}
  .side-menu{flex:1 1 100%;gap:2px}
  .two{grid-template-columns:1fr}
  .kpis{grid-template-columns:1fr 1fr}
}
@media (max-width:480px){
  .kpis{grid-template-columns:1fr}
  .main-head h1{font-size:28px}
}
/* Informes imprimibles: mensual y de almacén */
.informe-cab{display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;border-bottom:3px solid var(--accent);padding-bottom:12px;margin-bottom:14px}
.inf-logo{height:56px;width:auto;border-radius:6px;padding:6px 10px}
.inf-titulo h1{font-size:34px;margin:2px 0}
.inf-titulo p{font-size:15px;color:var(--muted)}
.inf-pie{display:grid;justify-items:end;gap:4px}
.mes-sel{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin-bottom:12px;padding:12px}
.mes-sel .field{min-width:150px;display:flex;flex-direction:row;align-items:center;gap:8px}
.mes-sel .field label{margin:0}
.inf-sec{border-bottom:1px solid var(--line);padding-bottom:4px;margin-top:20px}
h3.mini{font-size:15px;margin-bottom:8px}
.alertas{margin:0;padding-left:18px;display:grid;gap:6px;font-size:14px}
.almacen th,.almacen td{padding:8px 8px}
.almacen thead th{text-align:center}
.almacen tr.total td{background:var(--sunk);border-top:2px solid var(--ink)}
@media print{
  @page{size:letter;margin:14mm}
  body{background:#fff;font-size:12px}
  .side,.no-imprimir,.vista-iece,.demo-aviso,.toolbar,.saltar,.a11y{display:none!important}
  .shell{display:block}.main{padding:0;max-width:none}
  .panel,.kpi,.tbl-wrap,.informe-cab,tr{break-inside:avoid}
  .inf-sec{break-after:avoid}
  .kpis{grid-template-columns:repeat(4,1fr)}
  .two{grid-template-columns:1fr 1fr}
  .panel,.kpi,.tbl-wrap{box-shadow:none}
}
@media (max-width:900px){.informe-cab{grid-template-columns:1fr}.inf-pie{justify-items:start}}
@media print{.side,.saltar,.a11y{display:none}.shell{display:block}}

/* ---------- Accesibilidad ---------- */
.saltar{position:absolute;left:12px;top:-60px;z-index:100;background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:var(--r);font-weight:600;text-decoration:none}
.saltar:focus{top:12px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
#contenido:focus{outline:none}
.tbl-wrap:focus-visible{outline-offset:0}
.aviso.error:focus{outline:3px solid var(--crit);outline-offset:2px}
[aria-invalid="true"]{border-color:var(--crit)!important;box-shadow:0 0 0 1px var(--crit)}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .grua-card:hover{transform:none}
}
@media (forced-colors: active){
  .chip,.aviso,.btn{border:1px solid CanvasText}
  :focus-visible{outline:3px solid Highlight}
}

/* ---------- Barra de accesibilidad ---------- */
.a11y-abrir{position:fixed;right:16px;bottom:16px;z-index:90;width:54px;height:54px;border-radius:50%;border:2px solid var(--surface);background:var(--accent-ink);color:#fff;display:grid;place-items:center;cursor:pointer;box-shadow:0 4px 16px rgba(0,0,0,.25)}
.a11y-abrir:hover,.a11y-abrir[aria-expanded="true"]{background:var(--ink);color:var(--bg)}
.a11y-panel{position:fixed;right:16px;bottom:82px;z-index:91;width:min(380px,calc(100vw - 32px));max-height:calc(100vh - 110px);overflow:auto;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 40px rgba(0,0,0,.28);padding:16px;display:flex;flex-direction:column;gap:14px;font-size:15px;line-height:1.45;letter-spacing:normal;word-spacing:normal}
.a11y-panel[hidden]{display:none!important}
.a11y-cab{display:flex;justify-content:space-between;align-items:center}
.a11y-cab h2{font-size:24px}
.a11y-cerrar{width:40px;height:40px;border:1px solid var(--line);background:var(--sunk);border-radius:var(--r);font-size:24px;line-height:1;cursor:pointer}
.a11y-grupo h3{font-family:var(--f-body);text-transform:none;font-size:13px;font-weight:600;color:var(--muted);margin-bottom:8px}
.a11y-texto{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.a11y-texto button{min-height:48px;border:1px solid var(--line);background:var(--sunk);border-radius:var(--r);font-weight:700;font-size:18px;cursor:pointer}
.a11y-texto button:nth-child(1){font-size:15px}
.a11y-texto button:nth-child(3){font-size:22px}
.a11y-texto button:disabled{opacity:.45;cursor:not-allowed}
.a11y-texto button[aria-pressed="true"]{border-color:var(--accent-ink);background:var(--accent-soft)}
.a11y-nivel{font-size:13px;color:var(--muted);margin-top:6px}
.a11y-ops{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.a11y-op{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;min-height:64px;padding:10px;border:1px solid var(--line);background:var(--sunk);border-radius:var(--r);cursor:pointer}
.a11y-op b{font-size:14px}
.a11y-op span{font-size:12px;color:var(--muted);line-height:1.3}
.a11y-op[aria-pressed="true"]{border:2px solid var(--accent-ink);background:var(--accent-soft);padding:9px}
.a11y-op[aria-pressed="true"] b::before{content:"✓ "}
.a11y-reset{width:100%;min-height:44px}
.a11y-guia{display:none;position:fixed;left:0;right:0;top:-100px;height:36px;z-index:80;pointer-events:none;border-top:3px solid var(--accent-ink);border-bottom:3px solid var(--accent-ink);background:rgba(232,112,31,.08)}
.a11y-lectura .a11y-guia{display:block}
@media (max-width:480px){.a11y-ops{grid-template-columns:1fr}.a11y-abrir{right:12px;bottom:12px}}

/* Tamaño del texto: se escala el contenido de la página, no la barra */
:root[data-texto="-1"]{--zoom:.9} :root[data-texto="1"]{--zoom:1.15} :root[data-texto="2"]{--zoom:1.3} :root[data-texto="3"]{--zoom:1.5} :root[data-texto="4"]{--zoom:1.75}
:root[data-texto] .shell,:root[data-texto] body>#contenido{zoom:var(--zoom,1)}

/* Alto contraste: negro, blanco y amarillo; tiene prioridad sobre el tema */
:root.a11y-contraste{
  --bg:#000; --surface:#000; --sunk:#000; --ink:#FFF; --muted:#FFF; --line:#FFF;
  --accent:#FFE600; --accent-ink:#FFE600; --accent-soft:#000; --on-accent:#000;
  --crit:#FF7A7A; --crit-soft:#000; --warn:#FFE600; --warn-soft:#000; --ok:#7DFF8A; --ok-soft:#000; --info:#FFF; --info-soft:#000;
  --grua:#FFE600; color-scheme:dark;}
.a11y-contraste .chip,.a11y-contraste .panel,.a11y-contraste .aviso,.a11y-contraste input,.a11y-contraste select,.a11y-contraste textarea,.a11y-contraste .btn{border:1px solid #FFF!important}
.a11y-contraste .btn-pri{background:#FFE600!important;color:#000!important}
.a11y-contraste a{color:#FFE600!important}
.a11y-contraste .a11y-abrir{background:#FFE600;color:#000;border-color:#FFF}

.a11y-grises .shell,.a11y-grises body>#contenido{filter:grayscale(1)}
.a11y-enlaces a{text-decoration:underline!important;text-decoration-thickness:2px!important;text-underline-offset:3px;outline:1px dashed currentColor;outline-offset:2px}
.a11y-interlineado .shell *,.a11y-interlineado body>#contenido *{line-height:1.9!important}
.a11y-espaciado .shell *,.a11y-espaciado body>#contenido *{letter-spacing:.12em!important;word-spacing:.16em!important}
.a11y-fuente .shell *,.a11y-fuente body>#contenido *{font-family:Verdana,Tahoma,"Segoe UI",Arial,sans-serif!important;text-transform:none!important}
.a11y-cursor,.a11y-cursor *{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 48 48'%3E%3Cpath d='M6 4l30 18-13 3 8 16-6 3-8-16-11 9z' fill='%23000' stroke='%23fff' stroke-width='3' stroke-linejoin='round'/%3E%3C/svg%3E") 6 4,auto!important}
.a11y-animaciones *,.a11y-animaciones *::before,.a11y-animaciones *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
.a11y-animaciones .grua-card:hover{transform:none}
:root[data-texto] .side{height:calc(100vh / var(--zoom,1))}

/* ---------- Menú del celular (hamburguesa) ---------- */
.menu-btn{display:none}
@media (max-width:700px){
  .side{position:sticky;top:0;z-index:60;flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px 10px;padding:8px 12px;box-shadow:0 1px 0 var(--line)}
  .logo-cliente{margin:0;padding:4px 8px}
  .logo-cliente img{height:32px}
  .logo-plate,.logo-plate.con-cliente{margin:0;padding:0}
  .logo-plate img,.logo-plate.con-cliente img{height:30px}
  .who{flex:1 1 0;min-width:0;padding:0;border:0;margin:0}
  .who b{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .who span{display:block;font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .menu-btn{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;border:1px solid var(--line);border-radius:var(--r);background:var(--sunk);color:var(--ink);font-weight:600;cursor:pointer}
  .menu-btn[aria-expanded="true"]{background:var(--accent-soft);border-color:var(--accent-ink);color:var(--accent-ink)}
  .menu-ico{display:inline-grid;gap:3px;width:18px}
  .menu-ico i{display:block;height:2px;border-radius:2px;background:currentColor;transition:transform .15s,opacity .15s}
  .menu-btn[aria-expanded="true"] .menu-ico i:nth-child(1){transform:translateY(5px) rotate(45deg)}
  .menu-btn[aria-expanded="true"] .menu-ico i:nth-child(2){opacity:0}
  .menu-btn[aria-expanded="true"] .menu-ico i:nth-child(3){transform:translateY(-5px) rotate(-45deg)}
  .side-menu{flex:1 1 100%;display:flex;flex-direction:column;gap:4px;max-height:calc(100vh - 72px);overflow:auto;padding:6px 0 76px;border-top:1px solid var(--line)}   /* 76px: espacio para el botón de accesibilidad */
  .js .side:not(.sin-menu):not(.abierto) .side-menu{display:none}
  .side-menu .nav{display:flex;flex-direction:column;gap:2px;width:100%}
  .side-menu .nav a{min-height:44px;font-size:15px}
  .side-menu .side-pie{flex-direction:column;border-top:1px solid var(--line);padding-top:4px}
  .side-menu .side-pie form{display:flex;flex-direction:column}
  .side .salir{min-height:44px}
  .sin-menu .side-menu{border-top:0;padding:0}
  .sin-menu .side-menu .side-pie{flex-direction:row;border:0}
  .sin-menu .side-menu .side-pie form{flex-direction:row}
}

/* Celular con texto ampliado: la barra superior conserva su tamaño; se amplían el contenido y la lista del menú */
@media (max-width:700px){
  :root[data-texto] .shell{zoom:1}
  :root[data-texto] .side{height:auto}
  :root[data-texto] .main,:root[data-texto] .side-menu{zoom:var(--zoom,1)}
  :root[data-texto] .side-menu{max-height:calc((100vh - 72px) / var(--zoom,1))}
}

/* Pantallas táctiles: sin opción de cursor grande ni la nota del atajo de teclado */
@media (hover:none) and (pointer:coarse){
  .a11y-op[data-a11y="cursor"]{display:none}
  .solo-teclado{display:none}
  .a11y-cursor,.a11y-cursor *{cursor:auto!important}
}

/* Celular: barra superior siempre en una fila (logo, empresa, botón Menú) */
@media (max-width:700px){
  .side{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;column-gap:10px;row-gap:0}
  .side-menu{grid-column:1/-1}
  .logo-plate.con-cliente{display:none}            /* con logo del cliente, en el celular basta ese logo */
  .logo-cliente{max-width:110px}
  .logo-cliente img{max-width:100%;height:32px;object-fit:contain}
  .menu-btn{padding:0 12px}
}
@media (max-width:360px){
  .menu-btn{padding:0 10px;gap:6px}
  .who b{font-size:12.5px}
}

/* ---------- Logo de IECE: versión según el tema (sin recuadro blanco) ---------- */
.logo-oscuro{display:none!important}
@media (prefers-color-scheme: dark){
  :root:not([data-tema="claro"]) .logo-claro{display:none!important}
  :root:not([data-tema="claro"]) .logo-oscuro{display:block!important}
}
:root[data-tema="oscuro"] .logo-claro,:root.a11y-contraste .logo-claro{display:none!important}
:root[data-tema="oscuro"] .logo-oscuro,:root.a11y-contraste .logo-oscuro{display:block!important}
.logo-ingreso{display:inline-block}
.logo-ingreso img{height:62px;width:auto}
.inf-pie .logo-iece{height:37px;width:auto}
@media print{html:root[lang] .logo-iece.logo-claro{display:block!important}html:root[lang] .logo-iece.logo-oscuro{display:none!important}}

/* ---------- Administración de clientes: documentos, equipos, marca y registro de IECE ---------- */
.volver-editar{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
fieldset.solo-grua{border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;margin:6px 0 12px}
fieldset.solo-grua legend{font-size:13px;color:var(--muted);padding:0 6px}
.field .lbl{font-size:13px;font-weight:600}
.marca-prev{display:inline-block;border-radius:var(--r);padding:10px 14px;border:1px solid var(--line)}
.marca-prev img{display:block;height:54px;width:auto}
.iece-registro{border-left:4px solid var(--accent-ink)}
.registro-grid{display:grid;gap:10px}
.registro-grid details>summary{list-style:none;cursor:pointer;display:inline-flex}
.registro-grid details>summary::-webkit-details-marker{display:none}
input[type="color"]{height:42px;padding:4px;cursor:pointer;min-width:80px}

/* ---------- Informes del cliente ---------- */
.foto-hallazgo{display:inline-block;margin-top:4px}
.foto-hallazgo img{display:block;width:72px;height:54px;object-fit:cover;border-radius:4px;border:1px solid var(--line)}
.acciones-borrador{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.informes-cliente{margin-bottom:14px}
@media print{.no-imprimir,.a11y,.saltar,.aviso,[data-imprimir]{display:none!important}.foto-hallazgo img{width:120px;height:90px}}
.borrador-aviso{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
/* Plan de mantenimiento: acciones por actividad */
.acciones-act{display:flex;flex-wrap:wrap;gap:6px;align-items:flex-start;min-width:220px}
.acciones-act details{flex-basis:100%}
.acciones-act details[open]{background:var(--sunk);padding:8px;border-radius:var(--r)}
.acciones-act details>summary{list-style:none;cursor:pointer;display:inline-flex}
.acciones-act details>summary::-webkit-details-marker{display:none}
.frec-otra[hidden]{display:none}
/* Edición en el mismo lugar: cada parte de la torregrúa con su botón Editar */
.partes li.con-editar{grid-template-columns:auto 1fr auto auto}
.editar-parte>summary{list-style:none;cursor:pointer}
.editar-parte>summary::-webkit-details-marker{display:none}
.editar-parte[open]{grid-column:1/-1;background:var(--sunk);border-radius:var(--r);padding:10px}
.editar-parte[open]>summary{margin-bottom:8px}
.editar-form .grid-form{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}
.gh-editar{margin:12px 0 0}
@media (max-width:700px){.partes li.con-editar{grid-template-columns:auto 1fr auto}.partes li.con-editar>.chip{grid-column:2}.partes li.con-editar>.editar-parte:not([open]){grid-column:3;grid-row:1/span 2}}
.editar-parte .si-abierto,.editar-parte[open] .si-cerrado{display:none}
.editar-parte[open] .si-abierto{display:inline}
@media (max-width:700px){.partes li.con-editar>.chip{justify-self:start}}
/* Corregir o anular mantenimientos; zona de eliminar; avisos de datos */
.corregir-mtto{margin-top:6px}
.corregir-mtto>summary{list-style:none;cursor:pointer;display:inline-flex}
.corregir-mtto>summary::-webkit-details-marker{display:none}
.corregir-mtto[open]{background:var(--sunk);border-radius:var(--r);padding:10px}
.corregir-mtto .si-abierto,.corregir-mtto[open] .si-cerrado{display:none}
.corregir-mtto[open] .si-abierto{display:inline}
.anular-mtto{margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}
.mtto-anulado{opacity:.75}
.zona-peligro{border-left:4px solid var(--crit);margin-top:14px}
.sugerido{margin-top:6px}
.avisos-sistema ul{margin:6px 0 10px 18px}

/* ---------- Pantalla de ingreso ---------- */
.ingreso{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);min-height:100vh;background:var(--bg)}
.ingreso-art{position:relative;overflow:hidden;color:#F4F1EC;padding:clamp(32px,4.5vw,64px);display:flex;flex-direction:column;gap:40px;
  background:radial-gradient(120% 90% at 100% 0%,rgba(237,125,49,.28) 0%,rgba(237,125,49,0) 55%),radial-gradient(90% 70% at 0% 100%,rgba(31,58,95,.55) 0%,rgba(31,58,95,0) 60%),#141516}
.ingreso-art::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:32px 32px;
  -webkit-mask-image:radial-gradient(ellipse at 30% 50%,#000 30%,transparent 80%);mask-image:radial-gradient(ellipse at 30% 50%,#000 30%,transparent 80%)}
.ingreso-art::after{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,#ED7D31,rgba(237,125,49,0))}
.ingreso-art>*{position:relative;width:min(100%,560px);margin-inline:auto}
.ia-top{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.ia-eyebrow{font-family:var(--f-mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#C9C2B8;display:inline-flex;align-items:center;gap:10px}
.ia-eyebrow::before{content:"";width:22px;height:2px;background:#ED7D31}
.ingreso-art .marca-cliente{height:52px;width:auto;max-width:220px;border-radius:8px;padding:8px 12px;object-fit:contain}
.ia-centro{margin-block:auto;display:grid;gap:18px}
.ingreso-art h1{font-size:clamp(34px,3.4vw,54px);line-height:1.04;text-transform:none;letter-spacing:-.01em;overflow-wrap:normal;word-break:normal;hyphens:manual;max-width:17ch}
.ia-texto{color:#CFC8BF;font-size:16.5px;line-height:1.6;max-width:46ch;margin:0}
.ia-puntos{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:12px}
.ia-puntos li{display:flex;gap:12px;align-items:center;color:#EAE5DE;font-size:15px;line-height:1.4}
.ia-ico{flex:0 0 38px;height:38px;border-radius:10px;display:grid;place-items:center;background:rgba(237,125,49,.14);border:1px solid rgba(237,125,49,.35);color:#F4A26B}
.ia-ico svg{width:20px;height:20px}
.ia-pie{margin-block:0;font-size:12.5px;color:#9F988F}
.ingreso.con-marca .ingreso-art{background:#0D2240 var(--portada) center/cover no-repeat}
.ingreso.con-marca .ingreso-art::before{background:linear-gradient(160deg,rgba(9,22,44,.9) 0%,rgba(9,22,44,.62) 50%,rgba(9,22,44,.92) 100%);-webkit-mask-image:none;mask-image:none}
.ingreso-form{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:clamp(24px,4vw,56px) max(16px,4vw)}
.ingreso-card{width:100%;max-width:440px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:clamp(24px,3vw,36px);box-shadow:0 1px 2px rgba(0,0,0,.04),0 12px 32px -12px rgba(28,27,26,.18);display:grid;gap:18px}
.ingreso-card .logos-ingreso{margin-bottom:2px}
.ic-head{display:grid;gap:6px}
.ic-head h2{font-size:30px;text-transform:none;letter-spacing:-.005em}
.ic-head p{margin:0;color:var(--muted);font-size:14.5px}
.ingreso-card .form{gap:14px}
.btn-bloque{width:100%;justify-content:center;padding-block:12px;font-size:15.5px}
.ic-nota{margin:0;font-size:13px;color:var(--muted);line-height:1.5}
.ic-enlace{margin:0;font-size:14px}
.ic-reenviar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-size:14px}
.ingreso-ayuda{max-width:440px;text-align:center;font-size:13px;color:var(--muted);margin:0;line-height:1.6}
/* Mostrar u ocultar la clave */
.campo-clave{position:relative;display:block}
.campo-clave input{padding-right:92px!important}
.ver-clave{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:var(--accent-ink);font:600 13px var(--f-body);padding:6px 10px;border-radius:6px;cursor:pointer}
.ver-clave:hover{background:var(--sunk)}
@media (max-width:900px){
  .ingreso{grid-template-columns:1fr;min-height:0}
  .ingreso-art{padding:22px max(16px,4vw) 26px;gap:16px}
  .ingreso-art::after{width:100%;height:3px;bottom:auto;background:linear-gradient(90deg,#ED7D31,rgba(237,125,49,0))}
  .ia-centro{margin:0;gap:10px}
  .ingreso-art>*{width:100%}
  .ingreso-art h1{font-size:clamp(24px,6.4vw,32px);max-width:22ch}
  .ia-texto{font-size:14.5px}
  .ia-puntos,.ia-pie{display:none}
  .ingreso-form{justify-content:flex-start;padding-top:20px}
  .ingreso-card{box-shadow:none}
  .ingreso-card .logo-ingreso img,.ingreso-card .logo-cli{height:46px}
}
@media (max-width:480px){
  .ia-texto{display:none}
  .ingreso-card{border:0;background:transparent;padding:4px 0}
}
