:root{--marca: #7a4e6d;--fondo: #faf7f8;--texto: #2b2127;--suave: #7d6f77;--borde: #e6dde2;--rojo: #b3261e;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:var(--texto);background:var(--fondo)}*{box-sizing:border-box}body{margin:0}.app{max-width:560px;margin:0 auto;min-height:100vh;padding-bottom:env(safe-area-inset-bottom)}header{display:flex;justify-content:space-between;align-items:center;padding:16px;padding-top:max(16px,env(safe-area-inset-top));background:var(--marca);color:#fff}header .usuario{display:block;font-size:13px;opacity:.85}header .link{color:#fff}nav{display:flex;gap:8px;padding:12px 16px;background:#fff;border-bottom:1px solid var(--borde)}nav button{flex:1;padding:10px;border:1px solid var(--borde);border-radius:10px;background:#fff;font-size:15px}nav button.activo{background:var(--marca);color:#fff;border-color:var(--marca)}main{padding:16px}button{font:inherit;cursor:pointer}button.primario{width:100%;padding:14px;border:0;border-radius:12px;background:var(--marca);color:#fff;font-size:17px;font-weight:600}button.primario:disabled{opacity:.5}button.link{background:none;border:0;color:var(--marca);padding:6px 0;text-align:left}.login{padding:64px 24px;text-align:center}.login h1{color:var(--marca)}.cargando,.vacio{padding:32px;text-align:center;color:var(--suave)}.aviso.error{background:#fdecea;color:var(--rojo);padding:12px;border-radius:10px;margin:16px}.formulario{display:flex;flex-direction:column;gap:14px}.campo{display:flex;flex-direction:column;gap:6px;position:relative}.campo>span{font-size:14px;color:var(--suave)}input,select{font:inherit;font-size:16px;padding:12px;border:1px solid var(--borde);border-radius:10px;background:#fff;width:100%}.foto{display:flex;align-items:center;justify-content:center;min-height:140px;border:2px dashed var(--borde);border-radius:14px;background:#fff;color:var(--marca);font-weight:600;overflow:hidden}.foto img{max-width:100%;max-height:260px}.sugerencias{list-style:none;margin:0;padding:0;border:1px solid var(--borde);border-radius:10px;background:#fff}.sugerencias li{padding:12px;border-top:1px solid var(--borde)}.sugerencias li:first-child{border-top:0}.sugerencias li.otro{color:var(--suave)}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{padding:10px 14px;border:1px solid var(--borde);border-radius:999px;background:#fff}.chip.activo{background:var(--marca);color:#fff;border-color:var(--marca)}.faltan{color:var(--suave);font-size:14px;margin:0}.lista{display:flex;flex-direction:column;gap:10px}.filtro{display:flex;gap:8px;align-items:center;color:var(--suave)}.filtro input{width:auto}.gasto{display:flex;justify-content:space-between;gap:12px;padding:12px 14px;background:#fff;border:1px solid var(--borde);border-radius:12px}.gasto small{display:block;color:var(--suave);margin-top:2px}.gasto .derecha{text-align:right;white-space:nowrap}.gasto .derecha span{font-weight:600}.gasto a{display:block;font-size:13px;color:var(--marca);margin-top:2px}.rojo{color:var(--rojo)!important}.aviso.info{background:#f3ecf1;color:var(--marca);padding:10px 12px;border-radius:10px;margin:0;font-size:14px}.leido{font-style:normal;font-size:12px;color:#2e7d32;background:#e8f5e9;padding:2px 6px;border-radius:6px;margin-left:6px}.dato{color:var(--suave);font-size:13px}.gasto small.factura{color:#2e7d32}.dato.sincsf{color:#8a5a00}nav button{font-size:14px;padding:10px 6px}.seccion{display:flex;flex-direction:column;gap:10px;margin-bottom:22px}.seccion h2{font-size:16px;margin:4px 0;color:var(--marca)}.tarjeta{background:#fff;border:1px solid var(--borde);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:8px}.tarjeta .fila{display:flex;justify-content:space-between;gap:10px;align-items:baseline}.tarjeta small{color:var(--suave)}.acciones{display:flex;gap:8px}.acciones button{flex:1;padding:10px;border-radius:10px;border:1px solid var(--borde);background:#fff}.acciones button.si{background:#2e7d32;border-color:#2e7d32;color:#fff}.acciones button.no{color:var(--rojo)}.etiqueta{font-size:12px;padding:2px 8px;border-radius:999px;white-space:nowrap}.etiqueta.ok{background:#e8f5e9;color:#2e7d32}.etiqueta.falta{background:#fff4e0;color:#8a5a00}.etiqueta.revision{background:#f3ecf1;color:var(--marca)}.aviso.alerta{background:#fff4e0;color:#8a5a00;padding:10px 12px;border-radius:10px;margin:0;font-size:14px}.app:has(.ancho){max-width:1000px}.admin{display:flex;flex-direction:column;gap:14px}.admin .barra{display:flex;gap:10px;align-items:flex-end}.admin .barra .campo{flex:1}button.secundario{padding:12px 14px;border-radius:10px;border:1px solid var(--marca);background:#fff;color:var(--marca);font-weight:600;white-space:nowrap}button.secundario:disabled{opacity:.5}.indicadores{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.indicadores div{background:#fff;border:1px solid var(--borde);border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:2px}.indicadores small{color:var(--suave);font-size:12px}.indicadores strong{font-size:16px}.filtros{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.filtros select,.filtros>input{flex:1 1 160px;width:auto}.fila-titulo{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}.fila-titulo .chip{padding:6px 10px;font-size:13px}.gasto small .factura{color:#2e7d32}.gasto small .sincsf{color:#8a5a00}@media (max-width: 480px){.indicadores{grid-template-columns:repeat(2,1fr)}}.candidatos{display:flex;flex-direction:column;gap:6px}.candidatos .chip{text-align:left;font-size:13px;padding:8px 12px;border-radius:10px}.nav-badge{display:inline-block;min-width:18px;padding:0 5px;margin-left:4px;border-radius:999px;background:#b3261e;color:#fff;font-size:11px;line-height:18px}
