/* ============================================
   CONTROL DE OBRA - Estilos
   ============================================ */
:root{
    --bg:#F2F1ED; --panel:#FFFFFF; --ink:#1D1F23; --muted:#6B6E75; --line:#E2E0DA;
    --naranja:#E8641B; --naranja-osc:#C24F0F; --verde:#2E7D4F; --verde-suave:#E4F1E9;
    --rojo:#C0392B; --amarillo:#F5C518;
    --disp:'Barlow Condensed',sans-serif; --body:'Barlow',sans-serif; --mono:'IBM Plex Mono',monospace;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{-webkit-text-size-adjust:100%}
  body{background:var(--bg);color:var(--ink);font-family:var(--body);font-size:15px;padding-bottom:90px}
  header{background:var(--ink);color:#fff;padding:16px 18px 14px;position:relative;overflow:hidden}
  header::after{content:'';position:absolute;left:0;right:0;bottom:0;height:6px;
    background:repeating-linear-gradient(45deg,var(--amarillo) 0 12px,var(--ink) 12px 24px)}
  header h1{font-family:var(--disp);font-weight:800;font-size:26px;letter-spacing:.5px;text-transform:uppercase;line-height:1}
  header p{color:#B9BCC2;font-size:12.5px;margin-top:3px}
  header .tot{font-family:var(--mono);font-weight:700;color:var(--amarillo);font-size:13px}
  .tabs{display:flex;position:fixed;bottom:0;left:0;right:0;background:var(--panel);border-top:1px solid var(--line);z-index:50;box-shadow:0 -4px 16px rgba(0,0,0,.06)}
  .tabs button{flex:1;padding:12px 4px 14px;border:0;background:none;font-family:var(--disp);font-weight:700;font-size:15px;letter-spacing:.6px;text-transform:uppercase;color:var(--muted);cursor:pointer;border-top:3px solid transparent}
  .tabs button.act{color:var(--naranja);border-top-color:var(--naranja)}
  main{padding:16px 14px;max-width:760px;margin:0 auto}
  .card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px;margin-bottom:12px}
  .eyebrow{font-family:var(--disp);font-weight:700;text-transform:uppercase;letter-spacing:1px;font-size:13px;color:var(--muted);margin-bottom:8px}
  .btn{display:inline-block;border:0;border-radius:8px;padding:11px 16px;font-family:var(--disp);font-weight:700;font-size:16px;letter-spacing:.5px;text-transform:uppercase;cursor:pointer;background:var(--naranja);color:#fff}
  .btn:active{background:var(--naranja-osc)}
  .btn.sec{background:var(--ink)} .btn.min{background:none;color:var(--naranja);padding:8px 6px;font-size:14px}
  .btn.peq{padding:7px 12px;font-size:14px}
  .btn.rojo{background:none;color:var(--rojo);padding:8px 6px;font-size:13px}
  .btn:disabled{opacity:.45}
  .fila{display:flex;gap:10px;align-items:center;justify-content:space-between}
  input,select,textarea{width:100%;border:1.5px solid var(--line);border-radius:8px;padding:10px 11px;font-family:var(--body);font-size:16px;background:#FAFAF8;color:var(--ink)}
  input:focus,select:focus,textarea:focus{outline:2px solid var(--naranja);outline-offset:1px;border-color:var(--naranja)}
  label{display:block;font-size:12.5px;font-weight:600;color:var(--muted);margin:10px 0 4px;text-transform:uppercase;letter-spacing:.4px}
  .num{font-family:var(--mono);font-weight:600;font-variant-numeric:tabular-nums}
  .grande{font-size:28px;font-weight:700}
  .verde{color:var(--verde)} .rojoTx{color:var(--rojo)}
  .cinta{height:22px;border-radius:6px;background:repeating-linear-gradient(90deg,#EDECE7 0 10%, #E2E0DA calc(10% - 2px) 10%);border:1px solid var(--line);position:relative;overflow:hidden;margin:10px 0 4px}
  .cinta .lleno{position:absolute;inset:0;width:0%;background:repeating-linear-gradient(45deg,var(--verde) 0 14px,#256B43 14px 28px);transition:width .5s ease}
  .cinta .marca{position:absolute;top:0;bottom:0;width:2px;background:var(--ink);opacity:.25}
  .chip{display:inline-block;font-family:var(--disp);font-weight:700;font-size:12.5px;letter-spacing:.6px;text-transform:uppercase;padding:3px 9px;border-radius:20px;background:#EFEEE9;color:var(--muted)}
  .chip.pagado{background:var(--verde-suave);color:var(--verde)}
  .chip.pend{background:#FDEEE3;color:var(--naranja-osc)}
  .linea{border:0;border-top:1px dashed var(--line);margin:12px 0}
  .item{display:flex;justify-content:space-between;gap:8px;padding:9px 0;border-bottom:1px solid var(--line);align-items:center}
  .item:last-child{border-bottom:0}
  .item small{color:var(--muted);display:block;font-size:12px}
  .vacio{text-align:center;color:var(--muted);padding:26px 10px;font-size:14px}
  .catbar{display:flex;height:14px;border-radius:7px;overflow:hidden;margin:10px 0 12px;border:1px solid var(--line)}
  .modalFondo{position:fixed;inset:0;background:rgba(20,20,22,.55);display:none;align-items:flex-end;justify-content:center;z-index:100}
  .modalFondo.abierto{display:flex}
  .modal{background:var(--panel);width:100%;max-width:560px;border-radius:16px 16px 0 0;padding:18px 16px 26px;max-height:88vh;overflow-y:auto}
  .modal h3{font-family:var(--disp);font-weight:800;font-size:22px;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}
  .toast{position:fixed;left:50%;transform:translateX(-50%);bottom:76px;background:var(--ink);color:#fff;padding:10px 18px;border-radius:8px;font-size:14px;opacity:0;transition:opacity .3s;z-index:200;pointer-events:none}
  .toast.ver{opacity:1}
  .seg{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}
  .seg button{border:1.5px solid var(--line);background:#FAFAF8;border-radius:20px;padding:7px 13px;font-family:var(--body);font-weight:600;font-size:13.5px;cursor:pointer;color:var(--muted)}
  .seg button.on{background:var(--ink);color:#fff;border-color:var(--ink)}
  /* ------- Pantalla de PIN ------- */
  #pantallaPin{position:fixed;inset:0;background:var(--ink);z-index:500;display:flex;align-items:center;justify-content:center;padding:20px}
  .cajaPin{width:100%;max-width:360px;text-align:center;color:#fff}
  .cajaPin h2{font-family:var(--disp);font-weight:800;font-size:30px;text-transform:uppercase;letter-spacing:1px}
  .cajaPin .franjaPin{height:6px;width:120px;margin:12px auto 20px;background:repeating-linear-gradient(45deg,var(--amarillo) 0 12px,transparent 12px 24px)}
  .cajaPin p{color:#B9BCC2;font-size:14px;margin-bottom:18px}
  .puntos{display:flex;gap:12px;justify-content:center;margin-bottom:22px}
  .puntos span{width:16px;height:16px;border-radius:50%;border:2px solid #55585F}
  .puntos span.lleno{background:var(--amarillo);border-color:var(--amarillo)}
  .teclado{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;max-width:280px;margin:0 auto}
  .teclado button{padding:16px 0;font-family:var(--mono);font-weight:600;font-size:22px;border:1px solid #3A3D43;background:#26282D;color:#fff;border-radius:12px;cursor:pointer}
  .teclado button:active{background:var(--naranja);border-color:var(--naranja)}
  .teclado button.fn{font-family:var(--body);font-size:14px;color:#B9BCC2}
  #pinMsg{min-height:22px;font-size:14px;color:#F08A8A;margin-top:14px}
  @media (prefers-reduced-motion:reduce){.cinta .lleno{transition:none}}

/* ============================================
   AJUSTES PARA MOVIL (mobile friendly)
   ============================================ */
html, body {
  overscroll-behavior: none;          /* la página no rebota ni se mueve */
  -webkit-text-size-adjust: 100%;
}
button, .btn, .tabs button, .seg button, .teclado button {
  touch-action: manipulation;          /* quita el retraso y el zoom por doble toque */
  -webkit-tap-highlight-color: transparent;
  -webkit-user-select: none;
  user-select: none;
}
input, select, textarea {
  font-size: 16px;                     /* evita que iPhone haga zoom al escribir */
}
#pantallaPin {
  touch-action: manipulation;
  overscroll-behavior: contain;
  -webkit-user-select: none;
  user-select: none;
}
.teclado button {
  min-height: 56px;                    /* botones grandes, faciles de tocar */
  font-size: 24px;
}
.teclado button:active { transform: scale(.96); }
/* Pantallas pequenas o telefono acostado */
@media (max-height: 720px) {
  .teclado button { min-height: 46px; padding: 10px 0; font-size: 20px; }
  .cajaPin h2 { font-size: 24px; }
  .cajaPin .franjaPin { margin: 8px auto 12px; }
  .cajaPin p { margin-bottom: 10px; }
  .puntos { margin-bottom: 14px; }
  .puntos span { width: 13px; height: 13px; }
}
