/* Operaciones · Thelsa — botones, pills, aviso de edición, opciones de local/maniobra, franja de capacidad */

  .btn { font-family: inherit; font-size: 13px; font-weight: 500; padding: 9px 16px; border-radius: var(--r-sm); border: 1px solid transparent; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; }
  .btn-primary { background: var(--brand); color: #fff; }
  .btn-primary:hover { background: var(--brand-soft); }
  .btn-secondary { background: transparent; color: var(--ink); border-color: var(--line); }
  .btn-secondary:hover { background: var(--bg-subtle); }
  .btn-warn { background: var(--warn); color: #fff; }
  .btn-danger { background: transparent; color: var(--err); }
  .btn-danger:hover { background: var(--err-bg); }
  .btn-sm { padding: 5px 10px; font-size: 12px; }
  .btn:disabled { opacity: 0.5; cursor: not-allowed; }

  .pill { display: inline-flex; align-items: center; gap: 5px; padding: 3px 9px; border-radius: 999px; font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; white-space: nowrap; }
  .pill::before { content: ''; width: 5px; height: 5px; border-radius: 50%; background: currentColor; }
  .pill.ok { background: var(--ok-bg); color: var(--ok); }
  .pill.warn { background: var(--warn-bg); color: var(--warn); }
  .pill.err { background: var(--err-bg); color: var(--err); }
  .pill.info { background: var(--info-bg); color: var(--info); }
  .pill.neutral { background: var(--line-soft); color: var(--ink-soft); }

  /* Modo cambio en Programar: aviso ámbar y tarjeta resaltada */
  .edit-aviso { display:flex; justify-content:space-between; align-items:center; gap:14px; margin-bottom:14px; padding:12px 16px;
                background:#fff6e5; border:1px solid #efc36a; border-left:4px solid #d9930d; border-radius:var(--r-md); }
  .edit-aviso-tit { font-weight:600; font-size:14px; color:#7a4f00; }
  .edit-aviso-tit span { font-family:'Geist Mono', monospace; }
  .edit-aviso-sub { font-size:12.5px; color:#8a5a06; margin-top:2px; }
  #view-programar.editando .card { border-color:#efc36a; box-shadow:0 0 0 3px rgba(217,147,13,.14); }
  #view-programar.editando .page-title { color:#7a4f00; }
  .status-banner { margin-top: 16px; padding: 13px 16px; border-radius: var(--r-md); border-left: 3px solid; }
  .status-banner.ok { background: var(--ok-bg); border-left-color: var(--ok); color: var(--ok); }
  .status-banner.warn { background: var(--warn-bg); border-left-color: var(--warn); color: var(--warn); }
  .status-banner.err { background: var(--err-bg); border-left-color: var(--err); color: var(--err); }
  .status-banner.neutral { background: var(--bg-subtle); border-left-color: var(--line); color: var(--ink-soft); }
  .status-banner-title { font-weight: 600; font-size: 13px; }
  .status-banner-detail { font-size: 12px; margin-top: 3px; }
  /* Salidas para un local que no cabe en un día (9-sep-2026) */
  .loc-ops { margin-top: 12px; display: grid; gap: 8px; }
  .loc-op { display: flex; gap: 11px; align-items: flex-start; border: 1.5px solid var(--line);
    border-radius: var(--r-md); padding: 11px 13px; cursor: pointer; background: #fff; color: var(--ink); }
  .loc-op:hover { border-color: #b9c9dc; }
  .loc-op.sel { border-color: var(--brand); background: var(--info-bg); }
  .loc-op.no { opacity: .62; cursor: not-allowed; background: var(--bg-subtle); border-style: dashed; }
  .loc-op .radio { width: 16px; height: 16px; border-radius: 50%; border: 2px solid #b9c4d2; flex: none;
    margin-top: 2px; position: relative; background: #fff; }
  .loc-op.sel .radio { border-color: var(--brand); }
  .loc-op.sel .radio::after { content: ''; position: absolute; inset: 3px; border-radius: 50%; background: var(--brand); }
  .loc-op .tit { font-weight: 600; font-size: 13px; display: flex; gap: 7px; align-items: center; flex-wrap: wrap; }
  .loc-op .por { font-size: 12px; color: var(--ink-soft); margin-top: 3px; line-height: 1.45; }
  .loc-op .dias { display: flex; gap: 6px; margin-top: 7px; flex-wrap: wrap; }
  .loc-op .dia { border: 1px solid var(--line); border-radius: 5px; padding: 5px 9px; background: var(--bg-subtle); }
  .loc-op .dia .f { font-size: 10.5px; color: var(--ink-faint); font-family: 'Geist Mono', monospace; }
  .loc-op .dia .v { font-size: 13px; font-weight: 600; font-family: 'Geist Mono', monospace; }
  .loc-op .dia .quitar-dia { cursor: pointer; color: var(--ink-faint); font-weight: 700; margin-left: 3px; }
  .loc-op .dia .quitar-dia:hover { color: var(--accent); }
  .loc-op .dia.agregar { border-style: dashed; background: #fff; }
  .loc-op .dia.agregar input { border: 0; padding: 0; font-size: 12px; width: 118px; background: transparent;
    font-family: 'Geist Mono', monospace; color: var(--brand); }
  /* Plan de maniobra: cómo se resuelve un movimiento que no cabe en un día */
  .man-modos { display: flex; gap: 8px; flex-wrap: wrap; margin: 10px 0 12px; }
  .man-modo { border: 1.5px solid var(--line); border-radius: var(--r-md); padding: 9px 13px; cursor: pointer;
    background: #fff; font-size: 12.5px; line-height: 1.4; }
  .man-modo:hover { border-color: #b9c9dc; }
  .man-modo.sel { border-color: var(--brand); background: var(--info-bg); }
  .man-modo.no { opacity: .6; cursor: not-allowed; border-style: dashed; background: var(--bg-subtle); }
  .man-modo b { display: block; font-size: 13px; }
  .man-modo .por { color: var(--ink-soft); }
  .man-semana { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 12px; }
  .man-dia { border: 1px solid var(--line); border-radius: var(--r-sm); padding: 6px 9px; min-width: 92px;
    background: #fff; text-align: center; cursor: pointer; }
  .man-dia:hover { border-color: var(--brand); }
  .man-dia.sel { border-color: var(--brand); background: var(--info-bg); }
  .man-dia.no { opacity: .5; cursor: not-allowed; background: var(--bg-subtle); border-style: dashed; }
  .man-dia .f { font-size: 11px; font-family: 'Geist Mono', monospace; color: var(--ink-soft); }
  .man-dia .u { font-size: 11.5px; font-weight: 600; margin-top: 2px; }
  .man-dia.libre .u { color: var(--ok); }
  .man-dia.no .u { color: var(--ink-faint); }

  .capacity-rail { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; margin-top: 12px; padding: 12px; background: var(--bg-subtle); border-radius: var(--r-md); border: 1px solid var(--line-soft); }
  .cap-cell { display: flex; flex-direction: column; gap: 3px; }
  .cap-label { font-size: 10px; text-transform: uppercase; letter-spacing: 0.06em; color: var(--ink-faint); font-weight: 600; }
  .cap-value { font-family: 'Geist Mono', monospace; font-size: 14px; font-weight: 500; }

