/* Menos Clicks · Gestión. Marca: marino #0F1B3D, blanco, rosa #FF3D8B. Letra: Instrument Sans. */
@font-face { font-family:'Instrument Sans'; src:url('/fuentes/instrument-sans-latin-wght-normal.woff2') format('woff2'); font-weight:400 700; font-display:swap; }
:root {
  --navy:#0F1B3D; --pink:#FF3D8B; --blanco:#ffffff;
  --fondo:#f3f5fa; --suave:#47527a; --linea:#d3d9e8; --linea-2:#e6eaf3;
  --resaltador:#ffd3e4; --rosa-texto:#a3124f; --verde:#12613a; --verde-fondo:#dff3e7; --ambar:#7a4a00; --ambar-fondo:#ffeccb;
  --radio:14px; --menu:232px;
}
* { box-sizing:border-box; }
html, body { margin:0; }
body { background:var(--fondo); color:var(--navy); font-family:'Instrument Sans',system-ui,-apple-system,'Segoe UI',sans-serif; font-size:16px; line-height:1.45; -webkit-font-smoothing:antialiased; }
h1,h2,h3,p,ul,ol { margin:0; padding:0; } ul,ol { list-style:none; }
h1 { font-size:clamp(1.6rem,3vw,2.15rem); font-weight:700; letter-spacing:-.03em; line-height:1.1; }
h2 { font-size:1.18rem; font-weight:700; letter-spacing:-.02em; }
h3 { font-size:1.02rem; font-weight:650; letter-spacing:-.01em; }
button, input, select, textarea { font:inherit; color:inherit; }
a { color:inherit; }
:focus-visible { outline:3px solid var(--pink); outline-offset:2px; border-radius:6px; }
.ico-svg { flex-shrink:0; }
[hidden] { display:none !important; }

/* Botones */
.btn { display:inline-flex; align-items:center; justify-content:center; gap:.45rem; min-height:42px; padding:.5rem .95rem; border-radius:10px; border:2px solid var(--navy); background:var(--blanco); font-weight:650; font-size:.95rem; cursor:pointer; text-decoration:none; white-space:nowrap; transition:background .15s, color .15s, border-color .15s; }
.btn:hover { background:var(--navy); color:var(--blanco); }
.btn.principal { background:var(--pink); border-color:var(--pink); color:var(--navy); }
.btn.principal:hover { background:var(--navy); border-color:var(--navy); color:var(--blanco); }
.btn.tenue { border-color:var(--linea); font-weight:600; }
.btn.tenue:hover { border-color:var(--navy); background:var(--blanco); color:var(--navy); }
.btn.peligro:hover { background:var(--rosa-texto); border-color:var(--rosa-texto); }
.btn[disabled] { opacity:.55; cursor:progress; }
.btn-ico { width:40px; min-height:40px; padding:0; border:0; background:transparent; border-radius:10px; display:inline-grid; place-items:center; cursor:pointer; }
.btn-ico:hover { background:var(--linea-2); }

/* Ingreso */
.ingreso { min-height:100dvh; display:grid; place-items:center; padding:1.2rem; background:var(--navy); }
.ingreso form { width:min(100%,380px); background:var(--blanco); border-radius:18px; padding:1.8rem; }
.ingreso .marca { margin-bottom:1.4rem; }
.ingreso h1 { font-size:1.5rem; margin-bottom:.3rem; }
.ingreso p { color:var(--suave); margin-bottom:1.2rem; }
.ingreso .btn { width:100%; margin-top:1rem; min-height:48px; }
.error { color:var(--rosa-texto); font-weight:600; font-size:.93rem; margin-top:.6rem; }
.marca { display:inline-flex; align-items:center; gap:.4rem; font-weight:700; font-size:1.1rem; letter-spacing:-.02em; }
.marca svg { color:var(--pink); }
.marca small { display:block; font-weight:500; font-size:.8rem; color:var(--suave); letter-spacing:0; }

