:root{--color-bg:#f4f6f8;--color-surface:#fff;--color-border:#e1e5ea;--color-text:#1f2937;--color-text-muted:#6b7280;--color-primary:#2f6f6b;--color-primary-dark:#24534f;--color-primary-bg:#e7f1f0;--color-danger:#c0392b;--color-danger-bg:#fbe9e7;--color-verde:#2e9e4f;--color-amarillo:#d99a1b;--color-rojo:#d63b3b;--radius:10px;--shadow:0 1px 3px #10182814, 0 1px 2px #1018280f}*{box-sizing:border-box}body{background:var(--color-bg);color:var(--color-text);margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.5}a{color:var(--color-primary)}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit;font-size:15px}.app-shell{flex-direction:column;min-height:100vh;display:flex}.app-topbar{background:var(--color-surface);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:14px 24px;display:flex}.app-brand{color:var(--color-primary-dark);font-size:18px;font-weight:700;text-decoration:none}.app-nav{align-items:center;gap:18px;display:flex}.app-nav a{color:var(--color-text-muted);font-size:14px;text-decoration:none}.app-nav a.active,.app-nav a:hover{color:var(--color-primary-dark)}.app-nav .usuario-nombre{color:var(--color-text);font-size:14px;font-weight:600}.app-nav button.link{color:var(--color-text-muted);background:0 0;border:none;padding:0;font-size:14px}.app-nav button.link:hover{color:var(--color-danger)}.app-content{flex:1;width:100%;max-width:960px;margin:0 auto;padding:28px 20px 60px}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.page-header h1{margin:0;font-size:20px}.subtle{color:var(--color-text-muted);font-size:14px}.btn{background:var(--color-primary);color:#fff;border:1px solid #0000;border-radius:8px;align-items:center;gap:6px;padding:9px 16px;font-size:14px;font-weight:600;display:inline-flex}.btn:hover{background:var(--color-primary-dark)}.btn:disabled{opacity:.6;cursor:default}.btn.secundario{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text)}.btn.secundario:hover{border-color:var(--color-primary);color:var(--color-primary-dark)}.btn.peligro{background:var(--color-danger-bg);color:var(--color-danger)}.btn.peligro:hover{background:var(--color-danger);color:#fff}.btn.chico{padding:5px 10px;font-size:13px}.form label{color:var(--color-text-muted);margin-bottom:4px;font-size:13px;font-weight:600;display:block}.form input[type=text],.form input[type=email],.form input[type=tel],.form input[type=password],.form input[type=number],.form input[type=time],.form input[type=date],.form select,.form textarea{border:1px solid var(--color-border);width:100%;color:var(--color-text);background:#fff;border-radius:8px;padding:9px 11px}.form .campo{margin-bottom:14px}.form .fila{gap:12px;display:flex}.form .fila>*{flex:1}.form .error{color:var(--color-danger);margin:4px 0 0;font-size:13px}.form .ayuda{color:var(--color-text-muted);margin:4px 0 0;font-size:12px}.pantalla-auth{background:var(--color-bg);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.auth-card{background:var(--color-surface);border-radius:var(--radius);width:100%;max-width:380px;box-shadow:var(--shadow);padding:32px 28px}.logo-login{width:140px;height:140px;margin:0 auto 4px;display:block}.auth-brand{color:var(--color-primary-dark);margin-bottom:4px;font-size:22px;font-weight:700}.auth-sub{color:var(--color-text-muted);margin-bottom:22px;font-size:14px}.auth-card .btn{justify-content:center;width:100%;margin-top:6px}.auth-switch{text-align:center;color:var(--color-text-muted);margin-top:18px;font-size:13px}.semaforo{border-radius:50%;flex-shrink:0;width:12px;height:12px;display:inline-block}.semaforo.verde{background:var(--color-verde)}.semaforo.amarillo{background:var(--color-amarillo)}.semaforo.rojo{background:var(--color-rojo)}.semaforo-leyenda{color:var(--color-text-muted);align-items:center;gap:16px;font-size:13px;display:flex}.semaforo-leyenda span{align-items:center;gap:6px;display:inline-flex}.lista-pacientes{flex-direction:column;gap:10px;display:flex}.paciente-item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);color:inherit;align-items:center;gap:14px;padding:16px 18px;text-decoration:none;display:flex}.paciente-item:hover{border-color:var(--color-primary)}.paciente-item .nombre{font-weight:600}.paciente-item .meta{color:var(--color-text-muted);font-size:13px}.paciente-item .flecha{color:var(--color-text-muted);margin-left:auto}.estado-vacio{text-align:center;color:var(--color-text-muted);padding:40px 20px}.tabs{border-bottom:1px solid var(--color-border);gap:4px;margin-bottom:20px;display:flex}.tabs button{color:var(--color-text-muted);background:0 0;border:none;border-bottom:2px solid #0000;padding:10px 14px;font-size:14px;font-weight:600}.tabs button.activo{color:var(--color-primary-dark);border-bottom-color:var(--color-primary)}table.tabla{border-collapse:collapse;width:100%;font-size:14px}table.tabla th{text-align:left;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-muted);border-bottom:1px solid var(--color-border);padding:8px 10px;font-size:12px}table.tabla td{border-bottom:1px solid var(--color-border);padding:10px}table.tabla tr:last-child td{border-bottom:none}.badge{border-radius:999px;padding:3px 9px;font-size:12px;font-weight:600;display:inline-block}.badge.confirmada{color:var(--color-verde);background:#e6f6ea}.badge.pendiente{color:var(--color-amarillo);background:#fff6e3}.badge.perdida{background:var(--color-danger-bg);color:var(--color-danger)}.badge.tardia{color:#b1590b;background:#fff0e0}.medicamentos-grid{gap:12px;display:grid}.medicamento-card{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);gap:14px;padding:16px;display:flex}.btn-texto-toggle{color:var(--color-text-muted);background:0 0;border:none;padding:4px 0;font-size:13px;font-weight:600}.btn-texto-toggle:hover{color:var(--color-primary-dark)}.medicamentos-apagados-lista{flex-direction:column;gap:8px;margin-top:8px;display:flex}.medicamento-apagado-fila{border:1px solid var(--color-border);background:var(--color-bg);opacity:.7;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;display:flex}.medicamento-apagado-fila .nombre{color:var(--color-text-muted);font-size:13px;font-weight:600}.medicamento-foto{object-fit:cover;background:var(--color-bg);border-radius:8px;flex-shrink:0;width:56px;height:56px}.medicamento-foto.generica{background:var(--color-primary-bg);color:var(--color-primary);justify-content:center;align-items:center;display:flex}.medicamento-info{flex:1;min-width:0}.medicamento-info .nombre{align-items:center;gap:8px;font-weight:600;display:flex}.medicamento-info .detalle{color:var(--color-text-muted);margin-top:2px;font-size:13px}.medicamento-acciones{flex-direction:column;flex-shrink:0;gap:6px;display:flex}.chip{text-transform:uppercase;letter-spacing:.03em;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700}.chip.critico{background:var(--color-danger-bg);color:var(--color-danger)}.chip.flexible{background:var(--color-primary-bg);color:var(--color-primary-dark)}.modal-fondo{z-index:50;background:#0f172a73;justify-content:center;align-items:flex-start;padding:40px 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal-caja{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow);width:100%;max-width:480px;padding:24px}.modal-caja h2{margin-top:0;font-size:18px}.modal-acciones{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}@media (width<=560px){.app-content{padding:20px 14px 50px}.medicamento-card{flex-direction:column}.medicamento-acciones{flex-direction:row}.form .fila{flex-direction:column;gap:0}.app-topbar{flex-wrap:wrap;row-gap:8px;padding:12px 16px}.app-nav{justify-content:flex-end;gap:14px;width:100%}.app-nav .usuario-nombre{display:none}}.banner-instalar{background:var(--color-primary-bg);border:1px solid var(--color-border);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin:12px 0;padding:12px 14px;display:flex}.banner-instalar-texto{color:var(--color-text);flex-direction:column;flex:220px;gap:2px;font-size:.9em;display:flex}.banner-instalar-texto span{color:var(--color-text-muted)}.banner-instalar-acciones{align-items:center;gap:10px;display:flex}.banner-instalar-boton{background:var(--color-primary);color:#fff;font:inherit;cursor:pointer;border:0;border-radius:10px;padding:10px 18px;font-weight:600}.banner-instalar-cerrar{color:var(--color-text-muted);font:inherit;cursor:pointer;background:0 0;border:0;font-size:.85em;text-decoration:underline}.card .ayuda{color:var(--color-text-muted);margin:6px 0;font-size:.85em}.card input[type=text]{border:1px solid var(--color-border);width:100%;font:inherit;border-radius:8px;padding:8px 10px}.admin-item{border-bottom:1px solid var(--color-border);flex-direction:column;gap:8px;min-width:0;padding:12px 0;display:flex}.admin-item:last-of-type{border-bottom:none}.admin-item-cabecera{flex-wrap:wrap;align-items:flex-start;gap:10px;display:flex}.admin-item-titulo{overflow-wrap:anywhere;flex:180px;min-width:0;font-size:14px}.admin-item-datos{overflow-wrap:anywhere;font-size:13px}.admin-check{flex-shrink:0;width:20px;height:20px;margin-top:2px}.admin-mensaje-error{overflow-wrap:anywhere;word-break:break-word;color:var(--color-text);font-size:13px;line-height:1.4}.admin-gestion{background:var(--color-bg);border-radius:8px;flex-direction:column;gap:10px;padding:10px;display:flex}.admin-gestion-fila{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.admin-gestion-fila input[type=text],.admin-gestion-fila input:not([type]),.admin-gestion-fila input[type=number]{flex:130px;min-width:0;max-width:100%}.admin-gestion-fila select{max-width:100%}.admin-barra-seleccion{border-bottom:1px solid var(--color-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding-bottom:10px;font-size:14px;display:flex}.admin-confirmar{background:var(--color-danger-bg);border-radius:8px;margin:10px 0;padding:10px;font-size:14px}.app-content{overflow-x:hidden}.app-content .card{overflow-wrap:anywhere;min-width:0}.tabs{overflow-x:auto}.tabs button{white-space:nowrap}
