:root{--navy:#113b67;--blue:#1769a6;--ink:#172033;--muted:#667085;--line:#dce3ec;--bg:#f4f7fa;--white:#fff;--danger:#b42318;--success:#147a4a;--shadow:0 12px 34px rgba(17,59,103,.12);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg)}
*{box-sizing:border-box}body{margin:0;min-height:100vh;text-transform:uppercase}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}.muted{color:var(--muted)}
.auth-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top right,#d9ebf8,transparent 40%),linear-gradient(145deg,#eef4f8,#f8fafc)}
.auth-card{width:min(440px,100%);background:#fff;padding:38px;border:1px solid #e3e9f0;border-radius:24px;box-shadow:var(--shadow);text-align:center}.brand-mark{min-width:122px;height:66px;padding:0 18px;border-radius:18px;background:var(--navy);color:#fff;display:inline-grid;place-items:center;margin:0 auto 16px;font-weight:900;font-size:18px;letter-spacing:.06em}.eyebrow{font-size:12px;font-weight:850;letter-spacing:.12em;color:var(--blue);margin:0 0 8px;text-transform:uppercase}h1,h2,h3,h4{margin:0}h1{font-size:32px}.auth-card .muted{margin:10px 0 24px}.stack{display:grid;gap:16px;text-align:left}.auth-links{display:flex;justify-content:center;gap:18px;flex-wrap:wrap}.auth-links .text-btn{margin-top:18px}
label{display:grid;gap:7px;font-size:12px;font-weight:800;letter-spacing:.04em;color:#344054;margin-bottom:16px}input,select,textarea{width:100%;border:1px solid #cfd8e3;border-radius:10px;padding:12px 13px;color:var(--ink);background:#fff;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(23,105,166,.12)}textarea{resize:vertical}.primary,.secondary,.success,.icon-button{border:0;border-radius:10px;padding:12px 17px;font-weight:850;letter-spacing:.025em}.primary{background:var(--navy);color:#fff}.primary:hover{background:#0b3158}.secondary{background:#e9eef4;color:var(--navy)}.success{background:var(--success);color:#fff}.text-btn{border:0;background:none;color:var(--blue);font-weight:800;margin-top:18px}.privacy-note{font-size:11px;color:#7b8493;margin:22px 0 0;line-height:1.45}
.topbar{position:sticky;top:0;z-index:10;min-height:70px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:10px max(18px,calc((100vw - 1180px)/2));gap:16px}.brand-button{border:0;background:none;display:flex;align-items:center;gap:10px;color:var(--navy);font-size:17px}.brand-button>span{display:flex;align-items:center;justify-content:center;gap:6px;min-width:92px;height:42px;padding:0 10px;border-radius:11px;background:var(--navy);color:#fff;font-weight:900;font-size:11px;letter-spacing:.05em}.top-actions{display:flex;align-items:center;gap:8px}.user-chip{text-align:right;font-size:12px;color:var(--muted)}.user-chip strong{display:block;color:var(--ink);font-size:13px}.icon-button{background:#eef3f7;color:var(--navy);padding:10px 12px;font-size:11px}
.content{max-width:1180px;margin:0 auto;padding:34px 20px 70px}.page-heading{display:flex;justify-content:space-between;align-items:end;gap:18px;margin-bottom:24px}.page-heading h2{font-size:28px}.back-link{border:0;background:none;padding:0;color:var(--muted);font-size:12px;font-weight:800;margin-bottom:14px}.compact{padding:10px 14px;font-size:12px}.specialty-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.specialty-card{--spec-bg:#eef4f8;--spec-accent:#1769a6;--spec-ink:#172033;position:relative;text-align:left;min-height:268px;border:1px solid color-mix(in srgb,var(--spec-accent) 30%,#dce3ec);border-radius:18px;background:var(--spec-bg);color:var(--spec-ink);padding:20px 18px 18px 25px;overflow:hidden;box-shadow:0 7px 20px rgba(17,32,51,.10);transition:transform .18s,box-shadow .18s}.specialty-card:hover{transform:translateY(-2px);box-shadow:0 13px 30px rgba(17,32,51,.16)}.specialty-card:before{content:"";position:absolute;inset:0 auto 0 0;width:9px;background:var(--spec-accent)}.specialty-card h3{font-size:18px;margin-bottom:15px;color:var(--spec-ink)}.specialty-card.specialty-coloproctologia{--spec-bg:#F7EEE8;--spec-accent:#8B5E3C;--spec-ink:#5A3A28}.specialty-card.specialty-torax{--spec-bg:#EAF7FD;--spec-accent:#38BDF8;--spec-ink:#0C4A6E}.specialty-card.specialty-hpb{--spec-bg:#EAF4ED;--spec-accent:#166534;--spec-ink:#14532D}.specialty-card.specialty-vascular{--spec-bg:#FDECEC;--spec-accent:#DC2626;--spec-ink:#7F1D1D}.specialty-card.specialty-mama{--spec-bg:#FCECF4;--spec-accent:#EC4899;--spec-ink:#831843}.specialty-card.specialty-digestivo{--spec-bg:#ECFDF3;--spec-accent:#4ADE80;--spec-ink:#166534}.specialty-card.specialty-general{--spec-bg:#F3EEFC;--spec-accent:#7C3AED;--spec-ink:#5B21B6}.specialty-card.specialty-plastica{--spec-bg:#FFF9DB;--spec-accent:#FACC15;--spec-ink:#854D0E}.waiting-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding-bottom:10px;border-bottom:1px solid color-mix(in srgb,var(--spec-accent) 24%,transparent)}.waiting-head span{font-size:11px;font-weight:900;letter-spacing:.05em}.waiting-head strong{font-size:34px;line-height:.9}.metric-pair{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:9px}.metric-pair span{font-size:10px;font-weight:800;line-height:1.25}.metric-pair b{display:block;font-size:17px;margin-top:2px}.metric-section{margin-top:12px;padding-top:10px;border-top:1px solid color-mix(in srgb,var(--spec-accent) 18%,transparent)}.metric-section>strong{display:block;font-size:10px;letter-spacing:.06em}.resolved-metrics{opacity:.82}.legacy-note{margin-top:11px;font-size:9px;font-weight:800;opacity:.72}
.toolbar{display:grid;grid-template-columns:1fr 240px;gap:12px;background:#fff;border:1px solid color-mix(in srgb,var(--specialty-color,var(--line)) 35%,var(--line));border-radius:14px;padding:14px}.summary-row{display:flex;gap:9px;overflow:auto;padding:16px 0 10px}.summary-pill{white-space:nowrap;border-radius:999px;padding:8px 11px;background:color-mix(in srgb,var(--specialty-color,#e9eef4) 10%,#e9eef4);color:#40516a;font-size:11px;font-weight:800}.patient-list{display:grid;gap:12px}.patient-card{background:#fff;border:1px solid var(--line);border-left:5px solid var(--status);border-radius:14px;padding:18px;display:grid;grid-template-columns:minmax(170px,1fr) minmax(220px,1.5fr) minmax(180px,1fr) auto;gap:18px;align-items:center}.patient-card h3{font-size:16px;margin-bottom:5px}.patient-card p{margin:3px 0;color:var(--muted);font-size:13px;line-height:1.35}.status{display:inline-block;border-radius:999px;padding:6px 9px;font-size:10px;font-weight:900;background:color-mix(in srgb,var(--status) 13%,white);color:var(--status)}.empty{padding:50px 20px;text-align:center;color:var(--muted);background:#fff;border:1px dashed #cbd5e1;border-radius:15px}.compact-empty{padding:24px}.resolved-box{margin-top:24px;border:1px solid color-mix(in srgb,var(--specialty-color,#667085) 35%,var(--line));border-left:7px solid var(--specialty-color,#667085);border-radius:16px;background:linear-gradient(135deg,color-mix(in srgb,var(--specialty-color,#667085) 10%,white),#fff);padding:20px;display:flex;align-items:center;justify-content:space-between;gap:16px}.resolved-box h3{margin-bottom:6px}.resolved-title{margin:28px 0 12px;padding-bottom:10px;border-bottom:2px solid var(--specialty-color,#667085)}.resolved-title .text-btn{margin:0}.resolved-card{background:#f8fafc}.approval-section{margin-bottom:30px;padding:18px;border:1px solid #f1d39a;background:#fffaf0;border-radius:16px}.approval-section>.section-title{margin-bottom:14px}.count-badge{display:grid;place-items:center;min-width:34px;height:34px;border-radius:999px;background:#d97706;color:#fff;font-weight:900}.user-title{margin:8px 0 14px}.request-card{background:#fff}.approval-identity{background:#f4f7fa;border-radius:10px;padding:12px;font-weight:800}.specialty-check{border-left:4px solid var(--accent);background:color-mix(in srgb,var(--accent) 8%,white);padding:10px;border-radius:8px}.danger-btn{border:0;border-radius:10px;padding:12px 17px;font-weight:850;background:#fee4e2;color:var(--danger)}
.modal{width:min(620px,calc(100vw - 28px));border:0;border-radius:20px;padding:0;box-shadow:0 24px 70px rgba(15,23,42,.3);max-height:90vh;overflow:auto}.modal.wide{width:min(850px,calc(100vw - 28px))}.modal::backdrop{background:rgba(15,23,42,.55);backdrop-filter:blur(2px)}.modal>form,.modal>div:not(.modal-head),.modal>.modal-head{padding-left:26px;padding-right:26px}.modal>form{padding:0 26px 25px}.modal form>.modal-head{margin-left:-26px;margin-right:-26px;padding-left:26px;padding-right:26px}.modal-head{position:sticky;top:0;z-index:2;background:#fff;display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding-top:28px;padding-bottom:20px;border-bottom:1px solid var(--line);margin-bottom:22px}.modal-head>div{min-width:0;padding-top:2px}.modal-head .eyebrow{margin-bottom:9px}.modal-head h3{line-height:1.25}.close-btn{flex:0 0 38px;display:grid;place-items:center;border:0;background:#eef2f6;color:#344054;border-radius:50%;width:38px;height:38px;padding:0;margin:-4px 0 0 16px;font-size:24px;line-height:1;cursor:pointer}.close-btn:hover{background:#e2e8f0}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0 14px}.span-2{grid-column:span 2}.pending-box{border:1px solid var(--line);background:#f8fafc;border-radius:14px;padding:15px;margin-top:5px}.section-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.pending-row{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;margin-top:8px}.pending-row input[type=checkbox]{width:20px;height:20px;margin:0}.pending-row input[type=text]{margin:0}.remove-btn{border:0;background:#fee4e2;color:var(--danger);border-radius:8px;padding:9px 11px;font-weight:900}.modal-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:22px;margin-top:20px;border-top:1px solid var(--line)}.modal-actions.split{justify-content:space-between;padding:20px 26px 24px}.modal-actions>div{display:flex;gap:9px}
.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding-bottom:10px}.detail-item{background:#f7f9fc;border-radius:11px;padding:13px}.detail-item.wide{grid-column:span 3}.detail-item strong{display:block;font-size:10px;color:var(--muted);letter-spacing:.06em;margin-bottom:6px}.detail-item p{margin:0;white-space:pre-wrap;line-height:1.5}.pending-detail{padding:8px 0}.pending-detail li{margin:8px 0}.done{text-decoration:line-through;color:var(--muted)}.timeline{padding-bottom:24px}.timeline-item{border-left:3px solid var(--blue);padding:1px 0 20px 18px}.timeline-item p{margin:4px 0}.timeline-item time{color:var(--muted);font-size:12px}.check-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.check-line{display:flex;align-items:center;gap:8px;font-size:12px;margin:0}.check-line input{width:18px;height:18px}.toast{position:fixed;right:20px;bottom:20px;z-index:100;background:#172033;color:#fff;padding:13px 16px;border-radius:10px;box-shadow:var(--shadow);opacity:0;transform:translateY(12px);pointer-events:none;transition:.2s;max-width:380px}.toast.show{opacity:1;transform:none}.toast.error{background:var(--danger)}fieldset{border:1px solid var(--line);border-radius:12px;padding:14px;margin-bottom:16px}legend{font-size:11px;font-weight:850;color:#475467;padding:0 6px}
@media(max-width:900px){.specialty-grid{grid-template-columns:repeat(2,1fr)}.patient-card{grid-template-columns:1fr 1fr}.patient-card .card-action{grid-column:span 2}.detail-grid{grid-template-columns:1fr 1fr}.detail-item.wide{grid-column:span 2}}
@media(max-width:600px){.auth-card{padding:28px 22px}.topbar{align-items:flex-start}.user-chip{display:none}.content{padding:25px 14px 50px}.page-heading{align-items:flex-start;flex-direction:column}.page-heading .primary{width:100%}.specialty-grid{grid-template-columns:1fr}.specialty-card{min-height:125px}.toolbar{grid-template-columns:1fr}.patient-card{grid-template-columns:1fr;gap:10px}.patient-card .card-action{grid-column:auto}.patient-card .card-action button{width:100%}.form-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.detail-grid{grid-template-columns:1fr}.detail-item.wide{grid-column:auto}.modal-actions,.modal-actions.split{flex-direction:column-reverse}.modal-actions>button,.modal-actions>div,.modal-actions>div button{width:100%}.check-grid{grid-template-columns:1fr}.resolved-box{align-items:flex-start;flex-direction:column}.resolved-box button{width:100%}}

.profile-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding-bottom:18px}.profile-summary>div{background:#f6f8fb;border:1px solid var(--line);border-radius:11px;padding:12px}.profile-summary strong{display:block;font-size:10px;letter-spacing:.06em;color:var(--muted);margin-bottom:6px}.profile-summary span{font-size:13px;font-weight:850;color:var(--ink)}.profile-specialty-section{margin:0 26px 26px;padding-top:22px;border-top:1px solid var(--line)}.profile-specialty-section .muted{margin:-2px 0 16px;line-height:1.45}.pending-specialties{margin-top:12px}.specialty-access-box{margin:16px 26px 0}.specialty-access-name{border-radius:14px;background:var(--accent);color:var(--card-text,#fff);padding:18px;font-size:18px;font-weight:900;letter-spacing:.02em}.specialty-access-box p{margin:10px 2px 0;color:var(--muted);font-size:12px}.modal>.profile-summary{padding-left:26px;padding-right:26px}.top-actions{flex-wrap:wrap;justify-content:flex-end}
@media(max-width:600px){.profile-summary{grid-template-columns:1fr}.profile-specialty-section{margin-left:22px;margin-right:22px}.top-actions{gap:6px}.icon-button{padding:9px 10px;font-size:10px}}

/* V15 · Ficha quirúrgica */
.phone-field{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.phone-field input{margin:0}.call-btn{white-space:nowrap;padding:12px 14px}
.care-type-box{margin:0 0 16px}.care-type-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.care-type-grid .check-line{padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#f8fafc}
.status-pending-row{display:grid;grid-template-columns:minmax(210px,.7fr) minmax(0,1.3fr);gap:14px;align-items:start}.status-pending-row>label{margin:0}.fixed-pending-box{margin:0 0 16px}.fixed-pending-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.pending-check{display:flex;align-items:center;gap:8px;margin:0;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:#f8fafc;font-size:11px}.pending-check input{width:18px;height:18px;margin:0;flex:0 0 auto}.pending-check span{line-height:1.2}
.detail-call-btn{margin-top:9px}.detail-item p+.detail-call-btn{display:inline-block}
@media(max-width:700px){.status-pending-row{grid-template-columns:1fr}.fixed-pending-grid{grid-template-columns:1fr}.care-type-grid{grid-template-columns:1fr}.phone-field{grid-template-columns:1fr}.call-btn{width:100%}}


/* V16 - TELÉFONOS MÚLTIPLES */
.patient-phones-box{border:1px solid var(--line);background:#f8fafc;border-radius:14px;padding:14px 15px 15px;margin:0 0 12px}
.patient-phones-box legend{padding:0 7px;font-weight:900;color:#344054}
.patient-phones-list{display:grid;gap:10px}
.patient-phone-row{display:grid;grid-template-columns:minmax(165px,.9fr) minmax(220px,1.4fr) auto auto;gap:8px;align-items:center}
.patient-phone-row input{margin:0}
.phone-note-input{min-width:0}
.add-phone-btn{margin-top:11px}
.phone-remove-btn{font-size:20px;line-height:1;padding:10px 13px}
.detail-phone-list{display:grid;gap:10px;margin-top:7px}
.detail-phone-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:11px;background:#f8fafc}
.detail-phone-row p{margin:0;font-weight:800}
.detail-phone-row small{display:block;margin-top:3px;color:var(--muted);font-weight:700}
@media(max-width:760px){
  .patient-phone-row{grid-template-columns:1fr}
  .patient-phone-row .call-btn,.patient-phone-row .phone-remove-btn{width:100%}
  .detail-phone-row{align-items:flex-start;flex-direction:column}
  .detail-phone-row button{width:100%}
}

/* V18 · Ficha quirúrgica avanzada · catálogos por especialidad */
#patientDialog{width:min(980px,calc(100vw - 28px))}
#patientDialog .modal-head{padding-top:22px;padding-bottom:16px;margin-bottom:16px}
.modal-head-actions{display:flex;align-items:center;gap:8px;padding-top:0!important;flex:0 0 auto}
.modal-head-actions .close-btn{margin:0}
.patient-form-grid{gap:0 12px}
.patient-form-grid>label{margin-bottom:12px}
.name-age-row{display:grid;grid-template-columns:minmax(0,3fr) minmax(95px,1fr);gap:12px;margin-bottom:12px}
.name-age-row>label{margin:0}.patient-age-field input{text-align:center}
.clinical-state-grid{display:grid;grid-template-columns:minmax(220px,.65fr) minmax(0,1.35fr);gap:12px;align-items:start;margin-bottom:12px}
.state-care-column{display:grid;gap:0}
.state-care-column>label{margin-bottom:10px}
.vertical-care-box{margin:0;padding:11px;background:#fbfcfd}
.care-type-grid.vertical{display:grid;grid-template-columns:1fr;gap:7px}
.care-type-grid.vertical .check-line{min-height:42px}
.enhanced-pending-box{margin:0;padding:11px;background:#fbfcfd}
.enhanced-pending-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.enhanced-pending-item{border:1px solid var(--line);border-radius:11px;background:#fff;padding:8px}
.enhanced-pending-item .pending-check{border:0;background:transparent;padding:3px 2px;font-size:10.5px}
.pending-notes{margin-top:7px;padding-top:7px;border-top:1px dashed #d8e0e8}
.pending-note-list{display:grid;gap:6px}
.pending-note-row{display:grid;grid-template-columns:1fr auto;gap:6px;align-items:center}
.pending-note-row input{margin:0;padding:9px 10px;font-size:11px}
.compact-note-remove{padding:8px 10px}
.add-pending-note{margin-top:7px;padding:7px 10px;font-size:10px}
.repeatable-box{background:#fbfcfd;margin:0 0 12px;padding:11px 12px}
.repeatable-box .compact-title{margin-bottom:8px}
.repeatable-box .eyebrow{margin:0;font-size:10px}
.repeatable-list{display:grid;gap:7px}
.repeatable-row{display:grid;gap:7px;align-items:center}
.diagnosis-row{grid-template-columns:minmax(0,1fr) auto}
.surgery-row{grid-template-columns:minmax(0,1fr) minmax(145px,.38fr) auto}
.surgery-row input{margin:0}
.catalog-surgery-row [data-surgery-name][readonly]{background:#f7f9fb;color:#344054;font-weight:800}
.repeatable-row input{margin:0}
.catalog-surgery-row [data-surgery-code][readonly]{background:#eef3f7;color:#344054;font-weight:850}
.catalog-note{margin:8px 2px 0;color:var(--muted);font-size:9px;line-height:1.4;font-weight:750}
#patientDialog .modal-actions{margin-top:12px;padding-top:16px}
#patientDialog fieldset{margin-bottom:12px}
#patientDialog .patient-phones-box{padding-top:10px;padding-bottom:11px}
#patientDialog .patient-phone-row{grid-template-columns:minmax(175px,.8fr) minmax(240px,1.25fr) auto auto}
.pending-detail>ul{padding-left:20px}.pending-detail>ul>li>ul{margin-top:5px;padding-left:20px;color:var(--muted)}
@media(max-width:780px){
  .clinical-state-grid{grid-template-columns:1fr}
  .enhanced-pending-list{grid-template-columns:1fr}
  .surgery-row,.diagnosis-row{grid-template-columns:1fr}
  .name-age-row{grid-template-columns:minmax(0,3fr) minmax(88px,1fr)}
  .repeatable-row .remove-btn{width:100%}
  .modal-head-actions{align-items:flex-end;flex-direction:column-reverse}
  #patientDialog .patient-phone-row{grid-template-columns:1fr}
}

/* V20 - mensaje persistente de error al guardar ficha */
.patient-save-error{margin:12px 0 0;padding:11px 13px;border:1px solid #fecaca;background:#fff1f2;color:#991b1b;border-radius:10px;font-size:12px;font-weight:800;line-height:1.35;letter-spacing:.02em}
.patient-save-error.hidden{display:none!important}

/* V23 - LISTADOS POR PATOLOGIA / ESTADO Y PALETA GLOBAL DE ESTADOS */
:root{--status-listo:#49A66F;--status-listo-bg:#EAF8EF;--status-listo-ink:#17633A;--status-estudio:#D6A500;--status-estudio-bg:#FFF8D8;--status-estudio-ink:#725900;--status-resuelto:#3B82C4;--status-resuelto-bg:#EAF4FD;--status-resuelto-ink:#164E7A}
.pathology-tabs{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0 0 14px}.pathology-tab{border:1px solid var(--line);border-radius:14px;background:#fff;color:#344054;padding:15px 18px;font-weight:900;letter-spacing:.04em;display:flex;align-items:center;justify-content:space-between;cursor:pointer}.pathology-tab span,.status-tab span{display:grid;place-items:center;min-width:29px;height:29px;padding:0 8px;border-radius:999px;background:rgba(255,255,255,.76);font-size:12px}.pathology-tab.malignant.active{background:#FCE8EA;border-color:#D65B66;color:#8D2630;box-shadow:inset 5px 0 0 #C83D4A}.pathology-tab.benign.active{background:#EDF7F0;border-color:#5FA978;color:#255F3A;box-shadow:inset 5px 0 0 #3E8D59}.status-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:0 0 14px}.status-tab{border:1px solid var(--line);border-radius:13px;background:#fff;padding:13px 14px;font-size:11px;font-weight:900;letter-spacing:.035em;color:#526174;display:flex;align-items:center;justify-content:space-between;cursor:pointer}.status-tab.status-listo.active{background:var(--status-listo-bg);border-color:var(--status-listo);color:var(--status-listo-ink);box-shadow:inset 5px 0 0 var(--status-listo)}.status-tab.status-estudio.active{background:var(--status-estudio-bg);border-color:var(--status-estudio);color:var(--status-estudio-ink);box-shadow:inset 5px 0 0 var(--status-estudio)}.status-tab.status-resuelto.active{background:var(--status-resuelto-bg);border-color:var(--status-resuelto);color:var(--status-resuelto-ink);box-shadow:inset 5px 0 0 var(--status-resuelto)}.list-panel{border:1px solid var(--line);border-radius:17px;background:#fff;padding:17px;box-shadow:0 5px 18px rgba(17,32,51,.06)}.list-panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.list-panel-head h3{font-size:18px;margin-top:3px}.list-toolbar{display:grid;grid-template-columns:minmax(0,1fr) 205px auto;gap:10px;align-items:end;margin-bottom:14px;padding:12px;border:1px solid var(--line);background:#F8FAFC;border-radius:13px}.list-toolbar label{margin:0}.list-toolbar label>span{display:block;font-size:9px;font-weight:900;letter-spacing:.07em;color:#667085;margin-bottom:6px}.list-toolbar input{margin:0;background:#fff}.patient-list{gap:10px}.patient-card{grid-template-columns:minmax(190px,1.1fr) minmax(175px,1fr) minmax(220px,1.25fr) minmax(190px,1.1fr) auto;padding:15px 16px;gap:14px;align-items:start;border-left-width:7px}.patient-card.patient-status-listo{--status:var(--status-listo);background:var(--status-listo-bg)}.patient-card.patient-status-en-estudio{--status:var(--status-estudio);background:var(--status-estudio-bg)}.patient-card.patient-status-resuelto{--status:var(--status-resuelto);background:var(--status-resuelto-bg)}.patient-card .card-label{font-size:9px!important;font-weight:900;letter-spacing:.075em;color:#526174!important;margin:0 0 5px!important}.patient-card .patient-identification p{font-size:11px;line-height:1.4}.patient-card .patient-observations p:last-child{white-space:pre-wrap}.patient-card .card-action{display:flex;flex-direction:column;gap:7px;min-width:92px}.patient-card .card-action button{width:100%}.legacy-list-note{margin:14px 2px 0;color:#8A6410;font-size:10px;font-weight:800}.success{background:#DFF4E7!important;color:#17633A!important}#resolveDialog .modal-head{border-bottom-color:#B8D9F4}#resolveDialog{box-shadow:0 24px 70px rgba(23,78,122,.25)}@media(max-width:1080px){.patient-card{grid-template-columns:1fr 1fr}.patient-card .card-action{grid-column:1/-1;flex-direction:row}}@media(max-width:720px){.pathology-tabs,.status-tabs{grid-template-columns:1fr}.list-toolbar{grid-template-columns:1fr}.patient-card{grid-template-columns:1fr}.patient-card .card-action{grid-column:auto;flex-direction:column}}


/* V24 - Jerarquia visual, pendientes interactivos y cabecera de especialidad */
#patientsView .patients-heading{align-items:flex-end;margin-bottom:18px}
#patientsView .patients-page-title{font-size:22px;line-height:1.08;margin-top:3px}
#patientsView .specialty-page-label{margin:8px 0 0;font-size:23px;line-height:1;font-weight:950;letter-spacing:.055em;color:var(--specialty-text,var(--specialty-color));text-transform:uppercase}
#patientsView .specialties-button{display:inline-flex;align-items:center;justify-content:center;padding:8px 12px;margin:0 0 10px;border:1px solid color-mix(in srgb,var(--specialty-color) 42%,#dce3ec);border-radius:10px;background:color-mix(in srgb,var(--specialty-color) 10%,#fff);color:var(--specialty-text,#344054);font-weight:900;letter-spacing:.04em}
#patientsView .specialties-button:before{content:"←";margin-right:7px;font-size:13px}
.pathology-tab{min-height:86px;padding:13px 16px;text-align:left}
.pathology-tab-copy{display:grid;gap:5px}
.pathology-tab-copy strong{font-size:14px;letter-spacing:.06em}
.pathology-tab-copy small{font-size:9px;font-weight:900;letter-spacing:.08em;opacity:.76}
.pathology-tab-metrics{margin-left:auto;text-align:right;display:grid;justify-items:end;gap:4px}
.pathology-tab-metrics>b{font-size:31px;line-height:.92}
.pathology-tab-metrics>span{font-size:9px;font-weight:850;letter-spacing:.04em;white-space:nowrap}
.pathology-tab-metrics em{font-style:normal;font-size:11px;font-weight:950}
.patient-card.has-pending-column{grid-template-columns:minmax(175px,1.05fr) minmax(155px,.9fr) minmax(190px,1.12fr) minmax(155px,.92fr) minmax(190px,1.08fr) auto}
.patient-pending{min-width:0}
.patient-pending .card-label{color:#7A5B00!important}
.pending-action-list{display:grid;gap:6px}
.pending-action-item{display:grid;grid-template-columns:22px 1fr;gap:7px;align-items:start;width:100%;padding:7px 8px;border:1px solid #E6CB6A;border-radius:9px;background:#FFF9D9;color:#664D00;text-align:left;cursor:pointer;transition:.15s}
.pending-action-item:hover{background:#FFF2A8;border-color:#C99E12;transform:translateY(-1px)}
.pending-action-check{display:grid;place-items:center;width:20px;height:20px;border-radius:6px;background:#fff;border:1px solid #D5B33E;font-weight:950;color:#8B6A00}
.pending-action-item strong{display:block;font-size:9.5px;letter-spacing:.035em;line-height:1.2}
.pending-action-item small{display:block;margin-top:3px;font-size:9px;line-height:1.3;color:#6F5B22}
.compact-pending-empty{font-size:10px;margin:0}
.patient-observations{border-left:1px solid color-mix(in srgb,var(--status) 25%,#dce3ec);padding-left:12px}
.patient-status-en-estudio .patient-pending{border-left:1px solid #E4C34E;padding-left:12px}
@media(max-width:1180px){.patient-card.has-pending-column{grid-template-columns:repeat(2,minmax(0,1fr))}.patient-card.has-pending-column .card-action{grid-column:1/-1;flex-direction:row}}
@media(max-width:720px){#patientsView .specialty-page-label{font-size:20px}.patient-card.has-pending-column{grid-template-columns:1fr}.patient-card.has-pending-column .card-action{grid-column:auto;flex-direction:column}.pathology-tab{min-height:78px}}

/* V25 - PRIORIZACION, CONTADORES ORDENADOS, BISTURI Y PACIENTE COMPARTIDO */
.scalpel-mark{display:inline-grid;place-items:center;width:22px;height:22px;flex:0 0 auto}.scalpel-mark svg{width:100%;height:100%;fill:currentColor}.brand-mark{display:inline-flex;align-items:center;justify-content:center;gap:8px}.brand-mark .scalpel-mark{color:#fff}.brand-button>span{display:flex;align-items:center;justify-content:center;gap:5px}.brand-button .top-scalpel{width:22px;height:22px;min-width:22px;padding:0;background:transparent;border-radius:0;color:#fff}
.pathology-tab{gap:18px}.pathology-tab-copy{min-width:120px}.pathology-tab-metrics{display:grid;grid-template-columns:auto auto;align-items:center;gap:18px;margin-left:auto;text-align:left;justify-items:stretch}.pathology-waiting-metric{display:grid;justify-items:start;gap:3px;min-width:82px}.pathology-waiting-metric b{font-size:34px;line-height:.9}.pathology-waiting-metric small{font-size:8px;font-weight:900;letter-spacing:.075em;white-space:nowrap}.pathology-side-metrics{display:grid;gap:6px;min-width:76px}.pathology-side-metrics span{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:9px;font-weight:900;letter-spacing:.045em;white-space:nowrap}.pathology-side-metrics em{font-style:normal;font-size:13px;font-weight:950}
.priority-btn{border:1px solid #C8A13A;background:#FFF2B8;color:#705400;font-weight:900}.priority-btn:not(:disabled):hover{background:#FFE98B}.priority-btn:disabled{opacity:.75;cursor:default}.prioritized-patient{box-shadow:0 0 0 2px rgba(176,129,0,.20),0 5px 16px rgba(17,32,51,.07)}.priority-flag{display:inline-block;margin-bottom:5px;padding:4px 7px;border-radius:999px;background:#FFF0A3;color:#6F5300;font-size:8px;font-weight:950;letter-spacing:.07em}
.pending-detail-group{display:grid;gap:5px}.pending-detail-label{font-size:9px;letter-spacing:.05em;color:#725900}.pending-note-action{background:#FFFBE6}.pending-note-action small{margin:0!important;font-size:9px!important;color:#5E4B10!important}.pending-note-action .pending-action-check{color:#7E6500}
.shared-patient-summary{margin:14px 0 4px;padding:14px;border:1px solid var(--line);border-radius:13px;background:#F8FAFC}.shared-patient-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.shared-patient-grid>div{padding:10px;border-radius:9px;background:#fff;border:1px solid #E7EDF4}.shared-patient-grid strong{display:block;font-size:8px;letter-spacing:.08em;color:#667085;margin-bottom:4px}.shared-patient-grid span{font-size:12px;font-weight:800;color:#253247;line-height:1.35}.shared-patient-grid .shared-wide{grid-column:1/-1}.shared-match-actions{gap:8px;flex-wrap:wrap}.shared-match-actions button{flex:1 1 170px}
#priorityDialog .muted{margin:0 0 14px;line-height:1.45}
@media(max-width:720px){.pathology-tab{align-items:flex-start}.pathology-tab-copy{min-width:92px}.pathology-tab-metrics{gap:10px}.pathology-waiting-metric b{font-size:30px}.shared-patient-grid{grid-template-columns:1fr}.shared-patient-grid .shared-wide{grid-column:auto}}
.pathology-tab .pathology-side-metrics span{display:flex;min-width:0;height:auto;padding:0;border-radius:0;background:transparent;font-size:9px}.pathology-tab .pathology-waiting-metric small{display:block;min-width:0;height:auto;padding:0;border-radius:0;background:transparent}

/* V26 - ALERTAS, USUARIOS, BISTURI Y ADMINISTRACION */
.scalpel-mark svg{overflow:visible}
.scalpel-mark .scalpel-handle{fill:#7DD3FC}
.scalpel-mark .scalpel-blade{fill:#FFFFFF}
.scalpel-mark .scalpel-groove{fill:#113B67}
.brand-mark .scalpel-mark,.brand-button .top-scalpel{color:inherit}

.users-button{position:relative;overflow:visible}
.users-alert{position:absolute;top:-7px;right:-6px;display:grid;place-items:center;width:20px;height:20px;border-radius:999px;background:#DC2626;color:#fff;border:2px solid #fff;box-shadow:0 2px 7px rgba(127,29,29,.28);font-size:12px;font-weight:950;line-height:1}

.dashboard-heading{align-items:flex-end;margin-bottom:22px}
.dashboard-heading .dashboard-eyebrow{font-size:16px;line-height:1.05;letter-spacing:.13em;margin-bottom:7px;color:var(--navy)}
.dashboard-heading .dashboard-title{font-size:23px;line-height:1.08;font-weight:850;letter-spacing:-.01em;text-transform:uppercase;color:#27364B}

.back-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;margin:0 0 18px;padding:9px 13px!important;border:1px solid #CBD7E5!important;background:#F7FAFC!important;color:var(--navy)!important;box-shadow:0 2px 7px rgba(17,59,103,.06)}
.back-button:hover{background:#EAF1F7!important;border-color:#AFC3D8!important}

.priority-btn.priority-active{border-color:#DC2626;background:#FEE2E2;color:#991B1B;box-shadow:inset 0 0 0 1px rgba(220,38,38,.08)}
.priority-btn.priority-active:not(:disabled):hover{background:#FECACA;border-color:#B91C1C;color:#7F1D1D}
.priority-flag{background:#FEE2E2;color:#991B1B;border:1px solid #FCA5A5}
.prioritized-patient{box-shadow:0 0 0 2px rgba(220,38,38,.13),0 5px 16px rgba(17,32,51,.07)}

.specialty-mini-list{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:1px 0 5px}
.specialty-mini-badge{display:inline-flex;align-items:center;justify-content:center;min-height:24px;padding:5px 8px;border-radius:8px;border:1px solid color-mix(in srgb,var(--badge) 50%,#DCE3EC);background:color-mix(in srgb,var(--badge) 13%,#fff);color:var(--badge-ink);font-size:9px;font-weight:950;line-height:1.05;letter-spacing:.045em;white-space:nowrap;box-shadow:inset 4px 0 0 var(--badge)}
.user-card-actions{display:flex!important;flex-direction:column;gap:7px;align-items:stretch}
.user-card-actions button{width:100%}
.user-management-card{align-items:center}

.sex-choice-box{margin-bottom:16px;padding:12px 13px;border:1px solid #D7E0EA;border-radius:11px;background:#F8FAFC}
.sex-choice-box>span,.sex-choice-box>legend{display:block;margin-bottom:8px;color:#344054;font-size:11px;font-weight:850;letter-spacing:.05em}
.sex-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.sex-choice-grid label{display:flex;align-items:center;gap:8px;margin:0;padding:10px 12px;border:1px solid #D7E0EA;border-radius:9px;background:#fff;cursor:pointer}
.sex-choice-grid input[type=radio]{width:18px;height:18px;margin:0;flex:0 0 auto}

#approvalSpecialties,#userSpecialties{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
#approvalSpecialties .specialty-check,#userSpecialties .specialty-check{margin:0}

@media(max-width:720px){
  .dashboard-heading .dashboard-eyebrow{font-size:14px}
  .dashboard-heading .dashboard-title{font-size:20px}
  #approvalSpecialties,#userSpecialties{grid-template-columns:1fr}
  .user-card-actions{flex-direction:row!important;grid-column:1/-1}
}
/* Colores de especialidad sin estilos inline (compatibles con CSP) */
.specialty-tone-mama{--badge:#EC4899;--badge-ink:#831843;--accent:#EC4899;--card-text:#831843}
.specialty-tone-torax{--badge:#38BDF8;--badge-ink:#0C4A6E;--accent:#38BDF8;--card-text:#0C4A6E}
.specialty-tone-digestivo{--badge:#4ADE80;--badge-ink:#166534;--accent:#4ADE80;--card-text:#166534}
.specialty-tone-hpb{--badge:#166534;--badge-ink:#14532D;--accent:#166534;--card-text:#fff}
.specialty-tone-vascular{--badge:#DC2626;--badge-ink:#7F1D1D;--accent:#DC2626;--card-text:#fff}
.specialty-tone-general{--badge:#7C3AED;--badge-ink:#5B21B6;--accent:#7C3AED;--card-text:#fff}
.specialty-tone-coloproctologia{--badge:#8B5E3C;--badge-ink:#5A3A28;--accent:#8B5E3C;--card-text:#fff}
.specialty-tone-plastica{--badge:#FACC15;--badge-ink:#854D0E;--accent:#FACC15;--card-text:#854D0E}
.specialty-access-name[class*="specialty-tone-"]{background:color-mix(in srgb,var(--accent) 18%,#fff);color:var(--card-text);border-left:7px solid var(--accent);border-top:1px solid color-mix(in srgb,var(--accent) 40%,#dce3ec);border-right:1px solid color-mix(in srgb,var(--accent) 40%,#dce3ec);border-bottom:1px solid color-mix(in srgb,var(--accent) 40%,#dce3ec)}


/* V27 - DR/DRA AUTOMATICO Y SELECTOR VISUAL DE SEXO DEL PACIENTE */
.patient-sex-box{padding:10px 12px}
.patient-sex-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.patient-sex-option{display:flex!important;align-items:center;justify-content:center;gap:10px;min-height:52px;margin:0!important;padding:9px 14px!important;border:1px solid #D7E0EA!important;border-radius:11px!important;background:#fff!important;font-weight:900;letter-spacing:.04em;cursor:pointer;transition:.15s ease}
.patient-sex-option input{width:18px!important;height:18px!important;margin:0!important}
.patient-sex-symbol{font-size:28px;line-height:1;font-weight:900}
.patient-sex-male{color:#1D4ED8!important}
.patient-sex-male input{accent-color:#2563EB}
.patient-sex-male .patient-sex-symbol{color:#2563EB}
.patient-sex-female{color:#BE185D!important}
.patient-sex-female input{accent-color:#EC4899}
.patient-sex-female .patient-sex-symbol{color:#EC4899}
.patient-sex-male:has(input:checked){background:#EFF6FF!important;border-color:#60A5FA!important;box-shadow:inset 0 0 0 1px #93C5FD}
.patient-sex-female:has(input:checked){background:#FDF2F8!important;border-color:#F9A8D4!important;box-shadow:inset 0 0 0 1px #FBCFE8}
#userSexWrap,#registerSexWrap,#approvalSexWrap{display:none!important}

/* V28: formulario de paciente con márgenes y sexo compacto en la misma fila de RUT/FICHA */
#patientDialog>form{padding-left:38px;padding-right:38px;padding-bottom:30px}
#patientDialog>form>.modal-head{margin-left:-38px;margin-right:-38px;padding-left:38px;padding-right:38px}
.patient-form-grid{padding:0 2px}
.patient-basic-row{grid-column:span 2;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 170px;gap:12px;align-items:stretch;margin-bottom:12px}
.patient-basic-row>label{margin:0}
.patient-basic-row .patient-sex-box{margin:0;padding:8px 10px;min-width:0}
.patient-basic-row .patient-sex-box legend{margin-bottom:5px;font-size:9px}
.patient-basic-row .patient-sex-grid{gap:5px}
.patient-basic-row .patient-sex-option{min-height:40px;padding:5px 7px!important;gap:5px;font-size:9px;letter-spacing:.02em}
.patient-basic-row .patient-sex-option input{width:14px!important;height:14px!important}
.patient-basic-row .patient-sex-symbol{font-size:21px}
.surgery-row{grid-template-columns:minmax(0,1fr) minmax(150px,.42fr) auto}
.surgery-code-hints{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:-4px 0 4px;padding:8px 10px;border:1px solid #D7E0EA;border-radius:9px;background:#F8FAFC}
.surgery-code-hints .hint-label{font-size:9px;font-weight:900;letter-spacing:.05em;color:#667085;margin-right:3px}
.surgery-code-hint{border:1px solid #CBD7E5;border-radius:7px;background:#fff;color:#344054;padding:5px 8px;font-size:10px;font-weight:850;cursor:pointer}
.surgery-code-hint:hover{background:#EEF4F8}
@media(max-width:720px){#patientDialog>form{padding-left:24px;padding-right:24px}#patientDialog>form>.modal-head{margin-left:-24px;margin-right:-24px;padding-left:24px;padding-right:24px}.patient-basic-row{grid-template-columns:1fr}.patient-basic-row .patient-sex-box{width:100%}}


/* V29 - formulario paciente: márgenes seguros y RUT/FICHA/SEXO realmente en una fila */
#patientDialog{width:min(1040px,calc(100vw - 36px));}
#patientDialog>form{padding-left:42px!important;padding-right:42px!important;padding-bottom:34px!important}
#patientDialog .patient-form-grid{padding:0!important;gap:0 14px!important}
#patientDialog .patient-basic-row{display:grid!important;grid-template-columns:minmax(220px,1fr) minmax(220px,1fr) 210px!important;gap:12px!important;align-items:end!important;width:100%!important}
#patientDialog .patient-basic-row>label{min-width:0!important}
#patientDialog .patient-basic-row .patient-sex-box{min-width:0!important;padding:7px 8px!important}
#patientDialog .patient-basic-row .patient-sex-grid{display:grid!important;grid-template-columns:1fr 1fr!important;gap:5px!important}
#patientDialog .patient-basic-row .patient-sex-option{min-height:42px!important;padding:5px 6px!important;font-size:9px!important}
#patientDialog .patient-basic-row .patient-sex-symbol{font-size:20px!important}
@media(max-width:820px){#patientDialog>form{padding-left:24px!important;padding-right:24px!important}#patientDialog .patient-basic-row{grid-template-columns:1fr 1fr!important}#patientDialog .patient-basic-row .patient-sex-box{grid-column:1/-1!important}}

/* V30 - alineación final ficha y modal de paciente existente */
#patientDialog .patient-basic-row{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) 230px!important;
  gap:14px!important;
  align-items:end!important;
}
#patientDialog .patient-basic-row>label{display:flex!important;flex-direction:column!important;justify-content:flex-end!important;margin:0!important}
#patientDialog .patient-basic-row>label>input{margin-bottom:0!important}
#patientDialog .patient-sex-box{box-sizing:border-box!important;margin:0!important;padding:7px 10px 8px!important;align-self:end!important}
#patientDialog .patient-sex-box legend{padding:0 4px!important;margin:0 0 4px!important}
#patientDialog .patient-sex-grid{gap:8px!important}
#patientDialog .patient-sex-option{min-width:0!important;min-height:42px!important;padding:6px 8px!important;border-radius:9px!important}
#patientDialog .patient-sex-option:last-child{margin-right:0!important}

#patientMatchDialog{width:min(700px,calc(100vw - 36px))!important;padding:0!important;overflow:hidden!important}
#patientMatchDialog>.modal-head{padding:26px 32px 20px!important;margin:0!important}
#patientMatchDialog>#patientMatchMessage{margin:0!important;padding:24px 32px 10px!important;line-height:1.55!important}
#patientMatchDialog>#patientMatchSummary{margin:8px 32px 4px!important;padding:16px!important;box-sizing:border-box!important}
#patientMatchDialog .shared-patient-grid{gap:12px!important}
#patientMatchDialog .shared-patient-grid>div{padding:12px 14px!important;min-width:0!important}
#patientMatchDialog .shared-patient-grid span{overflow-wrap:anywhere!important}
#patientMatchDialog>.shared-match-actions{margin:18px 32px 0!important;padding:20px 0 28px!important;gap:10px!important}
#patientMatchDialog>.shared-match-actions button{min-height:46px!important}
@media(max-width:820px){
  #patientDialog .patient-basic-row{grid-template-columns:1fr 1fr!important}
  #patientDialog .patient-sex-box{grid-column:1/-1!important}
  #patientMatchDialog>.modal-head{padding-left:22px!important;padding-right:22px!important}
  #patientMatchDialog>#patientMatchMessage{padding-left:22px!important;padding-right:22px!important}
  #patientMatchDialog>#patientMatchSummary{margin-left:22px!important;margin-right:22px!important}
  #patientMatchDialog>.shared-match-actions{margin-left:22px!important;margin-right:22px!important}
}

/* V31 - datos básicos compartidos arriba; diagnóstico + observación y cirugía antes del estado clínico */
.diagnosis-observation-row{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(260px,.8fr);gap:12px;align-items:stretch;margin-bottom:12px}
.diagnosis-observation-row .repeatable-box{margin:0}
.diagnosis-observation-box{margin:0!important;border:1px solid var(--line);border-radius:12px;background:#fbfcfd;padding:11px 12px;font-size:10px;font-weight:850;letter-spacing:.05em;color:#526174}
.diagnosis-observation-box textarea{margin:8px 0 0;min-height:76px;resize:vertical;background:#fff}
.surgery-proposed-box{margin-bottom:12px}
@media(max-width:780px){.diagnosis-observation-row{grid-template-columns:1fr}}

/* V32 - diagnóstico y observación proporcionados en una misma línea */
.diagnosis-observation-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch}
.diagnosis-observation-row>.repeatable-box,.diagnosis-observation-row>.diagnosis-observation-box{min-width:0;height:100%;box-sizing:border-box}
.diagnosis-observation-box{display:flex;flex-direction:column}
.diagnosis-observation-box textarea{flex:1;width:100%;min-height:54px;height:54px;box-sizing:border-box;resize:vertical}
@media(max-width:780px){.diagnosis-observation-row{grid-template-columns:1fr}.diagnosis-observation-box textarea{min-height:70px;height:70px}}

/* V36: pacientes heredados sin clasificación siguen visibles y editables */
.pathology-tabs:has(.pathology-tab.unclassified:not(.hidden)){grid-template-columns:repeat(3,1fr)}
.pathology-tab.unclassified{background:#F5F6F8;border-color:#A8B0BC;color:#4B5565}
.pathology-tab.unclassified.active{background:#EEF1F5;border-color:#7D8795;color:#344054;box-shadow:inset 5px 0 0 #7D8795}
@media(max-width:900px){.pathology-tabs:has(.pathology-tab.unclassified:not(.hidden)){grid-template-columns:1fr}}

/* V37 · LOGO BISTURI OFICIAL */
.scalpel-mark img{display:block;width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}
.brand-mark{min-width:164px;height:82px;padding:0 22px;border-radius:20px;gap:10px;font-size:20px}
.brand-mark .scalpel-mark{width:42px;height:42px;background:#fff;border-radius:9px;padding:3px;box-sizing:border-box}
.brand-button{gap:12px;font-size:18px}
.brand-button>span{min-width:132px;height:54px;padding:0 14px;border-radius:13px;gap:8px;font-size:13px}
.brand-button .top-scalpel{width:34px;height:34px;min-width:34px;background:#fff;border-radius:7px;padding:2px;box-sizing:border-box}
@media(max-width:700px){.brand-button>span{min-width:112px;height:48px;padding:0 10px}.brand-button .top-scalpel{width:30px;height:30px;min-width:30px}.brand-mark{min-width:148px;height:74px}}
/* V38: bisturi blanco sobre fondo transparente */
.scalpel-mark img{mix-blend-mode:normal!important;background:transparent!important}
.brand-mark .scalpel-mark,.brand-button .top-scalpel{background:transparent!important;border-radius:0!important;padding:0!important}

/* V41 · TABLA QUIRURGICA */
.dashboard-heading{align-items:flex-end}.surgical-table-btn{min-width:190px}.table-mode-picker{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:0 0 18px}.table-mode-card{border:1px solid var(--line);border-radius:16px;background:#fff;padding:18px;text-align:left;display:grid;gap:6px;cursor:pointer;color:var(--ink)}.table-mode-card strong{font-size:15px}.table-mode-card span{font-size:11px;color:var(--muted)}.table-mode-card.active{border-color:#1671B8;background:#EEF6FC;box-shadow:inset 5px 0 0 #1671B8}.surgical-table-panel{background:#fff;border:1px solid var(--line);border-radius:17px;padding:18px}.surgical-table-toolbar{display:flex;align-items:end;gap:16px;margin-bottom:16px}.surgical-table-toolbar label{width:230px;margin:0}.surgical-table-toolbar label span{display:block;font-size:9px;font-weight:900;letter-spacing:.07em;color:#667085;margin-bottom:6px}.table-range-label{font-size:12px;font-weight:850;color:#526174;padding-bottom:13px}.surgical-table-list{display:grid;gap:10px}.surgical-table-row{border:1px solid var(--line);border-left:6px solid var(--accent,#1671B8);border-radius:13px;padding:14px;display:grid;grid-template-columns:130px 1.2fr 1fr 1.2fr auto;gap:14px;align-items:center}.surgical-table-row p{margin:2px 0;font-size:12px}.surgical-table-row small{display:block;font-size:9px;font-weight:900;letter-spacing:.06em;color:var(--muted);margin-bottom:4px}.schedule-patient-summary{background:#F6F8FB;border:1px solid var(--line);border-radius:12px;padding:14px;margin-bottom:16px}.schedule-patient-summary strong{display:block;font-size:16px;margin-bottom:5px}.schedule-patient-summary p{margin:3px 0;font-size:12px;color:var(--muted)}.schedule-type-box{border:0;padding:0;margin:0 0 16px}.schedule-type-box legend{font-size:10px;font-weight:900;letter-spacing:.06em;margin-bottom:8px}.schedule-type-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.schedule-type-grid label{border:1px solid var(--line);border-radius:12px;padding:12px;display:flex;align-items:center;gap:9px;margin:0}.schedule-type-grid span{display:grid;gap:2px}.schedule-type-grid small{color:var(--muted)}.schedule-help{font-size:10px;margin-top:8px}.schedule-badge{display:inline-block;border-radius:999px;background:#E8F2FB;color:#145B91;padding:4px 8px;font-size:9px;font-weight:900;margin-top:5px}.program-btn{background:#E8F2FB!important;color:#145B91!important}@media(max-width:800px){.table-mode-picker{grid-template-columns:1fr}.surgical-table-row{grid-template-columns:1fr}.surgical-table-toolbar{align-items:stretch;flex-direction:column}.surgical-table-toolbar label{width:100%}.schedule-type-grid{grid-template-columns:1fr}}

/* V42 · PROGRAMACION */
.patient-identification .program-btn{display:block;width:max-content;margin:7px 0 8px;padding:7px 13px;border-color:#B9D8EE!important;background:#EDF7FD!important;color:#145B91!important;font-weight:900}.patient-identification .program-btn.is-programmed{border-color:#8FC8A7!important;background:#EAF7EF!important;color:#28764A!important}.surgical-table-heading{margin-bottom:16px}

/* V43 · BOTON PROGRAMACION BAJO LOS DATOS Y MAYOR CONTRASTE */
.patient-identification .program-btn{display:block;width:max-content;margin:10px 0 0;padding:8px 15px;border:1px solid #6EADD7!important;background:#DCEFFA!important;color:#0E527F!important;font-weight:900;box-shadow:0 2px 5px rgba(20,91,145,.12)}
.patient-identification .program-btn.is-programmed{border:1px solid #1671B8!important;background:#1671B8!important;color:#FFFFFF!important;box-shadow:0 2px 6px rgba(22,113,184,.22)}

.patient-identification .programmed-surgery-date{margin-top:7px;display:flex;align-items:baseline;gap:7px;flex-wrap:wrap}.patient-identification .programmed-surgery-date span{font-size:9px;font-weight:900;letter-spacing:.06em;color:#667085}.patient-identification .programmed-surgery-date strong{font-size:12px;color:#25364A}

/* V45 - controles de programación diaria/semanal sincronizados */
.patient-identification .schedule-dual-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.patient-identification .schedule-dual-actions .program-btn{margin:0;display:grid;gap:2px;min-width:126px;text-align:left}
.patient-identification .schedule-dual-actions .program-btn span{font-size:8px;letter-spacing:.07em;font-weight:900;opacity:.8}
.patient-identification .schedule-dual-actions .program-btn strong{font-size:11px;letter-spacing:.03em}
.patient-identification .schedule-dual-actions .program-btn.is-programmed{background:#1671B8!important;color:#fff!important;border-color:#0F5F9C!important}

/* V46: programación diaria/semanal independiente y tarjeta ordenada */
.patient-card{grid-template-columns:minmax(220px,1.18fr) minmax(180px,.95fr) minmax(235px,1.22fr) minmax(180px,.95fr) auto;gap:18px;padding:18px;align-items:start}
.patient-card>div{min-width:0}.patient-identification{display:flex;flex-direction:column;align-items:flex-start}.patient-identification h3{margin:0 0 7px}.patient-identification>p{margin:0;color:#59697b}.schedule-one-action{width:100%;margin-top:13px;padding-top:12px;border-top:1px solid rgba(73,166,111,.24)}
.patient-identification .schedule-one-action .program-btn{margin:0 0 8px;min-width:145px;text-align:center;display:block}.schedule-status-lines{display:flex;gap:6px 12px;flex-wrap:wrap;font-size:9px;font-weight:800;letter-spacing:.025em;color:#5d6d7e}.schedule-status-lines b{color:#29445c}.schedule-current-state{display:grid;gap:5px;margin-top:10px;padding-top:10px;border-top:1px solid var(--line);font-size:11px;color:#526174}.programmed-surgery-date{margin-top:8px!important}.patient-card .card-action{align-self:start}.patient-card .card-action button{min-height:32px}
@media(max-width:1180px){.patient-card{grid-template-columns:repeat(2,minmax(0,1fr))}.patient-card .card-action{grid-column:1/-1;flex-direction:row}}
@media(max-width:720px){.patient-card{grid-template-columns:1fr}.patient-card .card-action{grid-column:auto;flex-direction:column}.schedule-status-lines{display:grid}}

/* V56 - Tabla diaria completa sobre base estable V53 */
.daily-schedule-fields{display:grid;gap:12px;margin-top:12px;padding:14px;border:1px solid var(--line);border-radius:14px;background:#f8fbfd}.daily-schedule-fields[hidden]{display:none!important}.daily-schedule-fields textarea{resize:vertical}.daily-table-scroll{width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:14px;background:#fff}.daily-surgery-table{width:max-content;min-width:100%;border-collapse:collapse;font-size:11px}.daily-surgery-table th,.daily-surgery-table td{padding:10px 9px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);vertical-align:top;text-align:left;max-width:230px;white-space:normal}.daily-surgery-table th{position:sticky;top:0;background:#eef6fb;font-size:9px;letter-spacing:.04em;white-space:nowrap;z-index:1}.daily-surgery-table td:nth-child(5){min-width:180px}.daily-surgery-table td:nth-child(10),.daily-surgery-table td:nth-child(11),.daily-surgery-table td:nth-child(15){min-width:200px}.daily-surgery-table tr:last-child td{border-bottom:0}

/* V58: programación diaria compacta + abordaje opcional */
#scheduleDialog form{max-width:760px}
#dailyScheduleFields{gap:9px;padding:11px 13px;margin-top:9px}
#dailyScheduleFields .form-grid{gap:10px}
#dailyScheduleFields label{margin:0}
#dailyScheduleFields textarea{min-height:54px}
.surgery-approach-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 11px;border:1px solid var(--line);border-radius:11px;background:#fff}
.surgery-approach-row>span{font-size:10px;font-weight:900;letter-spacing:.04em;color:#44546a}.surgery-approach-row small{font-weight:700;color:var(--muted)}
.surgery-approach-buttons{display:flex;gap:7px}.approach-btn{border:1px solid #a9b7c5;background:#fff;color:#405267;border-radius:9px;padding:8px 13px;font-size:10px;font-weight:900;cursor:pointer}.approach-btn.active{background:#1671B8;color:#fff;border-color:#1671B8;box-shadow:0 0 0 2px rgba(22,113,184,.12)}
@media(max-width:650px){.surgery-approach-row{align-items:stretch;flex-direction:column}.surgery-approach-buttons{display:grid;grid-template-columns:1fr 1fr}.approach-btn{width:100%}}

/* V61: filtros independientes de tabla quirúrgica */
.surgical-table-filters{display:flex;align-items:end;gap:14px;flex-wrap:wrap}.surgical-table-filters label{min-width:210px}.surgical-table-filters select{width:100%;min-height:44px}.surgical-table-filters .table-range-label{margin-left:auto;padding-bottom:12px}
@media(max-width:720px){.surgical-table-filters{display:grid;grid-template-columns:1fr}.surgical-table-filters label{min-width:0}.surgical-table-filters .table-range-label{margin-left:0;padding-bottom:0}}

/* V62 · modales de aprobación armonizados y con márgenes seguros */
#specialtyApprovalDialog{overflow:hidden}
#specialtyApprovalDialog>.modal-head{margin-bottom:0;padding:26px 30px 20px}
#specialtyApprovalDialog>#specialtyApprovalIdentity{margin:0;padding:24px 30px 0;background:transparent;border-radius:0;font-weight:850;line-height:1.45;color:var(--ink)}
#specialtyApprovalDialog>.specialty-access-box{margin:18px 30px 0;padding:0}
#specialtyApprovalDialog .specialty-access-name{padding:17px 20px;border-radius:13px;line-height:1.25;overflow-wrap:anywhere}
#specialtyApprovalDialog .specialty-access-box p{margin:10px 4px 0;line-height:1.4}
#specialtyApprovalDialog>.modal-actions{margin:24px 0 0;padding:20px 30px 26px;border-top:1px solid var(--line);gap:12px;background:#fff}
#specialtyApprovalDialog>.modal-actions button{min-width:132px}

#approvalDialog #approvalIdentity{margin:0 0 16px;padding:14px 16px;line-height:1.4}
#approvalDialog fieldset{margin-top:16px}
#approvalDialog .modal-actions{margin-top:22px;padding-top:20px;gap:12px}

/* Evita que acciones o textos directos de cualquier modal queden pegados al borde */
.modal>.approval-identity{box-sizing:border-box}
.modal>.modal-actions{box-sizing:border-box}

@media(max-width:600px){
  #specialtyApprovalDialog>.modal-head{padding:22px 22px 17px}
  #specialtyApprovalDialog>#specialtyApprovalIdentity{padding:20px 22px 0}
  #specialtyApprovalDialog>.specialty-access-box{margin:16px 22px 0}
  #specialtyApprovalDialog>.modal-actions{padding:18px 22px 22px;gap:10px}
  #specialtyApprovalDialog>.modal-actions button{width:100%;min-width:0}
}


/* V65 · crédito de desarrollo y contacto WhatsApp */
.developer-credit{margin-top:24px;padding-top:20px;border-top:1px solid var(--line);display:grid;justify-items:center;gap:5px;text-align:center}
.developer-credit p{margin:0;color:#7a8797;font-size:9px;font-weight:800;letter-spacing:.08em;line-height:1.35}
.developer-credit>strong{font-size:11px;letter-spacing:.055em;color:#344054}
.whatsapp-contact{margin-top:8px;display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:42px;padding:9px 16px;border-radius:12px;background:#25D366;color:#fff;text-decoration:none;font-size:12px;font-weight:900;letter-spacing:.025em;box-shadow:0 5px 14px rgba(37,211,102,.22);transition:transform .15s ease,box-shadow .15s ease,background .15s ease}
.whatsapp-contact:hover{background:#20bd5a;transform:translateY(-1px);box-shadow:0 7px 17px rgba(37,211,102,.28)}
.whatsapp-logo{display:inline-grid;place-items:center;width:21px;height:21px;flex:0 0 21px}.whatsapp-logo svg{display:block;width:100%;height:100%}
@media(max-width:600px){.developer-credit{margin-top:20px;padding-top:17px}.whatsapp-contact{width:100%;max-width:260px}}

/* V66: aviso de ingreso clínico duplicado */
.duplicate-patient-dialog{max-width:720px}
.duplicate-patient-warning{margin:4px 0 16px;padding:14px 16px;border:1px solid rgba(190,60,60,.22);border-radius:12px;background:rgba(190,60,60,.06);font-weight:800;line-height:1.45;color:#713333}
.duplicate-patient-help{margin:14px 0 4px;line-height:1.45}
.duplicate-patient-actions{padding-top:16px;margin-top:12px;border-top:1px solid var(--line);gap:12px}
.duplicate-patient-actions button{min-width:170px}
#duplicatePatientSummary .shared-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
#duplicatePatientSummary .shared-summary-grid>div{padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:#fff}
#duplicatePatientSummary .shared-summary-grid .wide{grid-column:1/-1}
#duplicatePatientSummary span{display:block;font-size:10px;font-weight:800;letter-spacing:.06em;color:#738093;margin-bottom:4px}
#duplicatePatientSummary strong{display:block;line-height:1.35;color:#24384b}
@media(max-width:640px){#duplicatePatientSummary .shared-summary-grid{grid-template-columns:1fr}#duplicatePatientSummary .shared-summary-grid .wide{grid-column:auto}.duplicate-patient-actions{display:grid;grid-template-columns:1fr}.duplicate-patient-actions button{width:100%;min-width:0}}

/* V68 · etapa QT/RT tras cirugía de etapificación */
:root{--status-qtrt:#8B5CF6;--status-qtrt-bg:#F3EEFF;--status-qtrt-ink:#5B21B6}
.status-tabs{grid-template-columns:repeat(4,1fr)}
.status-tab.status-qtrt.active{background:var(--status-qtrt-bg);border-color:var(--status-qtrt);color:var(--status-qtrt-ink);box-shadow:inset 5px 0 0 var(--status-qtrt)}
.patient-card.patient-status-qt-rt{--status:var(--status-qtrt);background:var(--status-qtrt-bg)}
.resolution-destination-box{border:1px solid var(--line);border-radius:14px;padding:12px;margin:12px 0;background:#F8FAFC}.resolution-destination-box legend{padding:0 6px;font-size:10px;font-weight:900;letter-spacing:.06em;color:#526174}.resolution-choice{display:flex!important;gap:10px;align-items:flex-start;padding:10px;border:1px solid transparent;border-radius:11px;margin:0!important;cursor:pointer}.resolution-choice+ .resolution-choice{margin-top:6px!important}.resolution-choice:has(input:checked){background:#fff;border-color:#B7A2F4;box-shadow:0 3px 12px rgba(91,33,182,.08)}.resolution-choice input{width:auto!important;margin:3px 0 0!important}.resolution-choice span{display:grid;gap:3px}.resolution-choice strong{font-size:11px;letter-spacing:.035em}.resolution-choice small{font-size:10px;line-height:1.35;color:#667085}.staging-surgery-hint{margin:8px 0 12px;padding:10px 12px;border-radius:10px;background:#FFF7D6;color:#705700;font-size:10px;font-weight:800;line-height:1.4}
@media(max-width:720px){.status-tabs{grid-template-columns:1fr 1fr}}

/* V70 · distribución completa de estados en BENIGNOS */
.status-tabs.benign-status-layout{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:720px){.status-tabs.benign-status-layout{grid-template-columns:1fr}}

/* V72: fecha de término de QT/RT */
.therapy-completion-dialog{max-width:520px}.therapy-completion-dialog .therapy-completion-help{margin:4px 0 16px;line-height:1.45}.therapy-completion-dialog label{margin-top:6px}


/* V74: solicitudes de registro sin especialidad */
.no-specialty-request{
  --status:#6b7280;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:28px;
  padding:6px 11px;
  border-radius:999px;
  background:#f3f4f6;
  color:#4b5563;
  border:1px solid #d1d5db;
  font-size:11px;
  font-weight:800;
  letter-spacing:.02em;
}

/* V75 · Programación diaria ampliada y compacta */
#scheduleDialog.schedule-modal{width:min(1120px,calc(100vw - 28px))}
#scheduleDialog form{max-width:none}
.schedule-compact-grid{display:grid;gap:10px 12px;align-items:end}
.schedule-compact-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.schedule-compact-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.schedule-compact-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.schedule-compact-grid label{margin:0}
.schedule-compact-grid textarea{min-height:62px}
.daily-schedule-fields>label{margin:0}
.daily-schedule-fields .surgery-approach-row{margin:0}
.daily-surgery-table th,.daily-surgery-table td{min-width:86px}
.daily-surgery-table td:nth-child(6){min-width:190px}
.daily-surgery-table td:nth-child(11),
.daily-surgery-table td:nth-child(12),
.daily-surgery-table td:nth-child(16),
.daily-surgery-table td:nth-child(18),
.daily-surgery-table td:nth-child(19){min-width:210px}
.daily-surgery-table td:nth-child(20),.daily-surgery-table td:nth-child(21){min-width:155px}
.daily-surgery-table td:nth-child(22){min-width:210px}
@media(max-width:900px){.schedule-compact-grid-4,.schedule-compact-grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.schedule-compact-grid-4,.schedule-compact-grid-3,.schedule-compact-grid-2{grid-template-columns:1fr}}

/* V76 · Programación más compacta, selector editable de cirujano y tres abordajes */
#scheduleDialog.schedule-modal{width:min(1080px,calc(100vw - 28px))}
#scheduleDialog .schedule-patient-summary{padding:11px 13px;margin-bottom:11px}
#scheduleDialog .schedule-type-box{margin-bottom:11px}
#scheduleDialog .schedule-type-grid label{padding:9px 11px}
#scheduleDialog .daily-schedule-fields{gap:9px;padding:12px;margin-top:10px}
#scheduleDialog .schedule-compact-grid{gap:9px 10px}
.schedule-mid-row{display:grid;grid-template-columns:minmax(150px,.72fr) minmax(260px,1.18fr) minmax(390px,2fr);gap:9px 10px;align-items:stretch}
.schedule-mid-row>label{margin:0;align-content:end}
.schedule-mid-row .surgery-approach-row{margin:0;height:100%;min-height:67px;padding:8px 10px}
.schedule-mid-row .surgery-approach-row>span{white-space:nowrap}
.schedule-mid-row .surgery-approach-buttons{justify-content:flex-end;flex-wrap:wrap;gap:6px}
.schedule-mid-row .approach-btn{padding:7px 10px;white-space:nowrap}
#scheduleDialog .schedule-compact-grid textarea{min-height:54px}
#scheduleDialog .schedule-help{margin:6px 0 0}
@media(max-width:980px){.schedule-mid-row{grid-template-columns:repeat(2,minmax(0,1fr))}.schedule-mid-row .surgery-approach-row{grid-column:1/-1}}
@media(max-width:650px){.schedule-mid-row{grid-template-columns:1fr}.schedule-mid-row .surgery-approach-row{grid-column:auto}.schedule-mid-row .surgery-approach-buttons{display:grid;grid-template-columns:1fr 1fr 1fr}.schedule-mid-row .approach-btn{width:100%;padding:8px 5px}}

/* V78 · ayudantes múltiples seleccionables/editables */
.assistant-team-box{margin:0;border:1px solid var(--line);border-radius:12px;padding:9px 10px 10px;min-width:0;background:#fff}
.assistant-team-box legend{padding:0 5px;font-size:11px;font-weight:850;letter-spacing:.04em;color:#344054}
.assistant-rows{display:grid;gap:7px}
.assistant-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;align-items:center}
.assistant-row input{margin:0;min-width:0}
.assistant-remove{width:34px;height:34px;border:0;border-radius:9px;background:#fbe9e7;color:var(--danger);font-weight:900;padding:0;display:grid;place-items:center}
.assistant-remove:hover{background:#f6d7d3}
.add-assistant-btn{margin-top:7px;padding:8px 10px!important;font-size:10px}
@media(max-width:620px){.assistant-team-box{width:100%}.assistant-row{grid-template-columns:minmax(0,1fr) 34px}}


/* V79 · Hora A/C/COND y programación compacta sin espacios muertos */
#scheduleDialog.schedule-modal{width:min(1060px,calc(100vw - 24px))}
#scheduleDialog form{padding-bottom:18px}
#scheduleDialog .modal-head{padding-top:20px;padding-bottom:14px;margin-bottom:14px}
#scheduleDialog .modal-head .eyebrow{margin-bottom:5px}
#scheduleDialog .schedule-patient-summary{padding:9px 12px;margin-bottom:9px}
#scheduleDialog .schedule-patient-summary strong{font-size:14px;margin-bottom:3px}
#scheduleDialog .schedule-patient-summary p{margin:2px 0;font-size:11px}
.schedule-header-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(220px,.65fr);gap:10px;align-items:end;margin-bottom:0}
.schedule-header-grid .schedule-type-box,.schedule-header-grid .schedule-date-field{margin:0}
#scheduleDialog .schedule-type-box{margin:0}
#scheduleDialog .schedule-type-box legend{margin-bottom:6px}
#scheduleDialog .schedule-type-grid{gap:8px}
#scheduleDialog .schedule-type-grid label{padding:8px 10px;min-height:56px}
#scheduleDialog .schedule-date-field{align-self:end}
#scheduleDialog .schedule-date-field input{min-height:44px}
#scheduleDialog .daily-schedule-fields{gap:8px;padding:10px;margin-top:9px}
#scheduleDialog .schedule-compact-grid{gap:8px}
#scheduleDialog .schedule-compact-grid-4{grid-template-columns:minmax(150px,.9fr) minmax(190px,1.15fr) minmax(145px,.8fr) minmax(135px,.7fr)}
#scheduleDialog .schedule-mid-row{grid-template-columns:minmax(145px,.72fr) minmax(250px,1.18fr) minmax(380px,2.05fr);gap:8px}
#scheduleDialog .schedule-mid-row .surgery-approach-row{min-height:64px;padding:7px 9px}
#scheduleDialog .schedule-mid-row .approach-btn{padding:7px 9px}
.schedule-details-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr);gap:8px;align-items:stretch}
.schedule-details-grid>label{margin:0;min-width:0}
.schedule-details-grid textarea{height:58px;min-height:58px}
.schedule-details-grid small{font-size:9px;color:var(--muted);font-weight:700;letter-spacing:.02em}
#scheduleDialog .surgical-team-grid{grid-template-columns:minmax(260px,.8fr) minmax(0,1.2fr);gap:8px;align-items:start}
#scheduleDialog .surgical-team-grid>label{margin:0}
.assistant-team-box{padding:8px 9px 9px}
.assistant-entry-layout{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;align-items:end}
.assistant-rows{gap:6px}
.assistant-row{gap:6px}
.assistant-remove{width:36px;height:36px}
.add-assistant-btn{margin:0!important;min-height:42px;white-space:nowrap;padding:8px 11px!important}
#scheduleDialog .schedule-help{margin:5px 0 0;font-size:9px}
#scheduleDialog .modal-actions.split{margin-top:12px;padding-top:14px;padding-bottom:18px}
@media(max-width:900px){
  .schedule-header-grid{grid-template-columns:1fr}
  #scheduleDialog .schedule-compact-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}
  #scheduleDialog .schedule-mid-row{grid-template-columns:repeat(2,minmax(0,1fr))}
  #scheduleDialog .schedule-mid-row .surgery-approach-row{grid-column:1/-1}
  .schedule-details-grid{grid-template-columns:1fr 1fr}
  .schedule-observation-field{grid-column:1/-1}
  #scheduleDialog .surgical-team-grid{grid-template-columns:1fr}
}
@media(max-width:620px){
  #scheduleDialog.schedule-modal{width:min(100vw - 12px,1060px)}
  #scheduleDialog .schedule-compact-grid-4,#scheduleDialog .schedule-mid-row,.schedule-details-grid{grid-template-columns:1fr}
  .schedule-observation-field,#scheduleDialog .schedule-mid-row .surgery-approach-row{grid-column:auto}
  .assistant-entry-layout{grid-template-columns:1fr}
  .add-assistant-btn{width:100%}
}


/* V80 · fecha de ingreso visible, ayudantes con / y columnas más compactas */
#scheduleDialog .schedule-compact-grid-4{grid-template-columns:minmax(115px,.55fr) minmax(150px,.78fr) minmax(120px,.56fr) minmax(105px,.5fr)}
.daily-surgery-table td:nth-child(1),.daily-surgery-table td:nth-child(2),.daily-surgery-table td:nth-child(3){min-width:98px;white-space:nowrap}
.daily-surgery-table td:nth-child(5){min-width:82px;white-space:nowrap}
.daily-surgery-table td:nth-child(10){min-width:120px}
.daily-surgery-table td:nth-child(20),.daily-surgery-table td:nth-child(21){min-width:170px}
@media(max-width:900px){#scheduleDialog .schedule-compact-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){#scheduleDialog .schedule-compact-grid-4{grid-template-columns:1fr}}


/* V81 · Plan quirúrgico sin códigos y tabla diaria programada destacada */
.schedule-status-lines .schedule-flag{display:inline-flex;align-items:center;gap:4px;padding:2px 0;border-radius:999px}
.schedule-status-lines .schedule-flag.is-programmed{padding:4px 9px;border:1px solid #B9D8EE;background:#EDF7FD;color:#145B91}
.schedule-status-lines .schedule-flag.daily-highlight{border-color:#1E7A46;background:#EAF7EF;color:#1D6B3C;box-shadow:0 0 0 1px rgba(30,122,70,.05) inset}
.schedule-status-lines .schedule-flag b{color:inherit}


/* V82 · Modal de programación con tarjetas informativas y semanal ampliada */
#scheduleDialog .schedule-header-grid{grid-template-columns:1fr;gap:10px}
#scheduleDialog .schedule-type-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
#scheduleDialog .schedule-type-card{min-height:84px;align-items:flex-start;transition:.15s ease}
#scheduleDialog .schedule-type-card span{width:100%}
#scheduleDialog .schedule-type-card em{display:block;margin-top:6px;font-style:normal;font-size:10px;font-weight:800;letter-spacing:.03em;color:#145B91;background:#EDF7FD;border:1px solid #CFE5F5;border-radius:10px;padding:7px 9px}
#scheduleDialog .schedule-type-card.active{border-color:#1671B8;background:#EEF6FC;box-shadow:inset 5px 0 0 #1671B8}
#scheduleDialog .schedule-date-field{max-width:none}
#scheduleDialog .schedule-date-field span{display:block;font-size:10px;font-weight:900;letter-spacing:.06em;color:#526174;margin-bottom:7px}
#scheduleDialog .daily-schedule-fields{display:grid;gap:10px}
#scheduleDialog .schedule-mid-row{grid-template-columns:minmax(135px,.72fr) minmax(220px,1.08fr) minmax(360px,1.95fr)}
#scheduleDialog .schedule-details-grid{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr)}
#scheduleDialog .weekly-extra-fields{border:1px solid var(--line);border-radius:12px;background:#F8FBFD;padding:10px}
#scheduleDialog .weekly-extra-title{font-size:11px;font-weight:900;letter-spacing:.05em;color:#1F3F5B;margin-bottom:8px}
#scheduleDialog .weekly-priority-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 10px}
#scheduleDialog .weekly-priority-grid label{margin:0}
#scheduleDialog .weekly-priority-grid small{display:block;margin:4px 0 7px;font-size:9px;line-height:1.35;color:#667085;font-weight:700}
#scheduleDialog .weekly-priority-grid label:last-child{align-content:end}
@media(max-width:900px){
  #scheduleDialog .schedule-type-grid{grid-template-columns:1fr 1fr}
  #scheduleDialog .weekly-priority-grid{grid-template-columns:1fr}
}
@media(max-width:620px){
  #scheduleDialog .schedule-type-grid{grid-template-columns:1fr}
}


/* V83 · Selección visual sin puntos, fecha visible, copia desde semanal y priorización con radios */
#scheduleDialog .schedule-type-card{cursor:pointer}
#scheduleDialog .schedule-type-card input[type="radio"]{display:none}
#scheduleDialog .schedule-type-card.active{box-shadow:inset 6px 0 0 currentColor, 0 0 0 1px rgba(0,0,0,.02)}
#scheduleDialog.schedule-mode-daily .schedule-type-card.active{color:#1D6B3C;border-color:#93D2A8;background:#EEF9F1}
#scheduleDialog.schedule-mode-daily .schedule-type-card.active em{background:#E1F4E7;border-color:#B7DEC4;color:#1D6B3C}
#scheduleDialog.schedule-mode-weekly .schedule-type-card.active{color:#7A2E87;border-color:#CFB0E8;background:#F9F0FC}
#scheduleDialog.schedule-mode-weekly .schedule-type-card.active em{background:#F3E6FB;border-color:#DDC2EF;color:#7A2E87}
#scheduleDialog .schedule-date-field{border:1px solid #C8D3E1;border-radius:14px;padding:12px;background:#FFF;box-shadow:0 1px 0 rgba(16,24,40,.03)}
#scheduleDialog .schedule-date-field input{height:50px;font-size:18px;font-weight:800;letter-spacing:.02em;border-width:2px}
#scheduleDialog.schedule-mode-daily .schedule-date-field{border-color:#B7DEC4;background:#F6FCF7}
#scheduleDialog.schedule-mode-weekly .schedule-date-field{border-color:#DDC2EF;background:#FCF8FE}
#scheduleDialog .daily-schedule-fields{border:1px solid #D9E2EC;border-radius:14px;padding:12px;background:#FFF}
#scheduleDialog.schedule-mode-daily .daily-schedule-fields{border-color:#B7DEC4;background:#FBFEFB}
#scheduleDialog.schedule-mode-weekly .daily-schedule-fields{border-color:#DDC2EF;background:#FEFBFF}
#scheduleDialog.schedule-mode-daily .daily-schedule-fields input,#scheduleDialog.schedule-mode-daily .daily-schedule-fields select,#scheduleDialog.schedule-mode-daily .daily-schedule-fields textarea,#scheduleDialog.schedule-mode-daily .assistant-team-box,#scheduleDialog.schedule-mode-daily .daily-schedule-fields .surgery-approach-row{border-color:#BFDCC9}
#scheduleDialog.schedule-mode-weekly .daily-schedule-fields input,#scheduleDialog.schedule-mode-weekly .daily-schedule-fields select,#scheduleDialog.schedule-mode-weekly .daily-schedule-fields textarea,#scheduleDialog.schedule-mode-weekly .assistant-team-box,#scheduleDialog.schedule-mode-weekly .daily-schedule-fields .surgery-approach-row{border-color:#D9C4EA}
#scheduleDialog .copy-weekly-prompt{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;border:1px dashed #C4B5FD;background:#F8F5FF;border-radius:12px;padding:10px 12px}
#scheduleDialog .copy-weekly-prompt p{margin:4px 0 0;font-size:12px;color:#5B6475}
#scheduleDialog .copy-weekly-actions{display:flex;gap:8px;flex-wrap:wrap}
#scheduleDialog .weekly-extra-fields{padding:12px}
#scheduleDialog .priority-question{margin:0;border:1px solid #D9C4EA;border-radius:12px;padding:10px;background:#FFF}
#scheduleDialog .priority-question legend{font-size:11px;font-weight:900;letter-spacing:.05em;padding:0 4px}
#scheduleDialog .priority-question small{display:block;margin:0 0 9px;font-size:10px;line-height:1.35;color:#667085;font-weight:700}
#scheduleDialog .priority-options{display:flex;gap:10px;flex-wrap:wrap}
#scheduleDialog .priority-options label{display:inline-flex;align-items:center;gap:7px;border:1px solid #D0D5DD;border-radius:999px;padding:8px 12px;background:#FFF;font-weight:800;cursor:pointer}
#scheduleDialog .priority-options input{margin:0}
#scheduleDialog .le-year-field{display:flex;flex-direction:column;justify-content:flex-end}
#scheduleDialog .le-year-field input{height:44px}
#scheduleDialog .weekly-priority-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
#scheduleDialog .weekly-priority-grid>.le-year-field{grid-column:1/-1;max-width:240px}
@media(max-width:900px){#scheduleDialog .copy-weekly-prompt{grid-template-columns:1fr}#scheduleDialog .weekly-priority-grid{grid-template-columns:1fr}#scheduleDialog .weekly-priority-grid>.le-year-field{grid-column:auto;max-width:none}}


/* V84 · Popup de copia semanal solo en diaria, año LE al lado de priorización 5 y rango visible */
#scheduleDialog .copy-weekly-prompt{position:absolute;top:138px;left:50%;transform:translateX(-50%);width:min(760px,calc(100% - 40px));z-index:40;box-shadow:0 12px 36px rgba(16,24,40,.16);background:#FFF7ED;border:1px solid #F4C98B}
#scheduleDialog .copy-weekly-prompt[hidden]{display:none!important}
#scheduleDialog .schedule-date-field{position:relative}
#scheduleDialog .week-picker-proxy{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px;left:0;bottom:0}
#scheduleDialog .week-input{cursor:pointer;background:#fffdf8;font-size:16px!important}
#scheduleDialog .weekly-priority-grid>.le-year-field{grid-column:auto;max-width:none}
#scheduleDialog .weekly-priority-grid .priority-question:nth-child(5){grid-column:1/span 1}
#scheduleDialog .weekly-priority-grid .le-year-field{align-self:stretch}
#scheduleDialog .le-year-field input{margin-top:4px}
@media(max-width:900px){#scheduleDialog .copy-weekly-prompt{position:static;transform:none;width:100%;box-shadow:none}#scheduleDialog .weekly-priority-grid>.le-year-field{grid-column:auto}}


/* V85 · Tarjeta paciente: programar/programado, solo mostrar tablas programadas y edad en línea aparte */
.patient-identification>p+ p{margin-top:3px}
.patient-identification .schedule-action-row{display:flex;align-items:flex-start;gap:10px;flex-wrap:nowrap}
.patient-identification .schedule-one-action .program-btn{margin:0;min-width:124px;align-self:flex-start}
.patient-identification .schedule-status-stack{display:flex;flex-direction:column;gap:6px;min-width:0}
.patient-identification .schedule-status-item{display:flex;align-items:center;gap:6px;min-width:0}
.patient-identification .schedule-status-item .schedule-flag{padding:5px 10px;border-radius:999px;font-size:9px;font-weight:900;letter-spacing:.04em;white-space:nowrap}
.patient-identification .schedule-status-item .schedule-flag.weekly-highlight{border-color:#CDAEEA;background:#F4EAFB;color:#7A2E87}
.patient-identification .schedule-trash-btn{width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;border:1px solid #F2C6C6;background:#FFF1F1;color:#B42318;font-size:12px;line-height:1;cursor:pointer;flex:0 0 auto;padding:0}
.patient-identification .schedule-trash-btn:hover{background:#FFE2E2;border-color:#E9A9A9}
@media(max-width:680px){.patient-identification .schedule-action-row{align-items:stretch;flex-wrap:wrap}.patient-identification .schedule-one-action .program-btn{min-width:118px}.patient-identification .schedule-status-stack{width:100%}.patient-identification .schedule-status-item{justify-content:flex-start}}


/* V86 · Tabla semanal en formato de tabla diaria con priorizaciones y selector de rango */
.week-picker-proxy{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px;left:0;bottom:0}
#weeklyDateField{position:relative}
#surgicalTableWeeklyDate{cursor:pointer;background:#fffdf8}
.weekly-surgery-table td:nth-child(1){min-width:150px}
.weekly-surgery-table td:nth-child(23),.weekly-surgery-table td:nth-child(24),.weekly-surgery-table td:nth-child(25),.weekly-surgery-table td:nth-child(26),.weekly-surgery-table td:nth-child(27){min-width:92px;text-align:center}
.weekly-surgery-table td:nth-child(28){min-width:95px}


/* V87 · Fecha de cirugía propuesta en tabla semanal */
.schedule-date-cluster{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:end}
.weekly-proposed-field[hidden]{display:none!important}
@media(max-width:900px){.schedule-date-cluster{grid-template-columns:1fr}}


/* V88 · Oculta selector semanal intermedio y expande fecha propuesta */
.schedule-date-cluster.weekly-only-proposed{grid-template-columns:1fr}
.schedule-date-cluster.weekly-only-proposed #weeklyProposedDateField{grid-column:1/-1}
.schedule-date-cluster.weekly-only-proposed .weekly-proposed-field input{height:54px;font-size:18px;font-weight:800}
#scheduleDialog.schedule-mode-weekly .schedule-date-cluster{grid-template-columns:1fr}
#scheduleDialog.schedule-mode-weekly .schedule-date-cluster .schedule-date-field[hidden]{display:none!important}
#scheduleDialog.schedule-mode-weekly .schedule-date-cluster #weeklyProposedDateField{display:flex;width:100%}

.schedule-date-cluster{grid-template-columns:1fr}

/* V93 · Sugerencias y vencimiento automático de becados */
.feedback-top-btn{position:relative;background:#E7F2FC!important;color:#145B91!important;border:1px solid #BDD9F0!important;white-space:nowrap}
.feedback-modal{width:min(850px,calc(100vw - 24px))!important}
.feedback-modal>.modal-head,.expiry-modal>.modal-head{padding-left:26px;padding-right:26px}
.feedback-body{padding:0 26px 26px!important}
.feedback-intro{margin:0 0 12px;font-size:12px;line-height:1.5}
.feedback-quota{padding:10px 13px;background:#E9F6FD;border:1px solid #BEDBEF;border-radius:12px;color:#145B91;font-weight:900;font-size:12px;margin-bottom:14px}
.feedback-form{padding:14px;border:1px solid var(--line);border-radius:14px;background:#F8FAFC}
.feedback-grid{display:grid;grid-template-columns:minmax(145px,.35fr) minmax(0,.65fr);gap:12px}
.feedback-form label{margin:0 0 12px;display:block;font-weight:850;font-size:11px;letter-spacing:.035em;color:#334155}
.feedback-form label input,.feedback-form label select,.feedback-form label textarea{margin-top:6px;background:#fff;width:100%;text-transform:uppercase}
.feedback-form textarea{resize:vertical;min-height:90px;white-space:pre-wrap}
.feedback-form-actions{display:flex;justify-content:space-between;align-items:center;gap:14px}
.feedback-form-actions .muted{font-size:11px}
.feedback-section-title{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:22px 0 10px}
.feedback-section-title h4{font-size:14px;margin:0;color:var(--navy)}
.feedback-section-title span{font-size:10px;font-weight:900;color:var(--muted)}
.feedback-list{display:grid;gap:10px}
.feedback-ticket{border:1px solid var(--line);border-left:5px solid #8BA8C0;border-radius:13px;background:#fff;padding:13px 15px;min-width:0}
.feedback-ticket-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.feedback-kind,.feedback-status{font-size:9px;font-weight:900;letter-spacing:.055em;border-radius:999px;padding:5px 8px}
.feedback-kind{color:#15577F;background:#E8F2FB}
.feedback-status.pending{color:#965E00;background:#FFF3D9}
.feedback-status.answered{color:#17633A;background:#E6F6ED}
.feedback-ticket h5{font-size:14px;color:var(--ink);margin:9px 0 4px;overflow-wrap:anywhere}
.feedback-meta{display:flex;flex-wrap:wrap;gap:6px 12px;color:#64748B;font-size:10px;margin-bottom:8px}
.feedback-message,.feedback-answer p{font-size:12px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere;text-transform:uppercase;margin:8px 0;color:var(--ink)}
.feedback-answer{padding:10px 12px;border-radius:10px;background:#ECF9F0;border:1px solid #C0E6D0;margin-top:12px}
.feedback-answer strong{font-size:10px;color:#17633A}
.feedback-answer p{margin-bottom:0}
.feedback-reply{margin-top:12px;border-top:1px solid var(--line);padding-top:12px;display:grid;gap:8px}
.feedback-reply label{font-size:11px;font-weight:900;color:var(--navy)}
.feedback-reply textarea{width:100%;min-height:68px;text-transform:uppercase;white-space:pre-wrap}
.feedback-reply button{justify-self:end}
.creator-feedback-section{border-top:2px solid #E2E8F0;margin-top:22px}
.creator-feedback-section>.muted{font-size:11px;line-height:1.5}
.expiry-modal{width:min(540px,calc(100vw - 24px))}
.expiry-body{padding:0 26px 26px!important}
.expiry-body>p:first-child{padding:14px;background:#FEF3C7;border:1px solid #FDE68A;border-radius:12px;font-size:13px;line-height:1.5;font-weight:800;color:#7A4A08}
.expiry-body>.muted{font-size:12px;line-height:1.6}
.expiry-actions{display:grid;gap:10px;margin-top:18px}
.expiry-actions>button{width:100%;min-height:42px}
.active-specialty-expiries{padding:10px 14px;margin:8px 26px 4px;background:#F1F8FD;border:1px solid #C8E2F4;border-radius:12px}
.active-specialty-expiries>strong{display:block;font-size:10px;color:#145B91;margin-bottom:7px}
.active-specialty-expiries p{font-size:11px;margin:4px 0;color:var(--ink);font-weight:700}
@media(max-width:750px){
 .feedback-grid{grid-template-columns:1fr}
 .feedback-modal>.modal-head,.expiry-modal>.modal-head{padding-left:20px;padding-right:20px}
 .feedback-body,.expiry-body{padding-left:20px!important;padding-right:20px!important}
 .feedback-form-actions{flex-direction:column;align-items:stretch}
 .feedback-form-actions button{width:100%}
 .top-actions{gap:5px}
 .feedback-top-btn{padding:9px 10px!important}
}
.grant-expiry-list{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}
.grant-expiry-tag{display:inline-flex;font-size:9px;font-weight:900;color:#895300;background:#FFF4D9;border:1px solid #F5D08B;border-radius:7px;padding:5px 7px}

/* V94: mensajes y respuestas siempre en mayusculas y sin tildes salvo Ñ. */
.feedback-ticket h5,.feedback-meta,.feedback-kind,.feedback-answer,.feedback-intro,.creator-feedback-section{ text-transform:uppercase; }

/* V95 · Apertura controlada de Google Forms desde las tablas quirurgicas */
.google-form-data-row{cursor:pointer;transition:background-color .16s ease}
.google-form-data-row:hover{background:#F2F8FF}
.google-form-patient-cell{min-width:190px}
.google-form-patient-cell strong{display:block;margin-bottom:8px}
.google-form-row-btn{border:1px solid #A2C4EA!important;background:#E8F2FF!important;color:#16528B!important;
  border-radius:9px;padding:7px 10px!important;font-size:10px;font-weight:900;letter-spacing:.04em;min-height:32px;white-space:nowrap}
.google-form-row-btn:hover{background:#D7EAFF!important}
.google-form-modal{width:min(700px,calc(100vw - 24px))}
.google-form-preview{margin:12px 0;min-height:94px;padding:14px;border:1px solid var(--line);border-radius:12px;background:#F8FAFC}
.google-form-summary{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 14px;align-items:center;margin-bottom:10px}
.google-form-summary strong{font-size:15px;color:#163F65}
.google-form-summary span{font-size:11px;font-weight:800;color:#51657A}
.google-form-ready{font-weight:900;color:#16754A;margin:6px 0}
.google-form-warnings{border:1px solid #F5D08F;border-radius:10px;background:#FFFAED;padding:11px;margin:8px 0;color:#855800}
.google-form-warnings ul{margin:8px 0 0;padding-left:19px;line-height:1.5}
.google-form-error{font-weight:800;color:#A42C2C;line-height:1.5}
.google-form-security{border-left:4px solid #D59B42;background:#FFF8EC;border-radius:9px;padding:12px;color:#795423}
.google-form-security strong{font-size:11px;letter-spacing:.04em}
.google-form-security p{margin:6px 0 0;font-size:11px;line-height:1.55}
.google-form-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:9px}
.google-form-actions button:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:620px){.google-form-actions{flex-direction:column;align-items:stretch}.google-form-actions button{width:100%}}
#googleFormDialog.google-form-modal{width:min(760px,calc(100vw - 24px))}

/* V96: modal Google Forms compacto, legible y disponible aun con datos incompletos. */
#googleFormDialog.google-form-modal{width:min(680px,calc(100vw - 24px));max-height:min(88vh,840px);overflow-y:auto}
#googleFormDialog .modal-head{margin-bottom:0;padding:23px 24px 18px;position:sticky;top:0;z-index:3}
#googleFormDialog .modal-head .eyebrow{margin-bottom:6px;font-size:10px;letter-spacing:.13em}
#googleFormDialog .modal-head h3{font-size:21px;line-height:1.2;margin:0}
#googleFormDialog .close-btn{flex:0 0 36px;width:36px;height:36px;margin:0}
.google-form-subtitle{font-size:11px;line-height:1.5;color:#64748b;margin:8px 0 0;max-width:480px;font-weight:650}
#googleFormDialog .google-form-preview{margin:18px 24px 12px!important;padding:17px 18px!important;background:#F8FAFD;border:1px solid #E0E7F1;border-radius:13px;min-height:0}
#googleFormDialog .google-form-summary{margin:0;display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding-bottom:15px;border-bottom:1px solid #E3EAF3}
#googleFormDialog .google-form-summary>div{display:grid;gap:5px;min-width:0}
#googleFormDialog .google-form-patient-label{font-size:10px;letter-spacing:.1em;color:#718199;font-weight:900}
#googleFormDialog .google-form-summary strong{font-size:15px;line-height:1.3;color:#183A5B;overflow-wrap:anywhere}
#googleFormDialog .google-form-table-tag{display:inline-flex;align-items:center;justify-content:center;padding:8px 10px;border-radius:8px;font-size:10px;font-weight:900;white-space:normal;text-align:center}
#googleFormDialog .google-form-table-tag.is-daily{background:#E8F6EE;color:#166534}
#googleFormDialog .google-form-table-tag.is-weekly{background:#F1EAFE;color:#6D28D9}
.google-form-loading{padding:18px 0 4px;display:flex;gap:11px;align-items:flex-start}
.google-form-loading strong{font-size:12px;color:#25486c;letter-spacing:.03em}
.google-form-loading p{font-size:11px;line-height:1.5;color:#657489;margin:5px 0 0}
.google-form-dot{width:10px;height:10px;border-radius:50%;background:#3B82F6;box-shadow:0 0 0 4px #DBEAFE;flex-shrink:0;margin:5px 3px 0}
.google-form-progress{padding:15px 0 0;display:flex;align-items:center;flex-wrap:wrap;gap:8px 13px}
.google-form-progress-badge{display:inline-flex;align-items:center;border-radius:8px;padding:8px 10px;font-size:12px;font-weight:900;letter-spacing:.01em}
.google-form-progress-badge.is-ready{background:#DCFCE7;color:#166534}
.google-form-progress-badge.is-empty{background:#E5EAF1;color:#41546B}
.google-form-progress-note{font-size:11px;color:#64748B;font-weight:800}
.google-form-required-notice{margin-top:13px;border:1px solid #F3D69D;background:#FFF9ED;border-radius:10px;padding:13px 14px;color:#805515}
.google-form-required-notice>strong{font-size:12px;font-weight:900;letter-spacing:.01em}
.google-form-required-notice>p{font-size:11px;line-height:1.55;margin:5px 0 0;color:#7C5B2D}
.google-form-required-list{margin-top:9px}
.google-form-required-list summary{font-size:11px;line-height:1.4;font-weight:850;color:#79511C;cursor:pointer;user-select:none}
.google-form-required-list summary:hover{text-decoration:underline}
.google-form-required-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;max-height:150px;overflow-y:auto}
.google-form-required-tags span{display:inline-flex;align-items:center;padding:5px 7px;border:1px solid #F3DAAD;border-radius:6px;background:#fff;font-size:10px;font-weight:800;line-height:1.3;color:#73501D}
.google-form-all-set{font-size:11px;color:#166534;font-weight:800;margin:12px 0 0;line-height:1.5}
.google-form-warnings-text{font-size:10px;line-height:1.55;color:#A15C1B;margin:10px 0 0}
.google-form-footnote{font-size:10px;line-height:1.5;color:#68778B;margin:13px 0 0}
#googleFormDialog .google-form-security{margin:0 24px;padding:11px 13px!important;display:block;border-left:3px solid #D3A356;background:#FFF9F1;border-radius:9px}
#googleFormDialog .google-form-security strong{font-size:10px;letter-spacing:.06em;color:#856029}
#googleFormDialog .google-form-security p{font-size:10px;line-height:1.5;margin:4px 0 0;color:#846333}
#googleFormDialog .google-form-actions{position:sticky;bottom:0;z-index:2;background:#fff;border-top:1px solid #E5EAF0;margin:17px 0 0;padding:17px 24px 20px!important;display:grid;grid-template-columns:minmax(100px,auto) minmax(220px,auto);justify-content:end;align-items:stretch;gap:10px}
#googleFormDialog .google-form-actions button{min-height:43px;margin:0;max-width:100%;padding:11px 15px;border-radius:10px;font-size:11px;font-weight:900;letter-spacing:.025em;line-height:1.35;white-space:normal;text-align:center}
#googleFormDialog .google-form-actions #googleFormOpenBtn{background:#164A77;color:#fff;box-shadow:0 3px 10px rgba(22,74,119,.13)}
#googleFormDialog .google-form-actions #googleFormOpenBtn:hover{background:#0E385D}
#googleFormDialog .google-form-actions button.secondary{background:#F0F3F7;border:1px solid #E0E5ED;color:#475569}
@media(max-width:620px){
  #googleFormDialog .modal-head{padding:20px 18px 14px}
  #googleFormDialog .modal-head h3{font-size:19px}
  #googleFormDialog .google-form-preview{margin:14px 18px 10px!important;padding:13px 14px!important}
  #googleFormDialog .google-form-security{margin:0 18px;padding:10px!important}
  #googleFormDialog .google-form-actions{padding:14px 18px 17px!important;grid-template-columns:1fr 1.7fr;gap:8px}
  #googleFormDialog .google-form-actions button{width:100%;font-size:10px;padding:10px}
  #googleFormDialog .google-form-summary{align-items:flex-start}
}

/* V97 - OBLIGATORIEDAD IDENTICA A GOOGLE FORMS DIARIO Y SEMANAL */
#scheduleDialog .required-star{color:#C62828;font-weight:950;font-size:13px;vertical-align:middle;margin-left:2px}
#scheduleDialog .schedule-required-note{margin:11px 0 4px;font-size:10px;line-height:1.45;font-weight:850;color:#9A3412;background:#FFF7ED;border:1px solid #F8D6B6;padding:8px 11px;border-radius:10px}
#scheduleDialog .schedule-patient-required-alert{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#FFF5F5;border:1px solid #F1B8B8;border-left:5px solid #C62828;border-radius:11px;padding:11px 13px;margin:-2px 0 11px;color:#862020}
#scheduleDialog .schedule-patient-required-alert[hidden],#scheduleDialog .schedule-day-warning[hidden]{display:none!important}
#scheduleDialog .schedule-patient-required-alert strong{display:block;font-size:11px;letter-spacing:.035em}
#scheduleDialog .schedule-patient-required-alert p{margin:4px 0;font-size:11px;line-height:1.5;font-weight:850}
#scheduleDialog .schedule-patient-required-alert small{display:block;line-height:1.4;font-size:10px;color:#9A5050}
#scheduleDialog .schedule-patient-required-alert button{white-space:nowrap;flex-shrink:0}
#scheduleDialog .schedule-day-warning{margin:6px 0;font-size:10px;line-height:1.4;font-weight:850;color:#854D0E;background:#FEF9C3;border:1px solid #FDE68A;border-radius:9px;padding:8px 11px}
#scheduleDialog .assistant-entry:invalid,#scheduleDialog input:invalid:not(:placeholder-shown):not([type="radio"]),#scheduleDialog select:invalid{border-color:#D98080}
@media(max-width:680px){#scheduleDialog .schedule-patient-required-alert{align-items:stretch;flex-direction:column}#scheduleDialog .schedule-patient-required-alert button{width:100%}}

/* V98: TITULOS DE CAMPOS OBLIGATORIOS Y ASTERISCOS EN LA MISMA LINEA */
#scheduleDialog .schedule-field-title{display:inline-flex;align-items:baseline;justify-content:flex-start;gap:4px;white-space:nowrap;min-width:0;width:max-content;max-width:100%;line-height:1.2;}
#scheduleDialog .schedule-field-title .required-star{display:inline-block;flex:0 0 auto;margin:0;line-height:1;vertical-align:baseline;}
#scheduleDialog .schedule-date-field > .schedule-field-title{display:inline-flex;align-items:baseline;gap:4px;margin-bottom:7px;}
#scheduleDialog .assistant-team-box legend .schedule-field-title,#scheduleDialog .priority-question legend .schedule-field-title{display:inline-flex;}
#scheduleDialog.schedule-mode-weekly .schedule-date-cluster #weeklyProposedDateField{flex-direction:column;align-items:stretch;}


/* V101 - Tabla diaria y semanal apiladas a la derecha de PROGRAMADO. */
@media (min-width:1181px){
  .patient-card{grid-template-columns:minmax(285px,1.26fr) minmax(165px,.88fr) minmax(225px,1.14fr) minmax(175px,.88fr) auto}
}
.patient-identification .schedule-one-action{width:100%}
.patient-identification .schedule-action-row{display:flex;align-items:flex-start;gap:9px;flex-wrap:nowrap}
.patient-identification .schedule-one-action .program-btn{box-sizing:border-box;min-width:118px;width:118px;min-height:36px;padding:7px 9px;flex:0 0 118px;margin:0!important;font-size:11px}
.patient-identification .schedule-status-stack{display:flex;flex-direction:column;align-items:flex-start;gap:5px;min-width:0;padding-top:1px}
.patient-identification .schedule-status-item{display:flex;align-items:center;justify-content:flex-start;gap:5px;white-space:nowrap}
.patient-identification .schedule-status-item .schedule-flag{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;border:1px solid #A7D2B7;background:#EAF7EF;color:#1D6B3C;padding:5px 7px;border-radius:999px;font-size:9px;font-weight:900;letter-spacing:0;line-height:1.15;white-space:nowrap}
.patient-identification .schedule-status-item .schedule-flag.weekly-highlight{border-color:#D4B5E7;background:#F4EAFB;color:#7A2E87}
.patient-identification .schedule-trash-btn{display:inline-flex!important;align-items:center;justify-content:center;box-sizing:border-box;width:24px;height:24px;min-width:24px;min-height:24px;padding:0!important;border:1px solid #F2C6C6;border-radius:7px;background:#FFF1F1;color:#B42318;cursor:pointer;flex:0 0 24px}
.patient-identification .schedule-trash-btn:hover{background:#FFE2E2;border-color:#E9A9A9}
.patient-identification .schedule-trash-btn:focus-visible{outline:2px solid #BA3636;outline-offset:2px}
.patient-identification .programmed-surgery-date{margin-top:8px!important}
@media (max-width:680px){
  .patient-identification .schedule-action-row{flex-wrap:nowrap;gap:8px}
  .patient-identification .schedule-status-stack{width:auto}
  .patient-identification .schedule-one-action .program-btn{flex-basis:112px;width:112px;min-width:112px}
}
@media (max-width:350px){
  .patient-identification .schedule-action-row{flex-wrap:wrap}
}

/* V103 - Estado de inicio persistente, accesible y sin movimientos del formulario. */
.auth-card #loginNotice[hidden]{display:none!important}
.auth-card #loginNotice{margin:0;border:1px solid #F3C7C7;background:#FFF3F3;color:#973232;padding:12px 13px;border-radius:10px;text-align:left;font-size:12px;font-weight:750;line-height:1.5;overflow-wrap:anywhere}
.auth-card #loginNotice.info{border-color:#C7DEF3;background:#F0F8FF;color:#195B91}
.auth-card #loginNotice.warning{border-color:#ECD69E;background:#FFFAEB;color:#815D16}
.auth-card #loginForm button[type="submit"]:disabled{opacity:.62;cursor:wait}

/* V105 */
.list-toolbar{grid-template-columns:minmax(0,1fr) 205px 260px auto}
.list-pending-field.hidden{display:none!important}
.patient-card .card-action .secondary{border:2px solid #A8B8CC;box-shadow:inset 0 0 0 1px rgba(255,255,255,.5)}
.patient-card .card-action .success{border:2px solid #53A16D;box-shadow:inset 0 0 0 1px rgba(255,255,255,.35)}
#surgeryCatalogBtn{white-space:nowrap}
.surgery-catalog-modal{max-width:min(980px,96vw)}
.surgery-catalog-modal>.modal-actions{margin-top:18px;padding-top:18px;padding-bottom:26px}
@media(max-width:720px){.surgery-catalog-modal>.modal-actions{padding-bottom:22px}}
.catalog-toolbar{display:grid;grid-template-columns:240px minmax(0,1fr);gap:12px;padding:0 26px 16px}
.catalog-toolbar label{margin:0}.catalog-toolbar label>span{display:block;font-size:10px;font-weight:900;letter-spacing:.07em;color:#667085;margin-bottom:6px}
.catalog-surgery-list{padding:0 26px 22px;display:grid;gap:10px;max-height:55vh;overflow:auto}
.catalog-surgery-row{display:grid;grid-template-columns:minmax(0,1.3fr) 180px auto;gap:10px;align-items:end;padding:12px;border:1px solid #D8E1EB;border-radius:12px;background:#F8FAFC}
.catalog-surgery-row input{margin:0}.catalog-surgery-row .row-label{margin:0 0 6px;font-size:9px;font-weight:900;letter-spacing:.08em;color:#667085}
.catalog-surgery-actions{display:flex;gap:8px;align-self:end}.catalog-surgery-actions button{min-width:92px}
.catalog-empty{padding:22px;border:1px dashed #CBD5E1;border-radius:12px;text-align:center;color:#667085;background:#fff}
@media(max-width:980px){.list-toolbar{grid-template-columns:1fr 1fr}.list-toolbar .list-search-field{grid-column:1/-1}.catalog-toolbar{grid-template-columns:1fr}.catalog-surgery-row{grid-template-columns:1fr 1fr}.catalog-surgery-actions{grid-column:1/-1}}
@media(max-width:720px){.catalog-surgery-row{grid-template-columns:1fr}.catalog-surgery-actions{grid-column:auto;flex-direction:column}.catalog-surgery-actions button{width:100%}}

/* V107 - Alineación del catálogo: campos, acciones y cierre. */
.surgery-catalog-modal .catalog-surgery-row {
  align-items: end;
  column-gap: 12px;
  row-gap: 10px;
}
.surgery-catalog-modal .catalog-surgery-row > label {
  margin: 0;
  min-width: 0;
  align-self: end;
}
.surgery-catalog-modal .catalog-surgery-row > label input {
  box-sizing: border-box;
  height: 44px;
  min-height: 44px;
}
.surgery-catalog-modal .catalog-surgery-actions {
  align-self: end;
  align-items: stretch;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
}
.surgery-catalog-modal .catalog-surgery-actions button {
  box-sizing: border-box;
  height: 44px;
  min-height: 44px;
  margin: 0;
  white-space: nowrap;
  padding: 0 13px;
}
.surgery-catalog-modal > .modal-actions {
  box-sizing: border-box;
  margin-top: 0;
  padding: 20px 38px 26px;
  justify-content: flex-end;
}
.surgery-catalog-modal > .modal-actions > button {
  box-sizing: border-box;
  min-width: 108px;
  min-height: 44px;
  margin: 0;
}
@media (max-width: 980px) {
  .surgery-catalog-modal .catalog-surgery-actions {grid-column: 1 / -1; justify-self: end;}
}
@media (max-width: 720px) {
  .surgery-catalog-modal .catalog-surgery-actions {grid-column: auto; justify-self: stretch;}
  .surgery-catalog-modal .catalog-surgery-actions button {min-width: 0; width: 100%;}
  .surgery-catalog-modal > .modal-actions {padding: 18px 26px 24px;}
  .surgery-catalog-modal > .modal-actions > button {width: 100%;}
}

/* V108: fase de inicio, carga limpia y proteccion contra destellos de dialogos cerrados. */
[hidden],dialog:not([open]){display:none!important}
.boot-splash{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top right,#d9ebf8,transparent 40%),linear-gradient(145deg,#eef4f8,#f8fafc)}
.boot-splash-card{width:min(360px,100%);display:grid;justify-items:center;gap:15px;padding:38px 26px;border-radius:20px;border:1px solid #e3e9f0;background:#fff;color:#113b67;box-shadow:0 12px 34px rgba(17,59,103,.1);text-align:center;font-size:14px;letter-spacing:.06em}
.boot-splash-card small{font-size:11px;color:#667085;font-weight:750;letter-spacing:.02em}
.boot-spinner{width:34px;height:34px;border:3px solid #d7e7f5;border-top-color:#1769a6;border-radius:50%;animation:cx-loading .85s linear infinite}
@keyframes cx-loading{to{transform:rotate(360deg)}}
.dashboard-load-state{grid-column:1/-1;display:grid;place-items:center;min-height:150px;background:#fff;border:1px dashed #cad8e6;border-radius:16px;color:#526174;font-size:12px;font-weight:850;letter-spacing:.04em}
@media(prefers-reduced-motion:reduce){.boot-spinner{animation:none;border-top-color:#1769a6}}

@supports(content-visibility:auto){.patient-card,.catalog-surgery-row{content-visibility:auto;contain-intrinsic-size:auto 180px}}

/* V110: importacion reutilizable para todas las especialidades, sin desbordes. */
.patient-import-modal{max-width:min(850px,96vw)}
.patient-import-main{display:grid;gap:17px}
.patient-import-main label{display:grid;gap:8px;font-weight:800;font-size:12px;min-width:0}
.patient-import-main select{width:100%;min-width:0}
.patient-import-top-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end;gap:16px}
.patient-import-template{display:grid;gap:8px;font-weight:800;font-size:12px;min-width:0}
.patient-import-template>button{min-height:47px}
.patient-import-main input[type=file]{display:block;width:100%;box-sizing:border-box;padding:12px;border:1px dashed #A7BACD;border-radius:12px;background:#F8FAFC;min-height:52px}
.patient-import-main input[type=file]:disabled{opacity:.55;cursor:not-allowed}
.patient-import-summary{padding:16px 18px;border-radius:12px;background:#F0F7FF;color:#12456B;border:1px solid #D7E8F8;font-size:12px;font-weight:800;line-height:1.7}
.patient-import-results{white-space:pre-wrap;line-height:1.65;font-size:12px;color:#344054;max-height:220px;overflow-y:auto;overflow-wrap:anywhere}
.patient-import-note{font-size:11px;line-height:1.6;color:#667085}
.patient-import-modal>.modal-actions{margin-top:8px;padding:22px 26px 28px;flex-wrap:wrap}
.patient-import-modal>.modal-actions button{min-height:43px}
@media(max-width:650px){.patient-import-top-grid{grid-template-columns:1fr}.patient-import-modal>.modal-actions{padding:17px 20px 24px}.patient-import-modal>.modal-actions button{width:100%}}

/* V111 importacion local de Excel */
#patientImportBatch{width:100%;box-sizing:border-box;min-height:46px;border:1px solid #A7BACD;border-radius:10px;padding:10px;font-weight:700;letter-spacing:.025em;}
#patientImportBatch:disabled{opacity:.62}#patientImportReport{justify-self:start;max-width:100%;white-space:normal;}
