:root{--bg:#12151a;--surface:#191d23;--surface-2:#21262d;--surface-3:#2b313a;--border:#363d47;--fg:#f4f6f8;--muted:#abb2bc;--accent:#f6c500;--accent-strong:#ffd21a;--on-accent:#171205;--danger:#ff8f8f;--danger-bg:#1b1e23;--danger-border:#5a2b2e;--link:#f6c500;--dest-almacen:#3b74ff;--dest-escenario:#16c0c0;--dest-kids:#a16bff;--dest-deportes:#35c759;--dest-recepcion:#d8b24a;--dest-transito:#ff8f1f;--dest-reparacion:#ff4d4f;--state-operativo:#35c759;--state-requiere_revision:#f6c500;--state-averiado:#ff4d4f;--state-en_reparacion:#ff8f1f;--state-no_localizado:#9aa1aa;--state-retirado:#71787f;--radius:10px;--radius-sm:8px;--radius-pill:999px;--shadow:0 10px 30px rgba(0,0,0,0.35);--gutter:max(16px,env(safe-area-inset-left,0px));--gutter-r:max(16px,env(safe-area-inset-right,0px));--focus-ring:0 0 0 3px rgba(246,197,0,0.55);--maxw:1120px;--font:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}*{box-sizing:border-box}html{color-scheme:dark}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font);line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{line-height:1.25}:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:var(--radius-sm)}.app-header{position:relative;color:#fff;border-bottom:1px solid var(--border);background-image:linear-gradient(180deg,rgba(10,11,13,.72),rgba(10,11,13,.82) 60%,rgba(10,11,13,.94)),url(/img/cabecera-almacen.png);background-size:cover;background-position:center 38%;background-repeat:no-repeat}.app-header__bar{max-width:var(--maxw);margin-inline:auto;padding:14px var(--gutter-r) 14px var(--gutter);display:flex;align-items:center;gap:16px;flex-wrap:wrap}.brand{display:inline-flex;align-items:baseline;gap:8px;font-weight:800;letter-spacing:.01em;font-size:1.06rem;color:#fff}.brand:hover{text-decoration:none}.brand__dot{color:var(--accent)}.app-nav{display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin-left:4px}.app-nav a{color:#e9ebee;font-size:.9rem;font-weight:600;padding:6px 10px;border-radius:var(--radius-sm);border:1px solid transparent}.app-nav a:hover{background:rgba(255,255,255,.1);text-decoration:none}.app-header__spacer{flex:1 1 auto}.lang{display:inline-flex;align-items:center;gap:2px;background:rgba(14,16,19,.6);border:1px solid var(--border);border-radius:var(--radius-pill);padding:3px}.lang__btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;color:#cfd4da;border:0;cursor:pointer;font:inherit;font-size:.78rem;font-weight:700;letter-spacing:.03em;padding:4px 9px;border-radius:var(--radius-pill);text-transform:uppercase}.lang__btn:hover{color:#fff}.lang__btn[aria-current=true]{background:var(--accent);color:var(--on-accent)}.lang__btn:disabled{opacity:.6;cursor:default}.app-main{max-width:var(--maxw);margin-inline:auto;padding:22px var(--gutter-r) 48px var(--gutter)}.page-narrow{max-width:920px}.page-auth{max-width:460px;margin-inline:auto}.lead,.muted{color:var(--muted)}.lead{margin:2px 0 0}h1{font-size:1.4rem;margin:0 0 6px}h2{font-size:1.06rem;margin:24px 0 10px}.field,label.field{display:flex;flex-direction:column;gap:4px;font-size:.76rem;color:var(--muted)}input,select,textarea{background:var(--surface-2);border:1px solid var(--border);color:var(--fg);border-radius:var(--radius-sm);padding:8px 10px;font:inherit;min-width:0}input::placeholder{color:#6c737b}.btn,select{cursor:pointer}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--accent);color:var(--on-accent);border:0;border-radius:var(--radius-sm);padding:9px 15px;font:inherit;font-weight:700}.btn,.btn:hover{text-decoration:none}.btn:hover{background:var(--accent-strong)}.btn:disabled{opacity:.55;cursor:default}.btn.ghost{background:var(--surface-2);color:var(--fg);border:1px solid var(--border)}.btn.ghost:hover{background:var(--surface-3)}.btn.danger{background:var(--danger-bg);color:var(--danger);border:1px solid var(--danger-border)}.card{background:var(--surface);overflow:hidden}.card,fieldset{border:1px solid var(--border);border-radius:var(--radius)}fieldset{padding:12px 14px;margin:0}legend{padding:0 6px;color:var(--muted);font-size:.8rem}.alert{border-radius:var(--radius-sm);padding:10px 12px;font-size:.88rem;border:1px solid var(--border);background:var(--surface-2)}.alert.error{color:var(--danger);border-color:var(--danger-border)}.alert.ok{color:var(--state-operativo);border-color:#2c5133}.form-row{display:flex;gap:8px;flex-wrap:wrap;align-items:end;margin:12px 0}.form-actions{display:inline-flex;gap:8px;align-items:end}.grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:16px;gap:16px;margin-top:8px}@media (max-width:860px){.grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:560px){.grid{grid-template-columns:1fr}}.thumb{height:64px;background:var(--surface-2);display:flex;align-items:center;gap:10px;padding:0 12px;color:var(--muted);position:relative;border-bottom:1px solid var(--border)}.thumb__icon{flex:0 0 auto;width:34px;height:34px;display:grid;place-items:center;border-radius:var(--radius-sm);background:var(--surface-3);color:var(--muted)}.thumb__icon svg{width:20px;height:20px;display:block}.thumb__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}.thumb .code{position:relative;z-index:1;margin-left:auto;padding:1px 6px;border-radius:var(--radius-sm);background:color-mix(in srgb,#000 55%,transparent);color:#fff}.ficha-photo__img{width:100%;height:100%;object-fit:cover;border-radius:inherit;display:block}.ficha-photo{overflow:hidden;position:relative}.foto-ed,.galeria{width:260px;max-width:100%}.galeria__badge{position:absolute;top:6px;left:6px;padding:2px 8px;font-size:.68rem;font-weight:600;letter-spacing:.02em;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--accent,#2563eb) 85%,#000);color:#fff}.galeria__tira{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:8px 0 0}.galeria__item{position:relative;width:76px}.galeria__thumb{width:76px;height:76px;object-fit:cover;border-radius:var(--radius-sm);display:block;border:2px solid transparent}.galeria__item.is-principal .galeria__thumb{border-color:var(--accent,#2563eb)}.galeria__tag{position:absolute;top:2px;left:2px;padding:0 5px;font-size:.6rem;font-weight:600;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--accent,#2563eb) 85%,#000);color:#fff}.galeria__acciones{display:flex;flex-direction:column;gap:3px;margin-top:4px}.btn-xs{padding:2px 6px;font-size:.7rem;width:100%}.galeria__limpieza{margin-top:8px;max-width:220px}.org-activa{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 6px}.org-activa__label{font-size:.74rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.org-activa__name{color:var(--fg);font-size:1rem}.org-activa__form{display:flex;align-items:center;gap:8px}.org-activa__btn{padding:4px 10px;font-size:.82rem}.thumb__cat{font-size:.74rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cat-chip{display:inline-flex;align-items:center;gap:6px;font-size:.82rem;padding:2px 9px 2px 3px;border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--surface-2);color:var(--fg)}.cat-chip__icon{display:grid;place-items:center;width:22px;height:22px;flex:0 0 auto;color:var(--muted)}.cat-chip__icon svg{width:16px;height:16px;display:block}.cat-chip[data-cat=sonido],.thumb[data-cat=sonido]{background:color-mix(in srgb,#5b8cff 10%,var(--surface-2))}.cat-chip[data-cat=sonido] .cat-chip__icon,.thumb[data-cat=sonido] .thumb__icon{color:#8fb0ff}.cat-chip[data-cat=iluminacion],.thumb[data-cat=iluminacion]{background:color-mix(in srgb,#f6c500 10%,var(--surface-2))}.cat-chip[data-cat=iluminacion] .cat-chip__icon,.thumb[data-cat=iluminacion] .thumb__icon{color:#f6d44e}.cat-chip[data-cat=vestuario],.thumb[data-cat=vestuario]{background:color-mix(in srgb,#a16bff 10%,var(--surface-2))}.cat-chip[data-cat=vestuario] .cat-chip__icon,.thumb[data-cat=vestuario] .thumb__icon{color:#c2a0ff}.cat-chip[data-cat=juegos],.thumb[data-cat=juegos]{background:color-mix(in srgb,#ff7ac0 10%,var(--surface-2))}.cat-chip[data-cat=juegos] .cat-chip__icon,.thumb[data-cat=juegos] .thumb__icon{color:#ff9fd3}.cat-chip[data-cat=deporte],.thumb[data-cat=deporte]{background:color-mix(in srgb,#35c759 10%,var(--surface-2))}.cat-chip[data-cat=deporte] .cat-chip__icon,.thumb[data-cat=deporte] .thumb__icon{color:#6fe08b}.thumb .code{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:rgba(8,9,11,.6);border:1px solid var(--border);border-radius:7px;padding:3px 8px;font-size:.72rem;font-family:var(--mono);color:#e3e7eb}.card__body{padding:12px 13px;display:flex;flex-direction:column;gap:8px}.card__name{font-weight:600}.row-wrap{display:flex;gap:8px;flex-wrap:wrap}.chip,.row-wrap{align-items:center}.chip{display:inline-flex;gap:6px;font-size:.76rem;font-weight:600;padding:3px 9px;border-radius:var(--radius-pill);background:var(--surface-2);color:#d4d9df;border:1px solid var(--border)}.chip.loc:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--muted);flex:0 0 auto}.chip.loc[data-dest=almacen]{background:color-mix(in srgb,var(--dest-almacen) 16%,var(--surface-2));border-color:color-mix(in srgb,var(--dest-almacen) 45%,var(--border));color:#dbe6ff}.chip.loc[data-dest=almacen]:before{background:var(--dest-almacen)}.chip.loc[data-dest=escenario]{background:color-mix(in srgb,var(--dest-escenario) 16%,var(--surface-2));border-color:color-mix(in srgb,var(--dest-escenario) 45%,var(--border));color:#cdf3f3}.chip.loc[data-dest=escenario]:before{background:var(--dest-escenario)}.chip.loc[data-dest=kids]{background:color-mix(in srgb,var(--dest-kids) 16%,var(--surface-2));border-color:color-mix(in srgb,var(--dest-kids) 45%,var(--border));color:#e7dbff}.chip.loc[data-dest=kids]:before{background:var(--dest-kids)}.chip.loc[data-dest=deportes]{background:color-mix(in srgb,var(--dest-deportes) 16%,var(--surface-2));border-color:color-mix(in srgb,var(--dest-deportes) 45%,var(--border));color:#d3f6dc}.chip.loc[data-dest=deportes]:before{background:var(--dest-deportes)}.chip.loc[data-dest=recepcion]{background:color-mix(in srgb,var(--dest-recepcion) 16%,var(--surface-2));border-color:color-mix(in srgb,var(--dest-recepcion) 45%,var(--border));color:#f1e4bf}.chip.loc[data-dest=recepcion]:before{background:var(--dest-recepcion)}.chip.loc[data-dest=transito]{background:color-mix(in srgb,var(--dest-transito) 16%,var(--surface-2));border-color:color-mix(in srgb,var(--dest-transito) 45%,var(--border));color:#ffe4c7}.chip.loc[data-dest=transito]:before{background:var(--dest-transito)}.chip.loc[data-dest=reparacion]{background:color-mix(in srgb,var(--dest-reparacion) 16%,var(--surface-2));border-color:color-mix(in srgb,var(--dest-reparacion) 45%,var(--border));color:#ffd9da}.chip.loc[data-dest=reparacion]:before{background:var(--dest-reparacion)}.state{display:inline-flex;align-items:center;gap:6px;font-size:.74rem;font-weight:600;padding:3px 9px;border-radius:7px;border:1px solid var(--border);background:var(--surface-2);color:var(--fg)}.state .d{width:8px;height:8px;border-radius:50%;background:var(--muted)}.state[data-s=operativo] .d{background:var(--state-operativo)}.state[data-s=requiere_revision] .d{background:var(--state-requiere_revision)}.state[data-s=averiado] .d{background:var(--state-averiado)}.state[data-s=en_reparacion] .d{background:var(--state-en_reparacion)}.state[data-s=no_localizado] .d{background:var(--state-no_localizado)}.state[data-s=retirado] .d{background:var(--state-retirado)}.ficha-top{display:flex;gap:18px;flex-wrap:wrap}.ficha-photo{aspect-ratio:4/3;width:260px;max-width:100%;border:1px solid var(--border);border-radius:var(--radius);background:radial-gradient(130% 120% at 32% 18%,#262a30,#15181c);display:grid;place-items:center;color:#71787f}.code-big{font-family:var(--mono);font-size:1.1rem;font-weight:700;letter-spacing:.06em}.kicker{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.form-ed{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px;margin-top:8px}@media (max-width:620px){.form-ed{grid-template-columns:1fr}}.form-ed .full{grid-column:1/-1;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.ev{border-top:1px solid var(--border);padding:9px 0;font-size:.86rem}.ev:first-child{border-top:0}.ev .w{color:#71787f;font-size:.76rem}.hero{padding:6px 0 4px}.quicklinks{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:14px;gap:14px;margin-top:16px}@media (max-width:760px){.quicklinks{grid-template-columns:1fr}}.quicklink{display:block;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;color:var(--fg)}.quicklink:hover{border-color:var(--accent);text-decoration:none}.quicklink__title{font-weight:700;margin-bottom:4px}.quicklink__desc{color:var(--muted);font-size:.86rem}.org-hero{position:relative;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;padding:24px 20px;margin-bottom:8px;color:#fff;background-image:linear-gradient(180deg,rgba(10,11,13,.72),rgba(10,11,13,.84) 70%,rgba(10,11,13,.92)),url(/img/cabecera-almacen.png);background-size:cover;background-position:center 40%;background-repeat:no-repeat}.org-hero h1{margin:0;color:#fff}.org-hero .lead{color:#d7dbe0}.home-intro{margin:6px 0 2px}.home-cards{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:16px;gap:16px;margin-top:14px}.home-cards.one{grid-template-columns:minmax(0,420px)}@media (max-width:680px){.home-cards,.home-cards.one{grid-template-columns:1fr}}.home-card{display:flex;flex-direction:column;gap:10px;min-height:150px;padding:20px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--fg);text-decoration:none;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.home-card:focus-visible,.home-card:hover{transform:translateY(-2px);box-shadow:var(--shadow);text-decoration:none}.home-card__icon{width:46px;height:46px;display:grid;place-items:center;border-radius:var(--radius-sm)}.home-card__icon svg{width:26px;height:26px;display:block}.home-card__title{font-size:1.12rem;font-weight:800}.home-card__desc{color:var(--muted);font-size:.9rem;flex:1 1 auto}.home-card__arrow{font-weight:800;font-size:1.05rem;align-self:flex-start}.home-card--accent{border-color:color-mix(in srgb,var(--accent) 55%,var(--border))}.home-card--accent .home-card__icon{background:var(--accent);color:var(--on-accent)}.home-card--accent:focus-visible,.home-card--accent:hover{border-color:var(--accent)}.home-card--accent .home-card__arrow{color:var(--accent)}.home-card--teal{border-color:color-mix(in srgb,var(--dest-escenario) 55%,var(--border))}.home-card--teal .home-card__icon{background:var(--dest-escenario);color:#05201f}.home-card--teal:focus-visible,.home-card--teal:hover{border-color:var(--dest-escenario)}.home-card--teal .home-card__arrow{color:var(--dest-escenario)}@media (prefers-reduced-motion:reduce){.home-card{transition:none}.home-card:focus-visible,.home-card:hover{transform:none}}.stack{display:flex;flex-direction:column;gap:12px}.stack .btn{align-self:flex-start}code{font-family:var(--mono);font-size:.82em;background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:1px 6px;color:#cfd4da;word-break:break-all}.rows{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.rows li{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 11px;font-size:.88rem;display:flex;gap:8px;flex-wrap:wrap;align-items:center}.rows li form{display:inline-flex;align-items:center;gap:6px;margin:0}.rows li form select{padding:5px 8px;font-size:.82rem}.rows li form .btn{padding:6px 10px}details.advanced{margin-top:20px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:0 14px}details.advanced>summary{cursor:pointer;padding:12px 2px;font-weight:700;color:var(--fg);list-style:none}details.advanced>summary::-webkit-details-marker{display:none}details.advanced>summary:before{content:"▸";color:var(--muted);margin-right:8px}details.advanced[open]>summary:before{content:"▾"}details.advanced[open]{padding-bottom:16px}details.advanced h3{margin:14px 0 6px;font-size:.98rem}.advanced__warn{font-size:.84rem;margin:2px 0 10px}.advanced__hint{font-size:.82rem;margin:0 0 6px}.view-toggle{display:inline-flex;gap:2px;background:var(--surface-2);border:1px solid var(--border);padding:3px;margin:2px 0 12px}.view-toggle,.view-toggle__btn{border-radius:var(--radius-pill)}.view-toggle__btn{padding:5px 13px;font-size:.82rem;font-weight:700;color:var(--muted);text-decoration:none}.view-toggle__btn:hover{color:var(--fg);text-decoration:none}.view-toggle__btn[aria-current=true]{background:var(--accent);color:var(--on-accent)}.inv-list-wrap{margin-top:8px}.inv-list{width:100%;border-collapse:collapse;font-size:.88rem}.inv-list td,.inv-list th{text-align:left;padding:9px 10px;border-bottom:1px solid var(--border);vertical-align:middle}.inv-list thead th{color:var(--muted);font-size:.74rem;text-transform:uppercase;letter-spacing:.04em;font-weight:700}.inv-list tbody tr:hover{background:var(--surface)}.inv-list .code{font-family:var(--mono);font-size:.8rem}@media (max-width:760px){.inv-list thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.inv-list,.inv-list tbody,.inv-list td,.inv-list tr{display:block;width:100%}.inv-list tr{border:1px solid var(--border);border-radius:var(--radius);margin-bottom:10px;padding:4px 6px;background:var(--surface)}.inv-list td{border:0;display:flex;justify-content:space-between;gap:12px;padding:5px 6px}.inv-list td:before{content:attr(data-label);color:var(--muted);font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;flex:0 0 auto}.inv-list td:last-child{justify-content:flex-end}.inv-list td:last-child:before{content:""}}.panels{display:flex;gap:16px;flex-wrap:wrap;margin-top:12px}.panels fieldset{flex:1 1 280px;background:var(--surface);padding:14px 16px 16px;box-shadow:var(--shadow)}.panels legend{font-weight:700;color:var(--fg);font-size:.82rem;padding:0 8px}.panels .form-row{margin:4px 0 0}.qr-ready{margin-top:12px}.qr-label{display:inline-flex;flex-direction:column;align-items:center;gap:6px;background:#ffffff;color:#000000;padding:16px;border:1px solid var(--border);border-radius:8px;margin:8px 0}.qr-label__svg{width:200px;height:200px}.qr-label__svg svg{width:100%;height:100%;display:block}.qr-label__code{font-weight:800;font-size:1.1rem;letter-spacing:.04em;color:#000}.qr-label__hint{font-size:.72rem;color:#444}@media print{body *{visibility:hidden}.qr-label,.qr-label *{visibility:visible}.qr-label{position:absolute;left:0;top:0;border:0;margin:0}}