:root{--primario: #1f3a5f;--acento: #f2a541;--fondo: #f4f6f9;--superficie: #ffffff;--texto: #1d2733;--suave: #5d6b7a;--borde: #dde3ea;--rojo: #c0392b;--ambar: #d68910;--verde: #1e8449;--gris: #7f8c8d;--radio: 10px}*{box-sizing:border-box}html,body{margin:0;height:100%}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--fondo);color:var(--texto);font-size:15px}a{color:var(--primario)}h1{font-size:1.35rem;margin:0 0 1rem}.tarjeta{background:var(--superficie);border:1px solid var(--borde);border-radius:var(--radio);padding:1rem}.campo{display:flex;flex-direction:column;gap:.3rem;margin-bottom:.9rem}.campo label{font-size:.85rem;color:var(--suave)}input,select{font:inherit;padding:.6rem .7rem;border:1px solid var(--borde);border-radius:8px;background:#fff;width:100%}input[type=checkbox],input[type=radio]{width:auto;padding:0;margin:0;flex:0 0 auto;inline-size:1.05rem;block-size:1.05rem;accent-color:var(--primario);cursor:pointer}input:focus,select:focus{outline:2px solid var(--acento);border-color:transparent}button{font:inherit;cursor:pointer;border:0;border-radius:8px;padding:.6rem 1rem;background:var(--primario);color:#fff}button.secundario{background:transparent;color:var(--primario);border:1px solid var(--borde)}button:disabled{opacity:.6;cursor:default}.error{color:var(--rojo);font-size:.9rem}.semaforo{display:inline-block;padding:.15rem .55rem;border-radius:999px;font-size:.78rem;font-weight:600;color:#fff;white-space:nowrap}.semaforo.VENCIDO{background:var(--rojo)}.semaforo.POR_VENCER{background:var(--ambar)}.semaforo.EN_PLAZO{background:var(--verde)}.semaforo.CUMPLIDO,.semaforo.CUMPLIDO_ATRASADO,.semaforo.SIN_PLAZO{background:var(--gris)}.estado-cita{display:inline-block;padding:.15rem .55rem;border-radius:999px;font-size:.78rem;font-weight:600;background:#e8ecf1;color:var(--suave);white-space:nowrap}.estado-cita.AGENDADA{background:#fff4d6;color:#8a5a00}.estado-cita.CONFIRMADA{background:#e3f4e8;color:#1b6b35}.estado-cita.ASISTIO{background:#e1ecf7;color:var(--primario)}.estado-cita.ANULADA,.estado-cita.NO_ASISTIO{background:#fde7e7;color:#a12b2b}
