/* ProLink365 — estilos compartidos de las demos de software a la medida (tableros y aplicaciones). */
.app { background: var(--card); border: 1px solid var(--border); border-radius: 18px; padding: 1.3rem; max-width: 1140px; margin: 0 auto; }
.app-head { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; }
.app-head b { display: block; font-family: 'Syne', sans-serif; font-size: 1.1rem; }
.app-head small { color: var(--gray); font-size: 0.8rem; }
.app-kpis { grid-template-columns: repeat(auto-fit, minmax(min(150px, 100%), 1fr)); }
@media (max-width: 600px) { .app { padding: 1rem 0.85rem; } .app-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.5rem; } .app-kpis .kpi { padding: 0.65rem; } .app-kpis .kpi b { font-size: 1.25rem; } }
.btn-mini, .accion { background: transparent; border: 1px solid rgba(0,232,122,0.4); color: var(--green); border-radius: 100px; padding: 0.35rem 0.8rem; font-family: 'DM Sans', sans-serif; font-size: 0.8rem; cursor: pointer; max-width: 100%; }
.btn-mini:hover, .accion:hover { background: rgba(0,232,122,0.1); }
.accion.fuerte { background: var(--green); color: #0a0f0d; border-color: var(--green); font-weight: 500; }
.accion.alerta { border-color: rgba(255,200,0,0.5); color: var(--amber); }
.accion:disabled { opacity: 0.45; cursor: default; }
.tabs { display: flex; gap: 0.35rem; overflow-x: auto; margin: 1.2rem 0 0; border-bottom: 1px solid var(--border); scrollbar-width: none; }
.tabs button { background: none; border: none; border-bottom: 2px solid transparent; color: var(--gray); padding: 0.6rem 0.8rem; font-family: 'DM Sans', sans-serif; font-size: 0.9rem; cursor: pointer; white-space: nowrap; }
.tabs button[aria-selected="true"] { color: var(--green); border-bottom-color: var(--green); }
.tab-body { padding-top: 1.1rem; min-height: 300px; }
.app h4 { font-family: 'Syne', sans-serif; font-size: 0.95rem; margin-bottom: 0.6rem; }
.dos { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(320px, 100%), 1fr)); gap: 1.2rem; align-items: start; }
.dos > * { min-width: 0; }
.wa { background: #005c4b; border-radius: 12px; border-top-left-radius: 3px; padding: 0.7rem 0.85rem 0.45rem; font-size: 0.88rem; white-space: pre-line; max-width: 460px; }
.wa-quien { display: block; font-size: 0.72rem; color: #7ff0c4; font-weight: 500; }
.wa-hora { display: block; text-align: right; font-size: 0.66rem; color: rgba(255,255,255,0.55); }
.lista-alertas { list-style: none; display: flex; flex-direction: column; gap: 0.5rem; }
.lista-alertas li { border: 1px solid var(--border); border-left: 3px solid var(--amber); border-radius: 0 10px 10px 0; padding: 0.6rem 0.75rem; font-size: 0.86rem; color: #d3e0d8; cursor: pointer; background: rgba(255,200,0,0.03); }
.lista-alertas li.rojo { border-left-color: #ff7a7a; background: rgba(255,90,90,0.05); }
.lista-alertas li.info { border-left-color: var(--green); background: rgba(0,232,122,0.03); }
.lista-alertas li.cerrada { opacity: 0.5; text-decoration: line-through; }
.lista-alertas li:hover, .lista-alertas li.sel { border-color: var(--green); }
.lista-alertas li b { color: var(--white); font-weight: 500; }
.detalle { background: rgba(0,0,0,0.18); border: 1px solid var(--border); border-radius: 14px; padding: 1rem; font-size: 0.88rem; color: #d3e0d8; }
.detalle h5 { font-family: 'Syne', sans-serif; font-size: 1rem; color: var(--white); margin-bottom: 0.4rem; }
.detalle svg { width: 100%; height: auto; display: block; margin: 0.4rem 0 0.6rem; }
.detalle p + p { margin-top: 0.5rem; }
.detalle b { color: var(--white); font-weight: 500; }
.borrador { margin-top: 0.8rem; background: #0d1612; border: 1px dashed var(--border); border-radius: 10px; padding: 0.7rem 0.85rem; font-size: 0.84rem; white-space: pre-line; animation: bubbleIn .35s ease both; }
.borrador small { display: block; color: var(--gray); margin-bottom: 0.3rem; }
.checks { list-style: none; display: flex; flex-direction: column; gap: 0.5rem; }
.checks li { display: flex; justify-content: space-between; align-items: center; gap: 0.8rem; flex-wrap: wrap; border: 1px solid var(--border); border-radius: 10px; padding: 0.65rem 0.8rem; font-size: 0.88rem; }
.bitacora { margin-top: 1.3rem; border-top: 1px solid var(--border); padding-top: 1rem; }
.bitacora .log { min-height: 0; }
.bitacora .log li .t { color: var(--green); font-variant-numeric: tabular-nums; margin-right: 0.4rem; }
.app .data-table td { font-size: 0.84rem; }
.app .data-table tr.sel td { background: rgba(0,232,122,0.08); }
.app .data-table tr[data-k] { cursor: pointer; }
.ok-txt { color: var(--green); } .warn-txt { color: var(--amber); } .bad-txt { color: #ff8a8a; }
.ley { display: flex; flex-wrap: wrap; gap: 0.4rem 1rem; font-size: 0.75rem; color: var(--gray); }
.ley i { display: inline-block; width: 14px; height: 3px; vertical-align: middle; margin-right: 0.3rem; border-radius: 2px; }
.campo { display: flex; flex-direction: column; gap: 0.3rem; font-size: 0.82rem; color: var(--gray); }
.campo select, .campo input { background: rgba(15,26,21,0.9); border: 1px solid var(--border); border-radius: 8px; color: var(--white); padding: 0.5rem 0.6rem; font-family: 'DM Sans', sans-serif; font-size: 0.9rem; }
.campos { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(180px, 100%), 1fr)); gap: 0.8rem; }
.opciones-check { display: flex; flex-wrap: wrap; gap: 0.4rem 1rem; font-size: 0.86rem; }
.opciones-check label { display: flex; align-items: center; gap: 0.35rem; cursor: pointer; }