/* Estructura */
.menu { position:fixed; inset:0 auto 0 0; width:var(--menu); background:var(--blanco); border-right:1px solid var(--linea); padding:1.2rem .8rem; display:flex; flex-direction:column; gap:1.4rem; z-index:20; }
.menu .marca { padding:0 .5rem; }
.menu nav { display:flex; flex-direction:column; gap:.2rem; }
.menu nav a { display:flex; align-items:center; gap:.7rem; padding:.62rem .7rem; border-radius:10px; text-decoration:none; font-weight:600; font-size:.97rem; color:var(--suave); }
.menu nav a:hover { background:var(--fondo); color:var(--navy); }
.menu nav a[aria-current="page"] { background:var(--navy); color:var(--blanco); }
.menu nav a .cuenta { margin-left:auto; min-width:24px; padding:.05rem .4rem; border-radius:999px; background:var(--pink); color:var(--navy); font-size:.8rem; font-weight:700; text-align:center; }
.menu .salir { margin-top:auto; }
.pagina { margin-left:var(--menu); padding:clamp(1.2rem,3vw,2.2rem); max-width:1240px; }
.cabeza { display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; flex-wrap:wrap; margin-bottom:1.4rem; }
.cabeza p { color:var(--suave); margin-top:.3rem; max-width:44rem; }
.acciones { display:flex; gap:.5rem; flex-wrap:wrap; }

/* Piezas */
.caja { background:var(--blanco); border:1px solid var(--linea); border-radius:var(--radio); padding:1.1rem 1.2rem; }
.chip { display:inline-flex; align-items:center; gap:.3rem; padding:.16rem .6rem; border-radius:999px; font-size:.8rem; font-weight:650; background:var(--linea-2); color:var(--navy); white-space:nowrap; }
.chip.rosa { background:var(--resaltador); color:var(--rosa-texto); }
.chip.verde { background:var(--verde-fondo); color:var(--verde); }
.chip.ambar { background:var(--ambar-fondo); color:var(--ambar); }
.chip.marino { background:var(--navy); color:var(--blanco); }
.vacio { color:var(--suave); font-size:.95rem; padding:.3rem 0; }
.partes { display:flex; flex-wrap:wrap; column-gap:.7rem; color:var(--suave); font-size:.9rem; }
.partes span { white-space:nowrap; }
.partes span + span { border-left:1px solid var(--linea); padding-left:.7rem; }

