#modal.clinical-dialog{width:min(1040px,calc(100vw - 30px));height:min(88vh,820px);max-height:min(88vh,820px);display:flex;flex-direction:column;overflow:hidden}
#modal.clinical-dialog #modal-body{height:100%;display:flex;flex-direction:column;flex:1 1 auto;min-height:0;overflow:hidden}
#modal.clinical-dialog #dialog-form{height:100%;display:flex;flex-direction:column;flex:1 1 auto;min-height:0;overflow:hidden}
#modal.clinical-dialog .clinical-modal-header{flex-shrink:0;display:flex!important;flex-direction:column!important;padding:16px 24px 14px!important;border-bottom:1px solid var(--line)!important;background:#fff;border-radius:15px 15px 0 0;overflow:hidden;gap:12px}
#modal.clinical-dialog .modal-scroll-body{flex:1 1 auto;min-height:0;overflow-y:auto;padding:18px 22px;background:var(--bg, #f3f7f6)!important}
.clinical-modal-title-row{display:flex;justify-content:space-between;align-items:center;width:100%;padding:0!important}
#modal.clinical-dialog .clinical-dialog-tabs,
.clinical-dialog-tabs{margin:0!important;flex-shrink:0}
.tabs .tab[hidden],.tabs button[hidden],.tabs .tab.is-tab-disabled,.tabs button.is-tab-disabled,.clinical-dialog-tabs .tab[hidden],.clinical-dialog-tabs button[hidden],.clinical-dialog-tabs .tab.is-tab-disabled,.clinical-dialog-tabs [data-clinical-pane][hidden],.clinical-dialog-tabs [data-clinical-pane].is-tab-disabled{display:none!important}
#modal.clinical-dialog .clinical-dialog-tabs button .icon,
#modal.clinical-dialog .clinical-dialog-tabs .tab .icon,
.clinical-dialog-tabs button .icon,
.clinical-dialog-tabs .tab .icon{width:16px!important;height:16px!important;stroke:var(--muted)!important;transition:stroke .16s ease-in-out,transform .16s ease!important;flex-shrink:0!important}
#modal.clinical-dialog .clinical-dialog-tabs button:hover .icon,
#modal.clinical-dialog .clinical-dialog-tabs .tab:hover .icon,
.clinical-dialog-tabs button:hover .icon,
.clinical-dialog-tabs .tab:hover .icon{stroke:var(--ink)!important;transform:translateY(-0.5px)!important}
#modal.clinical-dialog .clinical-dialog-tabs button.active .icon,
#modal.clinical-dialog .clinical-dialog-tabs .tab.active .icon,
.clinical-dialog-tabs button.active .icon,
.clinical-dialog-tabs .tab.active .icon{stroke:var(--primary)!important}
.clinical-tab-pane{display:block;min-width:0}
.clinical-tab-pane[hidden]{display:none!important}
.clinical-tab-pane>.clinical-section:first-child{border-top:0;padding-top:4px}
#modal.clinical-dialog .form-actions.clinical-form-actions{flex-shrink:0;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 22px;border-top:1px solid var(--line);background:var(--bg)}
.clinical-footer-requirement{flex:1;min-width:0;display:flex;align-items:center}
.clinical-close-check{display:flex;align-items:flex-start;gap:9px;font-size:12px;line-height:1.45;color:var(--ink);cursor:pointer;margin:0}
.clinical-close-check input[type="checkbox"]{appearance:none!important;-webkit-appearance:none!important;width:32px!important;height:18px!important;background:linear-gradient(180deg,color-mix(in srgb,var(--muted-light,#d1d5db) 60%,var(--line)) 0%,color-mix(in srgb,var(--muted-light,#d1d5db) 45%,var(--line)) 100%)!important;border:1px solid color-mix(in srgb,var(--line) 80%,#000)!important;border-radius:999px!important;position:relative!important;outline:none!important;cursor:pointer!important;transition:all .22s ease!important;flex-shrink:0!important;margin:0 4px 0 0!important;display:inline-block!important;vertical-align:middle!important}.clinical-close-check input[type="checkbox"]::before{content:""!important;position:absolute!important;top:1px!important;left:1px!important;width:14px!important;height:14px!important;border-radius:50%!important;background:#fff!important;box-shadow:0 1.2px 2.5px rgba(0,0,0,0.25)!important;transition:transform .22s cubic-bezier(0.34,1.56,0.64,1)!important}.clinical-close-check input[type="checkbox"]:checked{background:linear-gradient(180deg,var(--primary-dark,#075f66) 0%,var(--primary,#087e85) 100%)!important;border-color:var(--primary-dark)!important}.clinical-close-check input[type="checkbox"]:checked::before{transform:translateX(14px)!important}
.clinical-close-check strong{color:var(--primary);font-size:12px}
.clinical-footer-buttons{display:flex;align-items:center;gap:8px;flex-shrink:0}
@media(max-width:760px){
  #modal.clinical-dialog{width:calc(100vw - 16px);height:calc(100vh - 20px);max-height:calc(100vh - 20px)}
  #modal.clinical-dialog .modal-scroll-body{padding:14px 16px}
  .clinical-modal-title-row{padding:12px 16px 8px}
  .clinical-dialog-tabs .tab{flex:1 0 auto;padding:9px 12px;font-size:11.5px}
  #modal.clinical-dialog .form-actions.clinical-form-actions{flex-direction:column;align-items:stretch;gap:12px;padding:12px 16px}
  .clinical-footer-buttons{display:flex;justify-content:flex-end;width:100%}
}
.clinical-section{border:0;border-top:1px solid var(--line);padding:20px 0 8px;margin:0 0 23px;min-width:0}
.clinical-section legend{padding:0 15px 0 0;font-size:15px;font-weight:700;color:var(--ink)}
.clinical-section legend span{display:inline-grid;place-items:center;width:28px;height:28px;background:var(--tint);color:var(--primary);border-radius:var(--radius-md, 8px);font-size:11px;margin-right:10px}
.clinical-dialog textarea{min-height:0;line-height:1.5}
.section-help{color:var(--muted);font-size:12px;line-height:1.6;margin:0 0 17px}
.professional-info{display:flex;flex-direction:column;gap:6px;justify-content:center;padding:8px 0}
.professional-info strong{font-size:14px}
.vitals-grid{display:grid;grid-template-columns:repeat(8,minmax(82px,1fr));gap:6px}
.vitals-grid>label{font-size:10px;line-height:1.1;min-width:0}
.unit-input{display:flex;align-items:center;border:1px solid #d6e2df;border-radius:var(--radius-sm, 6px);background:white;margin-top:4px;overflow:hidden}
.unit-input:focus-within{outline:2px solid var(--primary);outline-offset:2px}
.unit-input input{min-width:0;margin:0;border:0;border-radius:0;outline:none;padding:4px 2px 4px 6px;height:29px;font-size:12px}
.unit-input>span{padding:0 5px 0 1px;color:var(--muted);font-size:9px;white-space:nowrap}
.clinical-text{white-space:pre-wrap}
.diagnosis-assistant{border:1px solid var(--line);border-radius:var(--radius-lg, 12px);padding:10px 14px;background:linear-gradient(145deg,#fff,#f8faf9);box-shadow:0 1px 2px rgba(0,0,0,0.02);box-sizing:border-box}
.diagnosis-assistant.span-2,#note-eval-container>.diagnosis-assistant.span-2,#specialty-fields>.diagnosis-assistant.span-2,.clinical-dialog .form-grid>.diagnosis-assistant.span-2{flex:0 0 100%!important;width:100%!important;max-width:100%!important}
.diagnosis-assistant-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:7px}.diagnosis-assistant-head strong{font-size:13px;color:var(--ink)}.diagnosis-assistant-head p{display:none}.diagnosis-guidance{display:none}
.diagnosis-search-wrap{position:relative;display:flex;align-items:center}
.diagnosis-assistant input[type="search"]{width:100%;height:34px;min-height:34px;padding:6px 36px 6px 11px;font-size:12.5px;border:1px solid #c9ded9;border-radius:var(--radius-sm, 6px);background:#fff;margin:0}
.diagnosis-assistant textarea{width:100%;padding:8px 36px 8px 11px;font-size:12.5px;border:1px solid #c9ded9;border-radius:var(--radius-sm, 6px);background:#fff;margin:0;line-height:1.45;resize:vertical;box-sizing:border-box}
.diagnosis-assistant input[type="search"]:focus,.diagnosis-assistant textarea:focus{border-color:var(--primary);outline:2px solid var(--tint)}
.diagnosis-search-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:22px;height:22px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;border:none;background:#e2ece9;color:var(--muted);font-size:12px;font-weight:700;cursor:pointer;line-height:1;transition:background-color .15s,color .15s}
.diagnosis-assistant:has(textarea) .diagnosis-search-clear{top:14px;transform:none}
.diagnosis-search-clear:hover{background:#d0e2dd;color:var(--ink)}
.diagnosis-search-clear[hidden]{display:none!important}
.diagnosis-close-options-btn{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;font-size:11px;font-weight:600;color:var(--primary);background:var(--tint);border:1px solid color-mix(in srgb,var(--primary) 25%,transparent);border-radius:var(--radius-sm, 6px);cursor:pointer;line-height:1.2;flex-shrink:0;transition:all .15s}
.diagnosis-close-options-btn:hover{background:#e2eeea;color:var(--ink);border-color:var(--primary)}
.diagnosis-symptom-panel{margin:0 0 15px;padding:14px;border:1px solid color-mix(in srgb,var(--primary) 25%,var(--line));border-radius:var(--radius-lg, 12px);background:var(--tint)}.diagnosis-symptom-panel[hidden]{display:none}.diagnosis-panel-copy{display:flex;justify-content:space-between;align-items:baseline;gap:14px;margin-bottom:11px}.diagnosis-panel-copy small{max-width:65%}.diagnosis-symptoms{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.symptom-chip{font-weight:500}.symptom-chip input{position:absolute;opacity:0;pointer-events:none}.symptom-chip span{display:inline-flex;padding:7px 10px;border:1px solid var(--line);border-radius:var(--radius-pill, 999px);background:#fff;color:var(--muted);font-size:10px;cursor:pointer}.symptom-chip input:focus+span{outline:2px solid var(--primary);outline-offset:2px}.symptom-chip input:checked+span{border-color:var(--primary);background:var(--primary);color:#fff}.triage-alert{margin:12px 0;padding:13px 15px;border:1px solid #d83d3d;border-radius:var(--radius-lg, 12px);background:#fff0ef;color:#7c1c1c}.triage-alert strong{font-size:14px}.triage-alert p{font-size:12px;line-height:1.5;margin:5px 0}.triage-alert small{color:#7c1c1c}
.diagnosis-results{display:grid;gap:5px;max-height:270px;overflow:auto;margin-top:9px}.diagnosis-result{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:9px 11px;text-align:left;border:1px solid var(--line);border-radius:var(--radius-md, 8px);background:#fff}.diagnosis-result.is-emergency{border-color:#e3a09c;background:#fff9f8}.diagnosis-result>div:first-child{min-width:0}.diagnosis-result span{display:flex;align-items:baseline;gap:9px;min-width:0;font-size:12px}.diagnosis-result strong{color:var(--primary);min-width:48px}.diagnosis-result small{display:block;margin-top:3px;font-size:9px;overflow-wrap:anywhere}.diagnosis-result .actions{flex-shrink:0}.diagnosis-result button{padding:6px 9px;font-size:10px}
.diagnosis-result-group{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 3px 4px;margin-top:5px}.diagnosis-result-group strong{font-size:11px;color:var(--ink)}.diagnosis-result-group small{font-size:9px;text-align:right}
.diagnosis-candidates{display:flex;flex-direction:column;gap:5px;margin-top:8px;box-sizing:border-box;width:100%;max-width:100%}
.diagnosis-candidate-title{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:4px;margin-bottom:2px;font-size:11px;flex-shrink:0}
.diagnosis-candidate-title strong{font-size:11.5px;color:var(--ink);font-weight:700}
.diagnosis-candidate-title small{font-size:10px;color:var(--muted)}
.diagnosis-candidates-scroll-list{display:flex!important;flex-direction:column!important;gap:6px!important;box-sizing:border-box!important;width:100%!important;max-width:100%!important;overflow-y:auto!important;overflow-x:hidden!important;scrollbar-width:thin!important;scrollbar-color:var(--muted, #526b70) var(--tint, #e7f5f3)!important;padding-right:3px!important}
.diagnosis-candidates-scroll-list::-webkit-scrollbar{width:6px}
.diagnosis-candidates-scroll-list::-webkit-scrollbar-track{background:var(--tint, #e7f5f3);border-radius:var(--radius-xs, 4px)}
.diagnosis-candidates-scroll-list::-webkit-scrollbar-thumb{background:var(--muted, #526b70);border-radius:var(--radius-xs, 4px)}
.diagnosis-candidates-scroll-list::-webkit-scrollbar-thumb:hover{background:var(--muted, #526b70)}
.diagnosis-candidate{display:flex!important;flex-direction:column!important;justify-content:flex-start!important;gap:4px!important;padding:6px 9px!important;border:1px solid #d4e2df!important;border-radius:var(--radius-sm, 6px)!important;background:#fff!important;box-sizing:border-box!important;width:100%!important;max-width:100%!important;min-width:0!important;flex:0 0 auto!important;flex-shrink:0!important;min-height:64px!important;overflow:visible!important;transition:border-color .15s,box-shadow .15s!important}
.diagnosis-candidate:hover{border-color:#89b8ad!important;box-shadow:0 1px 4px rgba(0,0,0,0.06)!important}
.diagnosis-candidate-head{display:flex!important;align-items:center!important;gap:6px!important;min-width:0!important;width:100%!important;height:22px!important;min-height:22px!important;max-height:22px!important;flex:0 0 22px!important;flex-shrink:0!important;overflow:hidden!important}
.diagnosis-code{display:inline-flex!important;align-items:center!important;justify-content:center!important;background:var(--tint,#e7f5f3)!important;color:var(--primary,#087e85)!important;border-radius:var(--radius-xs, 4px)!important;padding:1px 6px!important;font-size:10.5px!important;font-weight:700!important;letter-spacing:0.02em!important;flex-shrink:0!important;line-height:1.2!important;white-space:nowrap!important}
.diagnosis-candidate-name{font-size:11.5px!important;font-weight:600!important;color:var(--ink, #19383d)!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;min-width:0!important;flex:1 1 auto!important;line-height:1.3!important}
.diagnosis-candidate-chapter{font-size:9.5px!important;color:var(--muted, #526b70)!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;max-width:110px!important;flex-shrink:1!important;display:none!important}
@media(min-width:960px){.diagnosis-candidate-chapter{display:inline-block!important}}
.diagnosis-candidate-actions{display:flex!important;align-items:center!important;gap:4px!important;flex-shrink:0!important;margin-left:auto!important}
.diagnosis-candidate-actions button,.diagnosis-candidate-actions .link-button,.diagnosis-candidate-btn{padding:0 7px!important;font-size:10px!important;font-weight:600!important;height:20px!important;line-height:18px!important;border-radius:var(--radius-xs, 4px)!important;border:1px solid #c8ded9!important;background:#f4faf8!important;color:var(--primary,#087e85)!important;cursor:pointer!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;text-decoration:none!important;transition:background-color .12s,border-color .12s!important}
.diagnosis-candidate-actions button:hover,.diagnosis-candidate-actions .link-button:hover,.diagnosis-candidate-btn:hover{background:#e6f5f1!important;border-color:var(--primary,#087e85)!important}
.diagnosis-candidate-actions button.danger,.diagnosis-candidate-actions .link-button.danger,.diagnosis-candidate-btn.danger{padding:0!important;width:20px!important;border-color:#fed7d7!important;background:#fff5f5!important;color:var(--danger, #dc2626)!important;font-size:11px!important;font-weight:700!important}
.diagnosis-candidate-actions button.danger:hover,.diagnosis-candidate-actions .link-button.danger:hover,.diagnosis-candidate-btn.danger:hover{background:var(--danger-tint, #fef2f2)!important;border-color:#f87171!important}
.diagnosis-candidate-row{display:flex!important;gap:6px!important;align-items:center!important;min-width:0!important;width:100%!important;height:26px!important;min-height:26px!important;max-height:26px!important;flex:0 0 26px!important;flex-shrink:0!important}
.diagnosis-status-wrap{flex:0 0 120px!important;width:120px!important;min-width:105px!important;max-width:130px!important;height:26px!important}
.diagnosis-status-wrap select{width:100%!important;height:26px!important;min-height:26px!important;padding:2px 6px!important;font-size:11px!important;line-height:1.3!important;border-radius:var(--radius-xs, 4px)!important;border:1px solid #cadcd7!important;background:#fff!important;margin:0!important;box-sizing:border-box!important;cursor:pointer!important}
.diagnosis-status-wrap select:focus{border-color:var(--primary)!important;outline:2px solid var(--tint)!important}
.diagnosis-reason-wrap{flex:1 1 0!important;min-width:0!important;width:100%!important;height:26px!important}
.diagnosis-reason-wrap input,.diagnosis-reason-wrap textarea{width:100%!important;height:26px!important;min-height:26px!important;padding:2px 8px!important;font-size:11px!important;line-height:1.3!important;border-radius:var(--radius-xs, 4px)!important;border:1px solid #cadcd7!important;background:#fff!important;margin:0!important;box-sizing:border-box!important;display:block!important;resize:none!important}
.diagnosis-reason-wrap input:focus,.diagnosis-reason-wrap textarea:focus{border-color:var(--primary)!important;outline:2px solid var(--tint)!important}
.closed-diagnoses{display:grid;gap:8px;margin-bottom:20px}.closed-diagnoses article{border:1px solid var(--line);border-radius:var(--radius-md, 8px);padding:11px}.closed-diagnoses .badge{margin-right:8px;text-transform:capitalize}.closed-diagnoses p{margin:8px 0 0;font-size:12px;white-space:pre-wrap}
.diagnosis-info{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:25px;background:#142f3c52;backdrop-filter:blur(2px)}.diagnosis-info[hidden]{display:none}.diagnosis-info-card{position:relative;width:min(740px,100%);max-height:min(800px,88vh);overflow:auto;padding:26px;border:1px solid var(--line);border-radius:22px;background:#fff;box-shadow:0 24px 80px #102f2d45}.diagnosis-info-close{position:absolute;right:16px;top:14px;border:0;padding:3px 9px;font-size:24px}.diagnosis-info-header{padding-right:38px}.diagnosis-info-card h2{margin:12px 0 5px}.diagnosis-info-chapter{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.035em}.diagnosis-restrictions{display:inline-flex;margin:7px 0 0;padding:5px 9px;border-radius:var(--radius-pill, 999px);background:var(--surface);font-size:10px;color:var(--muted)}.diagnosis-info-urgency{padding:13px 15px;border-radius:var(--radius-lg, 12px);background:var(--tint);margin:18px 0}.diagnosis-info-urgency p{font-size:12px;margin:5px 0 0;text-align:justify;text-justify:inter-word}.diagnosis-info-urgency.emergency{background:#fff0ef;color:#7c1c1c;border:1px solid #e3a09c}.diagnosis-guide{padding-bottom:20px;border-bottom:1px solid var(--line)}.diagnosis-info-card dl{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.diagnosis-info-card dl>div{padding:12px;border:1px solid var(--line);border-radius:var(--radius-lg, 12px);background:#fbfdfd}.diagnosis-info-card dt{font-size:11px;font-weight:700}.diagnosis-info-card dd{font-size:12px;line-height:1.55;margin:5px 0 0;text-align:justify;text-justify:inter-word}.diagnosis-info-card li{font-size:12px;margin:5px 0}.diagnosis-encyclopedia{margin-top:20px}.diagnosis-section-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:12px}.diagnosis-section-heading span:not(.badge){display:block;margin-bottom:3px;color:var(--primary);font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.diagnosis-section-heading h3{margin:0;font-size:19px}.encyclopedia-topic{padding:16px 17px;border:1px solid var(--line);border-radius:var(--radius-lg, 12px);background:linear-gradient(145deg,#fbfdfd,#f3f8f7)}.encyclopedia-topic+.encyclopedia-topic{margin-top:10px}.encyclopedia-topic h4{margin:0 0 8px;font-size:15px}.encyclopedia-topic p{margin:0 0 10px;color:var(--ink);font-size:12px;line-height:1.75;text-align:justify;text-justify:inter-word;hyphens:auto}.encyclopedia-topic a,.diagnosis-encyclopedia>a{font-size:11px;font-weight:700}.diagnosis-evidence{margin-top:18px;padding-top:17px;border-top:1px solid var(--line)}.evidence-citation{padding:11px 0}.evidence-citation+.evidence-citation{border-top:1px solid var(--line)}.evidence-citation a{display:block;font-size:12px;font-weight:700;line-height:1.45}.evidence-citation small{display:block;margin-top:4px;color:var(--muted);font-size:10px;line-height:1.45}.diagnosis-resources{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.diagnosis-resources a{padding:7px 10px;border:1px solid var(--line);border-radius:var(--radius-pill, 999px);background:#fff;font-size:10px;font-weight:700}.diagnosis-source-note{display:block;margin-top:12px;color:var(--muted);font-size:10px;line-height:1.5;text-align:justify;text-justify:inter-word}.diagnosis-encyclopedia.is-empty{padding:16px 17px;border:1px solid var(--line);border-radius:var(--radius-lg, 12px);background:var(--surface)}.diagnosis-encyclopedia.is-empty>p{font-size:12px;line-height:1.6;text-align:justify;text-justify:inter-word}
.diagnosis-summary-card{padding:16px 18px;border:1px solid #cfe0dc;border-radius:var(--radius-lg, 12px);background:linear-gradient(145deg,#f8fcfb,#eef6f4)}.diagnosis-summary-card h4{margin:0 0 7px;font-size:14px}.diagnosis-summary-card p{margin:0;font-size:12px;line-height:1.7;text-align:justify;text-justify:inter-word;hyphens:auto}.diagnosis-topic-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:10px}.diagnosis-topic-card{min-width:0;padding:13px 14px;border:1px solid var(--line);border-radius:var(--radius-lg, 12px);background:#fff}.diagnosis-topic-title{display:flex;align-items:center;gap:8px;margin-bottom:8px}.diagnosis-topic-title span{width:9px;height:9px;border-radius:50%;background:#568bc0;box-shadow:0 0 0 4px #eaf2fb}.diagnosis-topic-card.exams .diagnosis-topic-title span{background:#3a9c88;box-shadow:0 0 0 4px #e6f5f1}.diagnosis-topic-card.treatments .diagnosis-topic-title span{background:#b88138;box-shadow:0 0 0 4px #fbf1e4}.diagnosis-topic-title h4{margin:0;font-size:12px}.diagnosis-topic-card ul{display:grid;gap:6px;margin:0;padding-left:17px}.diagnosis-topic-card li{margin:0;font-size:10.5px;line-height:1.48;text-align:justify;text-justify:inter-word;hyphens:auto}.diagnosis-empty{margin:0;color:var(--muted);font-size:10.5px;line-height:1.5;text-align:justify;text-justify:inter-word;hyphens:auto}.diagnosis-evidence>.diagnosis-section-heading{margin-bottom:4px}.diagnosis-evidence>div:last-child{padding:2px 12px}.evidence-count{display:grid;place-items:center;flex:0 0 24px;width:24px;height:24px;border-radius:50%;background:var(--tint);color:var(--primary);font-size:10px;font-weight:800}.evidence-citation a,.evidence-citation small{text-align:justify;text-justify:inter-word;hyphens:auto}.diagnosis-consultation{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.diagnosis-consultation .diagnosis-section-heading{margin-bottom:8px}.diagnosis-consultation .diagnosis-section-heading h3{font-size:15px}.diagnosis-consultation .diagnosis-resources{margin-top:0}
.diagnosis-section-source{display:inline-flex;margin-top:10px;padding:4px 7px;border-radius:var(--radius-pill, 999px);background:#edf4f8;color:var(--primary);font-size:9px;font-weight:700;line-height:1.25}.diagnosis-summary-card .diagnosis-section-source{margin-top:9px}.diagnosis-topic-card .diagnosis-section-source{max-width:100%;white-space:normal}
.order-row{border:1px solid #d4e2df;border-radius:var(--radius-md, 8px);padding:9px 12px;margin-bottom:10px;background:#fbfdfc}
.order-row-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px;gap:8px}
.order-row-header strong{font-size:12px;color:var(--ink)}
.order-row-header button{font-size:10.5px;padding:2px 7px;height:22px;line-height:1;color:#a43a3a;border-radius:var(--radius-xs, 4px)}
.order-row .form-grid{gap:5px 10px}
.order-row[data-order-row="services"] .form-grid{grid-template-columns:2fr 1fr}
@media(max-width:650px){.order-row[data-order-row="services"] .form-grid{grid-template-columns:1fr}}
.order-row label {
  font-size: 12px;
  font-weight: 600;
  line-height: 1.35;
  color: var(--ink);
  margin: 0;
  display: block;
}
.order-row input,
.order-row select,
.order-row textarea {
  width: 100%;
  margin-top: 5px;
  padding: 7px 11px;
  min-height: 38px;
  height: 38px;
  font-size: 12.5px;
  line-height: 1.4;
  border-radius: var(--radius-md, 8px);
  border: 1px solid #d5e2df;
  background: #ffffff;
  color: var(--ink);
  box-sizing: border-box;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.order-row input:focus,
.order-row select:focus,
.order-row textarea:focus {
  border-color: var(--primary) !important;
  outline: none !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 18%, transparent) !important;
}
.order-row textarea {
  min-height: 56px;
  height: 56px;
  resize: vertical;
}
.order-editor button[data-order-add] {
  font-size: 12px;
  padding: 7px 14px;
  margin-top: 8px;
  border-radius: var(--radius-md, 8px);
  font-weight: 600;
}
.order-help {
  display: block;
  margin: 5px 0 0;
  font-size: 11px;
  color: var(--muted);
  line-height: 1.4;
}
.closed-documents {
  margin: 20px 0;
  border-top: 1px solid var(--line);
  padding-top: 16px;
}
.closed-order {
  border-bottom: 1px solid var(--line);
  margin-bottom: 12px;
  padding-bottom: 8px;
}
.closed-order p {
  margin: 5px 0;
}
.closed-documents a {
  font-size: 12px;
}
#prescriber-details[hidden] {
  display: none !important;
}
.rx-svg-icon {
  display: inline-block;
  vertical-align: middle;
  flex-shrink: 0;
}

/* Tooltips propios del Design System Klio.IM para Recetas y Órdenes */
[data-rx-tooltip] {
  position: relative;
}
[data-rx-tooltip]::after {
  content: attr(data-rx-tooltip);
  position: absolute;
  bottom: calc(100% + 7px);
  left: 50%;
  transform: translateX(-50%) translateY(4px);
  width: max-content;
  max-width: 260px;
  padding: 6px 10px;
  border-radius: var(--radius-sm, 6px);
  background: var(--ink, #19383d);
  color: #ffffff;
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0;
  text-transform: none;
  white-space: normal;
  text-align: left;
  box-shadow: 0 8px 22px rgba(15, 35, 38, 0.22), 0 2px 6px rgba(15, 35, 38, 0.12);
  border: 1px solid rgba(255, 255, 255, 0.12);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s ease;
  z-index: 150;
}
[data-rx-tooltip]::before {
  content: '';
  position: absolute;
  bottom: calc(100% + 2px);
  left: 50%;
  transform: translateX(-50%) translateY(4px);
  border-width: 5px 5px 0 5px;
  border-style: solid;
  border-color: var(--ink, #19383d) transparent transparent transparent;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s ease;
  z-index: 151;
}
[data-rx-tooltip]:hover::after,
[data-rx-tooltip]:focus-visible::after,
[data-rx-tooltip]:hover::before,
[data-rx-tooltip]:focus-visible::before {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
}
.rx-reminder-head-actions [data-rx-tooltip]::after,
.rx-review-meta [data-rx-tooltip]::after,
.rx-editor-meta[data-rx-tooltip]::after,
.rx-stop-card:last-child[data-rx-tooltip]::after {
  left: auto;
  right: 0;
  transform: translateY(4px);
}
.rx-reminder-head-actions [data-rx-tooltip]:hover::after,
.rx-reminder-head-actions [data-rx-tooltip]:focus-visible::after,
.rx-review-meta [data-rx-tooltip]:hover::after,
.rx-review-meta [data-rx-tooltip]:focus-visible::after,
.rx-editor-meta[data-rx-tooltip]:hover::after,
.rx-editor-meta[data-rx-tooltip]:focus-visible::after,
.rx-stop-card:last-child[data-rx-tooltip]:hover::after,
.rx-stop-card:last-child[data-rx-tooltip]:focus-visible::after {
  transform: translateY(0);
}

.rx-info-tip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 15px;
  height: 15px;
  min-width: 15px;
  min-height: 15px;
  border-radius: 50%;
  background: var(--tint-subtle, #f1f8f7);
  color: var(--muted, #526b70);
  border: 1px solid var(--line, #e2eae9);
  cursor: help;
  flex-shrink: 0;
  transition: all 0.15s ease;
  outline: none;
}
.rx-info-tip:hover,
.rx-info-tip:focus-visible {
  background: var(--primary, #087e85);
  color: #ffffff;
  border-color: var(--primary, #087e85);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--primary) 20%, transparent);
}

.rx-editor-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 4px;
}
.rx-add-recipe-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 600;
  padding: 7px 13px;
  border-radius: var(--radius-md, 8px);
  border: 1px solid color-mix(in srgb, var(--primary) 30%, var(--line));
  background: var(--surface, #ffffff);
  color: var(--primary);
  cursor: pointer;
  transition: all 0.15s ease;
}
.rx-add-recipe-btn:hover {
  background: var(--tint, #e7f5f3);
  border-color: var(--primary);
  color: var(--primary-dark);
}
.rx-editor-meta {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 11px;
  font-weight: 600;
  color: var(--muted);
  background: var(--surface, #ffffff);
  border: 1px solid var(--line);
  border-radius: var(--radius-pill, 999px);
  padding: 3px 9px;
  cursor: help;
}

.rx-card {
  border: 1px solid var(--line);
  border-radius: var(--radius-lg, 12px);
  padding: 12px 14px;
  margin-bottom: 12px;
  background: var(--surface, #ffffff);
  box-shadow: var(--shadow-sm);
}
.rx-card h3 {
  margin: 0;
  font-size: 13.5px;
  font-weight: 700;
  color: var(--ink);
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.rx-card h3 .rx-svg-icon {
  color: var(--primary);
}
.rx-card-title-group {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.rx-recipe-folio-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: var(--tint);
  color: var(--primary);
  border: 1px solid color-mix(in srgb, var(--primary) 26%, var(--line));
  border-radius: var(--radius-sm, 6px);
  padding: 2px 7px;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.02em;
  user-select: all;
}
.rx-count-badge,
.rx-card [data-rx-count] {
  font-size: 11px;
  font-weight: 600;
  color: var(--muted);
  background: var(--bg, #f3f7f6);
  border: 1px solid var(--line);
  padding: 2px 7px;
  border-radius: var(--radius-pill, 999px);
}
.rx-card > .order-row-header {
  margin-bottom: 8px;
  gap: 8px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.rx-card-remove-btn,
.rx-card > .order-row-header button {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  padding: 4px 9px;
  height: 26px;
  border-radius: var(--radius-sm, 6px);
  border: 1px solid color-mix(in srgb, var(--danger) 22%, var(--line));
  background: var(--surface, #ffffff);
  color: var(--danger, #dc2626);
  font-weight: 600;
  cursor: pointer;
  transition: all 0.15s ease;
}
.rx-card-remove-btn:hover,
.rx-card > .order-row-header button:hover {
  background: var(--danger-tint, #fef2f2);
  border-color: color-mix(in srgb, var(--danger) 45%, transparent);
  color: var(--danger-dark, #b91c1c);
}
.rx-card-group-bar {
  display: grid;
  grid-template-columns: minmax(220px, 320px) minmax(0, 1fr);
  gap: 10px;
  align-items: end;
  margin-bottom: 10px;
}
.rx-card-group-bar > label {
  margin: 0;
  font-size: 11.5px;
  font-weight: 600;
  color: var(--ink);
}
.rx-card-group-bar select {
  margin-top: 4px;
  height: 32px;
  min-height: 32px;
  padding: 4px 10px;
  font-size: 12px;
  border-radius: var(--radius-sm, 6px);
}
.rx-group-help-chip {
  display: flex;
  align-items: center;
  gap: 6px;
  min-height: 32px;
  padding: 5px 10px;
  background: var(--tint-subtle, #f1f8f7);
  border: 1px solid var(--line);
  border-radius: var(--radius-sm, 6px);
}
.rx-group-help-icon {
  color: var(--primary);
  display: inline-flex;
  flex-shrink: 0;
}
.rx-card .notice[data-rx-help] {
  font-size: 11px;
  padding: 0;
  margin: 0;
  background: transparent;
  color: var(--ink-secondary, #3d585c);
  line-height: 1.35;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.rx-drug-add-btn,
.rx-card [data-rx-drug-add] {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 11.5px;
  padding: 6px 12px;
  margin-top: 4px;
  border-radius: var(--radius-md, 8px);
  font-weight: 600;
  border: 1px dashed color-mix(in srgb, var(--primary) 45%, var(--line));
  background: var(--tint-subtle, #f1f8f7);
  color: var(--primary-dark);
}
.rx-drug-add-btn:hover:not(:disabled),
.rx-card [data-rx-drug-add]:hover:not(:disabled) {
  background: var(--tint, #e7f5f3);
  border-style: solid;
  border-color: var(--primary);
}
.rx-card label[hidden] {
  display: none !important;
}

.rx-card .rx-medication {
  padding: 10px 12px;
  margin-bottom: 10px;
  border: 1px solid var(--line);
  border-radius: var(--radius-lg, 12px);
  background: var(--surface, #ffffff);
  box-shadow: var(--shadow-sm);
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.rx-card .rx-medication:hover {
  border-color: color-mix(in srgb, var(--primary) 28%, var(--line));
}
.rx-medication .order-row-header {
  margin-bottom: 8px;
  gap: 8px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
}
.rx-row-title-wrap {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  cursor: pointer;
  user-select: none;
  flex: 1;
  min-width: 0;
}
.rx-med-icon-badge {
  display: inline-grid;
  place-items: center;
  width: 24px;
  height: 24px;
  border-radius: var(--radius-sm, 6px);
  background: var(--tint, #e7f5f3);
  color: var(--primary);
  flex-shrink: 0;
}
.rx-medication .order-row-header strong {
  font-size: 13px;
  font-weight: 700;
  color: var(--ink);
  display: inline-flex;
  align-items: baseline;
  gap: 4px;
  white-space: nowrap;
}
.rx-row-med-name {
  color: var(--primary-dark);
  font-weight: 700;
}
.rx-collapsed-preview {
  font-size: 11px;
  font-weight: 500;
  color: var(--muted);
  background: var(--bg, #f3f7f6);
  border: 1px solid var(--line);
  border-radius: var(--radius-pill, 999px);
  padding: 1px 8px;
  max-width: 420px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.rx-row-actions {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}
.rx-medication .order-row-header .rx-collapse-row-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 8px;
  font-size: 11px;
  font-weight: 600;
  height: 25px;
  line-height: 1;
  border-radius: var(--radius-sm, 6px);
  border: 1px solid var(--line);
  background: var(--surface, #ffffff);
  color: var(--ink-secondary);
  cursor: pointer;
  transition: all 0.15s ease;
}
.rx-medication .order-row-header .rx-collapse-row-btn:hover {
  background: var(--tint-subtle);
  border-color: var(--primary);
  color: var(--primary-dark);
}
.rx-medication .order-row-header [data-rx-drug-remove] {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 8px;
  font-size: 11px;
  font-weight: 600;
  height: 25px;
  line-height: 1;
  border-radius: var(--radius-sm, 6px);
  border: 1px solid color-mix(in srgb, var(--danger) 22%, var(--line));
  background: var(--surface, #ffffff);
  color: var(--danger);
  cursor: pointer;
  transition: all 0.15s ease;
}
.rx-medication .order-row-header [data-rx-drug-remove]:hover {
  background: var(--danger-tint);
  border-color: color-mix(in srgb, var(--danger) 45%, transparent);
  color: var(--danger-dark);
}

.rx-medication.is-collapsed {
  padding-top: 8px;
  padding-bottom: 8px;
  background: var(--tint-subtle, #f1f8f7);
}
.rx-medication.is-collapsed .order-row-header {
  margin-bottom: 0;
}
.rx-medication.is-collapsed .rx-library,
.rx-medication.is-collapsed .rx-medication-grid,
.rx-medication.is-collapsed .rx-review {
  display: none !important;
}

.rx-medication-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 7px 10px;
  align-items: start;
}
.rx-group-heading {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 2px;
  margin-bottom: 0;
}
.rx-group-heading:first-of-type {
  margin-top: 0;
}
.rx-group-heading span {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--primary-dark);
  background: var(--tint, #e7f5f3);
  border: 1px solid color-mix(in srgb, var(--primary) 18%, var(--line));
  padding: 2px 7px;
  border-radius: var(--radius-xs, 4px);
}
.rx-group-heading::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--line, #e2eae9);
}
.rx-medication-grid > label {
  grid-column: span 3;
  min-width: 0;
  font-size: 11.5px;
  line-height: 1.25;
  font-weight: 600;
  color: var(--ink);
  margin: 0;
  display: flex;
  flex-direction: column;
}
.rx-label-head {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-height: 16px;
  width: 100%;
}
.rx-label-text {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.rx-opt-pill {
  font-size: 9.5px;
  font-weight: 600;
  color: var(--muted);
  background: var(--bg, #f3f7f6);
  border: 1px solid var(--line);
  padding: 0 4px;
  border-radius: var(--radius-xs, 4px);
  line-height: 1.3;
  flex-shrink: 0;
}
.rx-medication-grid > .rx-field-medication {
  grid-column: span 4;
  position: relative;
}
.rx-medication-grid > .rx-field-brand {
  grid-column: span 2;
}
.rx-medication-grid > .rx-field-dosage_form {
  grid-column: span 3;
}
.rx-medication-grid > .rx-field-content {
  grid-column: span 3;
}
.rx-medication-grid > .rx-field-dose {
  grid-column: span 3;
}
.rx-medication-grid > .rx-field-frequency {
  grid-column: span 3;
}
.rx-medication-grid > .rx-field-duration {
  grid-column: span 3;
}
.rx-medication-grid > .rx-field-quantity {
  grid-column: span 3;
}
.rx-medication-grid > .rx-field-instructions {
  grid-column: 1 / -1;
}

.rx-medication-grid input,
.rx-medication-grid select,
.rx-medication-grid textarea {
  width: 100%;
  margin-top: 4px;
  padding: 5px 9px;
  min-height: 32px;
  height: 32px;
  font-size: 12px;
  line-height: 1.35;
  border-radius: var(--radius-sm, 6px);
  border: 1px solid var(--line, #e2eae9);
  background: var(--surface, #ffffff);
  color: var(--ink);
  box-sizing: border-box;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.rx-medication-grid input:focus,
.rx-medication-grid select:focus,
.rx-medication-grid textarea:focus {
  border-color: var(--primary) !important;
  outline: none !important;
  box-shadow: 0 0 0 2.5px color-mix(in srgb, var(--primary) 16%, transparent) !important;
}
.rx-medication-grid textarea {
  min-height: 34px;
  height: 34px;
  resize: vertical;
  padding: 6px 10px;
  line-height: 1.4;
}

.rx-quick {
  display: flex;
  flex-wrap: nowrap;
  gap: 5px;
  margin-top: 4px;
}
.rx-quick input[data-amount] {
  width: 56px;
  flex: 0 0 56px;
  margin-top: 0;
  height: 32px;
  min-height: 32px;
  padding: 4px 5px;
  font-size: 12px;
  border-radius: var(--radius-sm, 6px);
  text-align: center;
  border: 1px solid var(--line);
}
.rx-quick select {
  flex: 1 1 auto;
  width: auto;
  min-width: 0;
  margin-top: 0;
  height: 32px;
  min-height: 32px;
  padding: 4px 7px;
  font-size: 11.5px;
  border-radius: var(--radius-sm, 6px);
  border: 1px solid var(--line);
}
.rx-quick input[data-custom] {
  width: 100%;
  margin-top: 0;
  height: 32px;
  min-height: 32px;
  border-radius: var(--radius-sm, 6px);
  border: 1px solid var(--line);
}
.rx-quick input:focus,
.rx-quick select:focus {
  border-color: var(--primary) !important;
  outline: none !important;
  box-shadow: 0 0 0 2.5px color-mix(in srgb, var(--primary) 16%, transparent) !important;
}
.rx-quick [hidden] {
  display: none !important;
}

.rx-library {
  padding: 4px 10px;
  margin-bottom: 8px;
  font-size: 11.5px;
  background: var(--bg, #f3f7f6);
  border: 1px solid var(--line, #e2eae9);
  border-radius: var(--radius-sm, 6px);
  transition: background 0.15s ease, border-color 0.15s ease;
}
.rx-library[open] {
  padding: 6px 10px 8px;
  background: var(--surface, #ffffff);
  border-color: color-mix(in srgb, var(--primary) 28%, var(--line));
}
.rx-library summary {
  list-style: none;
  cursor: pointer;
  color: var(--primary-dark);
  font-weight: 600;
  font-size: 11.5px;
  outline: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  user-select: none;
}
.rx-library summary::-webkit-details-marker {
  display: none;
}
.rx-library-summary-left {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.rx-library-chevron {
  display: inline-flex;
  color: var(--muted);
  transition: transform 0.18s ease;
}
.rx-library[open] .rx-library-chevron {
  transform: rotate(180deg);
  color: var(--primary);
}
.rx-library-body {
  margin-top: 7px;
  padding-top: 7px;
  border-top: 1px dashed var(--line);
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.rx-library-inputs {
  display: grid;
  grid-template-columns: minmax(140px, 1fr) minmax(160px, 1.3fr) auto;
  gap: 6px;
  align-items: center;
  margin: 0;
}
.rx-library input,
.rx-library select {
  font-size: 11.5px;
  padding: 4px 8px;
  min-height: 28px;
  height: 28px;
  margin: 0;
  border-radius: var(--radius-sm, 6px);
  border: 1px solid var(--line);
}
.rx-library input:focus,
.rx-library select:focus {
  border-color: var(--primary) !important;
  outline: none !important;
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--primary) 16%, transparent) !important;
}
.rx-library .actions {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 5px;
  margin: 0;
}
.rx-lib-btn,
.rx-library .actions button {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  padding: 3px 8px;
  height: 28px;
  border-radius: var(--radius-sm, 6px);
  font-weight: 600;
  border: 1px solid var(--line);
  background: var(--surface, #ffffff);
  color: var(--ink-secondary);
}
.rx-lib-btn:hover,
.rx-library .actions button:hover {
  background: var(--tint-subtle);
  border-color: var(--primary);
  color: var(--primary-dark);
}
.rx-lib-btn.is-apply {
  background: var(--tint);
  color: var(--primary-dark);
  border-color: color-mix(in srgb, var(--primary) 30%, var(--line));
}
.rx-lib-btn.is-delete {
  color: var(--danger);
  border-color: color-mix(in srgb, var(--danger) 22%, var(--line));
}
.rx-lib-btn.is-delete:hover {
  background: var(--danger-tint);
  border-color: var(--danger);
}
.rx-library-save-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin: 0;
}
.rx-library-save-row input {
  flex: 1 1 180px;
  margin: 0;
  height: 28px;
  min-height: 28px;
}
.rx-library [role="status"] {
  display: block;
  font-size: 10.5px;
  color: var(--primary-dark);
}
.rx-library [role="status"]:empty {
  display: none;
}

.rx-review {
  padding: 6px 10px;
  margin-top: 8px;
  background: var(--tint-subtle, #f1f8f7);
  border-radius: var(--radius-md, 8px);
  border: 1px solid color-mix(in srgb, var(--primary) 22%, var(--line));
}
.rx-review-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px 12px;
  flex-wrap: wrap;
}
.rx-review .check {
  font-size: 11.5px;
  line-height: 1.3;
  gap: 7px;
  display: inline-flex;
  align-items: center;
  margin: 0;
  font-weight: 500;
  color: var(--ink);
  cursor: pointer;
}
.rx-review .check strong {
  color: var(--primary-dark);
  font-weight: 700;
}
.rx-review-meta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  margin-left: auto;
}
.rx-summary-chip {
  font-size: 10.5px;
  font-weight: 600;
  color: var(--primary-dark);
  background: var(--surface, #ffffff);
  border: 1px solid color-mix(in srgb, var(--primary) 24%, var(--line));
  border-radius: var(--radius-pill, 999px);
  padding: 2px 8px;
  max-width: 280px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.rx-allergy-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 10.5px;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: var(--radius-pill, 999px);
  cursor: help;
  outline: none;
}
.rx-allergy-badge.is-alert {
  background: var(--warning-tint, #fffbeb);
  color: var(--warning-dark, #d97706);
  border: 1px solid color-mix(in srgb, var(--warning) 38%, transparent);
}
.rx-allergy-badge.is-neutral {
  background: var(--surface, #ffffff);
  color: var(--muted);
  border: 1px solid var(--line);
}
.rx-review input[type="checkbox"] {
  appearance: none !important;
  -webkit-appearance: none !important;
  width: 28px !important;
  height: 16px !important;
  background: color-mix(in srgb, var(--muted-light, #d1d5db) 60%, var(--line)) !important;
  border: 1px solid color-mix(in srgb, var(--line) 80%, #000) !important;
  border-radius: 999px !important;
  position: relative !important;
  outline: none !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
  flex-shrink: 0 !important;
  margin: 0 !important;
  display: inline-block !important;
  vertical-align: middle !important;
}
.rx-review input[type="checkbox"]::before {
  content: "" !important;
  position: absolute !important;
  top: 1px !important;
  left: 1px !important;
  width: 12px !important;
  height: 12px !important;
  border-radius: 50% !important;
  background: #ffffff !important;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25) !important;
  transition: transform 0.2s cubic-bezier(0.34, 1.56, 0.64, 1) !important;
}
.rx-review input[type="checkbox"]:checked {
  background: linear-gradient(180deg, var(--primary-dark, #075f66) 0%, var(--primary, #087e85) 100%) !important;
  border-color: var(--primary-dark) !important;
}
.rx-review input[type="checkbox"]:checked::before {
  transform: translateX(12px) !important;
}
.rx-catalog{grid-column:1/-1;margin:0;position:relative}
.rx-catalog[hidden]{display:none!important}
.rx-catalog-results{position:absolute;z-index:25;left:0;right:0;top:100%;max-height:280px;overflow:auto;padding:5px;border:1px solid var(--line);border-radius:var(--radius-md, 8px);background:#fff;box-shadow:0 10px 28px rgba(16,47,45,0.18)}
.rx-catalog-group>.section-help{position:sticky;top:-5px;z-index:1;margin:0;padding:5px 8px;background:#edf4f2;font-size:10px}
.rx-catalog-result{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;padding:6px 8px;border-radius:var(--radius-sm, 6px)}
.rx-catalog-result+.rx-catalog-result{border-top:1px solid var(--line)}
.rx-catalog-result strong,.rx-catalog-result span,.rx-catalog-result small{display:block}
.rx-catalog-result strong{font-size:10.5px}
.rx-catalog-result span{margin-top:2px;font-size:9.5px}
.rx-catalog-result small{margin-top:2px;font-size:9px;color:var(--muted)}
.rx-catalog-result a{display:inline-block;margin-top:4px;font-size:9px}
.rx-catalog-result>div:last-child{text-align:right}
.rx-catalog-result button{margin-top:0;padding:3px 7px;font-size:9.5px}
.clinical-dialog input[name=license]{width:min(100%,260px)}
.clinical-dialog select[name=type]{width:100%}
.clinical-dialog select[name=specialty]{width:100%}
.clinical-dialog input[name=code]{width:100%}
.clinical-dialog input[name=prognosis]{width:100%}
.clinical-dialog input[name=professional_title]{width:100%}
#specialty-fields input{width:100%}
#specialty-fields textarea{width:100%}
.clinical-dialog [data-field=priority],.clinical-dialog [data-field=route],.clinical-dialog [data-field=frequency],.clinical-dialog [data-field=duration],.clinical-dialog [data-field=quantity]{width:100%}
.vitals-grid{grid-template-columns:repeat(8,minmax(88px,1fr));justify-content:stretch}
@media(max-width:1100px){.vitals-grid{grid-template-columns:repeat(4,minmax(88px,1fr))}}
@media(max-width:960px){.rx-medication-grid>.rx-field-dose,.rx-medication-grid>.rx-field-frequency,.rx-medication-grid>.rx-field-duration,.rx-medication-grid>.rx-field-quantity{grid-column:span 6}.rx-config-compact-grid{grid-template-columns:1fr}}
@media(max-width:768px){.rx-medication-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.rx-medication-grid>label,.rx-medication-grid>.rx-field-dose,.rx-medication-grid>.rx-field-frequency,.rx-medication-grid>.rx-field-duration,.rx-medication-grid>.rx-field-quantity{grid-column:span 1}.rx-medication-grid>.rx-field-medication,.rx-medication-grid>.rx-field-brand,.rx-medication-grid>.rx-field-dosage_form,.rx-medication-grid>.rx-field-content,.rx-medication-grid>.rx-field-instructions{grid-column:1/-1}.rx-medication-grid input,.rx-medication-grid textarea{font-size:16px;min-height:38px;height:38px}.rx-card{padding:10px}.rx-catalog-result{grid-template-columns:1fr}.rx-catalog-result>div:last-child{text-align:left}}
@media(max-width:550px){.rx-medication-grid>label{grid-column:1/-1 !important}}
@media(max-width:650px){.clinical-dialog input[name=license],.clinical-dialog select[name=type],.clinical-dialog select[name=specialty],.clinical-dialog input[name=code],.clinical-dialog input[name=prognosis],.clinical-dialog input[name=professional_title],#specialty-fields input,#specialty-fields textarea,.clinical-dialog [data-field=priority],.clinical-dialog [data-field=route],.clinical-dialog [data-field=frequency],.clinical-dialog [data-field=duration],.clinical-dialog [data-field=quantity]{width:100%}}

/* Archivero Clínico Digital NOM-004 */
.document-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:16px 0;flex-wrap:wrap}
.document-filters{display:flex;gap:6px;flex-wrap:wrap}
.document-filter-btn{font-size:12px;padding:7px 13px;border-radius:var(--radius-md, 8px);border:1px solid var(--line);background:#fff;color:var(--muted);cursor:pointer;transition:all .15s}
.document-filter-btn:hover{background:var(--tint);color:var(--primary)}
.document-filter-btn.active{background:var(--primary);color:#fff;border-color:var(--primary);font-weight:600}
.document-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px;margin-top:16px}
.document-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg, 12px);overflow:hidden;box-shadow:0 3px 12px #163d390a;transition:border-color .2s,box-shadow .2s,transform .2s}
.document-card:hover{border-color:#b9d2ce;box-shadow:0 8px 24px #163d3916;transform:translateY(-2px)}
.document-thumb-wrap{position:relative;height:185px;background:#0f1d22;display:grid;place-items:center;overflow:hidden;cursor:pointer;user-select:none}
.document-thumb-wrap.is-pdf{background:linear-gradient(135deg,#f2f7f6,#e3eeec)}
.document-thumb-img{max-height:100%;max-width:100%;object-fit:contain;transition:transform .25s ease}
.document-thumb-wrap:hover .document-thumb-img{transform:scale(1.04)}
.document-thumb-pdf{display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--primary);font-weight:600}
.document-thumb-pdf .icon{width:48px;height:48px;stroke-width:1.4}
.document-thumb-overlay{position:absolute;inset:0;background:rgba(15,29,34,0.65);backdrop-filter:blur(2px);display:grid;place-items:center;opacity:0;transition:opacity .2s;color:#fff;font-size:13px;font-weight:600;gap:6px}
.document-thumb-wrap:hover .document-thumb-overlay{opacity:1}
.document-card-body{padding:14px 16px;flex:1;display:flex;flex-direction:column;gap:7px}
.document-card-title{font-size:14px;font-weight:600;color:var(--ink);margin:0;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.document-card-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;color:var(--muted);margin-top:2px}
.document-card-actions{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto;padding-top:10px;border-top:1px solid var(--line)}
.document-card-actions .actions-group{display:flex;gap:6px}
.document-card-actions button{font-size:11px;padding:6px 10px}
.document-card-actions .btn-delete{color:#a63838}
.document-card-actions .btn-delete:hover{background:#fff0ef;border-color:#e3a09c}

/* Visor Modal de Estudios */
#modal.document-viewer-dialog{width:min(1180px,calc(100vw - 30px));max-width:1180px;height:min(92vh,850px);border-radius:var(--radius-xl, 16px);display:flex;flex-direction:column;overflow:hidden}
#modal.document-viewer-dialog .modal-header{flex-shrink:0;padding:16px 22px;border-bottom:1px solid var(--line)}
#modal.document-viewer-dialog .document-viewer-body{flex:1;min-height:0;background:#0c171b;display:flex;align-items:center;justify-content:center;position:relative;overflow:auto}
#modal.document-viewer-dialog .document-viewer-body.is-pdf{background:#525659}
.document-viewer-img{max-height:100%;max-width:100%;object-fit:contain;transition:transform .2s ease;user-select:none}
.document-viewer-frame{width:100%;height:100%;border:0;display:block}
.document-viewer-controls{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);display:flex;gap:8px;background:rgba(20,40,46,0.85);backdrop-filter:blur(8px);padding:6px 10px;border-radius:30px;border:1px solid rgba(255,255,255,0.15);box-shadow:0 8px 24px rgba(0,0,0,0.3)}
.document-viewer-controls button{background:transparent;border:0;color:#fff;font-size:12px;padding:6px 10px;border-radius:var(--radius-pill, 999px);display:flex;align-items:center;gap:5px;cursor:pointer}
.document-viewer-controls button:hover{background:rgba(255,255,255,0.18)}

/* Formulario de carga con drag-and-drop */
.upload-dropzone{border:2px dashed #b8cecb;border-radius:var(--radius-lg, 12px);padding:26px 18px;text-align:center;background:var(--bg, #f3f7f6);cursor:pointer;transition:all .2s}
.upload-dropzone:hover,.upload-dropzone.drag-over{border-color:var(--primary);background:var(--tint)}
.upload-dropzone .icon{width:36px;height:36px;color:var(--primary);margin-bottom:8px}
.upload-dropzone p{font-size:13px;margin:0 0 5px;color:var(--ink);font-weight:600}
.upload-dropzone small{font-size:11px;color:var(--muted)}
.upload-file-preview{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;background:#fff;border:1px solid var(--line);border-radius:var(--radius-md, 8px);margin-top:10px;font-size:12px}

#modal.drive-structure-dialog{width:min(1240px,calc(100vw - 24px));max-width:1240px;height:min(90vh,840px);max-height:min(90vh,840px);display:flex;flex-direction:column;overflow:hidden}
#modal.drive-structure-dialog #modal-body{height:100%;display:flex;flex-direction:column;flex:1 1 auto;min-height:0;overflow:hidden}
#modal.drive-structure-dialog .modal-header{flex-shrink:0;display:flex;flex-direction:column;align-items:stretch;padding:16px 24px 14px;background:#fff;border-bottom:1px solid var(--line);gap:12px}
.drive-modal-header-top{display:flex;align-items:flex-start;justify-content:space-between;width:100%}
#modal.drive-structure-dialog .drive-modal-tabs{display:flex!important;width:100%!important;box-sizing:border-box!important;align-items:center;justify-content:flex-start!important;gap:5px;margin:0;padding:5px;background:var(--tint-subtle, var(--bg));border:1px solid var(--line);border-radius:var(--radius-lg, 12px);box-shadow:inset 0 1px 2px color-mix(in srgb, var(--ink) 4%, transparent);overflow-x:auto;flex-shrink:0;scrollbar-width:none}
#modal.drive-structure-dialog .drive-modal-tabs::-webkit-scrollbar{display:none}
#modal.drive-structure-dialog .drive-modal-tabs button{display:inline-flex;align-items:center;gap:8px;padding:8px 18px;font-size:13px;font-weight:600;color:var(--muted);background:transparent;border:1px solid transparent!important;border-radius:var(--radius-md, 8px);cursor:pointer;white-space:nowrap;line-height:1.35;transition:all .16s ease-in-out;flex-shrink:0!important}
#modal.drive-structure-dialog .drive-modal-tabs button .icon{width:16px;height:16px;stroke:var(--muted);transition:stroke .16s ease-in-out;flex-shrink:0}
#modal.drive-structure-dialog .drive-modal-tabs button:hover{background:rgba(255,255,255,0.78);color:var(--ink);border-color:rgba(255,255,255,0.9)!important;box-shadow:var(--shadow-sm)}
#modal.drive-structure-dialog .drive-modal-tabs button:hover .icon{stroke:var(--ink)}
#modal.drive-structure-dialog .drive-modal-tabs button.active{background:#ffffff!important;color:var(--primary-dark)!important;font-weight:700;border-color:color-mix(in srgb,var(--primary) 28%,var(--line))!important;box-shadow:var(--shadow-sm)}
#modal.drive-structure-dialog .drive-modal-tabs button.active .icon{stroke:var(--primary)}
#modal.drive-structure-dialog .modal-content{height:100%;display:flex;flex-direction:column;flex:1 1 auto;min-height:0;overflow:hidden;border-radius:0 0 14px 14px;background:var(--bg)!important}
#modal.drive-structure-dialog .modal-scroll-body{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-gutter:stable;padding:20px 24px;background:var(--bg)!important}
#modal.drive-structure-dialog .form-actions.drive-modal-footer{flex-shrink:0;position:relative;display:flex;justify-content:space-between;align-items:center;gap:14px;padding:14px 24px;margin:0;border-top:1px solid var(--line);background:var(--bg, #f3f7f6);border-radius:0 0 14px 14px;z-index:10;box-shadow:0 -4px 14px rgba(18,48,44,0.04)}
#modal.drive-structure-dialog .drive-footer-buttons{display:flex;align-items:center;gap:10px;margin-left:auto}
#modal.drive-structure-dialog .drive-footer-error{font-size:12px;color:var(--danger,#b83232);font-weight:600;margin:0;max-width:60%}
@media(max-width:760px){
  #modal.drive-structure-dialog{width:calc(100vw - 16px);height:calc(100vh - 20px);max-height:calc(100vh - 20px)}
  #modal.drive-structure-dialog .modal-scroll-body{padding:14px 16px}
  #modal.drive-structure-dialog .form-actions.drive-modal-footer{padding:12px 16px;flex-direction:column;align-items:stretch;gap:10px}
  #modal.drive-structure-dialog .drive-footer-buttons{width:100%;justify-content:flex-end}
  #modal.drive-structure-dialog .drive-footer-error{max-width:100%}
}
.drive-struct-account-card{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;background:var(--tint);border:1px solid #c2dbd7;border-radius:var(--radius-lg, 12px);padding:12px 16px;margin-bottom:14px}
.drive-struct-account-info{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.drive-struct-account-actions{display:flex;align-items:center;gap:8px}
.drive-struct-account-actions button,.drive-struct-account-actions .button{padding:6px 12px;font-size:12px;height:auto}
.drive-struct-layout{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:12px;align-items:start}
@media(max-width:820px){.drive-struct-layout{grid-template-columns:1fr;align-items:start}}
.drive-struct-section{display:flex;flex-direction:column;gap:14px;min-width:0;height:auto}
.drive-struct-section.is-preview-col{position:sticky;top:10px;align-self:start}
@media(max-width:820px){.drive-struct-section.is-preview-col{position:static}}
.drive-struct-field{display:flex;flex-direction:column;gap:6px}
.drive-struct-field label{font-size:12px;font-weight:600;color:var(--ink)}
.drive-struct-field small{font-size:11px;color:var(--muted);margin-top:-2px}
.drive-tree-preview-box{background:radial-gradient(circle at 85% 15%,#132a30 0%,#091518 100%);color:#e2ecf0;border-radius:var(--radius-lg, 12px);padding:14px;border:1px solid rgba(45,212,191,0.18);display:flex;flex-direction:column;gap:10px;box-shadow:0 8px 24px rgba(7,24,27,0.35),inset 0 1px 0 rgba(255,255,255,0.06);flex:0 0 auto;height:auto}
.drive-tree-preview-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:10px;border-bottom:1px solid rgba(255,255,255,0.08);flex-shrink:0;gap:8px}
.drive-tree-title-group{display:flex;align-items:center;gap:8px;font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#5eead4}
.drive-tree-title-group .icon{width:16px;height:16px;color:#2dd4bf}
.drive-tree-header-actions{display:inline-flex;align-items:center;gap:7px}
.drive-tree-toggle-btn{display:inline-flex;align-items:center;gap:4px;background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.16);color:var(--line, #e2eae9);font-size:10.5px;font-weight:600;padding:2px 8px;border-radius:var(--radius-sm, 6px);cursor:pointer;line-height:1.3;transition:all .15s ease}
.drive-tree-toggle-btn:hover{background:rgba(255,255,255,0.16);color:#fff;border-color:rgba(255,255,255,0.28)}
.drive-tree-toggle-btn .icon{width:12px;height:12px;transition:transform .15s ease}
.drive-tree-live-badge{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:600;color:#a7f3d0;background:rgba(16,185,129,0.15);border:1px solid rgba(16,185,129,0.3);padding:2px 8px;border-radius:var(--radius-pill, 999px)}
.drive-tree-view{display:flex;flex-direction:column;gap:2px;flex:0 0 auto;height:auto;min-height:160px;max-height:480px;overflow-y:auto;overflow-x:auto;padding:4px 6px 4px 2px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,0.2) transparent}
.drive-tree-view::-webkit-scrollbar{width:5px;height:5px}
.drive-tree-view::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.2);border-radius:var(--radius-xs, 4px)}
.tree-node{position:relative;margin:2px 0}
.tree-branch{position:relative;margin-left:11px;padding-left:14px;border-left:1px dashed rgba(255,255,255,0.16);transition:all .15s ease}
.tree-node.is-collapsed > .tree-branch{display:none!important}
.tree-node.is-collapsed > .tree-node-content .tree-chevron .icon{transform:rotate(-90deg)}
.tree-branch > .tree-node::before{content:"";position:absolute;left:-14px;top:13px;width:10px;height:1px;border-top:1px dashed rgba(255,255,255,0.16)}
.tree-node-content{display:flex;align-items:center;gap:6px;padding:3.5px 8px;border-radius:var(--radius-sm, 6px);font-size:12px;line-height:1.4;color:#e2ecf0;transition:background .15s ease;min-width:0;white-space:nowrap;user-select:none}
.tree-node:not(.is-file) > .tree-node-content{cursor:pointer}
.tree-node-content:hover{background:rgba(255,255,255,0.08)}
.tree-chevron{display:inline-flex;align-items:center;justify-content:center;width:13px;height:13px;color:var(--muted, #526b70);flex-shrink:0;transition:transform .15s ease}
.tree-chevron .icon{width:11px;height:11px;transition:transform .15s ease}
.tree-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.tree-icon .icon{width:15px;height:15px}
.tree-icon.is-root{color:#2dd4bf}
.tree-icon.is-patient{color:#38bdf8}
.tree-icon.is-time{color:#fbbf24}
.tree-icon.is-cat{color:#fcd34d}
.tree-icon.is-file{color:var(--muted, #526b70)}
.tree-label{font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:0 1 auto}
.tree-label.is-root{color:#5eead4;font-weight:700}
.tree-label.is-patient{color:#bae6fd;font-weight:600}
.tree-label.is-time{color:#fde68a;font-weight:600}
.tree-label.is-cat{color:#fef08a;font-weight:500}
.tree-label.is-filename{color:var(--line, #e2eae9);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:11px}
.tree-tag{flex-shrink:0;margin-left:6px;font-size:10px;font-weight:600;padding:1px 6px;border-radius:var(--radius-xs, 4px);letter-spacing:.02em}
.tree-tag.is-root{background:rgba(45,212,191,0.12);color:#2dd4bf;border:1px solid rgba(45,212,191,0.25)}
.tree-tag.is-patient{background:rgba(56,189,248,0.12);color:#38bdf8;border:1px solid rgba(56,189,248,0.25)}
.tree-tag.is-time{background:rgba(251,191,36,0.12);color:#fbbf24;border:1px solid rgba(251,191,36,0.25)}
.tree-file-ext{margin-left:6px;flex-shrink:0;background:rgba(255,255,255,0.08);color:var(--muted, #526b70);font-size:9px;font-weight:700;padding:1px 5px;border-radius:var(--radius-xs, 4px);letter-spacing:.04em}
.drive-tree-preview-footer{display:flex;align-items:center;justify-content:space-between;gap:7px;font-size:11px;line-height:1.4;color:#8fa7a3;padding-top:8px;border-top:1px solid rgba(255,255,255,0.06);flex-shrink:0}
.drive-tree-preview-footer .footer-left{display:flex;align-items:center;gap:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.drive-tree-preview-footer .icon{width:14px;height:14px;flex-shrink:0;color:#2dd4bf}
.drive-tree-preview-footer .tree-badge{background:rgba(45,212,191,0.12);color:#5eead4;border:1px solid rgba(45,212,191,0.25);font-size:9.5px;font-weight:700;padding:1px 6px;border-radius:var(--radius-xs, 4px);white-space:nowrap}

/* Tarjetas de Automatización y Custodia simétricas con el resto del modal */
.drive-auto-grid{display:flex;flex-direction:column;gap:8px}
.drive-auto-item{display:flex;align-items:flex-start;gap:10px;background:var(--bg, #f3f7f6);border:1px solid var(--line, #e2eae9);border-radius:var(--radius-md, 8px);padding:9px 11px;font-size:11.5px;line-height:1.45;color:var(--ink)}
.drive-auto-icon{width:26px;height:26px;border-radius:var(--radius-sm, 6px);display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px}
.drive-auto-icon.is-note{background:#e0f2fe;color:#0284c7}
.drive-auto-icon.is-wa{background:#dcfce7;color:#16a34a}
.drive-auto-icon .icon{width:14px;height:14px}
.drive-auto-text{flex:1;min-width:0;overflow-wrap:break-word}
.drive-auto-text strong{display:block;color:var(--ink);font-size:11.5px;margin-bottom:2px}

.drive-custody-body{display:flex;flex-direction:column;gap:8px;font-size:11.5px;line-height:1.45;color:var(--ink-secondary, #3d585c)}
.drive-custody-body p{margin:0;overflow-wrap:break-word}
.drive-custody-badge-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}
.drive-custody-pill{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:600;color:var(--primary-dark);background:var(--tint);border:1px solid #c2dbd7;padding:3px 8px;border-radius:var(--radius-sm, 6px)}
.drive-custody-pill .icon{width:12px;height:12px;color:var(--primary)}

.chip-grid{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  max-height:122px;
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior:contain;
  padding:2px 4px 2px 2px;
  scrollbar-width:thin;
  scrollbar-color:#c2dbd7 transparent;
}
.chip-grid::-webkit-scrollbar{width:5px}
.chip-grid::-webkit-scrollbar-thumb{background:#c2dbd7;border-radius:var(--radius-xs, 4px)}
.chip-grid::-webkit-scrollbar-thumb:hover{background:#a1c4be}
.chip-item{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:var(--radius-sm, 6px);background:var(--tint);border:1px solid #c2dbd7;font-size:12px;font-weight:500;color:var(--ink);cursor:pointer;user-select:none;transition:all .15s}
.chip-item:hover{border-color:var(--primary);background:#edf6f5}
.chip-item input[type="checkbox"]{accent-color:var(--primary);margin:0;cursor:pointer}
.chip-item-label{flex:1;white-space:nowrap}
.chip-item-actions{display:inline-flex;align-items:center;gap:3px;margin-left:4px}
.chip-item .btn-edit-chip,
.chip-item .btn-remove-chip{border:0;background:transparent;padding:2px 4px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-xs, 4px);line-height:1;transition:all .12s}
.chip-item .btn-edit-chip{color:#557876;opacity:0.75}
.chip-item .btn-edit-chip:hover{background:rgba(13,148,136,0.15);color:var(--primary-dark);opacity:1}
.chip-item .btn-edit-chip .icon{width:12px;height:12px}
.chip-item .btn-remove-chip{color:#984444;opacity:0.75;font-size:14px;font-weight:bold}
.chip-item .btn-remove-chip:hover{background:#ffdcd9;color:#782222;opacity:1}
.chip-item.is-active-editing{border-color:#2563eb;background:#eff6ff;color:#1e40af;box-shadow:0 0 0 2px rgba(37,99,235,0.2)}

/* Caja fija y estable para Agregar / Renombrar carpetas */
.cat-action-box{margin-top:8px;background:#f9fbfb;border:1px solid #c8dedb;border-radius:var(--radius-md, 8px);padding:8px 10px;display:flex;flex-direction:column;gap:6px;transition:border-color .15s,background-color .15s,box-shadow .15s}
.cat-action-box.is-renaming{background:#f0f7ff;border-color:#93c5fd;box-shadow:0 0 0 1px #93c5fd}
.cat-action-header{display:flex;align-items:center;justify-content:space-between;font-size:11.5px;color:#1e40af;font-weight:600}
.cat-action-header .cat-action-target{display:inline-flex;align-items:center;gap:5px}
.cat-action-header .icon{width:13px;height:13px}
.cat-action-row{display:flex;gap:6px;align-items:center}
.cat-action-row input{flex:1;font-size:12px;padding:6px 10px;height:auto;border-radius:var(--radius-sm, 6px);font-family:inherit}
.cat-action-row button,.cat-action-row .button{padding:6px 12px;font-size:12px;height:auto;display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.drive-section-switcher{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}
.drive-section-switcher button,.drive-section-switcher .button{padding:6px 12px;font-size:12px;font-weight:600;border-radius:var(--radius-md, 8px);display:inline-flex;align-items:center;gap:6px;transition:all .15s;border:1px solid #c8dedb;background:var(--bg, #f3f7f6);color:var(--ink-secondary, #3d585c)}
.drive-section-switcher button:hover{background:var(--tint, #e7f5f3);color:var(--primary-dark)}
.drive-section-switcher button .icon{width:13px;height:13px}
.drive-section-switcher button.is-active-sec{background:var(--primary)!important;color:#fff!important;border-color:var(--primary-dark)!important;box-shadow:0 1px 3px rgba(8,126,133,0.25)}
.drive-folder-desc-table{display:flex;flex-direction:column;gap:6px;margin-top:8px;max-height:220px;overflow-y:auto;scrollbar-width:thin;padding-right:2px}
.drive-folder-desc-item{display:flex;flex-direction:column;gap:5px;padding:8px 10px;background:var(--bg, #f3f7f6);border:1px solid var(--line, #e2eae9);border-radius:var(--radius-md, 8px);font-size:11.5px;transition:all .15s}
.drive-folder-desc-item:hover{background:var(--tint, #e7f5f3);border-color:var(--line, #e2eae9)}
.drive-folder-desc-header{display:flex;align-items:center;justify-content:space-between;gap:8px}
.drive-folder-desc-header strong{color:var(--ink);display:inline-flex;align-items:center;gap:5px;font-size:12px}
.drive-folder-desc-header strong .icon{width:13px;height:13px;color:var(--primary)}
.drive-folder-desc-body{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.drive-folder-desc-body .desc-text{color:var(--ink-secondary, #3d585c);font-size:11px;line-height:1.45;flex:1}
.drive-folder-desc-body .btn-edit-desc{background:none;border:none;color:var(--primary);cursor:pointer;padding:2px 6px;border-radius:var(--radius-xs, 4px);font-size:11px;display:inline-flex;align-items:center;gap:3px;font-weight:600;white-space:nowrap}
.drive-folder-desc-body .btn-edit-desc:hover{background:rgba(8,126,133,0.1)}
.drive-folder-desc-edit-box{display:flex;flex-direction:column;gap:6px;margin-top:4px}
.drive-folder-desc-edit-box textarea{width:100%;font-size:11.5px;padding:6px 8px;border-radius:var(--radius-sm, 6px);border:1px solid var(--muted, #526b70);resize:vertical;min-height:50px;font-family:inherit;box-sizing:border-box}
.drive-folder-desc-edit-actions{display:flex;justify-content:flex-end;gap:6px}
.drive-folder-desc-edit-actions button{padding:4px 10px;font-size:11px;height:auto}

/* Tarjetas estructuradas para el modal de Drive */
.drive-struct-card{background:#ffffff;border:1px solid #d5e5e2;border-radius:var(--radius-lg, 12px);padding:13px 15px;display:flex;flex-direction:column;gap:12px;box-shadow:0 1px 3px rgba(18,56,53,0.03);min-width:0;box-sizing:border-box;overflow:hidden}
.drive-card-title{display:flex;align-items:center;gap:7px;font-size:11.5px;font-weight:700;color:var(--primary-dark,#0f766e);text-transform:uppercase;letter-spacing:.04em;padding-bottom:6px;border-bottom:1px solid #edf4f2}
.drive-card-title .icon{width:15px;height:15px;color:var(--primary)}

/* Selector de extensiones en cuadrícula 2x2 simétrica que cabe perfectamente en la tarjeta */
.drive-ext-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;width:100%;box-sizing:border-box}

.drive-ext-card{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:8px;
  padding:8px 11px;
  background:#fbfdfc;
  border:1px solid #c8dedb;
  border-radius:var(--radius-md, 8px);
  cursor:pointer;
  user-select:none;
  transition:all .18s ease;
  white-space:nowrap;
  box-shadow:0 1px 2px rgba(18,56,53,0.03);
  box-sizing:border-box;
  min-width:0;
}
.drive-ext-card:hover{
  border-color:var(--primary);
  background:#f2faf8;
  transform:translateY(-1px);
  box-shadow:0 2px 6px rgba(18,56,53,0.07);
}
.drive-ext-card input[type="checkbox"]{
  accent-color:var(--primary);
  margin:0;
  cursor:pointer;
  width:15px;
  height:15px;
  flex-shrink:0;
}
.drive-ext-tag{
  font-size:11px;
  font-weight:700;
  letter-spacing:.02em;
  padding:2px 6px;
  border-radius:var(--radius-xs, 4px);
  line-height:1.2;
  white-space:nowrap;
}
.drive-ext-tag.is-pdf{background:var(--danger-tint, #fef2f2);color:var(--danger-dark, #b91c1c);border:1px solid rgba(185,28,28,0.18)}
.drive-ext-tag.is-jpg{background:#fef3c7;color:#b45309;border:1px solid rgba(180,83,9,0.18)}
.drive-ext-tag.is-png{background:#e0f2fe;color:#0369a1;border:1px solid rgba(3,105,161,0.18)}
.drive-ext-tag.is-webp{background:#dcfce7;color:#15803d;border:1px solid rgba(21,128,61,0.18)}

.drive-ext-label{
  font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;
  font-size:11px;
  color:var(--ink-secondary, #3d585c);
  font-weight:600;
  white-space:nowrap;
}
.drive-ext-card.is-active,
.drive-ext-card:has(input:checked){
  border-color:var(--primary);
  background:#f0fdf9;
  box-shadow:0 0 0 1px var(--primary),0 2px 6px rgba(13,148,136,0.08);
}


/* Sección de estudios digitales aportados en la nota clínica */
.note-studies-box{display:flex;flex-direction:column;gap:12px;margin:8px 0 16px}
.note-study-dropzone{border:2px dashed #b4ccc7;border-radius:var(--radius-lg, 12px);padding:22px 16px;text-align:center;background:#fbfdfc;cursor:pointer;transition:all .2s;outline:none}
.note-study-dropzone:hover,.note-study-dropzone.drag-over,.note-study-dropzone:focus-visible{border-color:var(--primary);background:var(--tint)}
.note-study-dropzone .icon{width:32px;height:32px;color:var(--primary);margin-bottom:6px}
.note-study-dropzone p{font-size:13px;margin:0 0 4px;font-weight:600;color:var(--ink)}
.note-study-dropzone small{font-size:11px;color:var(--muted)}
#note-study-picker{display:none!important;position:absolute!important;width:0!important;height:0!important;opacity:0!important;pointer-events:none!important}
.note-studies-list{display:flex;flex-direction:column;gap:10px}
.note-study-card{display:flex;gap:14px;background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg, 12px);padding:12px 14px;align-items:stretch;transition:box-shadow .2s,border-color .2s}
.note-study-card:hover{border-color:#b4ccc7;box-shadow:0 3px 10px rgba(18,48,44,0.06)}
.note-study-card.is-uploading{opacity:0.85;background:#f8fbfb}
.note-study-thumb-col{width:84px;height:84px;flex-shrink:0}
.note-study-thumb-wrap{position:relative;width:100%;height:100%;border-radius:var(--radius-md, 8px);overflow:hidden;background:#0d1a1e;display:grid;place-items:center;cursor:pointer;border:1px solid rgba(0,0,0,0.08);outline:none}
.note-study-thumb-wrap:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.note-study-thumb-wrap.is-pdf{background:linear-gradient(135deg,#edf4f2,#dae8e5)}
.note-study-img{width:100%;height:100%;object-fit:cover;display:block}
.note-study-badge-thumb{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;width:100%;height:100%;font-size:10px;font-weight:700;letter-spacing:.03em;text-align:center;padding:4px}
.note-study-badge-thumb .icon{width:26px;height:26px}
.note-study-badge-thumb.is-video{background:linear-gradient(135deg,#132832,#0c1920);color:#38bdf8}
.note-study-badge-thumb.is-audio{background:linear-gradient(135deg,#1a202c,#101622);color:#a78bfa}
.note-study-badge-thumb.is-table{background:linear-gradient(135deg,#0d291e,#081c14);color:#34d399}
.note-study-badge-thumb.is-dicom{background:linear-gradient(135deg,#1f1c2e,#110e1c);color:#c084fc}
.note-study-badge-thumb.is-archive{background:linear-gradient(135deg,#2e2417,#1c150c);color:#fbbf24}
.note-study-badge-thumb.is-pdf{background:linear-gradient(135deg,#2b1517,#1b0b0d);color:#f87171}
.note-study-badge-thumb.is-doc{background:linear-gradient(135deg,#12242b,#0a151a);color:#67e8f9}
.note-study-thumb-hover{position:absolute;inset:0;background:rgba(12,24,28,0.7);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:10px;font-weight:600;opacity:0;transition:opacity .18s}
.note-study-thumb-wrap:hover .note-study-thumb-hover,.note-study-thumb-wrap:focus-visible .note-study-thumb-hover{opacity:1}
.note-study-thumb-hover .icon{width:18px;height:18px}
.note-study-details-col{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:space-between;gap:6px}
.note-study-header-row{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.note-study-name-wrapper{display:flex;align-items:center;gap:6px;flex:1;min-width:200px}
.note-study-name-input{font-size:13px;font-weight:700;color:var(--ink);background:#fcfefd;border:1px solid #c9dcd8;border-radius:var(--radius-sm, 6px);padding:4px 8px;width:100%;box-sizing:border-box;transition:all .15s}
.note-study-name-input:hover{background:#fff;border-color:#92c9be}
.note-study-name-input:focus{background:#fff;border-color:var(--primary);outline:none;box-shadow:0 0 0 2px var(--tint)}
.note-study-edit-icon{color:#6e9c93;display:flex;align-items:center;flex-shrink:0}
.note-study-edit-icon .icon{width:13px;height:13px}
.note-study-badges-row{display:flex;align-items:center;gap:6px;flex-shrink:0}
.note-study-filename{font-size:13px;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:320px}
.note-study-spinner{font-size:11px;color:var(--primary);font-weight:600;animation:pulse 1.4s infinite}
.note-study-desc-label{display:flex;flex-direction:column;gap:3px;margin:2px 0}
.note-study-desc-hint{font-size:10.5px;color:var(--muted);font-weight:500}
.note-study-desc-input{width:100%;font-size:12px;padding:6px 10px;border:1px solid #c9dcd8;border-radius:var(--radius-sm, 6px);outline:none;background:#fff;transition:border-color .15s,box-shadow .15s}
.note-study-desc-input:focus{border-color:var(--primary);box-shadow:0 0 0 2px var(--tint)}
.note-study-actions-row{display:flex;justify-content:space-between;align-items:center;margin-top:2px}
.note-study-actions-row button{font-size:11px;padding:4px 8px}

/* Visor de alta resolución interactivo (Lightbox de estudios) */
dialog.study-lightbox,
.study-lightbox{position:fixed;inset:0;width:100vw;height:100vh;max-width:100vw;max-height:100vh;margin:0;padding:16px;border:0;background:transparent;box-sizing:border-box;z-index:1950;display:none;align-items:center;justify-content:center}
dialog.study-lightbox:not([open]){display:none!important}
dialog.study-lightbox[open]{display:flex!important;align-items:center;justify-content:center}
dialog.study-lightbox::backdrop{background:rgba(8,18,22,0.85);backdrop-filter:blur(4px);animation:lightboxFadeIn .2s ease-out}
.study-lightbox[hidden]{display:none!important}
.study-lightbox-backdrop{position:absolute;inset:0;background:rgba(8,18,22,0.85);backdrop-filter:blur(4px);animation:lightboxFadeIn .2s ease-out}
.study-lightbox-card{position:relative;z-index:2;width:min(1100px,100%);height:min(90vh,840px);background:#0e1a1e;color:#e6f1ef;border-radius:var(--radius-xl, 16px);border:1px solid rgba(255,255,255,0.12);box-shadow:0 24px 80px rgba(0,0,0,0.65);display:flex;flex-direction:column;overflow:hidden;animation:lightboxZoomIn .22s cubic-bezier(0.16,1,0.3,1)}
.study-lightbox-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:14px 20px;border-bottom:1px solid rgba(255,255,255,0.09);background:rgba(20,38,44,0.6)}
.study-lightbox-meta h3{margin:0 0 2px;font-size:16px;font-weight:700;color:#fff}
.study-lightbox-meta small{font-size:11.5px;color:#94b8b2}
.study-lightbox-desc{margin:6px 0 0;font-size:12.5px;color:#7dd3fc;line-height:1.45;background:rgba(125,211,252,0.1);padding:4px 10px;border-radius:var(--radius-sm, 6px);display:inline-block}
.study-lightbox-actions{display:flex;align-items:center;gap:10px}
.study-lightbox-actions .button{font-size:12px;color:#e6f1ef;border-color:rgba(255,255,255,0.2)}
.study-lightbox-actions .button:hover{background:rgba(255,255,255,0.1)}
.study-lightbox-close:hover{background:rgba(255,255,255,0.16)}
/* Panel de ajustes diagnósticos manuales y retráctil */
.study-adjustment-panel{background:rgba(12,22,26,0.96);backdrop-filter:blur(12px);border-bottom:1px solid rgba(255,255,255,0.1);padding:12px 20px;z-index:20;display:flex;flex-direction:column;gap:10px;animation:lightboxFadeIn .2s ease-out}
.study-adjustment-panel.is-hidden{display:none!important}
.study-panel-top{display:flex;justify-content:space-between;align-items:center;gap:12px}
.study-panel-title{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:#fff}
.study-panel-actions{display:flex;align-items:center;gap:10px}
.study-sliders-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px 18px;padding:10px 14px;background:rgba(0,0,0,0.35);border-radius:var(--radius-lg, 12px);border:1px solid rgba(255,255,255,0.06)}
.study-slider-item{display:flex;flex-direction:column;gap:3px}
.study-slider-label{display:flex;justify-content:space-between;align-items:center;font-size:11.5px;color:#b0c9c4;font-weight:500}
.study-slider-label b{font-size:11px;color:#7dd3fc;font-variant-numeric:tabular-nums;font-weight:700}
.study-slider-item input[type="range"]{width:100%;height:5px;accent-color:var(--primary);cursor:pointer}
.study-filter-toggle-btn{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;padding:6px 14px;border-radius:var(--radius-pill, 999px);background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.2);color:#e6f1ef;cursor:pointer;transition:all .18s cubic-bezier(0.16,1,0.3,1)}
.study-filter-toggle-btn:hover{background:rgba(255,255,255,0.18);border-color:rgba(255,255,255,0.36);color:#fff}
.study-filter-toggle-btn.is-active{background:var(--primary)!important;color:#07171a!important;font-weight:700;border-color:var(--primary)!important;box-shadow:0 0 14px rgba(61,218,180,0.35)}
.study-filter-badge-dot{width:7px;height:7px;background:#3ddab4;border-radius:50%;display:inline-block;box-shadow:0 0 6px #3ddab4}
.study-filter-toggle-btn.is-active .study-filter-badge-dot{background:#07171a;box-shadow:0 0 4px rgba(0,0,0,0.4)}

.study-lightbox-stage{flex:1;min-height:0;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;background:#070f12}
.study-lightbox-stage.is-pdf{background:#383b3e}
.study-lightbox-viewport{width:100%;height:100%;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:16px;box-sizing:border-box;touch-action:none;user-select:none}
.study-lightbox-img{max-width:92%;max-height:92%;object-fit:contain;user-select:none;-webkit-user-drag:none;pointer-events:auto;box-shadow:0 6px 30px rgba(0,0,0,0.5);transform-origin:center center;will-change:transform}
.study-lightbox-frame{width:100%;height:100%;border:0;display:block}
.study-lightbox-media-wrap{display:flex;align-items:center;justify-content:center;width:100%;height:100%;padding:20px;box-sizing:border-box}
.study-lightbox-video{max-width:100%;max-height:100%;border-radius:var(--radius-lg, 12px);box-shadow:0 8px 32px rgba(0,0,0,0.6);background:#000;outline:none}
.study-lightbox-audio-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.12);border-radius:var(--radius-xl, 16px);padding:32px 28px;width:min(480px,90%);box-shadow:0 12px 40px rgba(0,0,0,0.5)}
.study-lightbox-audio-icon{width:64px;height:64px;border-radius:50%;background:rgba(167,139,250,0.15);color:#a78bfa;display:grid;place-items:center}
.study-lightbox-audio-icon .icon{width:34px;height:34px}
.study-lightbox-audio-card h4{margin:0;font-size:16px;color:#fff}
.study-lightbox-audio-card p{margin:0;font-size:12.5px;color:#94b8b2}
.study-lightbox-audio{width:100%;margin-top:8px}
.study-lightbox-doc-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.12);border-radius:var(--radius-xl, 16px);padding:34px 28px;width:min(520px,90%);box-shadow:0 12px 40px rgba(0,0,0,0.5)}
.study-lightbox-doc-badge{font-size:11px;font-weight:700;letter-spacing:.06em;background:rgba(61,218,180,0.15);color:#3ddab4;padding:4px 12px;border-radius:var(--radius-pill, 999px);border:1px solid rgba(61,218,180,0.3)}
.study-lightbox-doc-card h4{margin:0;font-size:17px;color:#fff;word-break:break-all}
.study-lightbox-doc-card small{font-size:12px;color:#94b8b2}
.study-lightbox-doc-desc{font-size:13px;color:#7dd3fc;background:rgba(125,211,252,0.1);padding:6px 14px;border-radius:var(--radius-md, 8px);max-width:100%;word-break:break-word}
.study-lightbox-doc-guide{font-size:12px;color:#b0bec5;line-height:1.5;max-width:420px;margin:4px 0}
.study-lightbox-doc-actions{margin-top:10px}
.study-lightbox-doc-actions .button{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;font-size:13px;font-weight:600}
.study-lightbox-controls{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:6px;background:rgba(18,36,42,0.92);backdrop-filter:blur(10px);padding:6px 14px;border-radius:30px;border:1px solid rgba(255,255,255,0.2);box-shadow:0 8px 24px rgba(0,0,0,0.5);z-index:10;user-select:none}
.study-lightbox-controls button{background:transparent;border:0;color:#fff;font-size:12.5px;font-weight:500;padding:6px 10px;border-radius:var(--radius-pill, 999px);display:flex;align-items:center;gap:6px;cursor:pointer;transition:background .15s;outline:none}
.study-lightbox-controls button:hover{background:rgba(255,255,255,0.22)}
.study-lightbox-controls button:active{transform:scale(0.96)}
.study-lightbox-controls .zoom-reset-btn{font-weight:700;min-width:46px;text-align:center;justify-content:center;background:rgba(255,255,255,0.1)}
.study-lightbox-controls .icon{width:15px;height:15px}

/* Visualización en la lectura de notas cerradas (readNote) */
.reader-studies-section{margin-top:14px;border-top:1px solid var(--line);padding-top:16px}
.reader-studies-section h3{font-size:14px;color:var(--primary);margin-bottom:12px}
.note-studies-grid-read{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:12px}
.note-study-card-read{display:flex;gap:12px;background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg, 12px);padding:10px;box-shadow:0 2px 6px rgba(18,48,44,0.04);transition:transform .15s,box-shadow .15s}
.note-study-card-read:hover{border-color:#b4ccc7;box-shadow:0 4px 14px rgba(18,48,44,0.08);transform:translateY(-1px)}
.note-study-thumb-read{width:76px;height:76px;flex-shrink:0;border-radius:var(--radius-md, 8px);overflow:hidden;background:#0d1a1e;position:relative;display:grid;place-items:center;cursor:pointer}
.note-study-thumb-read.is-pdf{background:linear-gradient(135deg,#edf4f2,#dae8e5)}
.note-study-thumb-read img{width:100%;height:100%;object-fit:cover;display:block}
.note-study-thumb-overlay{position:absolute;inset:0;background:rgba(12,24,28,0.72);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:9.5px;font-weight:600;opacity:0;transition:opacity .18s}
.note-study-thumb-read:hover .note-study-thumb-overlay,.note-study-thumb-read:focus-visible .note-study-thumb-overlay{opacity:1}
.note-study-thumb-overlay .icon{width:16px;height:16px}
.note-study-info-read{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:space-between;gap:4px}
.note-study-name-read{font-size:12.5px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.note-study-desc-read{font-size:11.5px;color:var(--ink);line-height:1.4;margin:2px 0;background:#f3f8f7;padding:3px 7px;border-radius:var(--radius-sm, 6px)}
.note-study-desc-read.muted{color:var(--muted);background:transparent;padding:0}
.note-study-meta-read{display:flex;justify-content:space-between;align-items:center;font-size:10.5px;color:var(--muted);margin-top:auto}
.note-study-actions-read{display:flex;align-items:center;gap:4px}
.note-study-actions-read button,.note-study-actions-read a{font-size:11px;padding:3px 7px}

@keyframes lightboxFadeIn{from{opacity:0}to{opacity:1}}
@keyframes lightboxZoomIn{from{opacity:0;transform:scale(0.96)}to{opacity:1;transform:scale(1)}}

/* Etiquetas de Seguimiento y Recordatorios de Tratamiento en Cronograma */
.note-treatment-timeline-wrap{margin-top:4px;padding-top:4px;border-top:1px dashed var(--line);display:flex;flex-direction:column;gap:3px}
.note-treatment-label{font-size:8.5px;font-weight:700;letter-spacing:.5px;color:var(--muted);text-transform:uppercase;display:flex;align-items:center;gap:4px}
.note-treatment-badges-list{display:flex;flex-wrap:wrap;gap:4px;align-items:center}
.note-treatment-badges-list .badge{white-space:normal;line-height:1.25;max-width:100%;word-break:break-word;font-size:9.5px;padding:2px 6px;border-radius:var(--radius-xs, 4px);transition:all .15s}
.treatment-badge-confirmed{background:#e3f5ec;color:#1e7e4e;border:1px solid #b6e4cc}
.badge.is-green{background:#e3f5ec;color:#1e7e4e;border:1px solid #b6e4cc}
.badge.is-yellow{background:#fff8e5;color:#926815;border:1px solid #fae29f}

/* Generador de Pauta y Frecuencia Estructurada */
.rx-freq-group{display:flex;flex-direction:column;gap:4px}
.rx-freq-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;align-items:flex-end}
.rx-freq-field{display:flex;flex-direction:column;gap:2px;margin:0}
.rx-freq-field-label{font-size:9.5px;font-weight:700;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.2px;text-transform:uppercase}
.rx-freq-cols select{width:100%!important;height:32px!important;min-height:32px!important;font-size:11px!important;font-weight:600!important;padding:2px 5px!important;border:1px solid var(--line)!important;border-radius:var(--radius-sm, 6px)!important;background:#fff!important;color:var(--ink)!important;cursor:pointer}
.rx-freq-cols select:focus{border-color:var(--primary)!important;outline:none!important}
.rx-freq-custom-input{margin-top:4px!important;height:30px!important;min-height:30px!important;font-size:11.5px!important}
.rx-freq-custom-wrap{margin-top:4px;display:flex;flex-direction:column;gap:5px;background:var(--tint-subtle);border:1px solid var(--line);border-radius:var(--radius-sm, 6px);padding:6px 8px}
.rx-field-frequency:has([data-choice option[value="custom"]:checked]){grid-column:span 4!important}
@media(max-width:768px){.rx-freq-cols{grid-template-columns:1fr;gap:4px}.rx-field-frequency:has([data-choice option[value="custom"]:checked]){grid-column:1/-1!important}}
.rx-reminder-box{grid-column:1/-1;margin-top:4px;padding:6px 10px;background:var(--tint-subtle);border:1px solid var(--line);border-radius:var(--radius-sm, 6px);transition:border-color .16s ease,background-color .16s ease,box-shadow .16s ease}
.rx-reminder-box.is-active{background:linear-gradient(145deg,#ffffff,var(--tint-subtle));border-color:#9fc9be;box-shadow:0 2px 6px rgba(18,48,44,0.04)}
.rx-reminder-config[hidden],.rx-reminder-box [hidden]{display:none!important}
.rx-reminder-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px;min-height:24px}
.rx-reminder-toggle-label{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:var(--primary-dark);font-size:11.5px;cursor:pointer;margin:0}
.rx-reminder-toggle-label svg{color:var(--primary);flex-shrink:0}
.rx-reminder-box input[type="checkbox"]{appearance:none!important;-webkit-appearance:none!important;width:28px!important;height:16px!important;background:color-mix(in srgb,var(--muted-light,#d1d5db) 60%,var(--line))!important;border:1px solid color-mix(in srgb,var(--line) 80%,#000)!important;border-radius:999px!important;position:relative!important;outline:none!important;cursor:pointer!important;transition:all .2s ease!important;flex-shrink:0!important;margin:0!important;display:inline-block!important;vertical-align:middle!important}.rx-reminder-box input[type="checkbox"]::before{content:""!important;position:absolute!important;top:1px!important;left:1px!important;width:12px!important;height:12px!important;border-radius:50%!important;background:#fff!important;box-shadow:0 1px 2px rgba(0,0,0,0.25)!important;transition:transform .2s cubic-bezier(0.34,1.56,0.64,1)!important}.rx-reminder-box input[type="checkbox"]:checked{background:linear-gradient(180deg,var(--primary-dark,#075f66) 0%,var(--primary,#087e85) 100%)!important;border-color:var(--primary-dark)!important}.rx-reminder-box input[type="checkbox"]:checked::before{transform:translateX(12px)!important}
.rx-reminder-head-actions{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}
.rx-panda-badge{display:inline-flex;align-items:center;gap:4px;background:var(--tint);color:var(--primary-dark);border:1px solid #b6ddd3;border-radius:var(--radius-pill, 999px);padding:2px 8px;font-size:10px;font-weight:600;letter-spacing:.15px}
.rx-panda-dot{width:5px;height:5px;border-radius:50%;background:var(--primary);box-shadow:0 0 0 2px #c2ebd5}
.rx-reminder-collapse-btn{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:600;padding:2px 8px;height:22px;line-height:1;color:var(--primary-dark);border:1px solid var(--line);border-radius:var(--radius-sm, 6px);background:#fff;cursor:pointer;transition:all .15s}
.rx-reminder-collapse-btn:hover{background:var(--tint);border-color:#9fc9be}
.rx-reminder-config{margin-top:6px;padding-top:6px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:6px}

.rx-config-compact-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:8px;align-items:stretch}
.rx-config-card{background:#ffffff;border:1px solid var(--line);border-radius:var(--radius-sm, 6px);padding:6px 9px;display:flex;flex-direction:column;gap:5px;justify-content:space-between}
.rx-config-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:4px;min-height:20px}
.rx-config-header-right{display:inline-flex;align-items:center;gap:4px;flex-wrap:wrap}
.rx-config-title{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:700;color:var(--ink)}
.rx-config-title svg{flex-shrink:0;color:var(--primary)}
.rx-config-sub{font-size:9.5px;color:var(--muted)}
.rx-sync-tag{font-size:9.5px;font-weight:600;padding:1px 6px;border-radius:var(--radius-pill, 999px);display:inline-flex;align-items:center;gap:3px;line-height:1.3}
.rx-sync-tag svg{flex-shrink:0}
.rx-sync-tag.is-synced{background:var(--tint);color:var(--primary-dark);border:1px solid #b5e4d7}
.rx-sync-tag.is-manual{background:var(--warning-tint);color:#8f5b0d;border:1px solid #f2d194}

.rx-slots-wrap{display:flex;flex-direction:column;gap:4px}
.rx-slots-grid{display:flex;flex-wrap:wrap;gap:5px;align-items:center}
.rx-time-slot{display:inline-flex;align-items:center;gap:4px;background:var(--tint-subtle);border:1px solid #cbe2dc;border-radius:var(--radius-sm, 6px);padding:2px 6px;transition:all .15s ease}
.rx-time-slot:focus-within{background:#ffffff;border-color:var(--primary);box-shadow:0 0 0 2px color-mix(in srgb, var(--primary) 16%, transparent)}
.rx-slot-label{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.2px;color:var(--primary-dark);white-space:nowrap}
.rx-slot-time-input{width:auto!important;min-width:70px!important;max-width:90px!important;height:22px!important;min-height:22px!important;padding:0 4px!important;margin:0!important;font-size:11px!important;font-weight:600!important;font-family:inherit!important;border:1px solid var(--line)!important;border-radius:var(--radius-xs, 4px)!important;background:#fff!important;color:var(--ink)!important;cursor:pointer}
.rx-slot-time-input:focus{border-color:var(--primary)!important;outline:none!important}
.rx-empty-chips{font-size:10px;color:var(--muted);font-style:italic}

.rx-reset-sync-btn{height:20px;padding:0 6px;font-size:9.5px;font-weight:600;color:var(--primary-dark);background:var(--tint);border:1px solid #9fc9be;border-radius:var(--radius-xs, 4px);cursor:pointer;display:inline-flex;align-items:center;gap:3px;transition:all .15s}
.rx-reset-sync-btn:hover{background:#d5efe9;border-color:var(--primary)}

.rx-stop-grid{display:flex;flex-direction:column;gap:4px}
.rx-stop-card{display:flex;align-items:center;gap:6px;padding:4px 8px;border:1px solid var(--line);background:var(--tint-subtle);border-radius:var(--radius-sm, 6px);cursor:pointer;transition:all .15s ease;margin:0;min-height:26px}
.rx-stop-card:hover{border-color:#9fc9be;background:#f2faf8}
.rx-stop-card:has(input:checked){border-color:var(--primary);background:var(--tint);box-shadow:0 1px 2px rgba(18,48,44,0.04)}
.rx-stop-body{display:flex;align-items:center;justify-content:space-between;gap:6px;flex:1;min-width:0}
.rx-stop-title-row{display:flex;align-items:center;justify-content:space-between;gap:6px;width:100%;min-width:0}
.rx-stop-badge{display:inline-flex;align-items:center;gap:3px;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;padding:1px 5px;border-radius:var(--radius-xs, 4px);flex-shrink:0}
.rx-stop-badge.duration{background:#e7f2fb;color:#17568b;border:1px solid #c2dcf2}
.rx-stop-badge.appointment{background:var(--tint);color:var(--primary-dark);border:1px solid #b5ded4}
.rx-stop-strong{font-size:10.5px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rx-app-tag{font-weight:700;color:var(--primary-dark)}
.rx-no-app-tag{font-weight:600;color:var(--muted);font-style:italic}
.rx-stop-text{font-size:9.5px;color:var(--muted);margin:0;line-height:1.35}

.rx-preview-section{display:flex;flex-direction:column;gap:4px}
.rx-preview-toggle-btn{font-size:9.5px;font-weight:600;padding:2px 7px;height:20px;min-height:20px;color:var(--primary-dark);border:1px solid var(--line);background:#ffffff;border-radius:var(--radius-xs, 4px);cursor:pointer;display:inline-flex;align-items:center;gap:4px;width:auto;transition:all .15s}
.rx-preview-toggle-btn:hover{background:var(--tint);border-color:#9fc9be}
.rx-preview-arrow{display:inline-flex;align-items:center;color:var(--primary)}
.rx-preview-bubble{background:#f3faf7;border:1px solid #b7dfd4;border-radius:var(--radius-sm, 6px);padding:6px 10px;color:var(--ink);font-size:10.5px;line-height:1.4}
.rx-preview-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:3px;padding-bottom:3px;border-bottom:1px solid #d5ece5;font-size:9.5px;font-weight:700;color:var(--primary-dark)}
.rx-preview-body{white-space:pre-wrap;word-break:break-word;font-size:10.5px;color:var(--ink)}
.rx-preview-footer{margin-top:4px;padding-top:3px;border-top:1px dashed #cbe6de;font-size:9px;color:var(--muted);display:flex;align-items:center;gap:4px}

/* Recordatorio y portal de servicios por WhatsApp (Panda Server) */
.service-reminder-box{grid-column:1/-1;margin-top:4px;padding:5px 9px;background:var(--tint-subtle);border:1px solid var(--line);border-radius:var(--radius-sm, 6px);display:flex;flex-direction:column;gap:4px;transition:all .16s ease}
.service-reminder-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px}
.service-reminder-toggle-label{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:var(--primary-dark);font-size:11px;cursor:pointer;margin:0}
.service-reminder-toggle-label svg{color:var(--primary);flex-shrink:0}
.service-reminder-toggle-label input[type="checkbox"]{appearance:none!important;-webkit-appearance:none!important;width:28px!important;height:16px!important;background:color-mix(in srgb,var(--muted-light,#d1d5db) 60%,var(--line))!important;border:1px solid color-mix(in srgb,var(--line) 80%,#000)!important;border-radius:999px!important;position:relative!important;outline:none!important;cursor:pointer!important;transition:all .2s ease!important;flex-shrink:0!important;margin:0!important;display:inline-block!important;vertical-align:middle!important}.service-reminder-toggle-label input[type="checkbox"]::before{content:""!important;position:absolute!important;top:1px!important;left:1px!important;width:12px!important;height:12px!important;border-radius:50%!important;background:#fff!important;box-shadow:0 1px 2px rgba(0,0,0,0.2)!important;transition:transform .2s cubic-bezier(0.34,1.56,0.64,1)!important}.service-reminder-toggle-label input[type="checkbox"]:checked{background:linear-gradient(180deg,var(--primary-dark,#075f66) 0%,var(--primary,#087e85) 100%)!important;border-color:var(--primary-dark)!important}.service-reminder-toggle-label input[type="checkbox"]:checked::before{transform:translateX(12px)!important}
.service-reminder-meta{display:inline-flex;align-items:center;gap:5px}
.service-panda-badge{display:inline-flex;align-items:center;gap:4px;background:var(--tint);color:var(--primary-dark);border:1px solid #b6ddd3;border-radius:var(--radius-pill, 999px);padding:1px 7px;font-size:9.5px;font-weight:600;letter-spacing:.15px}
.service-panda-dot{width:5px;height:5px;border-radius:50%;background:var(--primary);box-shadow:0 0 0 2px #c2ebd5}

/* Etiquetas y badges de Solicitud de Servicios y Estudios en Timeline */
.note-services-timeline-wrap{margin-top:4px;padding-top:4px;border-top:1px dashed var(--line);display:flex;flex-direction:column;gap:3px}
.note-services-label{font-size:8.5px;font-weight:700;letter-spacing:.5px;color:var(--muted);text-transform:uppercase;display:flex;align-items:center;gap:4px}
.note-services-list{display:flex;flex-direction:column;gap:4px}
.service-request-entry{display:flex;flex-direction:column;gap:3px;background:var(--bg, #f3f7f6);border:1px solid #e1ebe8;border-radius:var(--radius-sm, 6px);padding:3px 7px}
.service-request-header{display:flex;align-items:center;flex-wrap:wrap;gap:4px}
.service-name-badge{font-weight:600;font-size:9.5px;color:var(--ink);background:#f0f5f4;border:1px solid #d4e2df;border-radius:var(--radius-xs, 4px);padding:1px 5px}
.service-status-badge{font-size:9px;padding:1px 5px;border-radius:var(--radius-xs, 4px);font-weight:600}
.service-panda-pill{display:inline-flex;align-items:center;gap:3px;font-size:8.5px;background:#e3f5ec;color:#15693e;border:1px solid #b6e4cc;border-radius:var(--radius-pill, 999px);padding:1px 5px;font-weight:600}
.service-studies-tags{display:flex;flex-wrap:wrap;gap:4px;align-items:center;margin-top:1px}
.service-studies-tags.direct-studies{margin-top:1px}

.study-timeline-badge{all:unset;display:inline-flex;align-items:center;gap:4px;font-size:9.5px;font-weight:500;padding:2px 6px;border-radius:var(--radius-xs, 4px);cursor:pointer;transition:transform .15s,box-shadow .15s,background-color .15s;background:#fff;border:1px solid var(--line);color:var(--ink);box-sizing:border-box}
.study-timeline-badge:hover{transform:translateY(-1px);box-shadow:0 2px 6px rgba(18,48,44,0.08);filter:brightness(0.97)}
.study-timeline-badge:focus-visible{outline:2px solid var(--primary);outline-offset:1px}
.study-timeline-badge .icon{width:11px;height:11px;flex-shrink:0}
.study-timeline-badge span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}
.study-timeline-badge .study-badge-size{font-size:8.5px;opacity:.75;margin-left:2px}

.study-timeline-badge.is-image{background:#eef8f5;border-color:#a8d8cd;color:#0f5143}
.study-timeline-badge.is-pdf{background:#fdf2f2;border-color:#f5c2c2;color:#8a2323}
.study-timeline-badge.is-table{background:#eef4fc;border-color:#bad2f5;color:#184c8a}
.study-timeline-badge.is-video,.study-timeline-badge.is-dicom{background:#f1edfc;border-color:#cebef7;color:#432b8a}
.study-timeline-badge.is-audio{background:#fdf7eb;border-color:#f6dd9f;color:#7f5813}
.study-timeline-badge.is-archive,.study-timeline-badge.is-doc,.study-timeline-badge.is-other{background:#f4f6f6;border-color:#d9dfdf;color:#3b4c4c}

/* Formularios de seguimiento en nota clínica */
.followup-forms-builder{grid-column:1/-1;width:100%;display:flex;flex-direction:column;gap:12px;box-sizing:border-box}
.followup-forms-list{display:flex;flex-direction:column;gap:12px;width:100%;box-sizing:border-box}
.followup-form-card{width:100%;box-sizing:border-box;background:#fbfdfc;border:1px solid #dce8e5;border-radius:var(--radius-md, 8px);padding:12px 14px;display:flex;flex-direction:column;gap:10px;box-shadow:0 1px 3px rgba(18,48,44,0.04)}
.followup-form-header{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%}
.followup-form-title-wrap{display:flex;align-items:center;gap:8px;flex:1}
.followup-form-num-badge{font-size:10px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;background:#eaf4f1;color:var(--primary);border:1px solid #c0ded6;border-radius:var(--radius-xs, 4px);padding:3px 6px;white-space:nowrap;user-select:none}
.followup-form-title-input{font-size:13px!important;font-weight:700!important;color:var(--ink);background:#fff;border:1px solid #c9ded9;border-radius:var(--radius-sm, 6px);padding:5px 10px;flex:1;box-sizing:border-box}
.followup-form-title-input:focus{border-color:var(--primary);outline:none}
.followup-btn-remove{background:#fff;border:1px solid #eed6d6;color:#b23b3b;font-size:11px;font-weight:600;cursor:pointer;padding:4px 9px;border-radius:var(--radius-sm, 6px);display:inline-flex;align-items:center;gap:4px;transition:all .15s;white-space:nowrap;flex-shrink:0}
.followup-btn-remove:hover{background:#fdf2f2;border-color:#e5aaaa;color:#9b2222}
.followup-form-desc-area{width:100%;min-height:48px;font-size:12px;padding:6px 10px;border:1px solid #d3e2df;border-radius:var(--radius-sm, 6px);background:#fff;resize:vertical;box-sizing:border-box}
.followup-form-desc-area:focus{border-color:var(--primary);outline:none}

.followup-questions-section{display:flex;flex-direction:column;gap:8px;margin-top:2px;padding-top:8px;border-top:1px solid #e5eeec}
.followup-q-section-title{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%}
.followup-q-section-heading{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--muted)}
.followup-q-count-badge{font-size:9.5px;font-weight:600;color:#15693e;background:#e3f5ec;border:1px solid #b6e4cc;border-radius:var(--radius-pill, 999px);padding:1px 7px}
.followup-questions-container{display:flex;flex-direction:column;gap:8px;width:100%}
.followup-q-row{display:flex;flex-direction:column;gap:6px;background:#fff;border:1px solid #dbe6e3;border-radius:var(--radius-sm, 6px);padding:7px 10px;transition:border-color .15s,box-shadow .15s;width:100%;box-sizing:border-box}
.followup-q-row:focus-within{border-color:#9eccbe;box-shadow:0 0 0 1px rgba(27,117,101,0.08)}
.followup-q-main-row{display:flex;align-items:center;gap:8px;width:100%}
.followup-q-badge{width:22px;height:22px;border-radius:50%;background:#edf5f2;border:1px solid #c7ded8;color:#1a5b50;font-size:10.5px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;user-select:none}
.followup-q-prompt-input{flex:1;min-width:180px;font-size:12px;font-weight:600;padding:5px 8px;border:1px solid #d0e0dc;border-radius:var(--radius-sm, 6px);color:var(--ink);box-sizing:border-box}
.followup-q-prompt-input:focus{border-color:var(--primary);outline:none}
.followup-q-type-wrap{flex-shrink:0}
.followup-q-type-select{font-size:11.5px;font-weight:500;padding:4px 8px;border:1px solid #d0e0dc;border-radius:var(--radius-sm, 6px);background:#fff;color:var(--ink);cursor:pointer}
.followup-q-type-select:focus{border-color:var(--primary);outline:none}
.followup-q-del-btn{background:transparent;border:1px solid transparent;color:#b23b3b;font-size:11px;font-weight:600;cursor:pointer;padding:4px 8px;border-radius:var(--radius-xs, 4px);display:inline-flex;align-items:center;gap:4px;flex-shrink:0;transition:all .15s}
.followup-q-del-btn:hover{background:#fdf2f2;border-color:#f7c8c8;color:#9b2222}
.followup-q-extra-row{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding-top:4px;border-top:1px dashed #e8efed;font-size:11px}
.followup-q-config{display:flex;align-items:center;gap:6px;flex:1;min-width:0}
.followup-q-cfg-label{font-size:10.5px;font-weight:600;color:var(--muted);white-space:nowrap}
.followup-q-opts-input{flex:1;max-width:360px;font-size:11px;padding:3px 7px;border:1px solid #d0e0dc;border-radius:var(--radius-xs, 4px);background:#fff}
.followup-q-scale-select{font-size:11px;padding:3px 6px;border:1px solid #d0e0dc;border-radius:var(--radius-xs, 4px);background:#fff}
.followup-q-hint{font-size:10.5px;color:var(--muted);font-style:italic}
.followup-q-req-label{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:600;color:var(--ink);margin:0;cursor:pointer;flex-shrink:0;margin-left:auto}
.followup-add-q-btn{background:#edf6f3;border:1px dashed #9bc8bc;color:var(--primary);font-size:11px;font-weight:600;padding:4px 10px;border-radius:var(--radius-sm, 6px);cursor:pointer;display:inline-flex;align-items:center;gap:4px;transition:all .15s}
.followup-add-q-btn:hover{background:#dff0ec;border-color:var(--primary)}
.followup-add-form-btn{background:#fff;border:1px dashed var(--primary);color:var(--primary);font-size:12px;font-weight:600;padding:7px 14px;border-radius:var(--radius-sm, 6px);cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:all .18s}
.followup-add-form-btn:hover{background:#eef7f4}

/* Badges y Timeline de Formularios de Seguimiento */
.note-followup-timeline-wrap{margin-top:4px;padding-top:4px;border-top:1px dashed var(--line);display:flex;flex-direction:column;gap:3px}
.note-followup-label{font-size:8.5px;font-weight:700;letter-spacing:.5px;color:var(--muted);text-transform:uppercase;display:flex;align-items:center;gap:4px}
.note-followup-list{display:flex;flex-direction:column;gap:3px}
.followup-entry{display:flex;flex-direction:column;gap:3px;background:var(--bg, #f3f7f6);border:1px solid #e1ebe8;border-radius:var(--radius-sm, 6px);padding:3px 7px}
.followup-header-row{display:flex;align-items:center;flex-wrap:wrap;gap:4px}
.followup-badge-form{font-weight:600;font-size:9.5px;color:var(--ink);background:#f0f5f4;border:1px solid #d4e2df;border-radius:var(--radius-xs, 4px);padding:1px 5px}
.followup-responses-tags{display:flex;flex-wrap:wrap;gap:4px;align-items:center;margin-top:1px}
.followup-response-badge{all:unset;display:inline-flex;align-items:center;gap:4px;font-size:9.5px;font-weight:500;padding:2px 6px;border-radius:var(--radius-xs, 4px);cursor:pointer;transition:transform .15s,box-shadow .15s,background-color .15s;background:#e3f5ec;border:1px solid #b6e4cc;color:#15693e;box-sizing:border-box}
.followup-response-badge:hover{transform:translateY(-1px);box-shadow:0 2px 6px rgba(18,48,44,0.08);background:#d5f0e2}
.followup-response-badge:focus-visible{outline:2px solid var(--primary);outline-offset:1px}

/* Gestión de formularios de seguimiento en expediente del paciente */
.followup-management-card{width:100%}
.followup-cards-grid{display:flex;flex-direction:column;gap:14px}
.patient-followup-card{background:#fbfdfc;border:1px solid #dce8e5;border-radius:var(--radius-md, 8px);padding:14px 16px;display:flex;flex-direction:column;gap:12px;box-shadow:0 1px 3px rgba(18,48,44,0.04)}
.patient-followup-card.is-completed{background:#fafafa;border-color:#e5e5e5;opacity:.88}
.patient-followup-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.patient-followup-title-area{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.patient-followup-status-badge{font-size:10.5px;font-weight:700;padding:2px 7px;border-radius:var(--radius-pill, 999px);text-transform:uppercase;letter-spacing:.3px}
.patient-followup-status-badge.active{background:#e3f5ec;color:#15693e;border:1px solid #b6e4cc}
.patient-followup-status-badge.paused{background:#fef3c7;color:#92400e;border:1px solid #fcd34d}
.patient-followup-status-badge.stopped{background:var(--danger-tint, #fef2f2);color:var(--danger-dark, #b91c1c);border:1px solid #fca5a5}
.patient-followup-status-badge.completed{background:#f0f0f0;color:#666;border:1px solid #ddd}
.patient-followup-title{margin:0;font-size:14px;font-weight:700;color:var(--ink)}
.patient-followup-actions{display:inline-flex;align-items:center;gap:4px;flex-wrap:wrap}
.patient-followup-actions .btn.link-button{display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:3px 7px;font-size:11.5px;color:var(--muted);border-radius:var(--radius-sm, 6px);border:1px solid transparent;transition:all .15s}
.patient-followup-actions .btn.link-button:hover{color:var(--primary);background:rgba(8,126,133,0.08);border-color:var(--primary-glow, rgba(8, 126, 133, 0.16))}
.patient-followup-actions .btn.link-button.warn-btn:hover{color:#92400e;background:#fef3c7;border-color:#fcd34d}
.patient-followup-actions .btn.link-button.stop-btn:hover{color:var(--danger-dark, #b91c1c);background:var(--danger-tint, #fef2f2);border-color:#fca5a5}
.patient-followup-actions .btn.link-button.done-btn:hover{color:#15693e;background:#e3f5ec;border-color:#b6e4cc}
.patient-followup-actions .btn.link-button.primary-btn{color:var(--primary);font-weight:600;background:rgba(8,126,133,0.07);border-color:rgba(8,126,133,0.2)}
.patient-followup-actions .btn.link-button.danger:hover{color:#b83232;background:#fdf2f2;border-color:#fca5a5}
.patient-followup-desc{margin:0;font-size:12px;color:var(--muted);line-height:1.4}
.patient-followup-desc.reminder-custom-msg{background:#f0fdfc;border-left:3px solid var(--primary);padding:6px 10px;border-radius:var(--radius-xs, 4px);color:var(--ink)}
.patient-followup-meta-row{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;font-size:11px}
.patient-followup-meta-pill{background:#fff;border:1px solid #d8e5e2;border-radius:var(--radius-sm, 6px);padding:2px 7px;color:var(--ink)}
.patient-followup-meta-pill.highlight{background:#eef6f4;border-color:#a8d8cd;color:var(--primary);font-weight:600}
.patient-followup-questions-summary{background:#fff;border:1px solid #e1ebe8;border-radius:var(--radius-sm, 6px);padding:9px 12px}
.patient-followup-subhead{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);display:block;margin-bottom:6px}
.patient-followup-q-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;font-size:11.5px}
.patient-followup-type-tag{font-size:10px;background:#f0f5f4;border:1px solid #d4e2df;border-radius:var(--radius-xs, 4px);padding:1px 6px;margin-left:6px;color:#1a5b50}
.patient-followup-responses-section{display:flex;flex-direction:column;gap:8px}
.patient-followup-resp-header{display:flex;align-items:center;justify-content:space-between}
.patient-followup-empty-responses{font-size:11px;color:var(--muted);font-style:italic;padding:8px 10px;background:#fff;border:1px dashed #d5e5e1;border-radius:var(--radius-sm, 6px)}
.patient-followup-responses-list{display:flex;flex-direction:column;gap:8px}
.patient-followup-resp-item{background:#fff;border:1px solid #dce8e5;border-radius:var(--radius-sm, 6px);padding:8px 12px;display:flex;flex-direction:column;gap:5px}
.patient-followup-resp-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.patient-followup-resp-badge{font-size:10.5px;font-weight:700;color:#15693e;background:#e3f5ec;border:1px solid #b6e4cc;padding:1px 6px;border-radius:var(--radius-xs, 4px)}
.patient-followup-resp-date{font-size:11px;color:var(--muted);margin-right:auto;margin-left:6px}
.patient-followup-resp-summary{margin:0;font-size:12px;color:var(--ink);line-height:1.4}
.patient-followup-resp-images{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}

/* Pestaña Recordatorios automáticos y registro de respuestas */
.rem-inline-svg{display:inline-block;vertical-align:middle;flex-shrink:0}
.reminders-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}
.reminders-header-copy h2{margin:2px 0 4px}
.reminders-header-copy p{margin:0;color:var(--muted);font-size:12.5px}
.reminders-header-stats{display:flex;align-items:center;flex-wrap:wrap;gap:6px}
.reminder-stat-pill{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;padding:5px 11px;border-radius:var(--radius-pill, 999px);border:1px solid #dce8e5;background:var(--bg, #f3f7f6);color:var(--ink);white-space:nowrap}
.reminder-stat-pill strong{font-weight:800}
.reminder-stat-pill.is-active{background:#e3f5ec;color:#15693e;border-color:#b6e4cc}
.reminder-stat-pill.is-paused{background:#fef3c7;color:#92400e;border-color:#fcd34d}
.reminder-stat-pill.is-done{background:var(--bg, #f3f7f6);color:var(--ink-secondary, #3d585c);border-color:var(--line-strong, #c5d6d4)}
.reminder-stat-pill.is-replies{background:#eef6f4;color:var(--primary);border-color:#a8d8cd}
.reminder-stat-pill.is-clickable{cursor:pointer;transition:transform .15s,box-shadow .15s}
.reminder-stat-pill.is-clickable:hover{transform:translateY(-1px);box-shadow:0 2px 6px var(--primary-glow, rgba(8, 126, 133, 0.16))}

.reminders-filter-bar{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.reminders-filter-bar .timeline-filter-pill{display:inline-flex;align-items:center;gap:6px}
.rem-toggle-all-btn{all:unset;box-sizing:border-box;margin-left:auto;display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;padding:4px 10px;border:1px solid #dce8e5;border-radius:var(--radius-sm, 6px);background:#fff;color:var(--muted);cursor:pointer;transition:all .15s}
.rem-toggle-all-btn:hover{color:var(--primary);background:#eef6f4;border-color:#bce0d9;box-shadow:0 1px 2px rgba(8,126,133,0.06)}
.rem-toggle-all-btn:focus-visible{outline:2px solid var(--primary);outline-offset:1px}

.rem-cards-list{display:flex;flex-direction:column;gap:14px}
.rem-card{background:#fff;border:1px solid #d9e6e3;border-left:4px solid var(--primary);border-radius:var(--radius-lg, 12px);padding:15px 18px;display:flex;flex-direction:column;gap:12px;box-shadow:0 2px 6px rgba(18,48,44,0.04);transition:border-color .15s,box-shadow .15s,padding .15s}
.rem-card:hover{box-shadow:0 4px 12px rgba(18,48,44,0.07)}
.rem-card.status-active{border-left-color:#15803d}
.rem-card.status-paused{border-left-color:var(--warning-dark, #d97706);background:#fffdf9}
.rem-card.status-stopped{border-left-color:var(--danger, #dc2626);background:#fffafa}
.rem-card.status-completed{border-left-color:var(--muted-light, #7b9296);background:var(--bg, #f3f7f6);opacity:.92}
.rem-card.is-collapsed{padding-top:10px;padding-bottom:10px;gap:0}
.rem-card.is-collapsed .rem-message-callout,
.rem-card.is-collapsed .rem-info-grid,
.rem-card.is-collapsed .reminder-studies-box,
.rem-card.is-collapsed .rem-card-footer{display:none !important}

.rem-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}
.rem-card-identity{display:flex;align-items:center;gap:12px;min-width:240px;flex:1}
.rem-card-identity[role="button"]{cursor:pointer;border-radius:var(--radius-sm, 6px);padding:3px 6px;margin:-3px -6px;transition:background .15s}
.rem-card-identity[role="button"]:hover{background:rgba(8,126,133,0.04)}
.rem-card-identity[role="button"]:focus-visible{outline:2px solid var(--primary);outline-offset:1px}
.rem-cat-avatar{width:36px;height:36px;border-radius:var(--radius-md, 8px);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border:1px solid transparent}
.rem-cat-avatar.is-rx{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe}
.rem-cat-avatar.is-ins{background:#f5f3ff;color:#6d28d9;border-color:#ddd6fe}
.rem-cat-avatar.is-svc{background:var(--success-tint, #ecfdf5);color:#047857;border-color:#a7f3d0}

.rem-card-titles{display:flex;flex-direction:column;gap:4px;min-width:0}
.rem-card-title-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.rem-card-title{margin:0;font-size:15px;font-weight:700;color:var(--ink);line-height:1.25}
.rem-subtitle-pill{font-size:11.5px;font-weight:600;color:var(--ink-secondary, #3d585c);background:var(--bg, #f3f7f6);border:1px solid var(--line-strong, #c5d6d4);border-radius:var(--radius-sm, 6px);padding:1px 8px}
.rem-card-badges-row{display:flex;align-items:center;flex-wrap:wrap;gap:6px}

.reminder-category-badge{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:700;padding:2px 7px;border-radius:var(--radius-sm, 6px);border:1px solid #d4e2df;background:#f0f5f4;color:#1a5b50}
.reminder-category-badge.is-rx{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe}
.reminder-category-badge.is-ins{background:#f5f3ff;color:#6d28d9;border-color:#ddd6fe}
.reminder-category-badge.is-svc{background:var(--success-tint, #ecfdf5);color:#047857;border-color:#a7f3d0}
.rem-card .patient-followup-status-badge{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;padding:2px 7px}
.rem-note-origin-badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--ink-secondary, #3d585c);background:var(--bg, #f3f7f6);border:1px solid #dbe5e3;border-radius:var(--radius-sm, 6px);padding:1px 7px}
.rem-note-origin-badge strong{color:var(--ink);font-weight:700}

.rem-action-toolbar{display:inline-flex;align-items:center;flex-wrap:wrap;gap:3px;background:var(--bg, #f3f7f6);border:1px solid #dce8e5;border-radius:var(--radius-md, 8px);padding:3px 4px}
.rem-toolbar-sep{width:1px;height:16px;background:#dce8e5;margin:0 2px}
.rem-tool-btn{all:unset;box-sizing:border-box;display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;color:var(--ink-secondary, #3d585c);padding:4px 8px;border-radius:var(--radius-sm, 6px);cursor:pointer;transition:background .15s,color .15s;white-space:nowrap}
.rem-tool-btn:hover{background:#fff;color:var(--ink);box-shadow:0 1px 2px rgba(15,23,42,0.06)}
.rem-tool-btn.is-send{color:var(--primary)}
.rem-tool-btn.is-send:hover{background:#eef6f4;color:#065f65}
.rem-tool-btn.is-primary{color:#15693e;background:#e3f5ec}
.rem-tool-btn.is-primary:hover{background:#d1fae5;color:#065f46}
.rem-tool-btn.is-warn:hover{background:#fef3c7;color:#92400e}
.rem-tool-btn.is-stop:hover{background:var(--danger-tint, #fef2f2);color:var(--danger-dark, #b91c1c)}
.rem-tool-btn.is-done:hover{background:#e3f5ec;color:#15693e}
.rem-tool-btn.is-danger{color:var(--muted, #526b70);padding:4px 6px}
.rem-tool-btn.is-danger:hover{background:var(--danger-tint, #fef2f2);color:var(--danger, #dc2626)}
.rem-tool-btn.rem-collapse-toggle-btn{color:var(--primary);font-weight:600}
.rem-tool-btn.rem-collapse-toggle-btn:hover{background:#eef6f4;color:#065f65}
.rem-tool-btn.rem-collapse-toggle-btn.is-collapsed{color:var(--ink-secondary, #3d585c)}
.rem-tool-btn.rem-collapse-toggle-btn.is-collapsed:hover{background:var(--bg, #f3f7f6);color:var(--ink)}
.rem-tool-btn:focus-visible{outline:2px solid var(--primary);outline-offset:1px}

.rem-message-callout{background:#f8fbfb;border:1px solid #dcebe7;border-left:3px solid var(--primary);border-radius:var(--radius-sm, 6px);padding:8px 12px;display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--ink)}
.rem-callout-line{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;line-height:1.4}
.rem-callout-line.is-whatsapp{color:#0f5132;font-weight:500}

.rem-info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
@media (max-width:860px){.rem-info-grid{grid-template-columns:1fr}}
.rem-info-cell{background:#fbfdfc;border:1px solid #e4eeec;border-radius:var(--radius-md, 8px);padding:9px 12px;display:flex;flex-direction:column;gap:4px}
.rem-info-label{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--muted)}
.rem-info-val{font-size:12.5px;font-weight:700;color:var(--ink);line-height:1.35}
.rem-info-sub{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;color:var(--muted);line-height:1.35}
.rem-time-chips{display:flex;align-items:center;flex-wrap:wrap;gap:5px;margin:1px 0}
.rem-time-chip{display:inline-flex;align-items:center;font-size:11.5px;font-weight:700;color:var(--primary);background:#eef6f4;border:1px solid #b8dfd8;border-radius:var(--radius-sm, 6px);padding:1px 7px}

.reminder-studies-box{background:var(--bg, #f3f7f6);border:1px solid var(--line, #e2eae9);border-radius:var(--radius-sm, 6px);padding:8px 12px}

.rem-card-footer{border-top:1px solid #edf2f1;padding-top:9px;display:flex;flex-direction:column;gap:8px}
.rem-footer-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.rem-footer-title{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;color:var(--ink-secondary, #3d585c)}
.rem-footer-empty-hint{font-weight:400;color:var(--muted);font-style:italic}
.rem-add-reply-btn{all:unset;box-sizing:border-box;display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;color:var(--primary);background:#eef6f4;border:1px solid #bce0d9;border-radius:var(--radius-sm, 6px);padding:3px 9px;cursor:pointer;transition:background .15s,border-color .15s}
.rem-add-reply-btn:hover{background:#dff0ec;border-color:#94ccc1}
.rem-add-reply-btn:focus-visible{outline:2px solid var(--primary);outline-offset:1px}

.rem-replies-thread{display:flex;flex-direction:column;gap:6px}
.rem-reply-bubble{background:#f4fbf8;border:1px solid #cdeadd;border-left:3px solid #16a34a;border-radius:var(--radius-sm, 6px);padding:7px 11px;display:flex;flex-direction:column;gap:3px}
.rem-reply-meta{display:flex;align-items:center;justify-content:space-between;gap:8px}
.rem-reply-time{font-size:11px;color:var(--muted)}
.rem-reply-text{margin:0;font-size:12.5px;color:var(--ink);font-weight:500;line-height:1.4}

.patient-reply-log-row .patient-followup-resp-badge,.rem-reply-bubble .patient-followup-resp-badge{display:inline-flex;align-items:center;gap:4px}
.patient-replies-log-card{background:#fbfdfc;border:1px solid #dce8e5;border-radius:var(--radius-lg, 12px);padding:16px 18px;display:flex;flex-direction:column;gap:12px}
.patient-replies-log-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}
.patient-replies-log-header h3{margin:2px 0 4px;font-size:15px;color:var(--ink)}
.patient-replies-log-header p{margin:0;font-size:12px;color:var(--muted)}
.patient-replies-log-header .button{display:inline-flex;align-items:center;gap:6px}
.patient-replies-log-list{display:flex;flex-direction:column;gap:8px}
.patient-reply-log-row{background:#fff;border:1px solid #dce8e5;border-radius:var(--radius-md, 8px);padding:10px 14px;display:flex;flex-direction:column;gap:6px;box-shadow:0 1px 2px rgba(18,48,44,0.03)}
.patient-reply-log-meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:11.5px}
.reminder-origin-pill{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:600;background:var(--bg, #f3f7f6);color:var(--ink-secondary, #3d585c);border:1px solid var(--line-strong, #c5d6d4);border-radius:var(--radius-xs, 4px);padding:1px 6px}
.patient-reply-log-title{color:var(--ink);font-size:12.5px}
.patient-reply-log-time{margin-left:auto;font-size:11px;color:var(--muted)}
.patient-reply-log-bubble{background:#f0fdfc;border-left:3px solid var(--primary);padding:7px 12px;border-radius:0 6px 6px 0;font-size:12.5px;color:var(--ink);font-weight:500}
.reminder-edit-times-box{background:var(--bg, #f3f7f6);border:1px solid var(--line, #e2eae9);border-radius:var(--radius-md, 8px);padding:10px 12px}

/* ==========================================================================
   LAYOUT ELÁSTICO VERTICAL ANCLADO AL VIEWPORT (SALA PRIVADA WHATSAPP)
   ========================================================================== */

/* Contenedor principal anclado al viewport */
.content.has-elastic-chat,
.content:has(.reminders-management-card.is-chat-mode) {
  display: flex !important;
  flex-direction: column !important;
  overflow: hidden !important;
  padding: 14px 26px 12px !important;
  height: 100% !important;
  max-height: 100% !important;
  box-sizing: border-box !important;
}

.content.has-elastic-chat > .heading.patient-header-with-avatar,
.content:has(.reminders-management-card.is-chat-mode) > .heading.patient-header-with-avatar {
  flex-shrink: 0 !important;
  margin-bottom: 6px !important;
}

.content.has-elastic-chat > .tabs.patient-nav-tabs,
.content:has(.reminders-management-card.is-chat-mode) > .tabs.patient-nav-tabs {
  flex-shrink: 0 !important;
  margin-bottom: 8px !important;
}

/* Tarjeta contenedora de recordatorios en modo elástico */
.reminders-management-card.is-chat-mode {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  height: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  overflow: hidden !important;
  margin: 0 !important;
  box-shadow: 0 4px 20px rgba(18, 48, 44, 0.06) !important;
}

/* Cabecera compacta para no restar espacio a la conversación */
.reminders-management-card.is-chat-mode .reminders-card-header {
  flex-shrink: 0 !important;
  padding: 6px 16px !important;
  gap: 8px !important;
  border-bottom: 1px solid var(--line, #e2e8f0) !important;
}

.reminders-management-card.is-chat-mode .reminders-header-copy .eyebrow {
  font-size: 9.5px !important;
  letter-spacing: 0.8px !important;
  margin-bottom: 1px !important;
}

.reminders-management-card.is-chat-mode .reminders-header-copy h2 {
  font-size: 15px !important;
  margin: 0 !important;
  font-weight: 700 !important;
}

.reminders-management-card.is-chat-mode .reminders-header-copy p {
  display: none !important;
}

.reminders-management-card.is-chat-mode .reminders-header-stats {
  gap: 5px !important;
}

.reminders-management-card.is-chat-mode .card-body {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  padding: 8px 12px 10px !important;
  overflow: hidden !important;
}

.reminders-management-card.is-chat-mode .reminders-filter-bar {
  flex-shrink: 0 !important;
  margin-bottom: 8px !important;
  padding-bottom: 6px !important;
  border-bottom: 1px solid var(--line, #e2e8f0) !important;
}

/* Contenedor elástico de la sala de chat */
.reminders-management-card.is-chat-mode #patient-wa-chat-view-container {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  height: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  overflow: hidden !important;
}

/* Tarjeta del chat estilizada */
.patient-wa-chat-card {
  background: #ffffff;
  border: 1px solid #d8e5e2;
  border-radius: var(--radius-lg, 12px);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-shadow: 0 4px 16px rgba(18, 48, 44, 0.05);
  flex: 1 1 auto;
  min-height: 0;
  height: 100%;
}

.reminders-management-card.is-chat-mode .patient-wa-chat-card {
  border-radius: var(--radius-lg, 12px) !important;
  box-shadow: 0 1px 6px rgba(18, 48, 44, 0.05) !important;
}

.patient-wa-chat-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 8px 16px;
  background: #f7faf9;
  border-bottom: 1px solid #e1ece9;
  flex-wrap: wrap;
  flex-shrink: 0;
}

.patient-wa-chat-contact {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.patient-wa-chat-avatar {
  position: relative;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--primary, #087e85), #065b60);
  color: #ffffff;
  font-weight: 700;
  font-size: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 2px 6px rgba(8, 126, 133, 0.25);
}

.patient-wa-online-dot {
  position: absolute;
  bottom: 1px;
  right: 1px;
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background: #22c55e;
  border: 2px solid #ffffff;
  box-shadow: 0 0 0 1px rgba(34, 197, 94, 0.3);
}

.patient-wa-chat-contact-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.patient-wa-chat-contact-name-row {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.patient-wa-chat-contact-name-row h4 {
  margin: 0;
  font-size: 14px;
  font-weight: 700;
  color: var(--ink, #12302c);
  letter-spacing: -0.2px;
}

.patient-wa-folio-pill {
  font-size: 10.5px;
  font-weight: 700;
  color: var(--ink-secondary, #3d585c);
  background: var(--line, #e2eae9);
  padding: 1px 6px;
  border-radius: var(--radius-xs, 4px);
}

.patient-wa-secure-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 10.5px;
  font-weight: 600;
  color: #0f766e;
  background: #e6f7f5;
  border: 1px solid #b2dfdb;
  padding: 1px 6px;
  border-radius: var(--radius-xs, 4px);
}

.patient-wa-chat-subinfo {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 11.5px;
  color: var(--muted, #64748b);
  flex-wrap: wrap;
}

.patient-wa-phone-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: var(--ink, #19383d);
}

.patient-wa-phone-chip strong {
  font-weight: 600;
}

.patient-wa-sep {
  color: var(--line-strong, #c5d6d4);
}

.patient-wa-provider {
  font-size: 10.5px;
  color: var(--success-dark, #059669);
  font-weight: 600;
}

.patient-wa-chat-head-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

/* Mensajes elásticos con scroll interno */
.patient-wa-chat-messages {
  background: #efeae2;
  background-image: radial-gradient(#dfe5e2 1px, transparent 1px);
  background-size: 16px 16px;
  padding: 14px 18px;
  flex: 1 1 auto;
  min-height: 0;
  max-height: none !important;
  height: 100%;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 9px;
  scroll-behavior: smooth;
}

.patient-wa-chat-notice {
  align-self: center;
  max-width: 520px;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid #d3dedb;
  border-radius: var(--radius-md, 8px);
  padding: 5px 12px;
  font-size: 11px;
  color: var(--ink-secondary, #3d585c);
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  margin-bottom: 6px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
  flex-shrink: 0;
}

.patient-wa-chat-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 36px 20px;
  color: var(--muted, #526b70);
  gap: 8px;
  margin: auto;
}

.patient-wa-chat-empty-icon {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: #e2edea;
  color: var(--primary, #087e85);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 4px;
}

.patient-wa-chat-empty strong {
  font-size: 14px;
  color: var(--ink, #19383d);
}

.patient-wa-chat-empty p {
  font-size: 12px;
  max-width: 380px;
  margin: 0;
  line-height: 1.45;
}

.patient-wa-bubble-row {
  display: flex;
  width: 100%;
}

.patient-wa-bubble-row.is-outbound {
  justify-content: flex-end;
}

.patient-wa-bubble-row.is-inbound {
  justify-content: flex-start;
}

.patient-wa-bubble {
  max-width: 78%;
  min-width: 180px;
  padding: 7px 12px 5px;
  box-shadow: 0 1px 2px rgba(18, 48, 44, 0.08);
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.patient-wa-bubble-row.is-outbound .patient-wa-bubble {
  background: #d9fdd3;
  border: 1px solid #c2ebbc;
  border-radius: 12px 12px 2px 12px;
}

.patient-wa-bubble-row.is-inbound .patient-wa-bubble {
  background: #ffffff;
  border: 1px solid #e1e7e5;
  border-radius: 12px 12px 12px 2px;
}

.patient-wa-bubble-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.patient-wa-bubble-sender {
  font-size: 11px;
  font-weight: 700;
  color: #075e54;
}

.patient-wa-bubble-row.is-inbound .patient-wa-bubble-sender {
  color: #1e3a8a;
}

.patient-wa-bubble-tag {
  font-size: 9.5px;
  font-weight: 600;
  padding: 1px 5px;
  border-radius: var(--radius-xs, 4px);
}

.patient-wa-bubble-tag.is-out {
  background: #c3eed3;
  color: #065f46;
}

.patient-wa-bubble-tag.is-in {
  background: #e0f2fe;
  color: #0369a1;
}

.patient-wa-bubble-sub {
  font-size: 11px;
  font-weight: 600;
  color: var(--ink-secondary, #3d585c);
  background: rgba(0, 0, 0, 0.03);
  padding: 2px 6px;
  border-radius: var(--radius-xs, 4px);
}

.patient-wa-bubble-text {
  font-size: 12.5px;
  line-height: 1.45;
  color: #111b21;
  word-break: break-word;
}

.patient-wa-bubble-foot {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 4px;
  margin-top: 1px;
}

.patient-wa-bubble-time {
  font-size: 10px;
  color: #667781;
}

.patient-wa-check-icon {
  display: inline-flex;
  align-items: center;
  color: #53bdeb;
}

.patient-wa-check-icon.is-pending {
  color: var(--muted-light, #7b9296) !important;
  animation: remWaSpin 1.2s linear infinite;
}

@keyframes remWaSpin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

.patient-wa-send-btn.is-sending {
  opacity: 0.85;
}

/* Respuestas rápidas ancladas */
.patient-wa-quick-pills {
  background: #f9fbfb;
  border-top: 1px solid #e1ece9;
  padding: 6px 14px;
  display: flex;
  align-items: center;
  gap: 8px;
  overflow-x: auto;
  white-space: nowrap;
  flex-shrink: 0;
}

.patient-wa-quick-label {
  font-size: 10.5px;
  font-weight: 700;
  color: var(--muted, #526b70);
  text-transform: uppercase;
  letter-spacing: 0.3px;
  flex-shrink: 0;
}

.patient-wa-quick-pill {
  all: unset;
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  font-size: 11.5px;
  font-weight: 500;
  color: var(--primary, #087e85);
  background: #edf6f4;
  border: 1px solid #bce1da;
  border-radius: var(--radius-lg, 12px);
  padding: 2.5px 10px;
  cursor: pointer;
  transition: all 0.15s ease;
  flex-shrink: 0;
}

.patient-wa-quick-pill:hover {
  background: #dcf1ec;
  border-color: #92cdc2;
}

.patient-wa-quick-pill:focus-visible {
  outline: 2px solid var(--primary, #087e85);
  outline-offset: 1px;
}

/* Barra de redacción anclada */
.patient-wa-composer {
  background: #f0f4f3;
  border-top: 1px solid #dce8e5;
  padding: 8px 14px;
  display: flex;
  align-items: flex-end;
  gap: 10px;
  flex-shrink: 0;
}

.patient-wa-chat-input {
  flex: 1;
  min-height: 40px;
  max-height: 100px;
  border: 1px solid #cadad6;
  border-radius: var(--radius-pill, 999px);
  padding: 9px 15px;
  font-family: inherit;
  font-size: 13px;
  line-height: 1.4;
  background: #ffffff;
  color: #111b21;
  resize: none;
  box-sizing: border-box;
  transition: border-color 0.15s, box-shadow 0.15s;
}

.patient-wa-chat-input:focus {
  outline: none;
  border-color: var(--primary, #087e85);
  box-shadow: 0 0 0 3px var(--primary-glow, rgba(8, 126, 133, 0.16));
}

.patient-wa-send-btn {
  height: 40px;
  padding: 0 16px;
  border-radius: var(--radius-pill, 999px);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-size: 12.5px;
  font-weight: 600;
  flex-shrink: 0;
  cursor: pointer;
}

/* Resaltado visual interactivo de campos obligatorios faltantes */
@keyframes field-pulse-alert {
  0% { box-shadow: 0 0 0 0 rgba(220, 38, 38, 0.55); border-color: var(--danger, #dc2626); }
  50% { box-shadow: 0 0 0 6px rgba(220, 38, 38, 0.2); border-color: var(--danger, #ef4444); }
  100% { box-shadow: 0 0 0 0 rgba(220, 38, 38, 0); border-color: var(--danger, #dc2626); }
}

.field-invalid-highlight {
  border-color: var(--danger, #dc2626) !important;
  outline: 2px solid var(--danger, #dc2626) !important;
  outline-offset: 2px !important;
  background-color: #fff5f5 !important;
  animation: field-pulse-alert 1.6s ease-in-out infinite !important;
}

.rx-review-invalid-highlight {
  border: 2px solid var(--danger, #dc2626) !important;
  background: #fff5f5 !important;
  border-radius: var(--radius-md, 8px) !important;
  padding: 10px 14px !important;
  box-shadow: 0 0 0 4px rgba(220, 38, 38, 0.15) !important;
  animation: field-pulse-alert 1.6s ease-in-out infinite !important;
}

.rx-review-invalid-highlight label.check {
  font-weight: 700 !important;
  color: var(--danger-dark, #b91c1c) !important;
}

/* Unificación de Expedientes Clínicos */
#modal.merge-dialog {
  width: min(880px, calc(100vw - 28px));
  max-width: 880px;
}

.merge-modal-wrap {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.merge-warning-banner {
  border-left: 5px solid var(--danger-dark, #b91c1c) !important;
  background: var(--danger-tint, #fef2f2) !important;
  border-radius: var(--radius-md, 8px) !important;
  padding: 14px 18px !important;
  color: #7f1d1d !important;
  box-shadow: 0 1px 3px rgba(185, 28, 28, 0.08);
}

.merge-warning-header {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 8px;
}

.merge-warning-header svg {
  color: var(--danger-dark, #b91c1c);
  flex-shrink: 0;
  margin-top: 2px;
}

.merge-warning-header strong {
  display: block;
  font-size: 13.5px;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: var(--danger-dark, #b91c1c);
  margin-bottom: 4px;
}

.merge-warning-header p {
  margin: 0;
  font-size: 12.5px;
  line-height: 1.45;
  color: #7f1d1d;
}

.merge-warning-list {
  margin: 6px 0 0 28px;
  padding: 0;
  font-size: 12px;
  line-height: 1.5;
  color: #7f1d1d;
}

.merge-warning-list li {
  margin-bottom: 4px;
}

.merge-columns-grid {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 14px;
  align-items: stretch;
}

@media(max-width: 720px) {
  .merge-columns-grid {
    grid-template-columns: 1fr;
  }
  .merge-divider-arrow {
    transform: rotate(90deg);
    margin: -4px auto;
  }
}

.merge-col {
  border: 1px solid var(--line);
  border-radius: var(--radius-lg, 12px);
  padding: 14px 16px;
  background: #fff;
  display: flex;
  flex-direction: column;
  gap: 10px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.03);
}

.merge-col-target {
  border-color: #a7f3d0;
  background: #fdfefe;
}

.merge-col-source {
  border-color: #fed7aa;
  background: #fdfefe;
}

.merge-col-header {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.merge-col-pill {
  display: inline-block;
  font-size: 11.5px;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: var(--radius-sm, 6px);
  width: fit-content;
}

.merge-col-pill.target-pill {
  background: #d1fae5;
  color: #065f46;
  border: 1px solid #a7f3d0;
}

.merge-col-pill.source-pill {
  background: #ffedd5;
  color: #9a3412;
  border: 1px solid #fed7aa;
}

.merge-col-header small {
  font-size: 11px;
  color: var(--muted);
  line-height: 1.35;
}

.merge-select-label {
  display: flex;
  flex-direction: column;
  gap: 5px;
  font-size: 12px;
  font-weight: 600;
  color: var(--ink);
}

.merge-search-wrap {
  position: relative;
  display: flex;
  align-items: center;
  margin-bottom: 2px;
}

.merge-search-icon {
  position: absolute;
  left: 9px;
  color: var(--muted);
  display: flex;
  align-items: center;
  pointer-events: none;
}

.merge-search-icon .icon {
  width: 13px;
  height: 13px;
}

.merge-search-input {
  width: 100% !important;
  height: 32px !important;
  padding: 5px 26px 5px 28px !important;
  font-size: 12px !important;
  border: 1px solid #d1dfdd !important;
  border-radius: var(--radius-sm, 6px) !important;
  background: #fff !important;
  color: var(--ink) !important;
  box-sizing: border-box !important;
  outline: none !important;
  transition: border-color .15s, box-shadow .15s;
}

.merge-search-input:focus {
  border-color: var(--primary) !important;
  box-shadow: 0 0 0 2px var(--tint) !important;
}

.merge-search-clear {
  position: absolute;
  right: 6px;
  background: transparent !important;
  border: 0 !important;
  color: var(--muted) !important;
  font-size: 16px !important;
  cursor: pointer !important;
  padding: 0 4px !important;
  line-height: 1 !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.merge-search-clear:hover {
  color: var(--ink) !important;
}

.merge-select-label select {
  width: 100%;
  padding: 7px 10px;
  border-radius: var(--radius-sm, 6px);
  border: 1px solid var(--line);
  background: #fff;
  font-size: 12.5px;
  font-weight: 500;
  color: var(--ink);
}

.merge-divider-arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--muted);
}

.merge-arrow-circle {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: #f3f4f6;
  border: 1px solid var(--line);
  display: flex;
  align-items: center;
  justify-content: center;
}

.merge-arrow-circle svg {
  width: 16px;
  height: 16px;
}

.merge-preview-box {
  background: var(--bg, #f3f7f6);
  border: 1px solid var(--line, #e2eae9);
  border-radius: var(--radius-md, 8px);
  padding: 10px 12px;
  font-size: 12px;
  flex: 1;
}

.merge-patient-card-data {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.merge-patient-folio-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
}

.merge-folio-badge {
  font-family: monospace;
  font-size: 11px;
  font-weight: 700;
  color: var(--primary);
  background: var(--tint);
  padding: 2px 6px;
  border-radius: var(--radius-xs, 4px);
}

.merge-patient-name {
  font-size: 13.5px;
  color: var(--ink);
}

.merge-patient-meta-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4px 8px;
  font-size: 11px;
  color: var(--ink);
  margin-top: 2px;
}

.merge-patient-meta-grid small {
  color: var(--muted);
  margin-right: 3px;
}

.merge-cronology-notice {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  background: #eff6ff;
  border: 1px solid #bfdbfe;
  border-radius: var(--radius-md, 8px);
  padding: 10px 14px;
  font-size: 12px;
  color: #1e40af;
  line-height: 1.45;
}

.merge-cronology-notice svg {
  color: #2563eb;
  flex-shrink: 0;
  margin-top: 2px;
}

.merge-confirmation-box {
  background: #fff;
  border: 1px solid #fca5a5;
  border-radius: var(--radius-md, 8px);
  padding: 12px 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.merge-checkbox-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  cursor: pointer;
  font-size: 12.5px;
  line-height: 1.4;
  color: var(--ink);
}

.merge-checkbox-item input {
  margin-top: 2px;
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  cursor: pointer;
}

.merge-keyword-row {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 12px;
  color: var(--ink);
}

.merge-keyword-row input {
  max-width: 240px;
  padding: 6px 10px;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm, 6px);
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.timeline-sort-btn {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--ink);
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  padding: 2px 6px;
  border-radius: var(--radius-xs, 4px);
  transition: background .15s;
}

.timeline-sort-btn:hover {
  background: #f0f4f3;
}

/* ==========================================================================
   Pestañas de navegación del expediente (Diseño moderno estilo botones)
   ========================================================================== */
.tabs.patient-nav-tabs {
  display: flex !important;
  width: 100% !important;
  box-sizing: border-box !important;
  align-items: center;
  justify-content: flex-start !important;
  gap: 5px;
  padding: 5px;
  background: #ebf2f0;
  border: 1px solid #d3e1de;
  border-radius: var(--radius-lg, 12px);
  margin-bottom: 24px;
  box-shadow: inset 0 1px 2px rgba(18, 56, 53, 0.05);
  overflow-x: auto;
  max-width: 100%;
  scrollbar-width: none;
}

.tabs.patient-nav-tabs::-webkit-scrollbar {
  display: none;
}

.tabs.patient-nav-tabs .patient-tab-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 18px;
  font-size: 13.5px;
  font-weight: 600;
  color: #556f71;
  background: transparent;
  border: 1px solid transparent !important;
  border-radius: var(--radius-md, 8px);
  cursor: pointer;
  white-space: nowrap;
  line-height: 1.35;
  transition: all 0.16s ease-in-out;
  outline-offset: 2px;
  flex-shrink: 0 !important;
}

.tabs.patient-nav-tabs .patient-tab-btn .icon {
  width: 16px;
  height: 16px;
  stroke: #668285;
  transition: stroke 0.16s ease-in-out, transform 0.16s ease;
  flex-shrink: 0;
}

.tabs.patient-nav-tabs .patient-tab-btn:hover {
  background: rgba(255, 255, 255, 0.72);
  color: var(--ink);
  border-color: rgba(255, 255, 255, 0.85) !important;
  box-shadow: 0 1px 3px rgba(18, 56, 53, 0.05);
}

.tabs.patient-nav-tabs .patient-tab-btn:hover .icon {
  stroke: var(--ink);
  transform: translateY(-0.5px);
}

.tabs.patient-nav-tabs .patient-tab-btn.active {
  background: #ffffff !important;
  color: var(--primary-dark) !important;
  font-weight: 700;
  border-color: color-mix(in srgb, var(--primary) 28%, #d5e3e0) !important;
  box-shadow: 0 2px 7px rgba(18, 56, 53, 0.08), 0 1px 2px rgba(0, 0, 0, 0.03);
}

.tabs.patient-nav-tabs .patient-tab-btn.active .icon {
  stroke: var(--primary);
}

.tabs.patient-nav-tabs .patient-tab-btn.patient-back-btn {
  padding: 8px 12px;
  justify-content: center;
}

.tabs.patient-nav-tabs .patient-tab-btn.patient-back-btn:hover .icon {
  transform: translateX(-1.5px);
}

@media (max-width: 760px) {
  .tabs.patient-nav-tabs {
    display: flex !important;
    width: 100% !important;
    box-sizing: border-box !important;
    justify-content: flex-start !important;
    margin-bottom: 18px;
    padding: 4px;
    gap: 4px;
    overflow-x: auto;
  }
  .tabs.patient-nav-tabs .patient-tab-btn {
    flex-shrink: 0 !important;
    padding: 8px 14px;
    font-size: 12px;
    gap: 6px;
  }
  .tabs.patient-nav-tabs .patient-tab-btn.patient-back-btn {
    padding: 8px 10px;
  }
  .tabs.patient-nav-tabs .patient-tab-btn .icon {
    width: 15px;
    height: 15px;
  }
}

/* Botón de acción para abrir expediente clínico en tablas de pacientes */
.open-patient-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 34px !important;
  height: 34px !important;
  padding: 0 !important;
  border-radius: var(--radius-md, 8px) !important;
  background: var(--tint, #e7f5f3) !important;
  color: var(--primary, #087e85) !important;
  border: 1px solid color-mix(in srgb, var(--primary, #087e85) 25%, transparent) !important;
  cursor: pointer !important;
  transition: all 0.16s ease-in-out !important;
  box-shadow: 0 1px 2px rgba(8, 126, 133, 0.06) !important;
}

.open-patient-btn:hover {
  background: var(--primary, #087e85) !important;
  color: #ffffff !important;
  border-color: var(--primary, #087e85) !important;
  box-shadow: 0 2px 7px rgba(8, 126, 133, 0.28) !important;
  transform: translateY(-1px) !important;
}

.open-patient-btn:active {
  transform: translateY(0) !important;
  box-shadow: 0 1px 2px var(--primary-glow, rgba(8, 126, 133, 0.16)) !important;
}

.open-patient-btn .icon {
  width: 18px !important;
  height: 18px !important;
  stroke: currentColor !important;
  stroke-width: 1.75 !important;
  transition: stroke 0.16s ease-in-out !important;
}

/* Vista previa de Plantilla: Vista de escritorio PC para Consulta y Evaluación */
.drive-tpl-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--line);
}
.drive-tpl-toolbar-left {
  display: flex;
  align-items: center;
  gap: 8px;
}
.drive-tpl-toolbar-right {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.drive-tpl-quick-select {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--ink);
}
.drive-tpl-quick-select select {
  padding: 6px 12px;
  border-radius: var(--radius-md, 8px);
  border: 1px solid var(--line);
  background: #ffffff;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--ink);
  cursor: pointer;
}
.desktop-preview-container {
  background: transparent;
  border: none;
  border-radius: 0;
  padding: 0;
  box-shadow: none;
  margin-bottom: 16px;
  width: 100%;
}
.clinical-dialog-mockup {
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: var(--radius-lg, 12px);
  box-shadow: 0 8px 28px rgba(18, 56, 53, 0.08), 0 1px 3px rgba(0, 0, 0, 0.03);
  overflow: hidden;
  width: 100%;
  max-width: 100%;
  margin: 0;
}
.clinical-dialog-mockup .clinical-modal-header {
  padding: 16px 22px 14px;
  background: #ffffff;
  border-bottom: 1px solid var(--line);
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.clinical-dialog-mockup .clinical-dialog-tabs {
  margin: 0 !important;
  width: 100% !important;
  display: flex !important;
  justify-content: flex-start !important;
  box-sizing: border-box !important;
  overflow-x: auto !important;
  scrollbar-width: none !important;
}
.clinical-dialog-mockup .clinical-dialog-tabs::-webkit-scrollbar {
  display: none !important;
}
.clinical-dialog-mockup .clinical-dialog-tabs .tab {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  padding: 8px 18px !important;
  font-size: 13.5px !important;
  font-weight: 600 !important;
  color: #556f71 !important;
  gap: 8px !important;
  flex-shrink: 0 !important;
}
.clinical-dialog-mockup .clinical-dialog-tabs .tab .icon {
  width: 16px !important;
  height: 16px !important;
  stroke: #668285 !important;
  flex-shrink: 0 !important;
}
.clinical-dialog-mockup .clinical-dialog-tabs .tab.active {
  background: #ffffff !important;
  color: var(--primary-dark) !important;
  font-weight: 700 !important;
  border-color: color-mix(in srgb, var(--primary) 28%, #d5e3e0) !important;
  box-shadow: 0 2px 7px rgba(18, 56, 53, 0.08), 0 1px 2px rgba(0, 0, 0, 0.03) !important;
}
.clinical-dialog-mockup .clinical-dialog-tabs .tab.active .icon {
  stroke: var(--primary) !important;
}
.clinical-dialog-mockup .clinical-modal-title-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
}
.clinical-dialog-mockup .clinical-modal-title-row h2 {
  margin: 0;
  font-size: 18px;
  font-weight: 700;
  color: var(--ink);
}
.clinical-dialog-mockup .dialog-close-mock {
  background: transparent;
  border: 0;
  font-size: 20px;
  line-height: 1;
  color: var(--muted);
  cursor: default;
  padding: 2px 6px;
}
.clinical-dialog-mockup .clinical-mock-body {
  padding: 20px 24px;
  background: #ffffff;
  max-height: 540px;
  overflow-y: auto;
  scrollbar-width: thin;
}
.clinical-dialog-mockup .clinical-section {
  border: 0;
  border-top: 1px solid var(--line);
  padding: 20px 0 8px;
  margin: 0 0 23px;
  min-width: 0;
}
.clinical-dialog-mockup .clinical-section:first-child {
  border-top: 0;
  padding-top: 0;
}
.clinical-dialog-mockup .clinical-section legend {
  padding: 0 15px 0 0;
  font-size: 15px;
  font-weight: 700;
  color: var(--ink);
}
.clinical-dialog-mockup .form-grid,
.clinical-dialog .form-grid,
#note-eval-container,
#specialty-fields {
  display: flex;
  flex-wrap: wrap;
  gap: 14px 18px;
  align-items: flex-start;
}
.clinical-dialog-mockup .form-grid > *,
.clinical-dialog .form-grid > *,
#note-eval-container > *,
#specialty-fields > * {
  flex: 0 0 calc(50% - 9px);
  width: calc(50% - 9px);
  max-width: 100%;
  box-sizing: border-box;
  min-width: 0;
}
.clinical-dialog-mockup .form-grid > .span-2,
.clinical-dialog .form-grid > .span-2,
#note-eval-container > .span-2,
#specialty-fields > .span-2 {
  flex: 0 0 100% !important;
  width: 100% !important;
  max-width: 100% !important;
}
.clinical-dialog-mockup .vitals-grid {
  display: grid;
  grid-template-columns: repeat(8, minmax(88px, 1fr));
  gap: 6px;
  justify-content: stretch;
}
.clinical-dialog-mockup .vitals-grid > label {
  font-size: 10px;
  line-height: 1.1;
  min-width: 0;
  color: var(--ink);
  font-weight: 600;
}
.clinical-dialog-mockup .unit-input {
  display: flex;
  align-items: center;
  border: 1px solid #d6e2df;
  border-radius: var(--radius-sm, 6px);
  background: white;
  margin-top: 4px;
  overflow: hidden;
}
.clinical-dialog-mockup .unit-input input {
  min-width: 0;
  margin: 0;
  border: 0;
  border-radius: 0;
  outline: none;
  padding: 4px 2px 4px 6px;
  height: 29px;
  font-size: 12px;
  background: transparent;
  color: var(--ink);
}
.clinical-dialog-mockup .unit-input > span {
  padding: 0 5px 0 1px;
  color: var(--muted);
  font-size: 9px;
  white-space: nowrap;
}
.clinical-dialog-mockup textarea {
  min-height: 0;
  line-height: 1.5;
  width: 100%;
}
.clinical-dialog-mockup .clinical-form-actions {
  flex-shrink: 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  padding: 14px 24px;
  border-top: 1px solid var(--line);
  background: var(--bg, #f3f7f6);
}
.clinical-dialog-mockup .clinical-footer-requirement {
  flex: 1;
  min-width: 0;
  display: flex;
  align-items: center;
}
.clinical-dialog-mockup .clinical-close-check {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  font-size: 12px;
  line-height: 1.45;
  color: var(--ink);
  margin: 0;
}
.clinical-dialog-mockup .clinical-close-check input[type="checkbox"] {
  margin-top: 2px;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  accent-color: var(--primary);
}
.clinical-dialog-mockup .clinical-close-check strong {
  color: var(--primary);
  font-size: 12px;
}
.clinical-dialog-mockup .clinical-footer-buttons {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}
.template-item-card {
  cursor: pointer;
  padding: 16px 18px;
  border: 1px solid var(--line);
  border-radius: var(--radius-lg, 12px);
  background: #ffffff;
  box-shadow: 0 1px 3px rgba(22, 61, 57, 0.03);
  transition: all 0.16s ease-in-out;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.template-item-card:hover {
  border-color: color-mix(in srgb, var(--primary) 45%, var(--line));
  box-shadow: 0 3px 10px rgba(8, 126, 133, 0.08);
}
.template-item-card.is-active {
  border-color: var(--primary);
  background: #f4faf9;
  box-shadow: 0 0 0 1.5px var(--primary), 0 4px 12px rgba(8, 126, 133, 0.09);
}
.template-item-card.is-active .template-card-title {
  color: var(--primary-dark);
}

/* ==========================================================================
   Lienzo Interactivo Fiel 1:1 de Plantillas Clínicas (Canvas Real Mode)
   ========================================================================== */
.canvas-builder-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  padding: 8px 12px;
  background: #f0f7f6;
  border: 1px solid #cce4df;
  border-radius: var(--radius-md, 8px);
  margin-bottom: 12px;
}
.canvas-builder-info {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  color: #1f4f49;
}
.canvas-builder-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}
.canvas-save-status-pill {
  font-size: 11px;
  font-weight: 600;
  padding: 3px 8px;
  border-radius: var(--radius-lg, 12px);
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.canvas-save-status-pill.is-clean {
  background: #dcfce7;
  color: #166534;
}
.canvas-save-status-pill.is-dirty {
  background: #fef3c7;
  color: #92400e;
  border: 1px solid #fde68a;
}

/* Contenedores (Secciones) del Lienzo */
.canvas-section-container {
  position: relative;
  transition: all 0.15s ease;
}
.canvas-section-container.drag-target,
.canvas-section-container.drag-over-section {
  background: #f0fbf9;
  border-color: var(--primary);
  box-shadow: 0 0 0 2px rgba(8, 126, 133, 0.25);
}
.canvas-section-legend {
  padding: 0 15px 0 0;
  font-size: 15px;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: 6px;
  width: auto;
}
.canvas-section-legend span,
.clinical-dialog-mockup .clinical-section legend span {
  display: inline !important;
  width: auto !important;
  height: auto !important;
  background: none !important;
  color: inherit !important;
  border-radius: 0 !important;
  font-size: inherit !important;
  margin: 0 !important;
}
.canvas-btn-sec-action {
  font-size: 10.5px;
  padding: 2px 7px;
  height: 20px;
  line-height: 1;
  border-radius: var(--radius-xs, 4px);
  border: 1px solid #c8ddd8;
  background: #ffffff;
  color: var(--primary);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 3px;
  transition: all 0.15s ease;
}
.canvas-btn-sec-action:hover {
  background: #edf7f4;
  border-color: var(--primary);
}
.canvas-btn-sec-action.danger:hover {
  background: var(--danger-tint, #fef2f2);
  color: var(--danger, #dc2626);
  border-color: #fca5a5;
}

.canvas-field-slot {
  position: relative;
  border-radius: var(--radius-sm, 6px);
  cursor: pointer;
  user-select: none;
  transition: outline 0.12s ease, background 0.12s ease, box-shadow 0.12s ease;
}
.canvas-field-slot * {
  cursor: pointer !important;
  pointer-events: none !important;
  user-select: none !important;
}
.canvas-field-slot:hover {
  outline: 2px solid var(--primary);
  outline-offset: 2px;
  background: rgba(8, 126, 133, 0.03);
  box-shadow: 0 2px 6px var(--primary-glow, rgba(8, 126, 133, 0.16));
}
.canvas-field-slot.is-dragging {
  opacity: 0.35;
  outline: 2px dashed var(--primary);
  cursor: grabbing;
}
.canvas-field-slot.drag-over {
  outline: 2px solid var(--success-dark, #059669);
  outline-offset: 3px;
  background: rgba(5, 150, 105, 0.09);
  box-shadow: 0 0 0 3px rgba(5, 150, 105, 0.25);
  transform: scale(1.01);
}
.canvas-section-add-btn:hover {
  border-color: var(--primary);
  background: #edf7f5;
  color: var(--primary);
  box-shadow: 0 2px 6px rgba(8, 126, 133, 0.08);
}

/* Contenedores flexibles con soporte de orden, ancho y fondos de color */
#canvas-containers-host,
#clinical-note-containers-host {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 18px !important;
  align-items: stretch !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

.canvas-section-container {
  box-sizing: border-box !important;
  margin: 0;
  background: #ffffff;
  border: 1px solid #dce8e5 !important;
  border-radius: var(--radius-lg, 12px) !important;
  padding: 16px 20px 18px !important;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.03);
  position: relative;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
  min-width: 0;
}

#fieldset-consultation {
  margin-bottom: 18px !important;
  width: 100% !important;
}

/* Evitar que el legend de HTML corte o perfore el borde del fieldset */
.canvas-section-container > legend,
.canvas-section-legend {
  float: left !important;
  width: 100% !important;
  box-sizing: border-box !important;
  margin: 0 0 14px 0 !important;
  padding: 0 !important;
  border: none !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  background: transparent !important;
}

.canvas-section-container::after {
  content: "";
  display: table;
  clear: both;
}

.canvas-section-container > .form-grid,
.canvas-section-container > .vitals-grid,
.canvas-section-container > .section-help {
  clear: both;
  width: 100%;
}

.canvas-legend-title-area {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  min-width: 0;
  max-width: 100%;
}

.canvas-legend-dot {
  display: inline-block !important;
  width: 9px !important;
  height: 9px !important;
  border-radius: 50% !important;
  background: var(--primary, #087e85);
  flex-shrink: 0;
}

.canvas-legend-text {
  font-size: 14.5px !important;
  font-weight: 700 !important;
  color: var(--ink, #19383d) !important;
  letter-spacing: -0.01em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Pastilla de título en contenedores con fondo de color */
.canvas-section-container.has-custom-bg .canvas-legend-title-area,
.canvas-section-container[style*="background"] .canvas-legend-title-area {
  background: rgba(255, 255, 255, 0.92) !important;
  padding: 4px 12px !important;
  border-radius: var(--radius-pill, 999px) !important;
  border: 1px solid rgba(0, 0, 0, 0.08) !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04) !important;
  backdrop-filter: blur(4px);
}

.canvas-section-legend .canvas-c-badge {
  display: inline-block !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  padding: 2px 7px !important;
  background: var(--line, #e2eae9) !important;
  color: var(--ink-secondary, #3d585c) !important;
  border-radius: var(--radius-lg, 12px) !important;
  line-height: 1.2 !important;
}

/* Controles dentro de los contenedores para contraste y presencia limpia */
.canvas-section-container label {
  font-weight: 600 !important;
  font-size: 12px !important;
  color: var(--ink-secondary, #3d585c) !important;
}

.canvas-section-container textarea,
.canvas-section-container input[type="text"],
.canvas-section-container select {
  background: #ffffff !important;
  border: 1px solid var(--line, #e2eae9) !important;
  border-radius: var(--radius-md, 8px) !important;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.03);
}

.canvas-section-container textarea:focus,
.canvas-section-container input[type="text"]:focus,
.canvas-section-container select:focus {
  border-color: var(--primary) !important;
  box-shadow: 0 0 0 3px var(--primary-glow, rgba(8, 126, 133, 0.16)) !important;
}

.canvas-section-container .diagnosis-assistant {
  background: #ffffff !important;
  border: 1px solid var(--line, #e2eae9) !important;
  border-radius: var(--radius-lg, 12px) !important;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04);
}

.canvas-section-container .unit-input {
  background: #ffffff !important;
  border: 1px solid var(--line, #e2eae9) !important;
  border-radius: var(--radius-sm, 6px) !important;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.03);
}

.canvas-container-header-actions {
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
  font-weight: normal !important;
}

.canvas-container-header-actions .canvas-btn-sec-action {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 4px !important;
  font-size: 11px !important;
  padding: 2px 7px !important;
  height: 24px !important;
  min-height: 24px !important;
  line-height: 1 !important;
  border-radius: var(--radius-sm, 6px) !important;
  cursor: pointer !important;
  border: 1px solid #d5e2df !important;
  background: #ffffff !important;
  color: var(--ink-secondary, #3d585c) !important;
  transition: all 0.15s ease !important;
}

.canvas-container-header-actions .canvas-btn-sec-action:not(:disabled):hover {
  background: #edf7f5 !important;
  color: var(--primary, #087e85) !important;
  border-color: #b8d9d2 !important;
}

.canvas-container-header-actions .canvas-btn-sec-action:disabled,
.canvas-container-header-actions .canvas-btn-sec-action[disabled] {
  opacity: 0.3 !important;
  cursor: not-allowed !important;
  pointer-events: none !important;
  background: var(--bg, #f3f7f6) !important;
  color: var(--muted, #526b70) !important;
  border-color: var(--line, #e2eae9) !important;
}

.canvas-container-header-actions .canvas-btn-sec-action.danger:not(:disabled):hover {
  background: var(--danger-tint, #fef2f2) !important;
  color: var(--danger, #dc2626) !important;
  border-color: #fca5a5 !important;
}

.canvas-container-header-actions .canvas-btn-sec-action svg {
  display: block;
}

/* Stepper segmentado de subir y bajar en el modal de administrar contenedores */
.cmgr-reorder-stepper {
  display: inline-flex !important;
  flex-direction: column !important;
  width: 26px !important;
  min-width: 26px !important;
  max-width: 26px !important;
  height: 44px !important;
  min-height: 44px !important;
  max-height: 44px !important;
  border: 1px solid #d5e2df !important;
  border-radius: var(--radius-sm, 6px) !important;
  overflow: hidden !important;
  background: #ffffff !important;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04) !important;
  flex-shrink: 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}

.cmgr-reorder-btn {
  width: 100% !important;
  height: 21px !important;
  min-height: 21px !important;
  max-height: 21px !important;
  box-sizing: border-box !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  border: none !important;
  background: #ffffff !important;
  color: var(--ink-secondary, #3d585c) !important;
  cursor: pointer !important;
  line-height: 1 !important;
  transition: background-color 0.15s ease, color 0.15s ease !important;
}

.cmgr-reorder-btn:first-child {
  border-bottom: 1px solid #e2ece9 !important;
}

.cmgr-reorder-btn:not(:disabled):hover {
  background: #edf7f5 !important;
  color: var(--primary, #087e85) !important;
}

.cmgr-reorder-btn:not(:disabled):active {
  background: #d8ece8 !important;
}

.cmgr-reorder-btn:disabled,
.cmgr-reorder-btn[disabled] {
  opacity: 0.25 !important;
  background: var(--bg, #f3f7f6) !important;
  color: var(--muted, #526b70) !important;
  cursor: not-allowed !important;
  pointer-events: none !important;
}

.cmgr-reorder-btn svg,
.cmgr-reorder-btn * {
  display: block;
  pointer-events: none !important;
}

.cmodal-swatch-btn {
  outline: none;
  transition: transform 0.12s ease, box-shadow 0.12s ease, border-color 0.12s ease;
}
.cmodal-swatch-btn:hover {
  transform: scale(1.08);
}
.cmodal-swatch-btn.is-active {
  box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px var(--primary) !important;
  border-color: var(--primary) !important;
}

.btn-del-c-row {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 28px !important;
  height: 28px !important;
  min-width: 28px !important;
  padding: 0 !important;
  border-radius: var(--radius-sm, 6px) !important;
  border: 1px solid var(--danger-tint, #fef2f2) !important;
  background: #ffffff !important;
  color: var(--danger, #dc2626) !important;
  cursor: pointer !important;
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease, transform 0.1s ease !important;
}

.btn-del-c-row:hover {
  background: var(--danger-tint, #fef2f2) !important;
  border-color: #fca5a5 !important;
  color: var(--danger-dark, #b91c1c) !important;
  transform: scale(1.05);
}

.btn-del-c-row:active {
  background: #fecaca !important;
  transform: scale(0.95);
}

.btn-del-c-row svg {
  width: 14px;
  height: 14px;
  stroke: currentColor;
  display: block;
  pointer-events: none;
}

#cmgr-list-wrap {
  max-height: 260px !important;
  overflow-y: auto !important;
  scrollbar-width: thin !important;
  scrollbar-color: var(--line, #e2eae9) transparent !important;
  background: var(--bg) !important;
}

#cmgr-list-wrap::-webkit-scrollbar {
  width: 6px;
}

#cmgr-list-wrap::-webkit-scrollbar-track {
  background: transparent;
}

#cmgr-list-wrap::-webkit-scrollbar-thumb {
  background: var(--line, #e2eae9);
  border-radius: var(--radius-xs, 4px);
}

#cmgr-list-wrap::-webkit-scrollbar-thumb:hover {
  background: var(--muted, #526b70);
}

@media (max-width: 768px) {
  .canvas-section-container {
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
  }
}

/* Patients Table & Pagination: 10 rows occupy exact container height with zero internal scroll */
@media (min-width: 761px) {
  .content:has(#patient-table) {
    overflow: hidden !important;
    display: flex;
    flex-direction: column;
    padding-top: 10px;
    padding-bottom: 12px;
  }
  .content:has(#patient-table) .toolbar {
    margin-bottom: 8px;
    flex-shrink: 0;
  }
  .content:has(#patient-table) .toolbar input.search {
    height: 32px;
    padding: 5px 12px;
    font-size: 12.5px;
  }
  #patient-table {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    margin-bottom: 0;
    overflow: hidden;
  }
  #patient-table .table-wrap {
    flex: 1 1 auto;
    min-height: 0;
    height: 100%;
    overflow: hidden !important;
    display: flex;
    flex-direction: column;
  }
  #patient-table table {
    width: 100%;
    height: 100%;
    flex: 1 1 auto;
    display: table;
    border-collapse: collapse;
  }
  #patient-table thead {
    height: 34px;
    flex-shrink: 0;
  }
  #patient-table thead tr {
    height: 34px;
  }
  #patient-table th {
    height: 34px;
    padding: 0 16px;
    font-size: 10px;
    letter-spacing: .8px;
    vertical-align: middle;
    box-sizing: border-box;
    text-transform: uppercase;
    color: var(--muted);
    background: var(--bg, #f3f7f6);
  }
  #patient-table tbody {
    height: calc(100% - 34px);
  }
  #patient-table tbody tr {
    height: 10%;
  }
  #patient-table tbody tr.patient-row-empty {
    pointer-events: none;
  }
  #patient-table tbody tr.patient-row-empty td {
    visibility: hidden;
    border-top: 1px solid var(--line);
    padding: 0;
  }
  #patient-table td {
    padding: 0 16px;
    font-size: 12.5px;
    line-height: 1.35;
    vertical-align: middle;
    border-top: 1px solid var(--line);
  }
  .patient-cell-profile {
    display: flex;
    align-items: center;
    gap: 12px;
  }
  .patient-avatar {
    width: 36px;
    height: 36px;
    min-width: 36px;
    min-height: 36px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: -0.2px;
    border: 1.5px solid;
    box-shadow: 0 2px 5px rgba(22,61,57,0.06);
    flex-shrink: 0;
    user-select: none;
    transition: transform .15s ease, box-shadow .15s ease;
    overflow: hidden;
  }
  .patient-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
    display: block;
  }
  #patient-table tbody tr:hover .patient-avatar {
    transform: scale(1.06);
    box-shadow: 0 3px 8px rgba(22,61,57,0.14);
  }
  .patient-cell-meta {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 1px;
    min-width: 0;
  }
  .patient-cell-meta strong {
    font-size: 12.5px;
    font-weight: 700;
    color: var(--ink);
    line-height: 1.25;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .patient-cell-meta small {
    font-size: 10.5px;
    color: var(--muted);
    font-weight: 500;
    letter-spacing: .4px;
    line-height: 1.2;
  }
  #patient-table th:last-child,
  #patient-table td:last-child {
    width: 60px;
    text-align: right;
    padding-right: 18px;
  }
  #patient-table .open-patient-btn {
    width: 30px !important;
    height: 30px !important;
    min-width: 30px !important;
    min-height: 30px !important;
    border-radius: var(--radius-md, 8px) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
  }
  #patient-table .open-patient-btn .icon {
    width: 16px !important;
    height: 16px !important;
  }
  #patient-table .badge {
    padding: 3px 8px;
    font-size: 11px;
  }
  #patient-table .patient-appointment-badge {
    margin-top: 2px;
    padding: 2px 7px;
    font-size: 10px;
  }
  #patient-table .patient-pagination {
    flex-shrink: 0;
    padding: 6px 16px !important;
  }
}

.patient-cell-profile {
  display: flex;
  align-items: center;
  gap: 12px;
}
.patient-avatar {
  width: 36px;
  height: 36px;
  min-width: 36px;
  min-height: 36px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: -0.2px;
  border: 1.5px solid;
  box-shadow: 0 2px 5px rgba(22,61,57,0.06);
  flex-shrink: 0;
  user-select: none;
  overflow: hidden;
}
.patient-cell-meta {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 1px;
  min-width: 0;
}
.patient-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
  display: block;
}

/* ==========================================================================
   Avatar en cabecera de Expediente Clínico (Topbar y Detalle)
   ========================================================================== */
.topbar-patient-profile,
.patient-header-main {
  display: flex !important;
  align-items: center !important;
  gap: 14px !important;
  min-width: 0 !important;
}
.topbar-patient-meta {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
}
.topbar-patient-meta .module-eyebrow {
  margin-bottom: 2px;
}
.topbar-patient-meta h1 {
  margin: 0 0 2px 0;
  line-height: 1.15;
}
.topbar-patient-avatar,
.patient-header-avatar {
  width: 44px !important;
  height: 44px !important;
  min-width: 44px !important;
  min-height: 44px !important;
  border-radius: 50% !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  letter-spacing: -0.2px !important;
  border-width: 1.5px !important;
  border-style: solid !important;
  box-shadow: 0 2px 5px rgba(22, 61, 57, 0.06) !important;
  cursor: pointer;
  transition: transform 0.16s ease, box-shadow 0.16s ease;
  flex-shrink: 0 !important;
  position: relative !important;
  overflow: visible !important;
  display: grid;
  place-items: center;
}
.topbar-patient-avatar:hover,
.patient-header-avatar:hover {
  transform: scale(1.05);
  box-shadow: 0 3px 8px rgba(22, 61, 57, 0.12) !important;
}
@media (max-width: 760px) {
  .topbar-patient-avatar {
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    min-height: 38px !important;
    font-size: 13.5px !important;
  }
}

/* ==========================================================================
   Formulario Profesional y Dinámico de Expediente Clínico (Nuevo / Editar)
   ========================================================================== */
#modal.patient-dialog {
  width: min(920px, calc(100vw - 28px));
  max-height: 92vh;
}
.patient-form-header-meta {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.patient-form-header-meta h2 {
  font-size: 18px;
  margin: 0;
  color: var(--ink);
  letter-spacing: -0.3px;
}
.patient-form-header-meta p {
  font-size: 11.5px;
  color: var(--muted);
  margin: 0;
}
.patient-form-wrap {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.patient-form-section {
  background: #fff;
  border: 1px solid #d8e6e3;
  border-radius: var(--radius-lg, 12px);
  padding: 16px 20px;
  box-shadow: 0 1px 3px rgba(18,56,53,0.03);
}
.patient-form-section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
  padding-bottom: 9px;
  border-bottom: 1px solid #eef4f3;
}
.patient-form-section-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 700;
  color: var(--primary);
  letter-spacing: -0.2px;
  text-transform: uppercase;
}
.patient-form-section-title .icon {
  width: 16px;
  height: 16px;
  stroke: var(--primary);
}
.patient-form-section-badge {
  font-size: 10.5px;
  font-weight: 600;
  padding: 2.5px 8px;
  border-radius: var(--radius-pill, 999px);
  background: var(--tint);
  color: var(--primary);
}
.patient-form-grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px 18px;
}
@media (max-width: 680px) {
  .patient-form-grid-2 {
    grid-template-columns: 1fr;
  }
}
.patient-form-field {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.patient-form-field.span-2 {
  grid-column: 1 / -1;
}
.patient-field-label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 12px;
  font-weight: 600;
  color: var(--ink);
}
.patient-field-required {
  color: var(--danger, #dc2626);
  margin-left: 2px;
  font-weight: 700;
}
.patient-field-hint {
  font-size: 11px;
  color: var(--muted);
  font-weight: 450;
  line-height: 1.3;
}
.patient-form-field input,
.patient-form-field select,
.patient-form-field textarea {
  width: 100%;
  border: 1px solid #cbdcd9;
  border-radius: var(--radius-md, 8px);
  padding: 8px 12px;
  font-size: 13px;
  color: var(--ink);
  background: #fff;
  transition: all .15s ease;
  box-sizing: border-box;
}
.patient-form-field input:focus,
.patient-form-field select:focus,
.patient-form-field textarea:focus {
  border-color: var(--primary);
  outline: none;
  box-shadow: 0 0 0 2.5px var(--tint);
}
.patient-form-field textarea {
  min-height: 64px;
  resize: vertical;
  line-height: 1.45;
  font-family: inherit;
}
.patient-quick-pills {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 3px;
  flex-wrap: wrap;
}
.patient-quick-pills span.pill-label {
  font-size: 10px;
  color: var(--muted);
  font-weight: 600;
}
.patient-quick-pill {
  font-size: 10.5px;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: var(--radius-sm, 6px);
  background: #f1f6f5;
  border: 1px solid #cfdedb;
  color: var(--primary);
  cursor: pointer;
  transition: all .15s ease;
}
.patient-quick-pill:hover {
  background: var(--tint);
  border-color: var(--primary);
  transform: translateY(-0.5px);
}
.patient-age-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  font-weight: 600;
  color: var(--primary);
  background: var(--tint);
  padding: 1.5px 7px;
  border-radius: var(--radius-pill, 999px);
  margin-left: 6px;
}

/* Selector y captura de foto de paciente */
.patient-photo-card {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 14px 16px;
  background: #f8fbfa;
  border: 1px dashed #c0d9d4;
  border-radius: var(--radius-lg, 12px);
  margin-bottom: 18px;
  transition: border-color .2s ease, background .2s ease;
}
.patient-photo-card:hover {
  background: #f3f8f7;
  border-color: var(--primary);
}
.patient-photo-preview-wrap {
  position: relative;
  width: 76px;
  height: 76px;
  flex-shrink: 0;
}
.patient-photo-preview {
  width: 76px;
  height: 76px;
  border-radius: 50%;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 26px;
  border: 2.5px solid #fff;
  box-shadow: 0 2px 8px rgba(0,0,0,0.08), 0 0 0 1px #d3e2df;
  background: #e4eeec;
  color: var(--primary);
  position: relative;
}
.patient-photo-preview img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.patient-photo-badge {
  position: absolute;
  bottom: 0;
  right: 0;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: var(--primary);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px solid #fff;
  box-shadow: 0 1px 4px rgba(0,0,0,0.15);
  pointer-events: none;
}
.patient-photo-badge svg {
  width: 13px;
  height: 13px;
  stroke: currentColor;
}
.patient-photo-info {
  flex: 1;
  min-width: 0;
}
.patient-photo-title {
  font-size: 13.5px;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: 2px;
  display: flex;
  align-items: center;
  gap: 6px;
}
.patient-photo-desc {
  font-size: 11.5px;
  color: var(--muted);
  line-height: 1.35;
  margin-bottom: 8px;
}
.patient-photo-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.patient-photo-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 600;
  padding: 5px 11px;
  border-radius: var(--radius-sm, 6px);
  border: 1px solid var(--line);
  background: #fff;
  color: var(--ink);
  cursor: pointer;
  transition: all .15s ease;
  line-height: 1;
}
.patient-photo-btn svg {
  width: 14px;
  height: 14px;
  stroke: currentColor;
  stroke-width: 2;
}
.patient-photo-btn:hover {
  background: #f1f6f5;
  border-color: var(--primary);
  color: var(--primary);
}
.patient-photo-btn.primary {
  background: var(--primary);
  color: #fff;
  border-color: var(--primary);
}
.patient-photo-btn.primary:hover {
  background: var(--primary-dark);
}
.patient-photo-btn.danger {
  color: #b83232;
  border-color: #f0cfcf;
  background: #fff7f7;
}
.patient-photo-btn.danger:hover {
  background: #fce8e8;
  border-color: #b83232;
}

/* Modal interactivo de Cámara / Webcam */
dialog.patient-camera-modal {
  padding: 0 !important;
  border: 1px solid var(--ink-secondary, #3d585c) !important;
  border-radius: var(--radius-xl, 16px) !important;
  background: var(--ink, #19383d) !important;
  color: var(--bg, #f3f7f6) !important;
  max-width: 600px !important;
  width: min(600px, calc(100vw - 28px)) !important;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.7) !important;
  margin: auto !important;
  overflow: hidden !important;
  z-index: 1900 !important;
}
dialog.patient-camera-modal::backdrop {
  background: rgba(15, 23, 42, 0.8) !important;
  backdrop-filter: blur(5px) !important;
}
.patient-camera-box {
  background: var(--ink, #19383d);
  position: relative;
  overflow: hidden;
  width: 100%;
  max-width: 600px;
  margin: 0 auto;
  border-radius: var(--radius-lg, 12px);
  display: flex;
  flex-direction: column;
  align-items: center;
}
.patient-camera-header {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 18px;
  border-bottom: 1px solid var(--ink, #19383d);
  background: var(--ink, #19383d);
}
.patient-camera-toolbar {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 8px 14px;
  background: #090e1a;
  border-bottom: 1px solid var(--ink, #19383d);
  flex-wrap: wrap;
}
.patient-camera-select-wrap {
  display: flex;
  align-items: center;
  gap: 6px;
  flex: 1;
  min-width: 160px;
}
.patient-camera-select {
  width: 100%;
  padding: 5px 8px;
  font-size: 11.5px;
  color: var(--line, #e2eae9);
  background: var(--ink, #19383d);
  border: 1px solid var(--ink-secondary, #3d585c);
  border-radius: var(--radius-sm, 6px);
  outline: none;
}
.patient-camera-tools-group {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
.patient-camera-tool-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: var(--ink, #19383d);
  color: var(--muted, #526b70);
  border: 1px solid var(--ink-secondary, #3d585c);
  border-radius: var(--radius-sm, 6px);
  padding: 4px 8px;
  font-size: 11px;
  font-weight: 600;
  cursor: pointer;
  transition: all .15s ease;
  line-height: 1;
}
.patient-camera-tool-btn svg {
  width: 13px;
  height: 13px;
}
.patient-camera-tool-btn:hover {
  background: var(--ink-secondary, #3d585c);
  color: var(--bg, #f3f7f6);
}
.patient-camera-tool-btn.active {
  background: rgba(8, 126, 133, 0.25);
  border-color: var(--primary, #087e85);
  color: #2dd4bf;
}
.patient-camera-res-badge {
  font-size: 10.5px;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: var(--radius-xs, 4px);
  background: rgba(16, 185, 129, 0.2);
  color: #34d399;
  border: 1px solid rgba(16, 185, 129, 0.3);
  letter-spacing: 0.3px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.patient-camera-viewport {
  position: relative;
  width: 100%;
  height: 380px;
  background: #000;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.patient-camera-video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: filter .2s ease;
}
.patient-camera-video.mirrored {
  transform: scaleX(-1);
}
.patient-camera-video.unmirrored {
  transform: none;
}
.patient-camera-guide {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 240px;
  height: 240px;
  border: 2px dashed rgba(255, 255, 255, 0.8);
  border-radius: 50%;
  box-shadow: 0 0 0 9999px rgba(0, 0, 0, 0.42);
  pointer-events: none;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.patient-camera-countdown-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.5);
  display: none;
  align-items: center;
  justify-content: center;
  font-size: 80px;
  font-weight: 900;
  color: #fff;
  z-index: 10;
  pointer-events: none;
  animation: camPulse .5s infinite alternate;
}
@keyframes camPulse {
  from { transform: scale(0.9); opacity: 0.9; }
  to { transform: scale(1.1); opacity: 1; }
}
.patient-camera-flash-overlay {
  position: absolute;
  inset: 0;
  background: #fff;
  opacity: 0;
  pointer-events: none;
  z-index: 12;
  transition: opacity .15s ease-out;
}
.patient-camera-flash-overlay.flashing {
  opacity: 0.85;
}
.patient-camera-footer {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 18px;
  background: var(--ink, #19383d);
  gap: 12px;
}
.patient-camera-shutter-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: var(--primary, #087e85);
  color: #fff;
  border: none;
  border-radius: var(--radius-pill, 999px);
  padding: 10px 24px;
  font-size: 13.5px;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 4px 14px rgba(8, 126, 133, 0.4);
  transition: transform .1s ease, background .15s ease;
}
.patient-camera-shutter-btn:hover {
  background: #076d73;
  transform: scale(1.02);
}
.patient-camera-shutter-btn:active {
  transform: scale(0.98);
}
.patient-camera-snap-preview {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  background: #000;
  display: none;
}
.patient-camera-switch-btn {
  background: rgba(255,255,255,0.12);
  color: #fff;
  border: none;
  border-radius: var(--radius-md, 8px);
  padding: 6px 12px;
  font-size: 12px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: background .15s ease;
}
.patient-camera-switch-btn:hover {
  background: rgba(255,255,255,0.22);
}

/* Avatar en encabezado del expediente */
.patient-header-main {
  display: flex;
  align-items: center;
  gap: 16px;
}
.patient-header-avatar {
  width: 58px;
  height: 58px;
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 21px;
  font-weight: 700;
  border: 2.5px solid #fff;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1), 0 0 0 1px rgba(0,0,0,0.06);
}
.patient-header-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Patient Gallery & Avatar in Datos Tab */
.patient-gallery-card {
  margin-top: 24px;
}

.patient-gallery-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  flex-wrap: wrap;
}

.patient-gallery-header-info {
  flex: 1;
  min-width: 260px;
}

.patient-gallery-header-tools {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.patient-gallery-body {
  padding-top: 18px;
}

/* Sub-barra de la galería */
.patient-gallery-subbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 4px;
  margin-bottom: 14px;
  padding: 0 2px;
  gap: 12px;
  flex-wrap: wrap;
}

.patient-gallery-subbar-title {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13.5px;
  color: var(--ink, #19383d);
}

.patient-gallery-subbar-hint {
  font-size: 12px;
  color: var(--muted, #526b70);
}

/* Cuadrícula interactiva y compacta */
.patient-gallery-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(185px, 1fr));
  gap: 14px;
  align-items: stretch;
}

/* Tile interactivo para agregar fotografía */
.patient-gallery-add-card {
  border: 2px dashed rgba(8, 126, 133, 0.35);
  background: rgba(8, 126, 133, 0.02);
  border-radius: var(--radius-lg, 12px);
  min-height: 180px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 16px 12px;
  cursor: pointer;
  transition: all 0.2s ease;
  user-select: none;
}

.patient-gallery-add-card:hover {
  background: rgba(8, 126, 133, 0.06);
  border-color: var(--primary, #087e85);
  transform: translateY(-2px);
  box-shadow: 0 6px 16px -4px var(--primary-glow, rgba(8, 126, 133, 0.16));
}

.patient-gallery-add-icon {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: var(--tint, #e7f5f3);
  color: var(--primary, #087e85);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 10px;
  transition: transform 0.2s ease;
}

.patient-gallery-add-card:hover .patient-gallery-add-icon {
  transform: scale(1.1);
}

.patient-gallery-add-text {
  font-size: 13px;
  font-weight: 700;
  color: var(--ink, #19383d);
  margin-bottom: 2px;
}

.patient-gallery-add-sub {
  font-size: 11px;
  color: var(--muted, #526b70);
}

.patient-gallery-add-btns {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 10px;
  flex-wrap: wrap;
  justify-content: center;
}

.patient-gallery-add-btns .btn {
  padding: 4px 10px !important;
  font-size: 11.5px !important;
  border-radius: var(--radius-sm, 6px) !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
}

.patient-gallery-add-btns .btn svg {
  width: 13px;
  height: 13px;
}

/* Ficha de cada fotografía */
.patient-gallery-item {
  background: var(--surface, #ffffff);
  border: 1px solid var(--border, var(--line, #e2eae9));
  border-radius: var(--radius-lg, 12px);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
  position: relative;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04);
}

.patient-gallery-item:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 18px -4px rgba(15, 23, 42, 0.09), 0 2px 4px -2px rgba(15, 23, 42, 0.04);
  border-color: var(--line, #e2eae9);
}

.patient-gallery-item.is-active-avatar {
  border-color: var(--primary, #087e85);
  box-shadow: 0 0 0 1.5px var(--primary, #087e85), 0 8px 16px -4px var(--primary-glow, rgba(8, 126, 133, 0.16));
}

.patient-gallery-thumb-wrap {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  background: var(--ink, #19383d);
  overflow: hidden;
  cursor: pointer;
}

.patient-gallery-thumb {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.28s ease;
  display: block;
}

.patient-gallery-item:hover .patient-gallery-thumb {
  transform: scale(1.05);
}

.patient-gallery-avatar-badge {
  position: absolute;
  top: 8px;
  left: 8px;
  background: rgba(8, 126, 133, 0.92);
  backdrop-filter: blur(4px);
  color: #ffffff;
  font-size: 10.5px;
  font-weight: 700;
  padding: 2.5px 8px;
  border-radius: var(--radius-lg, 12px);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25);
  display: inline-flex;
  align-items: center;
  gap: 3px;
  z-index: 2;
  letter-spacing: 0.2px;
}

.patient-gallery-overlay {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.42);
  backdrop-filter: blur(2px);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.18s ease;
  z-index: 3;
}

.patient-gallery-item:hover .patient-gallery-overlay {
  opacity: 1;
  pointer-events: auto;
}

.patient-gallery-overlay-btn {
  background: rgba(255, 255, 255, 0.94);
  color: var(--ink, #19383d);
  border: none;
  padding: 6px 12px;
  border-radius: var(--radius-sm, 6px);
  font-size: 12px;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  cursor: pointer;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
  transform: translateY(3px);
  transition: transform 0.16s ease, background 0.16s ease;
}

.patient-gallery-overlay-btn svg {
  width: 14px;
  height: 14px;
}

.patient-gallery-overlay-btn:hover {
  background: #ffffff;
  transform: translateY(0);
}

.patient-gallery-info {
  padding: 9px 11px 5px;
  flex: 1;
  min-width: 0;
}

.patient-gallery-title {
  font-size: 12.5px;
  font-weight: 700;
  color: var(--ink, #19383d);
  margin: 0 0 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.3;
}

.patient-gallery-submeta {
  font-size: 11px;
  color: var(--muted, #526b70);
  display: flex;
  align-items: center;
  gap: 4px;
}

.gallery-meta-sep {
  opacity: 0.6;
}

.patient-gallery-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 6px 10px 8px;
  border-top: 1px solid var(--border, var(--tint, #e7f5f3));
  gap: 6px;
  background: #ffffff;
}

.patient-gallery-active-pill {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  font-weight: 700;
  color: var(--primary, #087e85);
  background: var(--tint, #e7f5f3);
  padding: 3px 8px;
  border-radius: var(--radius-sm, 6px);
  cursor: pointer;
  border: none;
  transition: all 0.15s ease;
}

.patient-gallery-active-pill svg {
  width: 13px;
  height: 13px;
}

.patient-gallery-active-pill:hover {
  background: rgba(184, 50, 50, 0.1) !important;
  color: var(--danger, #b83232) !important;
}

.patient-gallery-btn-avatar {
  font-size: 11.5px !important;
  font-weight: 600 !important;
  color: var(--primary, #087e85) !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
  padding: 3px 6px !important;
  border-radius: var(--radius-sm, 6px) !important;
  background: transparent !important;
}

.patient-gallery-btn-avatar svg {
  width: 13px;
  height: 13px;
}

.patient-gallery-btn-avatar:hover {
  background: var(--tint, #e7f5f3) !important;
}

.patient-gallery-card-tools {
  display: flex;
  align-items: center;
  gap: 2px;
  margin-left: auto;
}

.patient-gallery-btn-edit,
.patient-gallery-btn-del {
  padding: 4px !important;
  color: var(--muted, #526b70) !important;
  opacity: 0.75;
  border-radius: var(--radius-xs, 4px);
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: transparent !important;
  border: none !important;
  cursor: pointer;
  transition: all 0.15s ease;
}

.patient-gallery-btn-edit svg,
.patient-gallery-btn-del svg {
  width: 15px;
  height: 15px;
}

.patient-gallery-btn-edit:hover {
  color: var(--primary, #087e85) !important;
  background: var(--tint, #e7f5f3) !important;
  opacity: 1;
}

.patient-gallery-btn-del:hover {
  color: var(--danger, #b83232) !important;
  background: rgba(184, 50, 50, 0.08) !important;
  opacity: 1;
}

/* Responsive adjustments */
@media (max-width: 768px) {
  .patient-gallery-grid {
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: 10px;
  }
  .patient-gallery-add-card {
    min-height: 150px;
    padding: 12px 8px;
  }
}

/* Patient Avatar Insignias / Badges */
.patient-avatar,
.patient-header-avatar,
.topbar-patient-avatar,
.patient-photo-preview {
  position: relative !important;
  overflow: visible !important;
}

.patient-avatar img,
.patient-header-avatar img,
.topbar-patient-avatar img,
.patient-photo-preview img {
  border-radius: 50% !important;
  overflow: hidden !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block;
}

.patient-avatar-insignia {
  position: absolute;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  z-index: 5;
  pointer-events: auto;
  user-select: none;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  line-height: 1;
}

.patient-avatar-insignia.context-header,
.topbar-patient-avatar .patient-avatar-insignia {
  width: 26px;
  height: 26px;
  bottom: -4px;
  right: -4px;
}

.patient-avatar-insignia.context-table {
  width: 20px;
  height: 20px;
  bottom: -4px;
  right: -4px;
}

.patient-avatar-insignia.context-form {
  width: 32px;
  height: 32px;
  bottom: -4px;
  right: -4px;
}

/* 3D SVG Insignia Animations */
.insignia-3d-svg {
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
  filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.28));
  transition: transform 0.22s cubic-bezier(0.34, 1.56, 0.64, 1), filter 0.22s ease;
  transform-origin: center center;
}

.insignia-3d-svg.anim-float {
  animation: insignia3dFloat 3.2s ease-in-out infinite;
}

.insignia-3d-svg.anim-pulse {
  animation: insignia3dPulse 2.4s ease-in-out infinite;
}

.insignia-3d-svg.anim-alert {
  animation: insignia3dAlertPulse 1.8s ease-in-out infinite;
}

.insignia-3d-svg.anim-wiggle {
  animation: insignia3dWiggle 3.6s ease-in-out infinite;
}

.insignia-3d-svg.anim-heart {
  animation: insignia3dHeartbeat 2.2s ease-in-out infinite;
}

.insignia-3d-svg.anim-add {
  animation: insignia3dAddPulse 2.5s ease-in-out infinite;
}

.insignia-3d-svg.anim-glow {
  animation: insignia3dGlow 2.8s ease-in-out infinite;
}

.insignia-3d-svg.anim-spin-slow {
  animation: insignia3dSpinSlow 9s linear infinite;
}

@keyframes insignia3dGlow {
  0%, 100% {
    transform: scale(1);
    filter: drop-shadow(0 2px 5px rgba(234, 179, 8, 0.45));
  }
  50% {
    transform: scale(1.09);
    filter: drop-shadow(0 0 12px rgba(250, 204, 21, 0.85));
  }
}

@keyframes insignia3dSpinSlow {
  0% {
    transform: rotate(0deg) scale(1);
  }
  50% {
    transform: rotate(180deg) scale(1.05);
  }
  100% {
    transform: rotate(360deg) scale(1);
  }
}

@keyframes insignia3dFloat {
  0%, 100% {
    transform: translateY(0px) rotate(0deg) scale(1);
  }
  50% {
    transform: translateY(-2.5px) rotate(2.5deg) scale(1.05);
  }
}

@keyframes insignia3dPulse {
  0%, 100% {
    transform: scale(1);
    filter: drop-shadow(0 2px 4px rgba(13, 148, 136, 0.3));
  }
  50% {
    transform: scale(1.09);
    filter: drop-shadow(0 4px 9px rgba(13, 148, 136, 0.65));
  }
}

@keyframes insignia3dAlertPulse {
  0%, 100% {
    transform: scale(1);
    filter: drop-shadow(0 2px 4px rgba(220, 38, 38, 0.45));
  }
  50% {
    transform: scale(1.12);
    filter: drop-shadow(0 4px 10px rgba(239, 68, 68, 0.8));
  }
}

@keyframes insignia3dWiggle {
  0%, 100% {
    transform: rotate(0deg) scale(1);
  }
  25% {
    transform: rotate(5deg) scale(1.06);
  }
  75% {
    transform: rotate(-5deg) scale(1.06);
  }
}

@keyframes insignia3dHeartbeat {
  0%, 100% {
    transform: scale(1);
    filter: drop-shadow(0 2px 4px rgba(219, 39, 119, 0.35));
  }
  15% {
    transform: scale(1.12);
    filter: drop-shadow(0 4px 8px rgba(236, 72, 153, 0.65));
  }
  30% {
    transform: scale(1);
  }
  45% {
    transform: scale(1.08);
    filter: drop-shadow(0 3px 6px rgba(236, 72, 153, 0.5));
  }
}

@keyframes insignia3dAddPulse {
  0%, 100% {
    transform: scale(1);
    opacity: 0.92;
  }
  50% {
    transform: scale(1.1);
    opacity: 1;
    filter: drop-shadow(0 3px 6px rgba(8, 126, 133, 0.5));
  }
}

.patient-avatar-insignia:hover .insignia-3d-svg {
  transform: scale(1.22) rotate(4deg);
  filter: drop-shadow(0 5px 10px rgba(0, 0, 0, 0.38));
}

/* Header Avatar Wrap & Quick Insignia Action */
.patient-header-avatar-wrap {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  cursor: pointer;
}

.patient-header-avatar-wrap .patient-avatar-quick-badge-btn {
  position: absolute;
  top: -4px;
  right: -4px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--surface, #ffffff);
  border: 1px solid var(--border, var(--line, #e2eae9));
  color: var(--muted, #526b70);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 6px rgba(0,0,0,0.14);
  opacity: 0;
  transform: scale(0.85);
  transition: opacity 0.15s ease, transform 0.15s ease, background 0.15s ease, color 0.15s ease;
  z-index: 6;
  cursor: pointer;
  padding: 0;
}

.patient-header-avatar-wrap:hover .patient-avatar-quick-badge-btn {
  opacity: 1;
  transform: scale(1);
}

.patient-header-avatar-wrap .patient-avatar-quick-badge-btn:hover {
  background: var(--primary, #087e85);
  border-color: var(--primary, #087e85);
  color: #ffffff;
}

/* Header Insignia Pills & Add Badge Button */
.patient-header-insignia-pill,
.patient-header-add-badge-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 3px 10px;
  border-radius: 9999px;
  font-size: 11.5px;
  font-weight: 600;
  cursor: pointer;
  border: 1px solid var(--border, var(--line, #e2eae9));
  background: var(--surface, #ffffff);
  color: var(--ink, #19383d);
  box-shadow: 0 1px 3px rgba(0,0,0,0.06);
  transition: all 0.18s ease;
  vertical-align: middle;
  margin-left: 6px;
}

.patient-header-insignia-pill {
  background: linear-gradient(135deg, rgba(8,126,133,0.09), rgba(8,126,133,0.02));
  border-color: rgba(8,126,133,0.32);
  color: var(--primary, #087e85);
}

.patient-header-insignia-pill:hover,
.patient-header-add-badge-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 3px 8px var(--primary-glow, rgba(8, 126, 133, 0.16));
  border-color: var(--primary, #087e85);
  color: var(--primary, #087e85);
}

.patient-header-insignia-pill .insignia-3d-svg,
.patient-header-add-badge-btn .insignia-3d-svg {
  width: 17px;
  height: 17px;
  flex-shrink: 0;
}

/* Subbar Insignia Pill in Gallery */
.patient-gallery-subbar-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}

.patient-gallery-insignia-pill-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 5px 12px;
  border-radius: 9999px;
  border: 1px solid var(--border, var(--line, #e2eae9));
  background: var(--surface, #ffffff);
  color: var(--ink, #19383d);
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
  box-shadow: 0 1px 3px rgba(0,0,0,0.05);
  transition: all 0.15s ease;
}

.patient-gallery-insignia-pill-btn:hover {
  background: var(--bg, #f3f7f6);
  border-color: var(--primary, #087e85);
  color: var(--primary, #087e85);
  box-shadow: 0 2px 6px var(--primary-glow, rgba(8, 126, 133, 0.16));
}

.patient-gallery-insignia-pill-btn .insignia-3d-svg {
  width: 18px;
  height: 18px;
}

/* Insignia Selector Modal */
.insignia-modal-wrap {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.insignia-preview-banner {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 16px;
  border-radius: var(--radius-lg, 12px);
  background: linear-gradient(135deg, rgba(8,126,133,0.08), rgba(8,126,133,0.02));
  border: 1px solid rgba(8,126,133,0.2);
}

.insignia-preview-avatar-wrap {
  position: relative;
  flex-shrink: 0;
}

.insignia-preview-avatar {
  width: 64px !important;
  height: 64px !important;
  font-size: 22px !important;
}

.insignia-preview-info {
  flex: 1;
  min-width: 0;
}

.insignia-preview-name {
  font-size: 15px;
  font-weight: 700;
  color: var(--ink, #19383d);
  line-height: 1.25;
}

.insignia-preview-folio {
  font-size: 11.5px;
  font-family: var(--font-mono, monospace);
  color: var(--muted, #526b70);
  margin-top: 2px;
}

.insignia-preview-active-label {
  margin-top: 8px;
}

.insignia-tag {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 4px 12px;
  border-radius: 9999px;
  font-size: 11.5px;
  font-weight: 600;
  border: 1px solid;
}

.insignia-tag.neutral {
  background: var(--bg, var(--tint, #e7f5f3));
  border-color: var(--border, var(--line, #e2eae9));
  color: var(--muted, #526b70);
}

.insignia-tag .insignia-3d-svg {
  width: 17px;
  height: 17px;
}

.insignia-selector-heading {
  margin-top: 4px;
}

.insignia-selector-heading strong {
  display: block;
  font-size: 13.5px;
  color: var(--ink, #19383d);
}

.insignia-selector-heading small {
  display: block;
  font-size: 12px;
  color: var(--muted, #526b70);
  margin-top: 2px;
}

.insignia-search-row {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}

.insignia-search-input {
  flex: 1;
  padding: 8px 12px;
  border-radius: var(--radius-md, 8px);
  border: 1px solid var(--border, var(--line, #e2eae9));
  background: var(--surface, #ffffff);
  color: var(--ink, #19383d);
  font-size: 13px;
  outline: none;
  transition: border-color 0.15s, box-shadow 0.15s;
}

.insignia-search-input:focus {
  border-color: var(--primary, #087e85);
  box-shadow: 0 0 0 2px var(--primary-glow, rgba(8, 126, 133, 0.16));
}

.insignia-count-tag {
  font-size: 11px;
  font-weight: 600;
  color: var(--muted, #526b70);
  background: var(--bg, var(--tint, #e7f5f3));
  padding: 4px 8px;
  border-radius: var(--radius-sm, 6px);
  white-space: nowrap;
}

.insignia-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 10px;
  max-height: 420px;
  overflow-y: auto;
  padding: 4px 2px 8px;
}

.insignia-card {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  border-radius: var(--radius-lg, 12px);
  border: 1.5px solid var(--border, var(--line, #e2eae9));
  background: var(--surface, #ffffff);
  text-align: left;
  cursor: pointer;
  transition: all 0.18s ease;
  position: relative;
  outline: none;
}

.insignia-card:hover {
  border-color: var(--primary, #087e85);
  background: var(--tint, #f0fdf4);
  transform: translateY(-2px);
  box-shadow: 0 4px 12px var(--primary-glow, rgba(8, 126, 133, 0.16));
}

.insignia-card.selected {
  border-color: var(--primary, #087e85);
  background: rgba(8, 126, 133, 0.08);
  box-shadow: 0 0 0 1.5px var(--primary, #087e85);
}

.insignia-card-3d-icon {
  width: 38px;
  height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.insignia-none-icon {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: 2px dashed var(--muted, #526b70);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--muted, #526b70);
  font-size: 13px;
}

.insignia-card-meta {
  flex: 1;
  min-width: 0;
  line-height: 1.25;
}

.insignia-card-title {
  display: block;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--ink, #19383d);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.insignia-card-desc {
  display: block;
  font-size: 11px;
  color: var(--muted, #526b70);
  margin-top: 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.insignia-card-check {
  font-size: 14px;
  font-weight: 700;
  color: var(--primary, #087e85);
  width: 18px;
  text-align: right;
  flex-shrink: 0;
}

/* Patient Form Insignia Selector */
.patient-photo-insignia-row {
  margin-top: 12px;
  padding-top: 10px;
  border-top: 1px dashed var(--border, var(--line, #e2eae9));
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}

.patient-insignia-label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--ink, #19383d);
}

.patient-insignia-select {
  padding: 6px 10px;
  border-radius: var(--radius-md, 8px);
  border: 1px solid var(--border, var(--line, #e2eae9));
  background: var(--surface, #ffffff);
  color: var(--ink, #19383d);
  font-size: 12.5px;
  outline: none;
}

.patient-insignia-select:focus {
  border-color: var(--primary, #087e85);
}

/* ==========================================================================
   Menú Lateral y Subsecciones de la Pestaña de Datos (Estilo Perfil/Configuración)
   ========================================================================== */
.patient-data-workspace.profile-editor-layout {
  display: grid;
  grid-template-columns: 200px minmax(0, 1fr);
  gap: 16px;
  align-items: stretch;
  height: 100%;
  max-height: 100%;
  min-height: 0;
  flex: 1 1 auto;
  overflow: hidden;
  margin-bottom: 0;
}

.patient-data-workspace .profile-section-nav {
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding: 10px 8px;
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: var(--radius-lg, 12px);
  position: static;
  height: 100%;
  max-height: 100%;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  box-sizing: border-box;
  flex-shrink: 0;
  box-shadow: var(--shadow);
}

.patient-data-workspace .profile-section-nav button {
  font-size: 12px;
  font-weight: 500;
  padding: 8px 10px;
  gap: 8px;
  line-height: 1.35;
  flex-shrink: 0;
  text-align: left;
  border: 0;
  background: transparent;
  color: var(--ink);
  border-radius: var(--radius-md, 8px);
  display: flex;
  align-items: center;
  cursor: pointer;
  width: 100%;
  transition: background-color 0.15s ease, color 0.15s ease;
}

.patient-data-workspace .profile-section-nav button span:first-child {
  font-size: 9px;
  color: var(--muted);
  font-weight: 700;
  min-width: 14px;
}

.patient-data-workspace .profile-section-nav button:hover {
  background: var(--tint);
  color: var(--primary);
}

.patient-data-workspace .profile-section-nav button.active {
  background: var(--tint);
  color: var(--primary);
  font-weight: 600;
}

.patient-data-workspace .profile-section-nav button.active span:first-child {
  color: var(--primary);
}

.patient-data-workspace .profile-nav-count {
  margin-left: auto;
  font-size: 10px;
  font-weight: 700;
  padding: 1px 6px;
  border-radius: var(--radius-lg, 12px);
  background: var(--line, #e2eae9);
  color: var(--ink-secondary, #3d585c);
  transition: all 0.15s ease;
}

.patient-data-workspace .profile-section-nav button.active .profile-nav-count {
  background: var(--primary);
  color: #ffffff;
}

.patient-data-workspace .profile-section-panel {
  display: flex;
  flex-direction: column;
  padding: 22px 26px;
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: var(--radius-lg, 12px);
  min-width: 0;
  min-height: 0;
  height: 100%;
  max-height: 100%;
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-gutter: stable;
  box-sizing: border-box;
  box-shadow: var(--shadow);
}

/* Patient Data Fields matching doctor-profile style */
.patient-data-workspace .profile-fields {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.patient-data-workspace .profile-field input[readonly],
.patient-data-workspace .profile-field textarea[readonly] {
  background: #ffffff;
  cursor: default;
  color: var(--ink);
}

.patient-data-workspace .profile-field input[readonly]:focus,
.patient-data-workspace .profile-field textarea[readonly]:focus {
  outline: none;
  border-color: var(--line);
}

.patient-data-workspace .profile-field-highlight textarea {
  font-weight: 500;
}

.patient-data-workspace .patient-gallery-card {
  border: 0;
  box-shadow: none;
  padding: 0;
  background: transparent;
  margin: 0;
}

.patient-data-workspace .patient-gallery-card .card-body {
  padding: 0;
}

.patient-antecedents-highlight {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-bottom: 16px;
}

.patient-antecedent-box {
  padding: 14px 16px;
  border-radius: var(--radius-lg, 12px);
  border: 1px solid var(--border, var(--line, #e2eae9));
  background: var(--bg, #f3f7f6);
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.patient-antecedent-box.is-allergy {
  background: #fff0ef;
  border-color: #fca5a5;
  color: #7f1d1d;
}

.patient-antecedent-box.is-meds {
  background: #f0fdfc;
  border-color: #99f6e4;
  color: #115e59;
}

.patient-antecedent-box-title {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.patient-antecedent-box-content {
  font-size: 13.5px;
  line-height: 1.45;
  font-weight: 500;
}

.patient-fiscal-notice {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px 16px;
  border-radius: var(--radius-lg, 12px);
  background: linear-gradient(135deg, rgba(8, 126, 133, 0.08), rgba(8, 126, 133, 0.02));
  border: 1px solid rgba(8, 126, 133, 0.22);
  margin-top: 14px;
  font-size: 12px;
  line-height: 1.5;
  color: var(--ink, #19383d);
}

.patient-fiscal-notice .icon {
  width: 20px;
  height: 20px;
  color: var(--primary, #087e85);
  flex-shrink: 0;
  margin-top: 2px;
}

@media (max-width: 760px) {
  .content.patient-content {
    display: block !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    padding: 14px 14px 20px !important;
  }
  .content.patient-content > .timeline-card,
  .content.patient-content > .patient-data-workspace,
  .content.patient-content > .followup-management-card {
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    display: block !important;
  }
  .patient-data-workspace.profile-editor-layout {
    display: block;
    height: auto;
    max-height: none;
    overflow: visible;
  }
  .patient-data-workspace .profile-section-nav {
    position: static;
    display: flex;
    flex-direction: row;
    overflow-x: auto;
    margin-bottom: 14px;
    gap: 4px;
    height: auto;
    max-height: none;
    padding-bottom: 6px;
  }
  .patient-data-workspace .profile-section-nav button {
    white-space: nowrap;
    width: auto;
    flex-shrink: 0;
  }
  .patient-data-workspace .profile-section-panel {
    padding: 16px;
    min-height: auto;
    height: auto;
    max-height: none;
    overflow: visible;
  }
  .patient-data-workspace .profile-fields {
    grid-template-columns: 1fr;
    gap: 14px;
  }
  .patient-data-workspace .profile-wide {
    grid-column: auto;
  }
  .patient-antecedents-highlight {
    grid-template-columns: 1fr;
  }
}

/* ==========================================================================
   FASE 3: LAYOUT ELÁSTICO VERTICAL ANCLADO AL VIEWPORT (EXPEDIENTE DEL PACIENTE)
   Viewport-locked / Above the fold / Zero window-scroll on desktop
   ========================================================================== */
@media (min-width: 761px) {
  /* Contenedor principal del expediente: anclado 100vh sin scroll de ventana */
  .content.patient-content {
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
    max-height: 100% !important;
    min-height: 0 !important;
    overflow: hidden !important;
    padding: 12px 28px 14px 28px !important;
    box-sizing: border-box !important;
    gap: 0 !important;
  }

  /* Encabezado del paciente: fijo arriba, no scrollea */
  .content.patient-content > .heading.patient-header-with-avatar {
    flex-shrink: 0 !important;
    margin-bottom: 8px !important;
    padding-bottom: 0 !important;
  }

  /* Pestañas de navegación del expediente: fijas arriba, siempre accesibles */
  .content.patient-content > .tabs.patient-nav-tabs {
    flex-shrink: 0 !important;
    margin-bottom: 12px !important;
  }

  /* -------------------------------------------------------------------------
     TAB 1: HISTORIAL CLÍNICO (TIMELINE CARD ELÁSTICO)
     ------------------------------------------------------------------------- */
  .content.patient-content > .timeline-card {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    height: 100% !important;
    max-height: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
    margin-bottom: 0 !important;
    border-radius: var(--radius-lg, 12px) !important;
    border: 1px solid var(--line) !important;
    box-shadow: var(--shadow) !important;
    background: #ffffff !important;
  }

  .content.patient-content > .timeline-card > .card-header.timeline-heading {
    flex-shrink: 0 !important;
    padding: 14px 24px !important;
    border-bottom: 1px solid var(--line) !important;
  }

  .content.patient-content > .timeline-card > .timeline-toolbar {
    flex-shrink: 0 !important;
    padding: 8px 24px !important;
  }

  /* Contenedor scrolleable interno para el historial */
  .content.patient-content > .timeline-card > #patient-timeline-wrap {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    height: 100% !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    scrollbar-gutter: stable !important;
    padding: 0 !important;
  }

  .content.patient-content > .timeline-card > #patient-timeline-wrap > .notes-timeline {
    padding: 20px 24px 26px !important;
    min-height: 100% !important;
    box-sizing: border-box !important;
  }

  /* Estado vacío centrado verticalmente en el card sin dejar huecos vacíos */
  .content.patient-content > .timeline-card > .empty {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: center !important;
    padding: 40px 24px !important;
    margin: 0 !important;
  }

  /* -------------------------------------------------------------------------
     TAB 2: DATOS DEL PACIENTE (PATIENT DATA WORKSPACE SPLIT-PANE ELÁSTICO)
     ------------------------------------------------------------------------- */
  .content.patient-content > .patient-data-workspace.profile-editor-layout {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    height: 100% !important;
    max-height: 100% !important;
    display: grid !important;
    grid-template-columns: 200px minmax(0, 1fr) !important;
    gap: 14px !important;
    overflow: hidden !important;
    align-items: stretch !important;
    margin-bottom: 0 !important;
  }

  /* Menú lateral de subsecciones */
  .content.patient-content .patient-data-workspace .profile-section-nav {
    position: static !important;
    top: auto !important;
    height: 100% !important;
    max-height: 100% !important;
    min-height: 0 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    scrollbar-gutter: stable !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 3px !important;
    padding: 10px 8px !important;
    box-sizing: border-box !important;
    flex-shrink: 0 !important;
  }

  /* Panel de contenido derecho: scroll interno independiente */
  .content.patient-content .patient-data-workspace .profile-section-panel.patient-data-main {
    height: 100% !important;
    max-height: 100% !important;
    min-height: 0 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    scrollbar-gutter: stable !important;
    display: flex !important;
    flex-direction: column !important;
    padding: 22px 26px !important;
    box-sizing: border-box !important;
  }

  .content.patient-content .patient-data-workspace .profile-section-heading {
    flex-shrink: 0 !important;
    margin-bottom: 18px !important;
  }

  .content.patient-content .patient-data-workspace .profile-fields {
    flex-shrink: 0 !important;
  }

  /* Subsección de Galería dentro de Datos */
  .content.patient-content .patient-data-workspace .patient-gallery-card {
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
    min-height: 0 !important;
    flex: 1 1 auto !important;
  }

  .content.patient-content .patient-data-workspace .patient-gallery-card .patient-gallery-body {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
  }

  /* -------------------------------------------------------------------------
     TAB 3: SEGUIMIENTO Y MONITOREO (FOLLOWUP MANAGEMENT CARD ELÁSTICO)
     ------------------------------------------------------------------------- */
  .content.patient-content > .followup-management-card {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    height: 100% !important;
    max-height: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
    margin-bottom: 0 !important;
    border-radius: var(--radius-lg, 12px) !important;
    border: 1px solid var(--line) !important;
    box-shadow: var(--shadow) !important;
    background: #ffffff !important;
  }

  .content.patient-content > .followup-management-card > .card-header {
    flex-shrink: 0 !important;
    padding: 16px 24px !important;
    border-bottom: 1px solid var(--line) !important;
  }

  .content.patient-content > .followup-management-card > .card-body {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    height: 100% !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    scrollbar-gutter: stable !important;
    padding: 22px 26px !important;
    display: flex !important;
    flex-direction: column !important;
    box-sizing: border-box !important;
  }

  .content.patient-content > .followup-management-card > .card-body > .empty {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: center !important;
    padding: 40px 24px !important;
    margin: 0 !important;
  }

  .content.patient-content > .followup-management-card .followup-cards-grid {
    flex: 1 1 auto !important;
    min-height: 0 !important;
  }
}

/* ==========================================================================
   ADAPTACIÓN RESPONSIVE MÓVIL Y TABLET PARA EXPEDIENTE Y NOTA CLÍNICA
   ========================================================================== */
@media (max-width: 1100px) {
  .vitals-grid,
  .clinical-dialog-mockup .vitals-grid,
  .clinical-dialog .vitals-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }
  .patient-data-workspace .profile-fields {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .clinical-dialog-mockup .form-grid > *,
  .clinical-dialog .form-grid > *,
  #note-eval-container > *,
  #specialty-fields > * {
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  .vitals-grid,
  .clinical-dialog-mockup .vitals-grid,
  .clinical-dialog .vitals-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }

  .diagnosis-candidate-head,
  .diagnosis-candidate-row {
    height: auto !important;
    max-height: none !important;
    flex-wrap: wrap !important;
    padding: 6px 8px !important;
    gap: 6px !important;
  }

  .diagnosis-status-wrap {
    flex: 1 1 140px !important;
  }

  .diagnosis-info,
  .diagnosis-info-card dl,
  .diagnosis-topic-grid {
    grid-template-columns: 1fr !important;
    padding: 14px !important;
    gap: 12px !important;
  }

  .rx-card-group-bar,
  .rx-library-inputs {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }

  .note-study-card {
    flex-wrap: wrap !important;
    gap: 10px !important;
  }

  .note-study-name-wrapper {
    min-width: 0 !important;
    width: 100% !important;
  }

  .study-lightbox-controls {
    max-width: calc(100vw - 16px) !important;
    width: max-content !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    padding: 6px 10px !important;
    gap: 4px !important;
    bottom: 10px !important;
  }

  .content.has-elastic-chat,
  .content:has(.reminders-management-card.is-chat-mode) {
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    padding: 14px !important;
  }

  .reminders-management-card.is-chat-mode {
    height: auto !important;
    min-height: 500px !important;
    max-height: none !important;
  }

  .patient-photo-card {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 12px !important;
  }

  dialog.patient-camera-modal .patient-camera-viewport {
    height: 260px !important;
  }

  dialog.patient-camera-modal .patient-camera-footer {
    flex-wrap: wrap !important;
    gap: 8px !important;
    justify-content: center !important;
  }

  .patient-data-workspace .profile-fields {
    grid-template-columns: 1fr !important;
  }
}









