*{box-sizing:border-box}body{margin:0;font-family:Arial,sans-serif;background:#f4f6f9;color:#172033}.app{display:grid;grid-template-columns:220px 1fr 470px;height:100vh;overflow:hidden}.sidebar{background:#0d2f4f;color:white;padding:18px}.sidebar a{display:block;color:white;padding:12px;border-radius:8px;text-decoration:none;cursor:pointer}.sidebar a.active,.sidebar a:hover{background:rgba(255,255,255,.14)}.main{overflow:auto}header{display:flex;justify-content:space-between;align-items:center;background:white;padding:16px;border-bottom:1px solid #ddd}.screen{display:none;padding:16px}.screen.active{display:block}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px}.stats div{background:white;border-radius:12px;padding:14px;border:1px solid #e1e5eb}.stats span{color:#667085;font-size:12px;font-weight:bold}.stats b{display:block;font-size:26px}.filters,.turno-filters{display:grid;grid-template-columns:1.5fr .8fr .8fr .7fr .7fr auto;gap:8px;margin-bottom:14px}.turno-filters{grid-template-columns:1.5fr .8fr .8fr .7fr .7fr auto auto}.user-form{display:grid;grid-template-columns:1fr 1fr 1fr 1fr auto;gap:8px;margin-bottom:14px}input,select,textarea,button,.btn{padding:10px;border:1px solid #ccd4df;border-radius:8px}button,.btn{cursor:pointer;background:#edf2f7;text-decoration:none;color:#172033}.primary{background:#145da0;color:white}.board{display:flex;gap:14px;overflow:auto}.column{min-width:285px;background:#e9edf3;border-radius:14px;padding:12px}.card{background:white;border:1px solid #e2e7ef;border-radius:12px;padding:12px;margin-bottom:12px;box-shadow:0 2px 7px rgba(0,0,0,.06);cursor:pointer}.card:hover{border-color:#145da0}.progress{height:8px;background:#e5e7eb;border-radius:99px;margin:9px 0}.progress div{height:8px;background:#145da0;border-radius:99px}.actions{margin-top:8px}.badge{display:inline-block;padding:5px 10px;border-radius:99px;font-size:12px;margin-top:6px}.badge.ok{background:#e8f8ef;color:#087f5b}.badge.warn{background:#fff4d6;color:#8a6100}.detail{background:white;border-left:1px solid #ddd;padding:18px;overflow:auto}.detail-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}.doc-header{display:flex;justify-content:space-between;align-items:center;margin:14px 0 8px}.doc-row{display:grid;grid-template-columns:1fr auto auto auto auto;gap:6px;align-items:center;border-bottom:1px solid #eee;padding:10px 0}.doc-row button{font-size:12px;padding:7px}table{width:100%;border-collapse:collapse;background:white}td,th{padding:10px;border-bottom:1px solid #e8edf3;text-align:left;vertical-align:top}.modal-bg{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);align-items:center;justify-content:center;z-index:10}.modal{background:white;border-radius:14px;padding:18px;width:800px;max-width:95vw;max-height:92vh;overflow:auto}.viewer{background:#f1f4f8;border:1px solid #dce3ec;border-radius:12px;padding:12px;text-align:center;margin:12px 0}.viewer iframe{width:100%;height:70vh;border:0;background:white}.viewer img{max-width:100%;max-height:70vh}.patient-body,.login-body{display:flex;align-items:center;justify-content:center;min-height:100vh}.patient-card,.login-card{width:460px;background:white;padding:24px;border-radius:18px;box-shadow:0 10px 40px rgba(0,0,0,.12)}.patient-card form,.login-card form{display:grid;gap:10px}.patient-card button,.login-card button{background:#145da0;color:white}.error{background:#ffe8e8;color:#9d1c1c;padding:10px;border-radius:8px;margin-bottom:12px}.inline{display:inline}.config-form{display:grid;grid-template-columns:1fr repeat(4,auto) 90px 90px auto;gap:8px;margin-bottom:12px;background:white;padding:12px;border-radius:12px}.practice-box{background:white;border:1px solid #e1e5eb;border-radius:12px;padding:12px;margin:12px 0}.practice-box label{display:inline-block;margin:6px 14px 6px 0}#docsPaciente{background:#f6f8fb;border:1px solid #dde5ef;border-radius:12px;padding:12px;margin-top:8px}.hint{font-size:12px;color:#667085}
.admin-tabs{display:flex;gap:10px;margin:14px 0}
.admin-tabs button{font-weight:bold;background:#fff}
.admin-tab{display:none}
.admin-tab.active{display:block}
.clean-card,.practice-card{background:#fff;border:1px solid #e1e5eb;border-radius:14px;padding:16px;margin:14px 0;box-shadow:0 2px 7px rgba(0,0,0,.04)}
.clean-card h4,.practice-card h4{margin-top:0}
.config-grid{display:grid;grid-template-columns:1.4fr repeat(4,auto) 90px 90px auto;gap:10px;align-items:center}
.item-row{display:grid;grid-template-columns:1.2fr 1fr repeat(4,auto) 70px 70px auto;gap:8px;align-items:center}
.item-actions{margin-top:-8px;margin-bottom:12px}
.practice-card{display:grid;gap:8px;max-width:950px}
.practice-card textarea{min-height:84px}
.practice-title{display:flex;align-items:center;gap:10px}
.practice-title span{display:inline-block;width:22px;height:22px;border-radius:50%;border:1px solid #ccc}
.check-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px;background:#f7f9fc;border:1px solid #e1e5eb;border-radius:12px;padding:12px}
.check-list label{background:white;border:1px solid #e3e8ef;border-radius:10px;padding:9px}
input[type=color]{height:42px;padding:2px}

.all-docs{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}
.doc-preview{background:#f7f9fc;border:1px solid #dfe7f1;border-radius:14px;padding:12px}
.doc-preview h4{margin:0 0 4px}
.doc-preview.missing{opacity:.75;background:#fff7ed}
.mini-viewer{margin:10px 0;background:white;border:1px solid #e1e7ef;border-radius:10px;height:300px;overflow:auto;display:flex;align-items:center;justify-content:center}
.mini-viewer iframe{width:100%;height:100%;border:0}
.mini-viewer img{max-width:100%;max-height:100%}


/* Formulario público paciente v2.3 */
.public-body{
  min-height:100vh;
  margin:0;
  background:linear-gradient(135deg,#eef5fb,#f7fafc);
  display:flex;
  align-items:flex-start;
  justify-content:center;
  padding:40px 18px;
  font-family:Arial,sans-serif;
}
.public-wrapper{
  width:100%;
  max-width:760px;
}
.public-card{
  background:white;
  border-radius:24px;
  padding:30px;
  box-shadow:0 18px 50px rgba(13,47,79,.16);
  border:1px solid #e5edf5;
}
.public-header{
  display:flex;
  align-items:center;
  gap:16px;
  margin-bottom:20px;
}
.logo-circle{
  width:58px;
  height:58px;
  border-radius:18px;
  background:#0d2f4f;
  color:white;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:800;
  font-size:20px;
}
.public-header h1{
  margin:0;
  font-size:28px;
  color:#132033;
}
.public-header p{
  margin:4px 0 0;
  color:#667085;
  font-size:15px;
}
.info-box{
  background:#eef6ff;
  border:1px solid #cfe5ff;
  border-radius:16px;
  padding:14px 16px;
  color:#17446f;
  line-height:1.4;
  margin-bottom:22px;
}
.public-form{
  display:grid;
  gap:16px;
}
.public-form label{
  display:block;
  font-weight:700;
  color:#263244;
  margin-bottom:7px;
}
.form-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}
.public-form input,
.public-form select{
  width:100%;
  height:46px;
  border:1px solid #ccd7e5;
  border-radius:12px;
  padding:0 13px;
  font-size:15px;
  background:white;
}
.public-form input:focus,
.public-form select:focus{
  outline:none;
  border-color:#145da0;
  box-shadow:0 0 0 3px rgba(20,93,160,.12);
}
.docs-public{
  background:#f7f9fc;
  border:1px solid #e2e8f0;
  border-radius:18px;
  padding:18px;
  margin-top:4px;
}
.docs-title{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start;
  margin-bottom:12px;
}
.docs-title h3{
  margin:0;
  color:#132033;
}
.docs-title small{
  color:#667085;
  max-width:360px;
  text-align:right;
}
.doc-upload-list{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
.upload-card{
  background:white;
  border:1px solid #dfe7f1;
  border-radius:14px;
  padding:14px;
  margin:0;
}
.upload-card strong{
  display:block;
  margin-bottom:3px;
}
.upload-card span{
  display:block;
  color:#667085;
  font-weight:400;
  font-size:12px;
  margin-bottom:10px;
}
.upload-card input{
  height:auto;
  padding:9px;
  font-size:13px;
}
.submit-public{
  width:100%;
  height:52px;
  background:#145da0 !important;
  color:white !important;
  border:0;
  border-radius:14px;
  font-weight:800;
  font-size:16px;
  margin-top:4px;
}
.submit-public:hover{
  background:#0d4d88 !important;
}
@media(max-width:680px){
  .public-body{padding:18px 10px}
  .public-card{padding:20px;border-radius:18px}
  .public-header h1{font-size:23px}
  .form-grid,.doc-upload-list{grid-template-columns:1fr}
  .docs-title{display:block}
  .docs-title small{text-align:left;display:block;margin-top:4px}
}

.success-card{text-align:center}
.success-icon{
  width:70px;height:70px;border-radius:50%;background:#e8f8ef;color:#087f5b;
  display:flex;align-items:center;justify-content:center;font-size:38px;font-weight:900;
  margin:0 auto 16px;
}
.request-number{
  display:inline-block;
  background:#0d2f4f;
  color:white;
  padding:14px 26px;
  border-radius:14px;
  font-size:28px;
  font-weight:900;
  letter-spacing:1px;
  margin:10px 0 18px;
}

.info-box.important{background:#fff7e6;border-color:#ffd591;color:#5c3b00}
.all-docs{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}
.doc-preview{background:#f7f9fc;border:1px solid #dfe7f1;border-radius:14px;padding:12px}
.doc-preview h4{margin:0 0 4px}
.doc-preview.missing{opacity:.75;background:#fff7ed}
.mini-viewer{margin:10px 0;background:white;border:1px solid #e1e7ef;border-radius:10px;height:300px;overflow:auto;display:flex;align-items:center;justify-content:center}
.mini-viewer iframe{width:100%;height:100%;border:0}
.mini-viewer img{max-width:100%;max-height:100%}

.req{display:inline-block;background:#ffe8e8;color:#a11b1b;border-radius:999px;padding:2px 8px;font-style:normal;font-size:11px;margin-left:5px}
.opt{display:inline-block;background:#edf2f7;color:#475467;border-radius:999px;padding:2px 8px;font-style:normal;font-size:11px;margin-left:5px}
.doc-config-list{display:grid;gap:8px;background:#f7f9fc;border:1px solid #e1e5eb;border-radius:12px;padding:12px}
.doc-config-row{display:grid;grid-template-columns:1.2fr repeat(3,auto);gap:12px;align-items:center;background:#fff;border:1px solid #e3e8ef;border-radius:10px;padding:10px}
@media(max-width:720px){.doc-config-row{grid-template-columns:1fr}.doc-config-row label{display:block}}

.quality-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin-top:16px}.quality-card{background:white;border:1px solid #e1e5eb;border-radius:16px;padding:18px;box-shadow:0 2px 8px rgba(0,0,0,.04)}.quality-card h3{margin-top:0}.big-indicator{font-size:36px;font-weight:900;margin:8px 0;color:#145da0}

.wide{display:block;text-align:center;margin:8px 0}
.danger-public{width:100%;height:48px;background:#b42318!important;color:white!important;border:0;border-radius:14px;font-weight:800;margin-top:8px}


/* SGSH v4.0.3 - Corrección puntual Admin/Supervisor
   No modifica Secretaría ni el circuito de solicitudes. */

body.role-admin .app,
body.role-supervisor .app{
  grid-template-columns: 220px minmax(900px, 1fr) !important;
}

body.role-admin #detail,
body.role-supervisor #detail,
body.role-admin .detail,
body.role-supervisor .detail{
  display:none !important;
}

body.role-admin .main,
body.role-supervisor .main{
  width:100% !important;
  max-width:none !important;
  overflow:auto !important;
}

body.role-admin section.screen,
body.role-supervisor section.screen{
  max-width:none !important;
  width:100% !important;
  box-sizing:border-box !important;
}

body.role-admin table,
body.role-supervisor table{
  width:100% !important;
  max-width:none !important;
  table-layout:auto !important;
}

body.role-admin input,
body.role-admin select,
body.role-admin textarea,
body.role-supervisor input,
body.role-supervisor select,
body.role-supervisor textarea{
  max-width:100% !important;
  box-sizing:border-box !important;
}

body.role-admin .user-form{
  display:grid !important;
  grid-template-columns: 1fr 1fr 1fr 160px 120px !important;
  gap:10px !important;
  align-items:center !important;
}

body.role-admin td,
body.role-admin th{
  vertical-align:middle !important;
}



/* SGSH v4.0.4 - Ajuste visual Secretaría sin tocar procesos */
body.role-secretaria{
  overflow:hidden;
}

body.role-secretaria .app{
  grid-template-columns: 205px minmax(720px,1fr) 390px !important;
}

body.role-secretaria .sidebar{
  padding:16px !important;
}

body.role-secretaria .sidebar h2{
  font-size:28px;
  margin:0 0 6px;
}

body.role-secretaria .main{
  background:#f6f8fb;
  overflow-y:auto;
  overflow-x:hidden;
}

body.role-secretaria .topbar-compact{
  min-height:74px;
  padding:14px 22px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  background:white;
  border-bottom:1px solid #e5e9f2;
}

body.role-secretaria .topbar-compact h1{
  font-size:25px;
  margin:0;
  line-height:1.1;
  color:#0f172a;
}

body.role-secretaria .topbar-compact small{
  color:#64748b;
  font-size:12px;
}

body.role-secretaria .top-actions{
  display:flex;
  gap:10px;
  align-items:center;
  white-space:nowrap;
}

body.role-secretaria .top-actions button,
body.role-secretaria .top-actions .btn{
  height:38px;
  padding:0 14px;
  display:inline-flex;
  align-items:center;
  border-radius:9px;
}

body.role-secretaria .visual-secretaria{
  padding:18px 20px 26px !important;
}

body.role-secretaria .compact-stats{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(120px,1fr)) !important;
  gap:12px !important;
  margin-bottom:12px !important;
}

body.role-secretaria .compact-stats div{
  min-height:82px;
  padding:13px 16px !important;
  border-radius:13px !important;
  box-shadow:0 4px 12px rgba(15,23,42,.04);
  border:1px solid #e5eaf3 !important;
}

body.role-secretaria .compact-stats span{
  font-size:12px !important;
  line-height:1.25;
  color:#334155 !important;
}

body.role-secretaria .compact-stats b{
  font-size:27px !important;
  margin-top:4px;
}

body.role-secretaria .compact-filters{
  display:grid !important;
  grid-template-columns:minmax(240px,1.7fr) minmax(150px,.9fr) minmax(160px,1fr) 130px 130px auto !important;
  gap:8px !important;
  margin-bottom:12px !important;
}

body.role-secretaria .compact-filters input,
body.role-secretaria .compact-filters select,
body.role-secretaria .compact-filters button{
  height:38px;
  padding:0 11px;
  font-size:13px;
  min-width:0;
}

body.role-secretaria .visual-tabs{
  display:flex;
  gap:8px;
  background:white;
  padding:10px;
  border:1px solid #e5eaf3;
  border-radius:13px 13px 0 0;
  border-bottom:0;
}

body.role-secretaria .visual-tabs button{
  padding:8px 12px;
  font-size:13px;
  background:white;
  border:1px solid #dbe3ef;
  border-radius:9px;
  white-space:nowrap;
}

body.role-secretaria .visual-tabs small{
  display:inline-block;
  background:#eef2ff;
  color:#2563eb;
  border-radius:99px;
  padding:1px 7px;
  margin-left:4px;
}

body.role-secretaria .request-table{
  background:white;
  border:1px solid #e5eaf3;
  border-radius:0 0 14px 14px;
  overflow:hidden;
  box-shadow:0 4px 14px rgba(15,23,42,.04);
}

body.role-secretaria .request-head,
body.role-secretaria .request-row{
  display:grid;
  grid-template-columns:minmax(170px,1.5fr) minmax(125px,1fr) minmax(125px,1fr) minmax(115px,.9fr) minmax(90px,.7fr) minmax(86px,.6fr);
  gap:10px;
  align-items:center;
  padding:11px 13px;
  border-bottom:1px solid #edf1f7;
}

body.role-secretaria .request-head{
  background:#f8fafc;
  color:#52627a;
  font-size:11px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.03em;
}

body.role-secretaria .request-row{
  cursor:pointer;
  font-size:13px;
}

body.role-secretaria .request-row:hover{
  background:#f8fbff;
}

body.role-secretaria .request-row small{
  display:block;
  color:#64748b;
  font-size:11px;
  margin-top:3px;
}

body.role-secretaria .patient-cell{
  display:flex;
  gap:9px;
  align-items:center;
  min-width:0;
}

body.role-secretaria .avatar-mini{
  width:36px;
  height:36px;
  min-width:36px;
  border-radius:50%;
  background:#dcfce7;
  color:#166534;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:900;
}

body.role-secretaria .state-chip{
  display:inline-block;
  padding:6px 9px;
  border-radius:9px;
  font-size:12px;
  font-weight:800;
}

body.role-secretaria .state-chip.falta_doc{background:#f3e8ff;color:#6d28d9}
body.role-secretaria .state-chip.pendiente_turno{background:#ffedd5;color:#c2410c}
body.role-secretaria .state-chip.turno_otorgado{background:#dcfce7;color:#15803d}
body.role-secretaria .state-chip.finalizado{background:#dbeafe;color:#1d4ed8}
body.role-secretaria .state-chip.cancelada{background:#fee2e2;color:#b91c1c}

body.role-secretaria .compact-progress{
  height:7px !important;
  margin:4px 0 5px !important;
}

body.role-secretaria .compact-progress div{
  height:7px !important;
}

body.role-secretaria .row-actions{
  display:flex;
  gap:6px;
}

body.role-secretaria .row-actions button{
  padding:7px 9px;
  font-size:12px;
}

/* Panel derecho más compacto */
body.role-secretaria .detail{
  padding:16px !important;
  overflow-y:auto;
  overflow-x:hidden;
}

body.role-secretaria .detail h2{
  font-size:20px;
  margin-top:0;
}

body.role-secretaria .detail h3{
  font-size:16px;
  margin:14px 0 8px;
}

body.role-secretaria .detail p{
  font-size:13px;
  line-height:1.35;
}

body.role-secretaria .doc-row{
  grid-template-columns:1fr auto auto auto auto;
  gap:5px;
  padding:8px 0;
  font-size:13px;
}

body.role-secretaria .doc-row button{
  padding:6px 8px;
  font-size:11px;
}

body.role-secretaria .detail-actions{
  gap:7px;
}

body.role-secretaria .detail-actions button{
  padding:8px;
  font-size:12px;
}

/* Ocultar scroll horizontal visual */
body.role-secretaria .board{
  overflow-x:hidden !important;
}

@media(max-width:1280px){
  body.role-secretaria .app{
    grid-template-columns:200px minmax(640px,1fr) 350px !important;
  }
  body.role-secretaria .compact-stats{
    grid-template-columns:repeat(2,1fr) !important;
  }
  body.role-secretaria .compact-filters{
    grid-template-columns:1fr 1fr !important;
  }
}

/* SGSH v4.0.5 - Mantener ficha y filtro turnos finalizados */
.selected-row{outline:2px solid #145da0 !important;background:#eef6ff !important}
body.role-secretaria .turno-filters{grid-template-columns:1.5fr .7fr .8fr .8fr .7fr .7fr auto auto !important}

/* SGSH v4.0.6 - filtro correcto */
.selected-row{outline:2px solid #145da0 !important;background:#eef6ff !important}

/* SGSH v4.0.7 - selector práctica en ficha */
.practice-selector-label{display:block;margin-top:8px;font-weight:bold}
.practice-selector-row{display:grid;grid-template-columns:1fr auto;gap:6px;margin:5px 0 8px}
.practice-selector-row select,.practice-selector-row button{padding:7px;border-radius:8px;border:1px solid #ccd4df;font-size:12px}

/* SGSH v4.0.11 - validación cliente obligatorios */
.upload-card.missing-required{
  border:2px solid #dc2626 !important;
  background:#fff1f2 !important;
}
.upload-card.has-file{
  border:1px solid #22c55e !important;
  background:#f0fdf4 !important;
}
.upload-card .file-status{
  display:block;
  margin-top:4px;
  color:#475569;
  font-size:12px;
}

/* SGSH v4.0.13 - mail opcional */
.mail-help{display:block;margin:-2px 0 12px;color:#64748b;line-height:1.4}

/* SGSH v4.0.14 - datos personales editables y sin mail */
.no-mail-option{
  display:flex;
  align-items:center;
  gap:9px;
  margin:8px 0 4px;
  padding:10px 12px;
  border:1px solid #dbe3ef;
  border-radius:10px;
  background:#f8fafc;
  cursor:pointer;
}
.no-mail-option input{
  width:20px;
  height:20px;
  margin:0;
  flex:none;
}
.no-mail-option span{
  font-weight:700;
}
.public-card .success{
  background:#ecfdf5;
  border:1px solid #bbf7d0;
  color:#14532d;
}

/* SGSH v4.0.15 - estadísticas ampliadas */
.supervisor-dashboard{padding:18px}
.supervisor-dashboard h2{margin-top:0}
.supervisor-main-stats{grid-template-columns:repeat(4,1fr)}
.supervisor-secondary-stats{grid-template-columns:repeat(4,1fr)}
.supervisor-main-stats small,.supervisor-secondary-stats small{display:block;color:#667085;margin-top:4px;font-size:11px}
.wide-quality-grid{grid-template-columns:2fr 1fr}
.daily-bars{display:grid;gap:8px}
.daily-bar-row{display:grid;grid-template-columns:95px 1fr 35px;gap:10px;align-items:center;font-size:12px}
.daily-bar-track{height:10px;background:#e8edf4;border-radius:99px;overflow:hidden}
.daily-bar-track div{height:100%;background:#145da0;border-radius:99px}
.goal-card{border-left:5px solid #f59e0b}
.goal-card.goal-ok{border-left-color:#16a34a;background:#f0fdf4}
.goal-card.goal-alert{border-left-color:#dc2626;background:#fff7f7}
.goal-card .big-indicator{font-size:32px;font-weight:900;margin:8px 0}
@media(max-width:1200px){
  .supervisor-main-stats,.supervisor-secondary-stats{grid-template-columns:repeat(2,1fr)}
  .wide-quality-grid{grid-template-columns:1fr}
}

/* SGSH v4.0.16 estable - portal del paciente */
.portal-card{max-width:900px}
.portal-progress{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:18px 0}
.portal-step{padding:10px;border-radius:10px;background:#eef2f7;color:#64748b;text-align:center;font-size:13px;font-weight:700}
.portal-step.done{background:#dcfce7;color:#166534}
.portal-step.current{background:#fef3c7;color:#92400e}
.portal-actions-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}
.portal-action-form{border:1px solid #dbe3ef;border-radius:14px;padding:16px;background:#fff}
.portal-action-form textarea{width:100%;min-height:90px;resize:vertical}
.warning-public{background:#f59e0b;color:white;border:none}
.warning-box{background:#fff7ed;border:1px solid #fdba74;color:#9a3412}
.portal-footer{text-align:center;margin-top:18px}
.portal-footer a{color:#145da0;font-weight:700}
.portal-open-button{display:inline-flex;margin-top:10px}
.state-chip.reprogramacion_solicitada{background:#fff7ed;color:#c2410c}
.state-chip.cancelada_paciente{background:#fee2e2;color:#b91c1c}
@media(max-width:700px){
  .portal-progress{grid-template-columns:1fr 1fr}
  .portal-actions-grid{grid-template-columns:1fr}
}

/* SGSH v4.0.17 - múltiples prácticas por solicitud */
.practice-history{border:1px solid #dbe3ef;border-radius:12px;padding:10px;margin:10px 0;background:#f8fafc}
.practice-history h3{margin:0 0 8px}
.practice-history-item{display:flex;justify-content:space-between;gap:10px;padding:7px 8px;border-top:1px solid #e5e7eb;font-size:12px}
.practice-history-item:first-of-type{border-top:0}
.practice-history-item small{color:#64748b;text-align:right}
.practice-history-item.active-practice{background:#ecfdf5;border-radius:8px;color:#166534}

/* SGSH v4.0.18 - claridad de prácticas */
.practice-history-item{
  align-items:center;
  padding:10px;
  margin-top:6px;
  border:1px solid #e2e8f0;
  border-radius:10px;
  background:#fff;
}
.practice-history-main{display:flex;align-items:center;gap:9px}
.practice-number{
  width:25px;height:25px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:#e2e8f0;font-weight:800;
}
.practice-history-main small,.practice-history-dates small{display:block}
.practice-history-dates{text-align:right;color:#64748b}
.practice-history-item.active-practice{
  border-color:#22c55e;background:#f0fdf4;color:#166534;
}
.practice-history-item.active-practice .practice-number{
  background:#22c55e;color:#fff;
}
.practice-history-item.finished-practice{
  border-color:#cbd5e1;background:#f8fafc;
}

/* SGSH v4.0.19 - agregar práctica antes de finalizar */
.detail-actions button:nth-child(5){
  border-color:#86efac;
  background:#f0fdf4;
}

/* SGSH v4.0.20 - bloqueo terminal y gestión de prácticas */
.detail-actions-blocked{
  display:block !important;
}
.detail-actions-blocked .reopen-only{
  width:100%;
  padding:11px;
  font-weight:800;
  background:#eef6ff;
  border:1px solid #93c5fd;
}
.practice-history-right{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:6px;
}
.practice-history-actions{
  display:flex;
  gap:5px;
}
.practice-history-actions button{
  padding:5px 8px;
  font-size:11px;
}

/* SGSH v4.0.22 - producción y eliminación auditada */
.danger-zone{
  margin-top:14px;
  padding:12px;
  border:1px solid #fecaca;
  border-radius:12px;
  background:#fff7f7;
}
.danger-zone h3{margin:0 0 5px;color:#991b1b}
.danger-zone p{font-size:12px;color:#7f1d1d}
.delete-patient-button,
.delete-patient-confirm{
  background:#b91c1c !important;
  color:#fff !important;
  border-color:#991b1b !important;
}
.delete-warning{
  padding:12px;
  margin-bottom:12px;
  border:1px solid #fca5a5;
  border-radius:10px;
  background:#fef2f2;
  color:#7f1d1d;
}
.deletion-audit-card{overflow-x:auto}
.deletion-audit-card table{min-width:900px}

/* SGSH v4.0.24 - panel lateral de Secretaría más angosto y colapsable */
body.role-secretaria .app{
  grid-template-columns: 158px minmax(760px,1fr) 390px !important;
  transition:grid-template-columns .22s ease;
}

body.role-secretaria .sidebar{
  padding:14px 10px !important;
  overflow:hidden;
  transition:padding .22s ease;
}

body.role-secretaria .sidebar h2{
  font-size:23px !important;
  white-space:nowrap;
}

body.role-secretaria .sidebar > small{
  font-size:11px;
}

body.role-secretaria .sidebar a{
  padding:10px 9px;
  font-size:13px;
  white-space:nowrap;
}

body.role-secretaria .secretaria-nav-link{
  display:flex !important;
  align-items:center;
  gap:7px;
}

body.role-secretaria .nav-icon{
  width:20px;
  min-width:20px;
  text-align:center;
}

body.role-secretaria .sidebar-toggle{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:8px 7px;
  margin:0 0 8px;
  color:#fff;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.18);
  font-size:11px;
}

body.role-secretaria .sidebar-toggle:hover{
  background:rgba(255,255,255,.18);
}

body.role-secretaria.sidebar-collapsed .app{
  grid-template-columns: 56px minmax(850px,1fr) 390px !important;
}

body.role-secretaria.sidebar-collapsed .sidebar{
  padding:14px 7px !important;
}

body.role-secretaria.sidebar-collapsed .sidebar h2{
  font-size:0 !important;
  text-align:center;
  margin-bottom:8px;
}

body.role-secretaria.sidebar-collapsed .sidebar h2::after{
  content:"S";
  font-size:22px;
  font-weight:700;
}

body.role-secretaria.sidebar-collapsed .sidebar > small,
body.role-secretaria.sidebar-collapsed .sidebar > hr,
body.role-secretaria.sidebar-collapsed .sidebar .nav-label,
body.role-secretaria.sidebar-collapsed .sidebar .toggle-text{
  display:none;
}

body.role-secretaria.sidebar-collapsed .sidebar a{
  justify-content:center;
  padding:11px 5px;
}

body.role-secretaria.sidebar-collapsed .sidebar-toggle{
  padding:8px 4px;
}

body.role-secretaria.sidebar-collapsed .toggle-icon{
  transform:rotate(180deg);
}

@media (max-width:1250px){
  body.role-secretaria .app{
    grid-template-columns: 145px minmax(680px,1fr) 350px !important;
  }
  body.role-secretaria.sidebar-collapsed .app{
    grid-template-columns: 54px minmax(760px,1fr) 350px !important;
  }
}