/* Hoy */
.hoy-grid { display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:1.4rem; align-items:start; }
.numeros { display:grid; gap:.8rem; }
.numero b { display:block; font-size:1.65rem; font-weight:700; letter-spacing:-.03em; line-height:1.1; margin:.2rem 0 .15rem; }
.numero span { font-size:.9rem; color:var(--suave); }
.barra { height:8px; border-radius:99px; background:var(--linea-2); overflow:hidden; margin-top:.6rem; }
.barra i { display:block; height:100%; background:var(--pink); border-radius:99px; }
.semana-caja { background:var(--navy); color:var(--blanco); border-radius:var(--radio); padding:1.1rem 1.2rem; }
.semana-caja small { color:#c5cde4; display:block; font-size:.86rem; }
.semana-caja strong { display:block; font-size:1.05rem; line-height:1.3; margin:.25rem 0 .6rem; font-weight:650; }
.semana-caja .meta-sem { color:var(--pink); font-weight:650; font-size:.93rem; }

.bloque { margin-bottom:1.5rem; }
.bloque-cab { display:flex; align-items:baseline; gap:.7rem; padding-bottom:.5rem; margin-bottom:.7rem; border-bottom:2px solid var(--navy); }
.bloque-cab .hora { font-weight:700; font-variant-numeric:tabular-nums; }
.bloque-cab .cuanto { margin-left:auto; color:var(--suave); font-size:.88rem; }
.bloque.urgente .bloque-cab { border-bottom-color:var(--pink); }
.bloque.urgente h2 { display:flex; align-items:center; gap:.4rem; }
.bloque.urgente h2 svg { color:var(--pink); }
.pila { display:grid; gap:.7rem; counter-reset:orden; }

.item { background:var(--blanco); border:1px solid var(--linea); border-radius:var(--radio); padding:1rem 1.1rem; display:grid; gap:.7rem; }
.item.atrasado { border-left:5px solid var(--pink); }
.item-cab { display:flex; align-items:flex-start; gap:.8rem; }
.orden { counter-increment:orden; flex-shrink:0; width:28px; height:28px; border-radius:50%; background:var(--navy); color:var(--blanco); display:grid; place-items:center; font-weight:700; font-size:.85rem; margin-top:.05rem; }
.orden::before { content:counter(orden); }
.item-cab .quien { min-width:0; flex:1; }
.item-cab .quien h3 { overflow-wrap:anywhere; }
.item-cab .quien p { color:var(--suave); font-size:.93rem; }
.item-cab .etiquetas { display:flex; gap:.35rem; flex-wrap:wrap; justify-content:flex-end; }
.mensaje { background:var(--fondo); border:1px solid var(--linea-2); border-radius:10px; padding:.8rem .9rem; white-space:pre-wrap; overflow-wrap:anywhere; font-size:.95rem; max-height:11.5rem; overflow:auto; }
.mensaje.sin { color:var(--suave); background:transparent; border-style:dashed; }
.item-pie { display:flex; gap:.5rem; flex-wrap:wrap; }
.tarea { display:flex; align-items:flex-start; gap:.8rem; background:var(--blanco); border:1px solid var(--linea); border-radius:var(--radio); padding:.85rem 1rem; }
.tarea input[type=checkbox] { appearance:none; -webkit-appearance:none; width:26px; height:26px; margin:0; flex-shrink:0; border:2px solid var(--navy); border-radius:7px; background:var(--blanco); cursor:pointer; display:grid; place-items:center; }
.tarea input[type=checkbox]::after { content:""; width:12px; height:6px; border-left:3px solid var(--navy); border-bottom:3px solid var(--navy); transform:rotate(-45deg) translateY(-2px) scale(0); transition:transform .12s; }
.tarea input[type=checkbox]:checked { background:var(--pink); border-color:var(--pink); }
.tarea input[type=checkbox]:checked::after { transform:rotate(-45deg) translateY(-2px) scale(1); }
.tarea .txt { min-width:0; flex:1; }
.tarea .txt b { font-weight:650; display:block; overflow-wrap:anywhere; }
.tarea .txt span { color:var(--suave); font-size:.92rem; }
.tarea.atrasado { border-left:5px solid var(--pink); }

/* Listas y filtros */
.filtros { display:flex; gap:.4rem; flex-wrap:wrap; margin-bottom:1rem; }
.filtro { border:1px solid var(--linea); background:var(--blanco); border-radius:999px; padding:.38rem .8rem; font-weight:600; font-size:.9rem; cursor:pointer; min-height:36px; }
.filtro b { color:var(--suave); font-weight:600; margin-left:.25rem; }
.filtro[aria-pressed="true"] { background:var(--navy); border-color:var(--navy); color:var(--blanco); }
.filtro[aria-pressed="true"] b { color:#c5cde4; }
.buscar { position:relative; flex:1; min-width:200px; max-width:340px; }
.buscar svg { position:absolute; left:.8rem; top:50%; transform:translateY(-50%); color:var(--suave); }
.buscar input { width:100%; min-height:42px; padding:.4rem .8rem .4rem 2.4rem; border:1px solid var(--linea); border-radius:10px; background:var(--blanco); font-size:16px; }
.filas { background:var(--blanco); border:1px solid var(--linea); border-radius:var(--radio); overflow:hidden; }
.fila { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1.4fr) auto; gap:1rem; align-items:center; padding:.85rem 1.1rem; border-top:1px solid var(--linea-2); width:100%; text-align:left; background:none; border-left:0; border-right:0; border-bottom:0; cursor:pointer; }
.fila:first-child { border-top:0; }
.fila:hover { background:var(--fondo); }
.fila b { font-weight:650; display:block; overflow-wrap:anywhere; }
.fila .sub { color:var(--suave); font-size:.9rem; }
.fila .sigue { font-size:.93rem; min-width:0; overflow-wrap:anywhere; }
.fila .sigue small { display:block; color:var(--suave); }

/* Tablero de proyectos */
.tablero { display:grid; grid-template-columns:repeat(6,minmax(150px,1fr)); gap:.7rem; overflow-x:auto; padding-bottom:.6rem; }
.columna h3 { display:flex; justify-content:space-between; padding-bottom:.45rem; margin-bottom:.6rem; border-bottom:2px solid var(--navy); font-size:.95rem; }
.columna h3 span { color:var(--suave); font-weight:600; }
.columna .pila { gap:.6rem; }
.tarjeta { background:var(--blanco); border:1px solid var(--linea); border-radius:12px; padding:.8rem .85rem; display:grid; gap:.4rem; text-align:left; width:100%; cursor:pointer; }
.tarjeta:hover { border-color:var(--navy); }
.tarjeta b { font-weight:650; line-height:1.25; overflow-wrap:anywhere; }
.tarjeta .sub { color:var(--suave); font-size:.88rem; }
.tarjeta .sigue { font-size:.9rem; }
.tope { margin-bottom:1rem; }

/* Finanzas */
.cifras { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.8rem; margin-bottom:1.4rem; }
.tabla { width:100%; border-collapse:collapse; background:var(--blanco); border:1px solid var(--linea); border-radius:var(--radio); overflow:hidden; }
.tabla-caja { overflow-x:auto; border-radius:var(--radio); }
.tabla th { text-align:left; font-size:.85rem; color:var(--suave); font-weight:600; padding:.65rem .9rem; border-bottom:1px solid var(--linea); white-space:nowrap; }
.tabla td { padding:.7rem .9rem; border-top:1px solid var(--linea-2); font-size:.95rem; vertical-align:top; }
.tabla tr:first-child td { border-top:0; }
.tabla td.monto, .tabla th.monto { text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; font-weight:650; }
.tabla tr.clic { cursor:pointer; } .tabla tr.clic:hover td { background:var(--fondo); }
.seccion { margin-top:1.8rem; }
.seccion > h2 { margin-bottom:.7rem; }

/* Plan */
.metricas { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:.7rem; margin-bottom:1.6rem; }
.metrica b { font-size:1.5rem; font-weight:700; letter-spacing:-.03em; }
.metrica b small { font-size:.95rem; color:var(--suave); font-weight:600; }
.metrica span { display:block; color:var(--suave); font-size:.88rem; }
.semanas li { display:grid; grid-template-columns:44px 110px minmax(0,1fr) minmax(0,.7fr); gap:.8rem; padding:.65rem 1rem; border-top:1px solid var(--linea-2); font-size:.94rem; align-items:baseline; }
.semanas li:first-child { border-top:0; }
.semanas li.actual { background:var(--resaltador); font-weight:600; }
.semanas li.pasada { color:var(--suave); }
.semanas .n { font-weight:700; } .semanas .f { font-variant-numeric:tabular-nums; color:var(--suave); }

/* Ventana de edición */
dialog { border:0; padding:0; border-radius:18px; width:min(680px,calc(100vw - 1.4rem)); max-height:calc(100dvh - 1.4rem); color:var(--navy); background:var(--blanco); }
dialog::backdrop { background:rgba(15,27,61,.55); }
.vent { display:flex; flex-direction:column; max-height:calc(100dvh - 1.4rem); }
.vent-cab { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem 1.2rem; border-bottom:1px solid var(--linea); }
.vent-cuerpo { padding:1.1rem 1.2rem; overflow:auto; display:grid; gap:.9rem; }
.vent-pie { display:flex; gap:.5rem; justify-content:flex-end; flex-wrap:wrap; padding:.9rem 1.2rem; border-top:1px solid var(--linea); }
.vent-pie .izq { margin-right:auto; }
.campo label { display:block; font-weight:600; font-size:.9rem; margin-bottom:.25rem; }
.campo input, .campo select, .campo textarea { width:100%; min-height:44px; font-size:16px; padding:.5rem .7rem; border:1.5px solid var(--linea); border-radius:10px; background:var(--blanco); }
.campo textarea { min-height:5.5rem; resize:vertical; line-height:1.4; }
.campo input:focus, .campo select:focus, .campo textarea:focus { border-color:var(--navy); outline:none; }
.campo.check { display:flex; align-items:center; gap:.6rem; }
.campo.check input { width:22px; min-height:22px; height:22px; accent-color:var(--navy); }
.campo.check label { margin:0; }
.duo { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; }
.grupo-tit { font-size:.8rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--suave); padding-top:.5rem; border-top:1px solid var(--linea-2); }
.historial li { padding:.5rem 0; border-top:1px solid var(--linea-2); font-size:.93rem; overflow-wrap:anywhere; }
.historial li:first-child { border-top:0; }
.historial small { color:var(--suave); display:block; }

