/* Optimus Prime · estilos */

/* Base: márgenes de pantalla del móvil y elementos ocultos */
:root{box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}html{scroll-padding-top:env(safe-area-inset-top,0px)}img{max-width:100%}[hidden]:not([hidden=until-found i]){display:none!important}

/* Aplicación */
/* Una columna móvil: cabecera fija, accesos rápidos, lista de trabajo. Estética fija oscura elegida por el usuario. */
:root{--bg:#0a1a3a;--card:#11285a;--card2:#0e2250;--line:#1d3d80;--blue:#2f8cff;--red:#ff4d5a;--txt:#eaf1ff;--mut:#9db4e0;--ok:#3ddc97;--warn:#f0b429;--shade:rgba(3,8,22,.92);color-scheme:dark}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
body{margin:0;background:var(--bg);color:var(--txt);font:16px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--bg)}
header{position:sticky;top:env(safe-area-inset-top,0px);background:var(--bg);border-bottom:2px solid var(--blue);padding-block:10px;display:flex;align-items:center;gap:10px;z-index:5;max-width:720px;margin:0 auto}
header h1{margin:0;font-size:18px;letter-spacing:.14em;flex:1;white-space:nowrap}
header h1 span{color:var(--blue)}
#st{font-size:12px;color:var(--mut)}#st.err{color:var(--red);font-weight:600}
#mode{padding:6px 12px;font-size:13px;border-radius:20px;white-space:nowrap}
#mode.cons{background:var(--warn);border-color:var(--warn);color:#2a1d00;font-weight:600}
.local{border-left:4px solid var(--warn);color:var(--txt)}
.local .mut{color:var(--mut)}
.local.old{border-left-color:var(--red)}
.errbox{border-left:4px solid var(--red);color:var(--txt)}
.miss{display:flex;align-items:center;justify-content:center;text-align:center;font-size:12px;color:var(--mut);height:100%;padding:6px}
.ph img:not([src]){visibility:hidden}
.impc{background:var(--card2);border:1px solid var(--warn);border-radius:12px;padding:12px;margin:10px 0;display:grid;gap:8px}
.impc ul{margin:0}
button,.btn{font:inherit;color:var(--txt);background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px 14px;cursor:pointer;touch-action:manipulation;text-align:center}
button:disabled{opacity:.5;cursor:wait}
button:focus-visible,.card:focus-visible,.btn:focus-within,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
button.pri,.btn.pri{background:var(--blue);border-color:var(--blue);color:#fff;font-weight:600}
button.danger{background:var(--red);border-color:var(--red);color:#fff;font-weight:600}
#back{padding:8px 14px;font-size:18px}
main{padding-block:12px 40px;max-width:720px;margin:0 auto}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.tile{padding:12px 8px;text-align:center;min-height:72px;display:flex;flex-direction:column;justify-content:center;gap:2px;border-radius:12px}
.tile b{font-size:22px;font-variant-numeric:tabular-nums;line-height:1.1}.tile small{color:var(--mut);font-size:12px}
.tile.hot b{color:var(--red)}
.card{display:block;width:100%;text-align:left;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin:8px 0;cursor:pointer;content-visibility:auto;contain-intrinsic-size:auto 80px}
.card:active{background:var(--card2)}
.card.static{cursor:default}
h2{font-size:13px;color:var(--blue);text-transform:uppercase;letter-spacing:.1em;margin:20px 0 4px}
.tag{display:inline-block;font-size:12px;font-weight:600;border-radius:20px;padding:2px 10px;background:var(--blue);color:#fff}
.tag.red{background:var(--red)}.tag.ok{background:var(--ok);color:#06241a}.tag.warn{background:var(--warn);color:#2a1d00}
.mut{color:var(--mut)}.small{font-size:13px;margin:0}
ul{margin:4px 0;padding-left:20px}li{margin:3px 0;white-space:pre-line}
.empty{color:var(--mut);font-style:italic;margin:6px 0}
input,select,textarea{width:100%;font:inherit;color:var(--txt);background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:10px}
input[type=search]{background:var(--card);border-color:var(--blue);padding:12px}
textarea{resize:vertical}
.alert{border-left:4px solid var(--red)}
.kv{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:6px}
.note{font-size:14px;color:var(--mut);background:var(--card);border-radius:10px;padding:10px 12px;margin:10px 0}
details{margin:6px 0}summary{cursor:pointer;color:var(--blue);font-size:13px;text-transform:uppercase;letter-spacing:.1em;padding:10px 0}
code{word-break:break-all}
.acts{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
.acts>*{flex:1 1 120px}
.panel{background:var(--card2);border:1px solid var(--blue);border-radius:12px;padding:12px;margin:8px 0;display:grid;gap:8px}
.panel .acts{margin:0}
label{font-size:13px;color:var(--mut)}
form.f{display:grid;gap:6px;background:var(--card2);border:1px solid var(--line);border-radius:12px;padding:14px}
form.f label{margin-top:6px}
.row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.row>div{display:grid;gap:6px;min-width:0}
.inl{display:flex;gap:6px}.inl input{flex:1;min-width:0}.inl button{flex:0 0 auto;padding:8px 12px;font-size:14px}
.seg{display:flex;gap:6px}.seg button{flex:1;padding:8px 6px;font-size:14px}
.seg button.on{background:var(--blue);border-color:var(--blue);color:#fff;font-weight:600}
.msg{color:var(--ok);margin:6px 0}.msg.err{color:var(--red)}
.obs{border-left:4px solid var(--blue)}
.dup{border-left:4px solid var(--warn)}
.photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:6px;margin:6px 0}
.ph{padding:0;border-radius:10px;overflow:hidden;aspect-ratio:1;max-width:100%;background:var(--card2)}
.ph img{width:100%;height:100%;object-fit:cover;display:block}
.add-ph{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border-style:dashed;color:var(--blue);font-size:13px}
.add-ph b{font-size:26px;line-height:1}
.add-ph input{position:absolute;width:1px;height:1px;opacity:0}
#lb{position:fixed;inset:0;z-index:20;background:var(--shade);display:flex;flex-direction:column;padding:calc(env(safe-area-inset-top,0px) + 12px) max(16px,env(safe-area-inset-right,0px)) calc(env(safe-area-inset-bottom,0px) + 12px) max(16px,env(safe-area-inset-left,0px));gap:10px}
#lb .im{flex:1;min-height:0;display:flex;align-items:center;justify-content:center}
#lb img{max-width:100%;max-height:100%;object-fit:contain;border-radius:8px}
#lb .acts{margin:0}
.amt{font-variant-numeric:tabular-nums;font-weight:600}
.sg{border:1px solid var(--line);border-radius:14px;padding:2px 10px 6px;margin:12px 0;background:var(--card2)}
.sg h3{font-size:12px;color:var(--mut);text-transform:uppercase;letter-spacing:.1em;margin:10px 0 0;font-weight:600}
.snip{font-size:13px;color:var(--mut);margin:-4px 0 8px 10px;border-left:2px solid var(--blue);padding-left:8px;word-break:break-word}
#hq{margin-bottom:10px}

/* Rediseño 04/11/2026: barra inferior, iconos, tarjetas con franja de estado y botones de 48 px */
main{padding-bottom:calc(96px + env(safe-area-inset-bottom,0px))}
#tabs{position:fixed;left:0;right:0;bottom:0;z-index:8;display:flex;justify-content:center;background:var(--card2);border-top:2px solid var(--blue);padding:4px max(8px,env(safe-area-inset-right,0px)) calc(4px + env(safe-area-inset-bottom,0px)) max(8px,env(safe-area-inset-left,0px))}
#tabs button{position:relative;flex:1;max-width:180px;min-height:56px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:none;border:0;border-radius:10px;padding:4px;color:var(--mut);font-size:12px}
#tabs button .ic{width:24px;height:24px}
#tabs button.on{color:var(--blue);font-weight:600;background:var(--card)}
#tabs em{position:absolute;top:2px;left:calc(50% + 6px);min-width:20px;height:20px;padding:0 5px;border-radius:10px;background:var(--red);color:#fff;font:600 12px/20px system-ui,sans-serif;font-style:normal}
body.kb #tabs{display:none}
body.kb main{padding-bottom:40px}
.ic{width:20px;height:20px;flex:0 0 auto;vertical-align:-4px}
.ic.big{width:28px;height:28px;color:var(--blue)}
.ic.chev{width:20px;height:20px;color:var(--mut)}
button .ic:not(.big):not(.chev){margin-right:6px}
#tabs button .ic{margin:0}
#mode{display:inline-flex;align-items:center;min-height:36px}
button,.btn{min-height:48px}
.card{min-height:48px}
.row-l{display:flex;align-items:center;gap:12px}
.grow{flex:1;min-width:0}
.tt{font-weight:600;margin:2px 0}
.num{color:var(--blue);font-variant-numeric:tabular-nums}
.card.alert{border-left:6px solid var(--red)}
.card.warnl{border-left:6px solid var(--warn)}
.card.done{border-left:6px solid var(--ok)}
.card.bk{border-left:6px solid var(--warn)}
.card.bk .ic.big{color:var(--warn)}
h2.top{margin-top:8px;font-size:15px}
.sbox{position:relative;margin:4px 0 12px}
.sbox>.ic{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--blue);pointer-events:none}
.sbox input{padding-left:42px;min-height:48px}
.big2{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:10px 0}
.bigb{min-height:64px;font-size:17px;font-weight:600;border-radius:14px;display:flex;align-items:center;justify-content:center}
.acts2{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0}
.acts2 button{display:flex;align-items:center;justify-content:center}
.acts button{display:inline-flex;align-items:center;justify-content:center}
.mtabs{display:flex;gap:6px;overflow-x:auto;margin:12px 0 4px;padding-bottom:4px;scrollbar-width:none}
.mtabs::-webkit-scrollbar{display:none}
.mtabs button{flex:0 0 auto;padding:8px 14px;border-radius:20px;font-size:14px}
.mtabs button.on{background:var(--blue);border-color:var(--blue);color:#fff;font-weight:600}
.mtabs small{opacity:.8}
.mbody{min-height:80px}
.seg button{min-height:48px}
@media (prefers-reduced-motion:no-preference){main{animation:in .12s ease-out}}
@keyframes in{from{opacity:.6}to{opacity:1}}