#aviso { position:fixed; left:50%; bottom:5.4rem; transform:translateX(-50%); background:var(--navy); color:var(--blanco); padding:.7rem 1.1rem; border-radius:12px; font-weight:600; z-index:90; max-width:calc(100vw - 2rem); box-shadow:0 8px 22px rgba(15,27,61,.3); }

@media (max-width:1100px) {
  .hoy-grid { grid-template-columns:minmax(0,1fr); }
  .numeros { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .metricas { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .cifras { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:820px) {
  .menu { inset:auto 0 0 0; width:auto; flex-direction:row; padding:.3rem .3rem calc(.3rem + env(safe-area-inset-bottom)); border-right:0; border-top:1px solid var(--linea); gap:0; }
  .menu .marca, .menu .salir { display:none; }
  .menu nav { flex-direction:row; width:100%; gap:0; }
  .menu nav a { flex:1; flex-direction:column; gap:.15rem; padding:.4rem .1rem; font-size:.68rem; font-weight:600; min-width:0; position:relative; }
  .menu nav a .cuenta { position:absolute; top:.1rem; left:calc(50% + 6px); margin:0; min-width:18px; font-size:.68rem; padding:0 .3rem; }
  .pagina { margin-left:0; padding:1rem .9rem 6rem; }
  .numeros { grid-template-columns:minmax(0,1fr); }
  .fila { grid-template-columns:minmax(0,1fr); gap:.35rem; }
  .tablero { grid-template-columns:minmax(0,1fr); overflow:visible; }
  .semanas li { grid-template-columns:34px minmax(0,1fr); }
  .semanas .f { grid-column:2; } .semanas .foco, .semanas .m { grid-column:2; }
  .duo { grid-template-columns:minmax(0,1fr); }
  .item-cab { flex-wrap:wrap; }
  .item-cab .etiquetas { justify-content:flex-start; width:100%; padding-left:calc(28px + .8rem); }
  .item-pie .btn { flex:1 1 auto; }
}
@media (max-width:480px) {
  .metricas, .cifras { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (prefers-reduced-motion:reduce) { * { transition:none !important; } }

/* Prioridades, riesgos y revisión */
.prioridades { margin-top:.9rem; padding-top:.8rem; border-top:1px solid rgba(255,255,255,.2); counter-reset:pri; display:grid; gap:.45rem; }
.prioridades li { counter-increment:pri; display:grid; grid-template-columns:22px minmax(0,1fr); gap:.5rem; font-size:.93rem; line-height:1.35; }
.prioridades li::before { content:counter(pri); width:22px; height:22px; border-radius:50%; background:var(--pink); color:var(--navy); font-weight:700; font-size:.78rem; display:grid; place-items:center; }
.lista-num { counter-reset:pri; }
.lista-num li { counter-increment:pri; display:grid; grid-template-columns:28px minmax(0,1fr); gap:.7rem; padding:.8rem 1rem; border-top:1px solid var(--linea-2); font-weight:600; }
.lista-num li:first-child { border-top:0; }
.lista-num li::before { content:counter(pri); width:28px; height:28px; border-radius:50%; background:var(--navy); color:var(--blanco); font-weight:700; font-size:.85rem; display:grid; place-items:center; }
.riesgo { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:1rem; padding:.8rem 1rem; border-top:1px solid var(--linea-2); font-size:.95rem; }
.riesgo:first-child { border-top:0; }
.riesgo b { font-weight:650; } .riesgo span { color:var(--suave); }
@media (max-width:820px) { .riesgo { grid-template-columns:minmax(0,1fr); gap:.2rem; } }

@media (max-width:820px) { .tarea.ancha { flex-wrap:wrap; } .tarea.ancha .txt { flex:1 1 100%; } .menu nav a { font-size:.62rem; } }
