:root {
    --app-navbar-height: 50px;
    --sidebar-width: 250px;
    --color-primary: #3a6990;
    --color-primary-dark: #345472;
    --color-secondary: #488f6f;
    --color-secondary-dark: #3b6f5b;
    --color-accent: #e5da00;
    --color-accent-dark: #c7b800;

    --color-bg: #f2f7fa;
    --color-surface: #ffffff;
    --color-sidebar: #17344a;
    --color-text: #203240;
    --color-muted: #5f7384;
    --color-border: #d7e3eb;
    --color-danger: #c43a3a;
}

/* Fase 9: recetas del paciente, optimizadas para lectura y tacto. */
.prediction-page{width:100%;max-width:1240px;margin:0 auto;padding:22px;min-width:0}.prediction-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:16px}.prediction-head h1{margin:.25rem 0;font-size:1.8rem;color:#19384c}.prediction-head p,.prediction-card-head p{margin:0;color:#687d89}.prediction-eyebrow{font-size:.75rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#176b8b}.prediction-filter{width:min(280px,100%)}.prediction-filter label{font-size:.8rem;font-weight:700;color:#567080}.prediction-disclaimer{margin-bottom:12px}.prediction-service{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;padding:10px 14px;margin-bottom:14px;border:1px solid #cfe5d6;border-radius:12px;background:#f2fbf5;color:#315b40}.status-dot{width:10px;height:10px;border-radius:50%;background:#3f8468}.prediction-week{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;margin:16px 0}.prediction-week a:last-child{justify-self:end}.prediction-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.prediction-kpis article,.prediction-card,.prediction-recommendation,.prediction-empty{border:1px solid #dce6ec;border-radius:16px;background:#fff;box-shadow:0 5px 18px rgba(22,55,75,.07)}.prediction-kpis article{display:flex;flex-direction:column;padding:16px;border-top:4px solid #176b8b}.prediction-kpis span{font-size:.78rem;color:#607482}.prediction-kpis strong{font-size:1.45rem;color:#19384c;overflow-wrap:anywhere}.prediction-kpis small{color:#71838e}.prediction-card{padding:18px;margin-bottom:16px}.prediction-card-head h2,.prediction-recommendation h2{margin:0;font-size:1.05rem;color:#24465b}.prediction-chart{height:245px;display:flex;align-items:flex-end;gap:12px;padding:28px 8px 0;border-bottom:2px solid #d8e4ea;overflow:hidden}.prediction-bar{height:100%;flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;min-width:0;color:#31556d}.prediction-bar>div{width:min(54px,80%);min-height:6px;border-radius:9px 9px 2px 2px;background:linear-gradient(180deg,#55a978,#176b8b);box-shadow:0 4px 10px #176b8b33}.prediction-bar b{font-size:.85rem}.prediction-bar span{font-weight:700;margin-top:5px}.prediction-bar small{font-size:.7rem;color:#758690}.prediction-recommendation{padding:16px 18px;margin-bottom:16px;border-left:5px solid #3f8468}.prediction-recommendation.is-alert{border-left-color:#dc8a13;background:#fffaf0}.prediction-recommendation p{margin:6px 0 0}.prediction-table{margin:14px 0 0}.prediction-table td>small{display:block;color:#71818d}.prediction-franjas td{padding-top:0!important;border-top:0}.prediction-franjas div{display:flex;flex-wrap:wrap;gap:7px}.prediction-franjas span{padding:5px 9px;border-radius:8px;background:#f0f6f8;font-size:.78rem}.prediction-empty{padding:28px;text-align:center;color:#687d89}
@media(max-width:900px){.prediction-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:768px){.prediction-page{padding:14px 10px}.prediction-head{align-items:stretch;flex-direction:column;gap:12px}.prediction-filter{width:100%}.prediction-week{grid-template-columns:1fr 1fr}.prediction-week strong{grid-column:1/-1;grid-row:1;text-align:center}.prediction-week .btn{min-height:44px}.prediction-chart{gap:5px;padding-left:0;padding-right:0}.prediction-bar>div{width:min(36px,85%)}.prediction-card{padding:14px}.prediction-table thead{display:none}.prediction-table,.prediction-table tbody,.prediction-table tr,.prediction-table td{display:block;width:100%}.prediction-table tr:not(.prediction-franjas){margin-top:12px;padding:10px;border:1px solid #dce6ec;border-radius:12px}.prediction-table tr:not(.prediction-franjas) td{display:flex;justify-content:space-between;gap:16px;border:0;padding:5px}.prediction-table tr:not(.prediction-franjas) td:before{content:attr(data-label);font-weight:700;color:#607482}.prediction-franjas td{display:block;padding:7px 10px 12px!important}.prediction-franjas div{display:grid;grid-template-columns:1fr 1fr}.table-responsive{overflow-x:visible}}
@media(max-width:430px){.prediction-kpis{grid-template-columns:1fr}.prediction-week .btn{font-size:.8rem;padding:.5rem}.prediction-bar small{font-size:.62rem}.prediction-franjas div{grid-template-columns:1fr}}

/* Hotfix visual de predicción: composición compacta y gráfico de altura fija. */
.prediction-v2{display:flex;flex-direction:column;gap:14px}.prediction-v2-head{display:flex;align-items:flex-end;justify-content:space-between}.prediction-v2-head h1{margin:.2rem 0;font-size:1.75rem;color:#19384c}.prediction-v2-head p{margin:0;color:#687d89}.prediction-toolbar{display:flex;align-items:end;justify-content:space-between;gap:20px;padding:14px 16px;border:1px solid #dce6ec;border-radius:14px;background:#fff}.prediction-toolbar .prediction-filter{flex:0 1 300px}.prediction-toolbar .prediction-week{display:grid;grid-template-columns:minmax(110px,1fr) auto minmax(110px,1fr);align-items:center;gap:10px;margin:0}.prediction-toolbar .prediction-week a:last-child{justify-self:stretch}.prediction-toolbar .prediction-week .btn{display:flex;align-items:center;justify-content:center;min-height:44px}.prediction-toolbar .prediction-week strong{padding:0 6px;white-space:nowrap;color:#294b5e}.prediction-v2 .prediction-disclaimer,.prediction-v2 .prediction-service{margin:0}.prediction-v2 .prediction-kpis{gap:14px;margin:0}.prediction-v2 .prediction-kpis article{min-height:130px;justify-content:center;padding:18px;border-top:0;border-left:4px solid #176b8b}.prediction-v2 .prediction-kpis strong{margin:4px 0;line-height:1.15}.prediction-panel{padding:18px;border:1px solid #dce6ec;border-radius:16px;background:#fff;box-shadow:0 5px 18px rgba(22,55,75,.07)}.prediction-panel>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.prediction-panel h2{margin:0;font-size:1.08rem;color:#24465b}.prediction-panel header p{margin:3px 0 0;color:#687d89}.chart-scale{font-size:.78rem;color:#687d89}.prediction-chart-v2{display:grid;grid-template-columns:42px minmax(0,1fr);height:280px;margin-top:12px;overflow:hidden}.prediction-y-axis{display:flex;flex-direction:column;justify-content:space-between;height:220px;padding:0 7px 0 0;text-align:right;font-size:.7rem;color:#80909a}.prediction-plot{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;height:260px;border-left:1px solid #cad9e1;border-bottom:1px solid #cad9e1;background:repeating-linear-gradient(to bottom,#fff 0,#fff 54px,#eaf0f3 55px)}.prediction-column{display:grid;grid-template-rows:220px 20px 18px;align-items:end;justify-items:center;min-width:0}.prediction-track{display:flex;align-items:flex-end;justify-content:center;width:100%;height:220px}.prediction-fill{display:flex;align-items:flex-start;justify-content:center;width:min(58px,72%);min-height:8px;padding-top:5px;border-radius:9px 9px 2px 2px;background:linear-gradient(180deg,#4dac78,#176b8b);box-sizing:border-box;color:#fff;box-shadow:0 3px 9px #176b8b35;transition:filter .15s}.prediction-fill:hover{filter:brightness(1.08)}.prediction-fill b{font-size:.78rem;line-height:1}.prediction-column>strong{font-size:.78rem;align-self:center}.prediction-column>small{font-size:.68rem;color:#71838e;align-self:start}.prediction-capacity-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;overflow:hidden;border:1px solid #dce6ec;border-radius:14px;background:#dce6ec}.prediction-capacity-summary>div{display:flex;flex-direction:column;padding:14px 16px;background:#fff}.prediction-capacity-summary span{font-size:.76rem;color:#687d89}.prediction-capacity-summary strong{font-size:1.18rem;color:#24465b}.prediction-v2 .prediction-recommendation{margin:0}.prediction-weekly-panel{padding-bottom:10px}.prediction-table-v2{margin:12px 0 0}.prediction-table-v2 th{font-size:.75rem;text-transform:uppercase;letter-spacing:.03em;color:#607482;background:#f1f6f8}.prediction-table-v2 td{vertical-align:top}.prediction-table-v2 details{margin-top:7px}.prediction-table-v2 summary{display:inline-flex;align-items:center;min-height:36px;color:#176b8b;font-size:.78rem;font-weight:700;cursor:pointer;user-select:none}.prediction-slot-grid{display:grid;grid-template-columns:repeat(2,minmax(115px,1fr));gap:5px;margin-top:5px}.prediction-slot-grid span{display:flex;justify-content:space-between;gap:8px;padding:6px 8px;border-radius:7px;background:#f0f6f8;font-size:.72rem}.prediction-slot-grid em{font-style:normal;font-weight:800;color:#176b8b}
@media(max-width:900px){.prediction-toolbar{align-items:stretch;flex-direction:column}.prediction-toolbar .prediction-filter{flex-basis:auto;width:100%}.prediction-toolbar .prediction-week{width:100%}.prediction-capacity-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:768px){.prediction-v2{gap:12px}.prediction-v2-head h1{font-size:1.5rem}.prediction-v2 .prediction-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.prediction-v2 .prediction-kpis article{min-height:118px}.prediction-chart-v2{grid-template-columns:30px minmax(0,1fr);height:240px}.prediction-y-axis,.prediction-track{height:185px}.prediction-plot{height:225px;gap:4px;background:repeating-linear-gradient(to bottom,#fff 0,#fff 45px,#eaf0f3 46px)}.prediction-column{grid-template-rows:185px 20px 18px}.prediction-fill{width:min(38px,78%)}.prediction-table-v2 thead{display:none}.prediction-table-v2,.prediction-table-v2 tbody,.prediction-table-v2 tr,.prediction-table-v2 td{display:block;width:100%}.prediction-table-v2 tr{display:grid;grid-template-columns:1fr 1fr;gap:6px 14px;margin:12px 0;padding:12px;border:1px solid #dce6ec;border-radius:12px}.prediction-table-v2 td{display:flex;flex-direction:column;border:0;padding:3px}.prediction-table-v2 td:before{content:attr(data-label);font-size:.7rem;font-weight:700;color:#71838e}.prediction-table-v2 td:last-child{grid-column:1/-1}.prediction-table-v2 details{width:100%}.prediction-table-v2 summary{min-height:44px}.prediction-slot-grid{grid-template-columns:1fr 1fr}.prediction-panel{padding:14px}}
@media(max-width:430px){.prediction-toolbar .prediction-week{grid-template-columns:1fr 1fr}.prediction-toolbar .prediction-week strong{grid-column:1/-1;grid-row:1;text-align:center}.prediction-v2 .prediction-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.prediction-v2 .prediction-kpis article{min-height:108px;padding:12px}.prediction-v2 .prediction-kpis strong{font-size:1.08rem}.prediction-v2 .prediction-kpis small{font-size:.7rem}.prediction-capacity-summary{grid-template-columns:1fr 1fr}.prediction-capacity-summary>div{padding:11px}.prediction-chart-v2{margin-left:-6px}.prediction-column>small{font-size:.6rem}.prediction-slot-grid{grid-template-columns:1fr}}

/* Predicción de demanda: presentación final */
.prediction-final{display:flex;flex-direction:column;gap:20px}.prediction-final-head h1{margin:4px 0;font-size:1.8rem;line-height:1.2;color:#19384c}.prediction-final-head p{margin:0;color:#687d89}.prediction-final .prediction-disclaimer{display:flex;flex-direction:column;gap:4px;margin:0}.prediction-final .prediction-toolbar{margin:0}.prediction-final .prediction-week{width:min(720px,100%)}.prediction-week-placeholder{min-width:155px}.prediction-final .prediction-kpis{gap:16px;margin:0}.prediction-final .prediction-kpis article{min-height:142px;padding:20px;justify-content:flex-start;border:1px solid #dce6ec;border-top:4px solid #176b8b}.prediction-final .kpi-label,.prediction-final .kpi-value,.prediction-final .kpi-note{display:block}.prediction-final .kpi-label{font-size:.78rem;font-weight:700;color:#607482}.prediction-final .kpi-value{margin:12px 0 8px;font-size:1.65rem;line-height:1.1;color:#19384c}.prediction-final .kpi-note{font-size:.78rem;line-height:1.35;color:#71838e}.prediction-final .prediction-panel{margin:0}.prediction-chart-panel header{align-items:flex-start}.prediction-chart-final{height:300px;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:14px;margin-top:18px;padding:0 12px 8px;border-bottom:1px solid #cbd9e1;background:repeating-linear-gradient(to bottom,#fff 0,#fff 59px,#e9eff3 60px)}.prediction-bar-item{min-width:0;display:grid;grid-template-rows:240px 24px 20px;justify-items:center;align-items:center}.prediction-bar-area{width:100%;height:240px;display:flex;align-items:flex-end;justify-content:center}.prediction-bar-fill{position:relative;width:min(58px,70%);min-height:10px;border-radius:9px 9px 2px 2px;background:linear-gradient(180deg,#4dac78,#176b8b);box-shadow:0 4px 10px rgba(23,107,139,.2)}.prediction-bar-fill b{position:absolute;left:50%;top:-24px;transform:translateX(-50%);color:#24465b;font-size:.8rem;line-height:1}.prediction-bar-item>strong{max-width:100%;font-size:.78rem;white-space:nowrap;color:#294b5e}.prediction-bar-item>small{font-size:.7rem;color:#71838e}.chart-scale{display:block;line-height:1.4}.prediction-capacity-panel>h2{margin:0 0 14px;font-size:1.08rem;color:#24465b}.prediction-final .prediction-capacity-summary{border-radius:10px}.prediction-final .prediction-capacity-summary>div{gap:8px;min-height:86px}.prediction-final .prediction-capacity-summary span{display:block}.prediction-final .prediction-capacity-summary strong{display:block}.prediction-final .prediction-recommendation{margin:0;padding:20px}.prediction-final .prediction-recommendation p{margin:10px 0 0;line-height:1.55}.prediction-table-final{margin:14px 0 0}.prediction-table-final th{font-size:.75rem;text-transform:uppercase;letter-spacing:.03em;color:#607482;background:#f1f6f8}.prediction-table-final td{vertical-align:middle}.prediction-table-final td>strong,.prediction-table-final td>small{display:block}.prediction-table-final td>small{margin-top:3px;color:#71818d}.prediction-slots-row td{padding-top:0;border-top:0;background:#fbfdfe}.prediction-slots-row details{width:100%}.prediction-slots-row summary,.prediction-model-info>summary{min-height:44px;display:flex;align-items:center;color:#176b8b;font-size:.8rem;font-weight:700;cursor:pointer}.prediction-slot-grid{grid-template-columns:repeat(4,minmax(130px,1fr));gap:8px;margin:4px 0 8px}.prediction-slot-grid span{align-items:center;padding:9px 10px}.prediction-slot-grid em{white-space:nowrap}.prediction-model-info{padding:4px 18px;border:1px solid #dce6ec;border-radius:14px;background:#fff}.prediction-model-info>summary{font-size:.9rem}.prediction-model-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;margin:0 -18px;border-top:1px solid #dce6ec;background:#dce6ec}.prediction-model-grid>div{display:flex;flex-direction:column;gap:7px;padding:14px 18px;background:#fff}.prediction-model-grid span{font-size:.73rem;color:#687d89}.prediction-model-grid strong{font-size:.82rem;color:#24465b}.prediction-model-grid .status-dot{display:inline-block;margin-right:5px}
@media(max-width:900px){.prediction-final .prediction-toolbar{align-items:stretch}.prediction-final .prediction-week{width:100%}.prediction-final .prediction-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.prediction-model-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.prediction-slot-grid{grid-template-columns:repeat(2,minmax(130px,1fr))}}
@media(max-width:768px){.prediction-final{gap:16px;padding:16px 12px}.prediction-final-head h1{font-size:1.5rem}.prediction-final .prediction-week{grid-template-columns:1fr 1fr}.prediction-final .prediction-week strong{grid-column:1/-1;grid-row:1;text-align:center}.prediction-week-placeholder{display:none}.prediction-final .prediction-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.prediction-final .prediction-kpis article{min-height:130px;padding:15px}.prediction-final .kpi-value{font-size:1.3rem}.prediction-chart-panel header{display:block}.chart-scale{margin-top:8px}.prediction-chart-final{height:250px;gap:4px;padding-inline:2px;background:repeating-linear-gradient(to bottom,#fff 0,#fff 48px,#e9eff3 49px)}.prediction-bar-item{grid-template-rows:195px 28px 18px}.prediction-bar-area{height:195px}.prediction-bar-fill{width:min(38px,75%)}.prediction-bar-item>strong{font-size:.67rem}.prediction-bar-item>small{font-size:.63rem}.prediction-final .prediction-capacity-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.prediction-table-final thead{display:none}.prediction-table-final,.prediction-table-final tbody{display:block}.prediction-table-final tr:not(.prediction-slots-row){display:grid;grid-template-columns:1fr 1fr;gap:9px 14px;margin-top:14px;padding:14px;border:1px solid #dce6ec;border-radius:12px 12px 0 0}.prediction-table-final tr:not(.prediction-slots-row) td{display:flex;flex-direction:column;border:0;padding:2px}.prediction-table-final tr:not(.prediction-slots-row) td:before{content:attr(data-label);margin-bottom:3px;font-size:.7rem;font-weight:700;color:#71838e}.prediction-slots-row{display:block;margin-bottom:14px}.prediction-slots-row td{display:block;padding:0 14px 8px;border:1px solid #dce6ec;border-top:0;border-radius:0 0 12px 12px}.prediction-model-grid{grid-template-columns:1fr 1fr}}
@media(max-width:430px){.prediction-final .prediction-week .btn{padding:8px 6px;font-size:.75rem;white-space:normal}.prediction-final .prediction-kpis{grid-template-columns:1fr}.prediction-final .prediction-kpis article{min-height:118px}.prediction-chart-final{gap:2px;margin-inline:-8px}.prediction-bar-fill{width:min(30px,78%)}.prediction-bar-item>strong{font-size:.59rem;letter-spacing:-.02em}.prediction-final .prediction-capacity-summary,.prediction-slot-grid,.prediction-model-grid{grid-template-columns:1fr}}
.patient-menu-order>.nav-item{order:70}.patient-menu-order .patient-order-turnos{order:10}.patient-menu-order .patient-order-agendar{order:20}.patient-menu-order .patient-order-reposos{order:30}.patient-menu-order .patient-order-recetas{order:40}.patient-menu-order .patient-order-pagos{order:50}.patient-menu-order .patient-order-notificaciones{order:60}

/* Dashboard analítico de predicción V2. Las clases pd-* aíslan y neutralizan los layouts anteriores. */
.prediction-dashboard-v2{max-width:1440px;display:flex;flex-direction:column;gap:20px;padding:24px;overflow:visible}.pd-head h1{margin:4px 0;font-size:1.85rem;line-height:1.2;color:#19384c}.pd-head p{margin:0;color:#687d89}.pd-toolbar,.pd-chart-card,.pd-summary-card,.pd-table-card,.pd-model{border:1px solid #dce6ec;border-radius:16px;background:#fff;box-shadow:0 5px 18px rgba(22,55,75,.07)}.pd-toolbar{display:flex;align-items:end;justify-content:space-between;gap:24px;padding:16px 18px}.pd-filter{flex:0 1 300px;min-width:220px}.pd-filter label{display:block;margin-bottom:6px;font-size:.78rem;font-weight:800;color:#567080}.pd-week{display:grid;grid-template-columns:minmax(155px,1fr) auto minmax(155px,1fr);align-items:center;gap:12px}.pd-week .btn{min-height:44px;display:flex;align-items:center;justify-content:center}.pd-week strong{padding:0 8px;white-space:nowrap;color:#294b5e}.pd-week-space{min-width:155px}.pd-notice{display:flex;align-items:flex-start;gap:10px;padding:12px 16px;border:1px solid #cbdfea;border-left:4px solid #3a6990;border-radius:12px;background:#f2f8fb;color:#3f5d70;font-size:.86rem;line-height:1.45}.pd-notice strong{white-space:nowrap;color:#24465b}.pd-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.pd-kpis article{min-width:0;min-height:145px;display:flex;flex-direction:column;gap:10px;padding:20px;border:1px solid #dce6ec;border-radius:16px;background:linear-gradient(145deg,#fff,#f8fbfc);box-shadow:0 5px 18px rgba(22,55,75,.07)}.pd-kpis article:nth-child(1){border-top:4px solid #3a6990}.pd-kpis article:nth-child(2){border-top:4px solid #488f6f}.pd-kpis article:nth-child(3){border-top:4px solid #c58b2b}.pd-kpis article:nth-child(4){border-top:4px solid #6b7294}.pd-kpis span{display:block;font-size:.78rem;font-weight:800;color:#607482}.pd-kpis strong{display:block;font-size:1.75rem;line-height:1.1;color:#19384c;overflow-wrap:anywhere}.pd-kpis small{display:block;margin-top:auto;color:#71838e;line-height:1.35}.pd-chart-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.pd-chart-card{min-width:0;padding:18px}.pd-chart-card header{min-height:54px}.pd-chart-card h2,.pd-summary-card h2,.pd-recommendation h2,.pd-table-card h2{margin:0;font-size:1.08rem;color:#24465b}.pd-chart-card header p,.pd-table-card header p{margin:4px 0 0;color:#687d89;font-size:.84rem}.pd-canvas{position:relative;width:100%;height:300px;margin-top:12px}.pd-canvas canvas{display:block;max-width:100%;max-height:100%}.pd-chart-foot{margin:5px 0 0;color:#71838e;font-size:.72rem}.pd-summary-card{padding:20px}.pd-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin-top:14px;overflow:hidden;border:1px solid #dce6ec;border-radius:11px;background:#dce6ec}.pd-summary-grid>div{min-width:0;display:flex;flex-direction:column;gap:8px;padding:15px 17px;background:#fff}.pd-summary-grid span{font-size:.76rem;color:#687d89}.pd-summary-grid strong{font-size:1.12rem;color:#24465b;overflow-wrap:anywhere}.pd-recommendation{padding:20px;border:1px solid #cfe5d6;border-left:5px solid #488f6f;border-radius:16px;background:#f7fcf9;box-shadow:0 5px 18px rgba(22,55,75,.05)}.pd-recommendation.is-alert{border-color:#ead8b9;border-left-color:#c58b2b;background:#fffaf1}.pd-recommendation p{margin:10px 0 0;line-height:1.55}.pd-table-card{padding:18px 18px 8px;min-width:0}.pd-table{margin:14px 0 0}.pd-table th{font-size:.72rem;text-transform:uppercase;letter-spacing:.03em;color:#607482;background:#f1f6f8;white-space:nowrap}.pd-table td{vertical-align:top}.pd-table td>strong,.pd-table td>small{display:block}.pd-table td>small{margin-top:3px;color:#71818d}.pd-table details{min-width:120px}.pd-table summary,.pd-model>summary{min-height:38px;display:flex;align-items:center;color:#176b8b;font-size:.78rem;font-weight:800;cursor:pointer}.pd-slot-list{min-width:230px;display:grid;gap:6px;margin-top:6px}.pd-slot-list span{display:flex;justify-content:space-between;gap:12px;padding:7px 9px;border-radius:8px;background:#f0f6f8;font-size:.72rem}.pd-slot-list em{font-style:normal;font-weight:800;color:#176b8b;white-space:nowrap}.pd-model{padding:4px 18px}.pd-model>summary{min-height:48px;font-size:.88rem}.pd-model-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;margin:0 -18px;border-top:1px solid #dce6ec;background:#dce6ec}.pd-model-grid>div{min-width:0;display:flex;flex-direction:column;gap:7px;padding:14px 18px;background:#fff}.pd-model-grid span{font-size:.73rem;color:#687d89}.pd-model-grid strong{font-size:.82rem;color:#24465b;overflow-wrap:anywhere}
@media(max-width:1100px){.pd-toolbar{align-items:stretch;flex-direction:column}.pd-filter{flex-basis:auto;width:100%}.pd-week{width:100%}.pd-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.pd-model-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:768px){.prediction-dashboard-v2{gap:16px;padding:16px 12px}.pd-head h1{font-size:1.5rem}.pd-toolbar{padding:14px}.pd-week{grid-template-columns:1fr 1fr}.pd-week strong{grid-column:1/-1;grid-row:1;text-align:center}.pd-week-space{display:none}.pd-notice{flex-direction:column;gap:3px}.pd-notice strong{white-space:normal}.pd-chart-grid{grid-template-columns:1fr}.pd-chart-card{padding:14px}.pd-chart-card header{min-height:0}.pd-canvas{height:260px}.pd-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pd-table thead{display:none}.pd-table,.pd-table tbody,.pd-table tr,.pd-table td{display:block;width:100%}.pd-table tr{display:grid;grid-template-columns:1fr 1fr;gap:9px 14px;margin:14px 0;padding:14px;border:1px solid #dce6ec;border-radius:12px}.pd-table td{display:flex;flex-direction:column;border:0;padding:2px}.pd-table td:before{content:attr(data-label);margin-bottom:3px;font-size:.7rem;font-weight:800;color:#71838e}.pd-table td:last-child{grid-column:1/-1}.pd-table summary{min-height:44px}.pd-slot-list{min-width:0;grid-template-columns:1fr 1fr}.pd-model-grid{grid-template-columns:1fr 1fr}}
@media(max-width:430px){.prediction-dashboard-v2{padding-inline:10px}.pd-week .btn{padding:8px 6px;font-size:.76rem;white-space:normal}.pd-kpis{grid-template-columns:1fr}.pd-kpis article{min-height:128px;padding:17px}.pd-canvas{height:240px}.pd-summary-grid,.pd-model-grid,.pd-slot-list{grid-template-columns:1fr}.pd-table tr{grid-template-columns:1fr}.pd-table td:last-child{grid-column:auto}}
.patient-recetas-page{width:100%;max-width:1120px;margin:0 auto;padding:24px;min-width:0}.patient-receta-list{display:grid;gap:14px}.patient-receta-card,.patient-receta-detail{border:1px solid #dce6ec;border-radius:18px;background:#fff;padding:20px;box-shadow:0 5px 18px rgba(22,55,75,.07)}.patient-receta-card{display:grid;grid-template-columns:1fr 2fr .7fr auto;align-items:center;gap:18px}.patient-receta-card>div{display:flex;flex-direction:column;min-width:0}.patient-receta-card span,.patient-receta-card small{font-size:.8rem;color:#687d89}.patient-receta-card strong,.patient-receta-card small{overflow-wrap:anywhere}.patient-receta-card .btn{min-height:44px;display:inline-flex;align-items:center}.patient-receta-detail h2{font-size:1.2rem;margin-bottom:16px}.patient-receta-detail article{padding:16px 0;border-bottom:1px solid #e6edf1}.patient-receta-detail article:last-of-type{border-bottom:0}.patient-receta-detail h3{font-size:1.05rem;margin:0}.patient-receta-detail article>p{color:#657985}.patient-receta-detail dl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:14px 0 0}.patient-receta-detail dl div{min-width:0;padding:12px;background:#f3f8fa;border-radius:12px}.patient-receta-detail dt{font-size:.75rem;color:#687d89}.patient-receta-detail dd{margin:3px 0 0;overflow-wrap:anywhere}.patient-receta-observations{margin-top:18px;padding:16px;border-radius:12px;background:#fff8e7}.patient-receta-observations p{margin:6px 0 0}.patient-recetas-page .btn{min-height:44px}.patient-recetas-page input,.patient-recetas-page select,.patient-recetas-page textarea{font-size:16px}
@media(max-width:768px){.patient-recetas-page{padding:14px 10px 84px}.patient-receta-card{grid-template-columns:1fr 1fr}.patient-receta-card .btn{grid-column:1/-1;justify-content:center}.patient-receta-detail dl{grid-template-columns:1fr 1fr}.patient-recetas-page .patient-page-head>div:last-child{display:grid!important;grid-template-columns:1fr;width:100%}.patient-recetas-page .patient-page-head .btn{width:100%}}
@media(max-width:430px){.patient-receta-card{grid-template-columns:1fr;padding:15px;border-radius:14px}.patient-receta-card .btn{grid-column:auto}.patient-receta-detail{padding:15px;border-radius:14px}.patient-receta-detail dl{grid-template-columns:1fr}.assistant-fab{bottom:14px}}

/* PATIENT PORTAL */
.patient-portal,.patient-turnos-page,.patient-profile{width:100%;max-width:1120px;margin:0 auto;padding:24px}.patient-welcome{padding:28px;border-radius:22px;background:linear-gradient(135deg,#173f5f,#1c7895);color:#fff}.patient-welcome span,.patient-card-label{font-size:.75rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.patient-welcome h1{margin:.35rem 0;font-size:2rem}.patient-section-title{margin:26px 0 12px;font-size:1.15rem;color:#19334a}
/* PATIENT CARDS */
.patient-next-card,.patient-turno-card,.patient-panel,.patient-profile-card,.patient-empty{border:1px solid #dce6ec;border-radius:18px;background:#fff;padding:20px;box-shadow:0 5px 18px rgba(22,55,75,.07)}.patient-next-card h3,.patient-turno-card h2{font-size:1.25rem;margin:.35rem 0}.patient-turno-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:18px 0}.patient-turno-meta span{display:flex;flex-direction:column;padding:10px;border-radius:12px;background:#f1f7fa;color:#607482}.patient-turno-meta b{color:#17344a;overflow-wrap:anywhere}.patient-actions{display:flex;flex-wrap:wrap;gap:9px}.patient-actions form{margin:0}.patient-actions .btn{min-height:44px}.patient-access-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.patient-access-grid a{display:flex;align-items:center;min-height:74px;padding:16px;border:1px solid #d9e5ec;border-radius:15px;background:#fff;color:#174f70;font-weight:750;text-decoration:none}.patient-dashboard-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:26px}.patient-panel h2{font-size:1rem}.patient-panel>a:not(.btn){display:flex;flex-direction:column;padding:10px 0;border-bottom:1px solid #edf2f5;color:#25475d;text-decoration:none}.patient-panel>a span{font-size:.85rem;color:#687d89;overflow-wrap:anywhere}.patient-payment strong{display:block;font-size:1.7rem;margin:18px 0;color:#9a6616}.patient-page-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.patient-page-head h1{font-size:1.8rem;margin:0}.patient-page-head p{margin:4px 0 0;color:#6b7d89}.patient-turno-list{display:grid;gap:14px}.patient-profile-card{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.patient-profile-card div{display:flex;flex-direction:column;min-width:0}.patient-profile-card span{font-size:.8rem;color:#6a7d89}.patient-profile-card strong{overflow-wrap:anywhere}
/* MOBILE NAVIGATION */
.sidebar-overlay{display:none;border:0;padding:0}.app-content{min-width:0}body{overflow-x:hidden}@media(max-width:991px){body.sidebar-pinned aside.app-sidebar{transform:translateX(-100%)!important}body.sidebar-mobile-open aside.app-sidebar{transform:translateX(0)!important;z-index:1201}body.sidebar-mobile-open .sidebar-overlay{display:block;position:fixed;inset:0;z-index:1200;background:rgba(9,26,38,.52)}.app-navbar{z-index:1190}.app-sidebar{max-width:min(86vw,300px)}}
/* MOBILE TURNOS */
@media(max-width:768px){.patient-portal,.patient-turnos-page,.patient-profile{padding:14px 10px 24px}.patient-welcome{padding:20px;border-radius:16px}.patient-welcome h1{font-size:1.55rem}.patient-access-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.patient-dashboard-grid{grid-template-columns:1fr}.patient-page-head{align-items:stretch;flex-direction:column}.patient-page-head>.btn{width:100%;min-height:44px}.patient-profile-card{grid-template-columns:1fr}.patient-portal input,.patient-portal select,.patient-turnos-page input,.patient-turnos-page select,.patient-profile input{font-size:16px}.patient-actions{display:grid;grid-template-columns:1fr}.patient-actions form,.patient-actions .btn{width:100%}}@media(max-width:430px){.patient-turno-meta{grid-template-columns:1fr}.patient-access-grid{grid-template-columns:1fr}.patient-next-card,.patient-turno-card,.patient-panel,.patient-profile-card{padding:15px;border-radius:14px}.app-navbar{padding-left:10px!important;padding-right:10px!important}.app-logout-btn{padding:.38rem .55rem;font-size:.75rem}}

body {
    position: relative;
    margin: 0;
    padding-top: calc(var(--app-navbar-height) + 2px);
    background: linear-gradient(180deg, #f5fafc 0%, #edf3f8 100%);
    color: var(--color-text);
}

.pwa-install-area{margin:14px 0 0}.pwa-install-area:empty{display:none}.pwa-install-area .btn{min-height:44px}.pwa-install-area p{display:inline-block;margin:0;padding:10px 14px;border-radius:10px;background:#edf6fa;color:#294b5e}.pwa-install-area [hidden]{display:none!important}.pwa-install-status{border-left:4px solid #3f8468}.app-navbar{padding-top:max(.5rem,env(safe-area-inset-top));padding-right:max(1rem,env(safe-area-inset-right));padding-left:max(1rem,env(safe-area-inset-left))}.app-sidebar{padding-bottom:env(safe-area-inset-bottom)}
@media(max-width:575.98px){body{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.patient-portal,.patient-turnos-page,.patient-profile,.patient-recetas-page{padding-bottom:calc(84px + env(safe-area-inset-bottom))}.assistant-fab{right:calc(14px + env(safe-area-inset-right));bottom:calc(14px + env(safe-area-inset-bottom))}.assistant-panel{right:calc(7px + env(safe-area-inset-right));bottom:calc(76px + env(safe-area-inset-bottom))}.pwa-install-area{display:grid;gap:8px}.pwa-install-area .btn,.pwa-install-area p{width:100%;box-sizing:border-box;text-align:center}}

/* ASISTENTE PAMA */
.assistant-fab{position:fixed;right:24px;bottom:24px;z-index:1250;width:58px;height:58px;border:0;border-radius:50%;background:#176b8b;color:#fff;font-size:1.45rem;box-shadow:0 8px 24px rgba(10,43,61,.3)}.assistant-fab:focus-visible,.assistant-panel button:focus-visible,.assistant-panel input:focus-visible{outline:3px solid #e5da00;outline-offset:2px}.assistant-panel{position:fixed;right:24px;bottom:94px;z-index:1250;width:min(390px,calc(100vw - 28px));height:min(590px,calc(100vh - 120px));border:1px solid #d5e2e9;border-radius:18px;background:#fff;box-shadow:0 16px 45px rgba(10,38,55,.3);overflow:hidden}.assistant-panel[hidden]{display:none}.assistant-panel{display:grid;grid-template-rows:auto minmax(0,1fr) auto auto}.assistant-panel>header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:#173f5f;color:#fff}.assistant-panel>header div{display:flex;flex-direction:column}.assistant-panel>header span{font-size:.78rem;opacity:.85}.assistant-panel>header button{width:38px;height:38px;border:0;border-radius:50%;background:rgba(255,255,255,.13);color:#fff;font-size:1.5rem}.assistant-messages{display:flex;flex-direction:column;gap:9px;padding:14px;overflow:auto;background:#f5f9fb}.assistant-message{max-width:88%;padding:10px 12px;border-radius:14px;overflow-wrap:anywhere;white-space:pre-wrap}.assistant-message.bot{align-self:flex-start;background:#fff;border:1px solid #dbe6ec;color:#29495c}.assistant-message.user{align-self:flex-end;background:#176b8b;color:#fff}.assistant-message.typing{color:#667d89;font-style:italic}.assistant-response-actions{display:flex;flex-wrap:wrap;gap:7px}.assistant-response-actions a,.assistant-quick button{min-height:38px;padding:8px 11px;border:1px solid #b9d2df;border-radius:10px;background:#fff;color:#155c7b;text-decoration:none;font-weight:700;font-size:.82rem}.assistant-quick{display:flex;gap:7px;padding:10px 12px;overflow-x:auto;border-top:1px solid #e1eaef}.assistant-quick button{white-space:nowrap}.assistant-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:12px;border-top:1px solid #e1eaef}.assistant-form input{min-width:0;height:44px;padding:0 12px;border:1px solid #c9d8e0;border-radius:10px;font-size:16px}.assistant-form button{min-height:44px;border:0;border-radius:10px;padding:0 15px;background:#176b8b;color:#fff;font-weight:700}.assistant-form button:disabled{opacity:.55}.assistant-page{width:100%;max-width:900px;margin:0 auto;padding:28px}.assistant-page-intro{padding:30px;border:1px solid #d8e5eb;border-radius:20px;background:#fff;box-shadow:0 5px 18px rgba(20,55,75,.08)}.assistant-page-intro>span{font-size:.75rem;font-weight:800;letter-spacing:.1em;color:#176b8b}.assistant-page-intro h1{margin:.4rem 0;color:#19384c}.assistant-page-intro p{max-width:650px;color:#617783}
@media(max-width:575.98px){.assistant-fab{right:14px;bottom:14px;width:54px;height:54px}.assistant-panel{right:7px;bottom:76px;width:calc(100vw - 14px);height:calc(100dvh - 90px);max-height:none;border-radius:14px}.assistant-message{max-width:92%}.assistant-quick{flex-wrap:wrap;overflow:visible}.assistant-quick button{min-height:44px;white-space:normal}.assistant-page{padding:14px 10px}.assistant-page-intro{padding:20px}.assistant-form input{font-size:16px}}

body::before {
    content: "";
    position: fixed;
    width: min(78vw, 980px);
    height: min(78vw, 980px);
    background: url('../img/logo2.png') no-repeat center;
    background-size: contain;
    opacity: 0.08;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 0;
    pointer-events: none;
}

body > * {
    position: relative;
    z-index: 1;
}

nav.app-navbar {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1100;
    background: linear-gradient(100deg, #345472 0%, #3a6990 55%, #488f6f 100%);
    color: #fff !important;
    border-bottom: 2px solid var(--color-accent);
    box-shadow: 0 4px 12px rgba(33, 60, 82, 0.25);
    margin-bottom: 0 !important;
}

.app-navbar .navbar-brand {
    color: #fff !important;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.app-username {
    color: #fff;
    font-weight: 600;
}

.app-shell {
    min-height: calc(100vh - var(--app-navbar-height));
}

aside.app-sidebar {
    width: var(--sidebar-width);
    min-height: calc(100vh - var(--app-navbar-height));
    background: linear-gradient(180deg, #214f67 0%, #3a6990 70%, #2f5f81 100%) !important;
    color: #f7fbff;
    border-right: 2px solid rgba(229, 218, 0, 0.55);
}

.sidebar-hover-zone {
    display: none;
}

.app-sidebar .nav-link {
    color: #edf5fb !important;
    font-size: 0.88rem;
    border-radius: 8px;
    transition: background-color 0.18s ease, color 0.18s ease, transform 0.18s ease;
}

.app-sidebar .nav-link:hover,
.app-sidebar .nav-link:focus {
    color: #163245;
    background-color: rgba(72, 153, 191, 0.85);
    transform: translateX(2px);
}

.app-sidebar .nav-link.active {
    color: #163245 !important;
    background-color: rgba(76, 168, 207, 0.9);
    font-weight: 700;
}

.app-sidebar h5 {
    color: #fff;
    border-bottom: 1px solid rgba(71, 205, 235, 0.5);
    padding-bottom: 0.5rem;
}

.sidebar-pin-control {
    padding: 0.35rem 0.45rem;
    border-radius: 8px;
    background: rgba(18, 43, 61, 0.35);
    border: 1px solid rgba(117, 198, 228, 0.28);
}

.sidebar-pin-control .form-check-input {
    cursor: pointer;
}

.sidebar-pin-control .form-check-label {
    font-size: 0.78rem;
    font-weight: 600;
    color: #e9f4fb;
    cursor: pointer;
}

.submenu-toggle {
    border: 0;
    background: transparent;
}

.submenu-arrow {
    font-size: 0.75rem;
    transition: transform 0.2s ease;
}

.submenu-toggle[aria-expanded="true"] .submenu-arrow {
    transform: rotate(180deg);
}

.submenu-list {
    margin-top: 0.3rem;
    margin-left: 0.5rem;
    padding-left: 0.5rem;
    border-left: 1px dashed rgba(85, 183, 222, 0.45);
}

.submenu-list .nav-link {
    font-size: 0.82rem;
    padding-top: 0.35rem;
    padding-bottom: 0.35rem;
}

.app-content {
    min-height: calc(100vh - var(--app-navbar-height));
    padding-top: 0 !important;
}

.app-content > .container.mt-4,
.app-content > .container-fluid.mt-4 {
    margin-top: 0 !important;
}

.card {
    border: 1px solid var(--color-border);
}

.card-header {
    border-bottom: 1px solid var(--color-border);
}

.btn-primary {
    background-color: var(--color-primary);
    border-color: var(--color-primary);
}

.btn-primary:hover,
.btn-primary:focus {
    background-color: var(--color-primary-dark);
    border-color: var(--color-primary-dark);
}

.btn-success {
    background-color: var(--color-secondary);
    border-color: var(--color-secondary);
}

.btn-success:hover,
.btn-success:focus {
    background-color: var(--color-secondary-dark);
    border-color: var(--color-secondary-dark);
}

.btn-danger {
    background-color: var(--color-danger);
    border-color: var(--color-danger);
}

.table-dark {
    background-color: var(--color-primary);
}

.table > :not(caption) > * > * {
    vertical-align: middle;
}

.form-check-input:checked {
    background-color: var(--color-secondary);
    border-color: var(--color-secondary);
}

.form-control:focus,
.form-select:focus {
    border-color: rgba(58, 105, 144, 0.55);
    box-shadow: 0 0 0 0.2rem rgba(58, 105, 144, 0.15);
}

.bg-primary {
    background-color: var(--color-primary) !important;
}

.bg-success {
    background-color: var(--color-secondary) !important;
}

.bg-secondary {
    background-color: #6f8798 !important;
}

@media (min-width: 992px) {
    body.sidebar-autohide {
        overflow-x: hidden;
    }

    body.sidebar-autohide .app-shell {
        display: block !important;
    }

    body.sidebar-autohide .sidebar-hover-zone {
        display: block;
        position: fixed;
        top: var(--app-navbar-height);
        left: 0;
        width: 18px;
        height: calc(100vh - var(--app-navbar-height));
        z-index: 1040;
        background: linear-gradient(90deg, rgba(23, 52, 74, 0.38) 0%, rgba(23, 52, 74, 0.08) 80%, rgba(23, 52, 74, 0) 100%);
        border-right: 1px solid rgba(229, 218, 0, 0.22);
        transition: background-color 0.18s ease, border-color 0.18s ease, width 0.18s ease;
    }

    body.sidebar-autohide .sidebar-hover-zone::after {
        content: "";
        position: absolute;
        left: 5px;
        top: 50%;
        width: 4px;
        height: 72px;
        transform: translateY(-50%);
        border-radius: 999px;
        background: linear-gradient(180deg, rgba(229, 218, 0, 0.25) 0%, rgba(76, 168, 207, 0.85) 50%, rgba(229, 218, 0, 0.25) 100%);
        box-shadow: 0 0 0 1px rgba(18, 37, 52, 0.15);
    }

    body.sidebar-autohide .sidebar-hover-zone:hover {
        width: 22px;
        background: linear-gradient(90deg, rgba(23, 52, 74, 0.55) 0%, rgba(23, 52, 74, 0.18) 85%, rgba(23, 52, 74, 0) 100%);
        border-color: rgba(229, 218, 0, 0.45);
    }

    body.sidebar-autohide .app-sidebar {
        position: fixed;
        top: var(--app-navbar-height);
        left: 0;
        width: var(--sidebar-width);
        height: calc(100vh - var(--app-navbar-height));
        min-height: calc(100vh - var(--app-navbar-height));
        overflow-y: auto;
        transform: translateX(calc(-1 * var(--sidebar-width)));
        transition: transform 0.22s ease, box-shadow 0.22s ease;
        z-index: 1045;
        will-change: transform;
    }

    body.sidebar-autohide .app-content {
        width: 100%;
        margin-left: 0 !important;
        padding-left: 1.5rem !important;
        padding-right: 1.5rem !important;
    }

    body.sidebar-autohide .sidebar-hover-zone:hover + .app-sidebar,
    body.sidebar-autohide .app-sidebar:hover,
    body.sidebar-autohide .app-sidebar:focus-within {
        transform: translateX(0);
        box-shadow: 10px 0 24px rgba(20, 40, 58, 0.28);
    }

    body.sidebar-pinned .sidebar-hover-zone {
        display: none !important;
    }

    body.sidebar-pinned .app-shell {
        display: flex !important;
    }

    body.sidebar-pinned .app-sidebar {
        position: fixed;
        top: var(--app-navbar-height);
        left: 0;
        width: var(--sidebar-width);
        height: calc(100vh - var(--app-navbar-height));
        min-height: calc(100vh - var(--app-navbar-height));
        overflow-y: auto;
        transform: none;
        z-index: 1045;
        box-shadow: 10px 0 24px rgba(20, 40, 58, 0.2);
    }

    body.sidebar-pinned .app-content {
        width: calc(100% - var(--sidebar-width));
        margin-left: var(--sidebar-width) !important;
        padding-left: 1.5rem !important;
        padding-right: 1.5rem !important;
    }
}

@media (max-width: 991px) {
    .sidebar-pin-control {
        display: none;
    }

    .app-shell {
        flex-direction: column;
    }

    .app-sidebar {
        width: 100%;
        min-height: auto;
    }

    .app-content {
        min-height: auto;
    }
}

/* Enterprise Polish */
:root {
    --app-navbar-height: 50px;
    --radius-sm: 8px;
    --radius-md: 12px;
    --radius-lg: 16px;
}

html,
body {
    font-family: "Segoe UI", Tahoma, Arial, sans-serif;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6 {
    color: #1d3447;
    font-weight: 700;
    letter-spacing: 0.01em;
}

nav.app-navbar {
    height: var(--app-navbar-height);
    min-height: var(--app-navbar-height);
    padding-top: 0.2rem !important;
    padding-bottom: 0.2rem !important;
    backdrop-filter: saturate(120%);
}

.app-navbar .navbar-brand {
    font-size: 0.98rem;
    font-weight: 800;
    letter-spacing: 0.03em;
}

.app-sidebar {
    box-shadow: 0 8px 24px rgba(20, 43, 63, 0.2);
}

.app-sidebar .nav-link {
    padding: 0.55rem 0.72rem;
    font-weight: 600;
}

.app-content .container,
.app-content .container-fluid {
    max-width: 1600px;
}

.card {
    border-radius: var(--radius-md);
    border-color: #d4e0e8;
    box-shadow: 0 4px 14px rgba(21, 49, 71, 0.08);
}

.card-header {
    border-top-left-radius: var(--radius-md) !important;
    border-top-right-radius: var(--radius-md) !important;
    font-weight: 700;
}

.table {
    --bs-table-bg: rgba(255, 255, 255, 0.9);
}

.table > thead > tr > th {
    font-size: 0.8rem;
    letter-spacing: 0.03em;
    text-transform: uppercase;
}

.btn {
    border-radius: var(--radius-sm);
    font-weight: 600;
    letter-spacing: 0.01em;
}

.btn-sm {
    font-weight: 600;
}

.form-control,
.form-select {
    border-radius: var(--radius-sm);
    border-color: #c9d7e1;
}

.alert {
    border-radius: var(--radius-sm);
    border: 1px solid transparent;
}

.badge {
    font-weight: 600;
    letter-spacing: 0.02em;
    border-radius: 999px;
}

.modal-content {
    border-radius: var(--radius-lg);
    border: 1px solid #d6e3eb;
}

/* ==========================================================
   PAMA DASHBOARD - REDISEÑO FINAL
   Este bloque sobrescribe visualmente los estilos anteriores
   sin eliminar compatibilidad con el resto del sistema.
   ========================================================== */

:root {
    --app-navbar-height: 64px;
    --sidebar-width: 280px;

    --pama-navy: #0f436b;
    --pama-navy-dark: #0a3455;
    --pama-blue: #237fd0;
    --pama-green: #38ad75;
    --pama-yellow: #e7b42c;
    --pama-red: #df4646;

    --pama-bg: #f4f8fb;
    --pama-surface: #ffffff;
    --pama-border: #d9e4ec;

    --pama-text: #18364e;
    --pama-muted: #6d8192;
}

html,
body {
    min-height: 100%;
}

body {
    margin: 0;
    padding-top: 0 !important;
    overflow-x: hidden;
    background: var(--pama-bg);
    color: var(--pama-text);
}

body::before {
    display: none !important;
}

body > * {
    position: relative;
    z-index: auto;
}

/* =========================
   TOPBAR
   ========================= */

nav.app-navbar {
    position: fixed !important;
    top: 0 !important;
    left: var(--sidebar-width) !important;
    right: 0 !important;
    z-index: 1150;

    height: var(--app-navbar-height);
    min-height: var(--app-navbar-height);

    margin: 0 !important;
    padding: 0 24px !important;

    background: linear-gradient(100deg, #0d4e7c 0%, #006a72 100%);
    color: #fff !important;

    border: 0 !important;
    box-shadow: 0 3px 14px rgba(18, 48, 69, 0.14);
}

.app-menu-toggle {
    width: 42px;
    height: 42px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    border: 0;
    border-radius: 9px;

    background: transparent;
    color: #fff;

    font-size: 1.45rem;
    line-height: 1;

    cursor: pointer;
}

.app-menu-toggle:hover,
.app-menu-toggle:focus {
    background: rgba(255, 255, 255, 0.12);
    color: #fff;
    outline: none;
}

.app-username {
    color: #fff;
    font-weight: 700;
}

.app-logout-btn {
    padding: 7px 14px;

    border: 1px solid rgba(255, 255, 255, 0.55);
    border-radius: 9px;

    background: rgba(255, 255, 255, 0.08);
    color: #fff;
}

.app-logout-btn:hover,
.app-logout-btn:focus {
    background: #fff;
    color: var(--pama-navy);
}

/* =========================
   SIDEBAR
   ========================= */

.sidebar-hover-zone {
    display: none !important;
}

aside.app-sidebar {
    position: fixed !important;

    top: 0 !important;
    left: 0 !important;

    width: var(--sidebar-width) !important;
    height: 100vh !important;
    min-height: 100vh !important;

    padding: 0 !important;

    display: flex;
    flex-direction: column;

    overflow: hidden;

    background:
        linear-gradient(
            180deg,
            #154e78 0%,
            #0e3c61 55%,
            #0a3455 100%
        ) !important;

    color: #fff;

    border: 0 !important;

    z-index: 1200 !important;

    box-shadow: 6px 0 20px rgba(10, 40, 62, 0.14);
}

.sidebar-brand {
    height: var(--app-navbar-height);

    flex: 0 0 var(--app-navbar-height);

    display: flex;
    align-items: center;

    gap: 12px;

    padding: 8px 20px;

    border-bottom: 1px solid rgba(255, 255, 255, 0.10);
}

.sidebar-brand-logo {
    width: 48px;
    height: 48px;

    flex-shrink: 0;

    object-fit: contain;

    border-radius: 10px;

    background: #fff;

    padding: 2px;
}

.sidebar-brand-text {
    min-width: 0;
}

.sidebar-brand-name {
    color: #fff;

    font-size: 1.35rem;
    line-height: 1;

    font-weight: 900;

    letter-spacing: 0.15em;
}

.sidebar-brand-subtitle {
    margin-top: 4px;

    color: rgba(255, 255, 255, 0.64);

    font-size: 0.60rem;
    font-weight: 600;

    letter-spacing: 0.11em;
    text-transform: uppercase;
}

.sidebar-scroll {
    flex: 1 1 auto;

    min-height: 0;

    padding: 18px 16px 24px;

    overflow-y: auto;
    overflow-x: hidden;

    scrollbar-width: thin;
    scrollbar-color: rgba(255, 255, 255, 0.18) transparent;
}

.sidebar-scroll::-webkit-scrollbar {
    width: 5px;
}

.sidebar-scroll::-webkit-scrollbar-track {
    background: transparent;
}

.sidebar-scroll::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.18);
    border-radius: 20px;
}

.sidebar-scroll::-webkit-scrollbar-thumb:hover {
    background: rgba(255, 255, 255, 0.30);
}

.sidebar-section-title {
    margin: 20px 12px 8px;

    color: rgba(255, 255, 255, 0.58);

    font-size: 0.70rem;
    line-height: 1;

    font-weight: 800;

    text-transform: uppercase;
    letter-spacing: 0.075em;
}

.app-sidebar .nav {
    gap: 4px;
}

.app-sidebar .nav-link {
    min-height: 45px;

    padding: 10px 12px;

    display: flex;
    align-items: center;

    gap: 11px;

    border: 0;
    border-radius: 9px;

    background: transparent;

    color: rgba(255, 255, 255, 0.88) !important;

    font-size: 0.89rem;
    font-weight: 650;

    text-decoration: none;

    transition:
        background-color 0.15s ease,
        color 0.15s ease;
}

.app-sidebar .nav-link:hover,
.app-sidebar .nav-link:focus {
    transform: none;

    background: rgba(255, 255, 255, 0.08);

    color: #fff !important;
}

.app-sidebar .nav-link.active {
    background:
        linear-gradient(
            110deg,
            #217bc7 0%,
            #2b92df 100%
        );

    color: #fff !important;

    font-weight: 800;

    box-shadow: 0 5px 14px rgba(4, 77, 139, 0.24);
}

.sidebar-icon {
    width: 22px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    flex-shrink: 0;

    color: currentColor;

    font-size: 1rem;
    line-height: 1;
}

.submenu-toggle {
    border: 0 !important;
    background: transparent !important;
}

.submenu-arrow {
    transition: transform 0.18s ease;
}

.submenu-toggle[aria-expanded="true"] .submenu-arrow {
    transform: rotate(180deg);
}

.submenu-list {
    margin: 5px 0 7px 22px;
    padding-left: 9px;

    border-left: 1px solid rgba(255, 255, 255, 0.15);
}

.submenu-list .nav-link {
    min-height: auto;

    padding: 7px 10px;

    font-size: 0.78rem;
}

.sidebar-disabled-link {
    margin: 3px 0;

    padding: 10px 12px;

    display: flex;
    align-items: center;

    gap: 10px;

    color: rgba(255, 255, 255, 0.35);

    font-size: 0.84rem;

    cursor: not-allowed;
}

.sidebar-user {
    flex: 0 0 auto;

    margin: 8px 16px 16px;

    padding: 12px;

    display: flex;
    align-items: center;

    gap: 11px;

    border: 1px solid rgba(255, 255, 255, 0.17);
    border-radius: 12px;

    background: rgba(255, 255, 255, 0.055);
}

.sidebar-user-avatar {
    width: 40px;
    height: 40px;

    flex-shrink: 0;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 50%;

    background: #fff;

    color: var(--pama-navy);

    font-weight: 900;
}

.sidebar-user-info {
    min-width: 0;

    display: flex;
    flex-direction: column;
}

.sidebar-user-info strong {
    overflow: hidden;

    color: #fff;

    font-size: 0.88rem;

    white-space: nowrap;
    text-overflow: ellipsis;
}

.sidebar-user-info small {
    margin-top: 2px;

    color: #72dca7;

    font-size: 0.71rem;
}

/* =========================
   SHELL / CONTENT
   ========================= */

.app-shell {
    display: block !important;

    min-height: 100vh;
}

.app-content {
    width: calc(100% - var(--sidebar-width)) !important;

    min-height: 100vh !important;

    margin-left: var(--sidebar-width) !important;

    padding:
        calc(var(--app-navbar-height) + 28px)
        32px
        38px
        !important;

    background: var(--pama-bg);
}

.app-content .container,
.app-content .container-fluid {
    width: 100%;
    max-width: 1720px;

    margin-left: auto;
    margin-right: auto;

    padding-left: 0;
    padding-right: 0;
}

/* =========================
   COMPONENTES GENERALES
   ========================= */

.card {
    border: 1px solid var(--pama-border);
    border-radius: 14px;

    background: var(--pama-surface);

    box-shadow: 0 4px 14px rgba(20, 50, 72, 0.06);
}

.card-header {
    background: #fff;

    border-bottom: 1px solid var(--pama-border);
}

.btn {
    border-radius: 8px;

    font-weight: 650;
}

.btn-primary {
    background: #1975d1;
    border-color: #1975d1;
}

.btn-primary:hover,
.btn-primary:focus {
    background: #1265ba;
    border-color: #1265ba;
}

.form-control,
.form-select {
    min-height: 40px;

    border-color: #cbd9e3;
    border-radius: 8px;

    background-color: #fff;
}

.form-control:focus,
.form-select:focus {
    border-color: rgba(35, 127, 208, 0.60);

    box-shadow: 0 0 0 0.18rem rgba(35, 127, 208, 0.12);
}

/* =========================
   DASHBOARD
   ========================= */

.dashboard-page {
    margin-top: 0 !important;
}

.dashboard-title {
    margin: 0 0 3px;

    color: #17364e;

    font-size: 2rem;
    line-height: 1.15;

    font-weight: 850;
}

.dashboard-subtitle {
    color: var(--pama-muted);

    font-size: 0.90rem;
}

.dashboard-filter-card {
    margin-top: 17px;
    margin-bottom: 18px;
}

.dashboard-filter-card .card-body {
    padding: 15px 17px;
}

.dashboard-main-kpis {
    display: grid;

    grid-template-columns: repeat(4, minmax(0, 1fr));

    gap: 16px;

    margin-bottom: 18px;
}

.dashboard-main-kpi {
    min-width: 0;
    min-height: 132px;

    padding: 18px 20px;

    display: flex;
    align-items: center;

    gap: 17px;

    border: 1px solid var(--pama-border);
    border-radius: 14px;

    background: #fff;

    box-shadow: 0 4px 14px rgba(20, 50, 72, 0.06);
}

.dashboard-main-kpi-icon {
    width: 58px;
    height: 58px;

    flex: 0 0 58px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 12px;

    color: #fff;

    font-size: 1.7rem;
    font-weight: 900;
}

.dashboard-main-kpi-label {
    color: #31536b;

    font-size: 0.76rem;
    line-height: 1.25;

    font-weight: 850;

    text-transform: uppercase;
    letter-spacing: 0.025em;
}

.dashboard-main-kpi-number {
    margin-top: 6px;

    color: #16384f;

    font-size: 2rem;
    line-height: 1;

    font-weight: 900;
}

.dashboard-main-kpi-percent {
    margin-top: 8px;

    color: var(--pama-muted);

    font-size: 0.76rem;
}

.kpi-main-blue .dashboard-main-kpi-icon {
    background: linear-gradient(135deg, #2486d9, #1061b8);
}

.kpi-main-green {
    background: linear-gradient(120deg, #fff, #f1fbf6);
}

.kpi-main-green .dashboard-main-kpi-icon {
    background: #3bb277;
}

.kpi-main-blue-soft {
    background: linear-gradient(120deg, #fff, #f3f8fe);
}

.kpi-main-blue-soft .dashboard-main-kpi-icon {
    background: #2b97d6;
}

.kpi-main-red {
    background: linear-gradient(120deg, #fff, #fff4f4);
}

.kpi-main-red .dashboard-main-kpi-icon {
    background: #df4646;
}

.dashboard-summary-grid {
    display: grid;

    grid-template-columns: repeat(2, minmax(0, 1fr));

    gap: 18px;

    margin-bottom: 18px;
}

.dashboard-summary-panel {
    min-height: 290px;

    padding: 20px;
}

.dashboard-panel-title {
    margin-bottom: 18px;

    color: #173d59;

    font-size: 0.88rem;

    font-weight: 900;

    text-transform: uppercase;
}

.turn-status-layout {
    min-height: 210px;

    display: grid;

    grid-template-columns: minmax(0, 1fr) 190px;

    align-items: center;

    gap: 22px;
}

.turn-status-list {
    display: flex;
    flex-direction: column;

    gap: 16px;
}

.turn-status-row {
    display: grid;

    grid-template-columns: 12px minmax(0, 1fr) auto;

    align-items: center;

    gap: 10px;

    font-size: 0.84rem;
}

.turn-status-dot {
    width: 10px;
    height: 10px;

    border-radius: 50%;
}

.turn-status-value {
    color: #17384f;

    font-weight: 900;
}

.status-blue {
    background: #2784d4;
}

.status-yellow {
    background: #e7b62b;
}

.status-green {
    background: #3caf78;
}

.status-red {
    background: #d74646;
}

.turn-status-donut {
    width: 166px;
    height: 166px;

    margin: auto;

    position: relative;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 50%;
}

.turn-status-donut::after {
    content: "";

    position: absolute;

    width: 94px;
    height: 94px;

    border-radius: 50%;

    background: #fff;

    box-shadow: 0 0 0 1px rgba(215, 227, 235, 0.25);
}

.turn-status-donut-center {
    position: relative;

    z-index: 2;

    text-align: center;
}

.turn-status-donut-center small {
    display: block;

    color: var(--pama-muted);

    font-size: 0.72rem;
}

.turn-status-donut-center strong {
    display: block;

    margin-top: 2px;

    color: #173b55;

    font-size: 1.6rem;
}

.dashboard-money-row {
    padding: 14px;

    margin-bottom: 11px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 12px;

    border: 1px solid transparent;
    border-radius: 10px;
}

.dashboard-money-row.blue {
    background: #eff6ff;
    border-color: #c6dcf4;
}

.dashboard-money-row.green {
    background: #eef9f3;
    border-color: #bfe6d1;
}

.dashboard-money-title {
    color: #173d59;

    font-size: 0.84rem;

    font-weight: 800;
}

.dashboard-money-count {
    margin-top: 3px;

    color: var(--pama-muted);

    font-size: 0.76rem;
}

.dashboard-money-value {
    color: #16384f;

    font-size: 1.02rem;

    font-weight: 900;

    white-space: nowrap;
}

.dashboard-money-total {
    margin-top: 14px;
    padding-top: 14px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 12px;

    border-top: 1px dashed #c6d5df;

    color: #17384f;

    font-weight: 900;
}

.dashboard-calendar-card {
    overflow: hidden;
}

.dashboard-calendar-card .card-header {
    padding: 13px 16px;
}

.dashboard-calendar-card .card-body {
    padding: 15px !important;
}

/* =========================
   CALENDARIO
   ========================= */

.dashboard-enterprise .calendar-title {
    color: #1f3e56;

    font-size: 1rem;

    font-weight: 800;
}

.dashboard-enterprise .calendar-legend {
    display: flex;
    flex-wrap: wrap;

    gap: 6px;
}

.dashboard-enterprise .legend-item {
    padding: 4px 9px;

    display: inline-flex;
    align-items: center;

    border: 1px solid transparent;
    border-radius: 999px;

    font-size: 0.71rem;

    font-weight: 800;
}

.dashboard-enterprise .legend-green {
    background: #e7f7ed;
    color: #236447;
    border-color: #bce4c9;
}

.dashboard-enterprise .legend-blue {
    background: #e7f2fb;
    color: #1f4f84;
    border-color: #bed7ec;
}

.dashboard-enterprise .legend-yellow {
    background: #fff7df;
    color: #785b18;
    border-color: #f0de9c;
}

.dashboard-enterprise .legend-red {
    background: #f8ebeb;
    color: #7e3030;
    border-color: #e8b9b9;
}

.dash-month-grid,
.dash-week-grid {
    display: grid;

    grid-template-columns: repeat(7, minmax(0, 1fr));

    gap: 6px;
}

.dash-day-header {
    padding: 7px 4px;

    border-radius: 7px;

    background: #e7f0f7;

    color: #35566f;

    font-size: 0.8rem;

    font-weight: 800;

    text-align: center;
}

.dash-day-cell {
    min-height: 136px;

    padding: 6px;

    display: flex;
    flex-direction: column;

    gap: 4px;

    border: 1px solid #d6e2eb;
    border-radius: 8px;

    background: #fff;
}

.dash-day-cell.out-month {
    opacity: 0.55;

    background: #f6f9fc;
}

.dash-day-cell.today {
    border-color: #3a6990;

    box-shadow: inset 0 0 0 1px rgba(58, 105, 144, 0.18);
}

.dash-day-number {
    color: #2d4559;

    font-size: 0.78rem;

    font-weight: 800;
}

.dash-event {
    padding: 5px 6px;

    display: block;

    border: 1px solid transparent;
    border-radius: 6px;

    color: #103046;

    font-size: 0.71rem;
    line-height: 1.2;

    text-decoration: none;
}

.dash-event:hover {
    text-decoration: none;

    filter: brightness(0.985);
}

.dash-event-top {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 5px;
}

.dash-event-name {
    margin-top: 2px;

    font-weight: 800;
}

.dash-event-meta {
    margin-top: 1px;

    font-size: 0.67rem;

    opacity: 0.84;
}

.dash-event-state {
    padding: 1px 5px;

    border-radius: 999px;

    background: rgba(255, 255, 255, 0.70);

    font-size: 0.62rem;

    font-weight: 800;
}

.dash-event.atendido {
    background: #e7f7ed;
    border-color: #bce4c9;
    color: #1c553b;
}

.dash-event.confirmado {
    background: #e7f2fb;
    border-color: #bed7ec;
    color: #1f4f84;
}

.dash-event.pendiente {
    background: #fff7df;
    border-color: #f0de9c;
    color: #785b18;
}

.dash-event.cancelado {
    background: #f8ebeb;
    border-color: #e8b9b9;
    color: #7e3030;
}

.dash-week-day {
    min-height: 360px;

    display: flex;
    flex-direction: column;

    border: 1px solid #d6e2eb;
    border-radius: 8px;

    background: #fff;
}

.dash-week-day.today {
    border-color: #3a6990;
}

.dash-week-day-header {
    padding: 7px;

    background: #e7f0f7;

    border-bottom: 1px solid #d6e2eb;

    font-size: 0.82rem;

    font-weight: 800;

    text-align: center;
}

.dash-week-day-events {
    padding: 6px;

    display: flex;
    flex-direction: column;

    gap: 5px;
}

.dash-empty-day {
    color: #8ba0af;

    font-size: 0.78rem;

    font-style: italic;
}

/* =========================
   MODOS SIDEBAR
   ========================= */

@media (min-width: 992px) {

    body.sidebar-pinned aside.app-sidebar {
        transform: none !important;
    }

    body.sidebar-pinned nav.app-navbar {
        left: var(--sidebar-width) !important;
    }

    body.sidebar-pinned .app-content {
        width: calc(100% - var(--sidebar-width)) !important;
        margin-left: var(--sidebar-width) !important;
    }

    body.sidebar-autohide aside.app-sidebar {
        transform: translateX(calc(-1 * var(--sidebar-width))) !important;
        transition: transform 0.22s ease;
    }

    body.sidebar-autohide nav.app-navbar {
        left: 0 !important;
    }

    body.sidebar-autohide .app-content {
        width: 100% !important;
        margin-left: 0 !important;
    }

}

/* =========================
   RESPONSIVE
   ========================= */

@media (max-width: 1280px) {

    .dashboard-main-kpis {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

}

@media (max-width: 1100px) {

    .dashboard-summary-grid {
        grid-template-columns: 1fr;
    }

    .dash-month-grid,
    .dash-week-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .dash-day-header {
        display: none;
    }

    .dash-week-day {
        min-height: 240px;
    }

}

@media (max-width: 991px) {

    nav.app-navbar {
        left: 0 !important;
    }

    aside.app-sidebar {
        transform: translateX(-100%) !important;
        transition: transform 0.22s ease;
    }

    body.sidebar-pinned aside.app-sidebar {
        transform: translateX(0) !important;
    }

    .app-content,
    body.sidebar-pinned .app-content,
    body.sidebar-autohide .app-content {
        width: 100% !important;

        margin-left: 0 !important;

        padding:
            calc(var(--app-navbar-height) + 22px)
            16px
            30px
            !important;
    }

}

@media (max-width: 700px) {

    .dashboard-main-kpis {
        grid-template-columns: 1fr;
    }

    .turn-status-layout {
        grid-template-columns: 1fr;
    }

    .dashboard-title {
        font-size: 1.55rem;
    }

    .dash-month-grid,
    .dash-week-grid {
        grid-template-columns: 1fr;
    }

    .dashboard-main-kpi {
        min-height: 112px;
    }

}

/* Reposos medicos */
.reposo-page { max-width: 1180px; }
.reposo-prewrap { white-space: pre-wrap; overflow-wrap: anywhere; }
.reposo-touch { min-height: 42px; }
.notification-bell-wrap{position:relative}.notification-bell{position:relative;border:0;background:transparent;font-size:1.25rem;padding:.45rem;border-radius:50%;line-height:1}.notification-bell:hover{background:#e8f1f6}.notification-count{position:absolute;right:-2px;top:-3px;min-width:19px;height:19px;padding:0 5px;border-radius:10px;background:#dc3545;color:#fff;font-size:.68rem;font-weight:800;line-height:19px;text-align:center}.notification-dropdown{position:absolute;z-index:1100;right:0;top:calc(100% + 10px);width:min(380px,calc(100vw - 20px));max-height:520px;overflow:auto;background:#fff;border:1px solid #d8e2e9;border-radius:12px;box-shadow:0 12px 30px #102b3b33}.notification-dropdown-head,.notification-dropdown-all{display:block;padding:12px 14px}.notification-dropdown-head{border-bottom:1px solid #e5edf2}.notification-dropdown-all{text-align:center;border-top:1px solid #e5edf2;text-decoration:none}.notification-dropdown-item{display:flex;width:100%;flex-direction:column;gap:3px;padding:11px 14px;text-align:left;border:0;border-bottom:1px solid #edf2f5;background:#fff}.notification-dropdown-item.is-unread{background:#eef7ff;border-left:4px solid #1875b8}.notification-dropdown-item span,.notification-message{overflow-wrap:anywhere}.notification-dropdown-item time{font-size:.72rem;color:#6c7f8c}.notification-dropdown-empty{padding:24px 14px;text-align:center;color:#71818d}.notification-page{max-width:960px}.notification-list{display:grid;gap:12px}.notification-card.is-unread{border-left:5px solid #1875b8;background:#f6fbff}.notification-type{font-size:.7rem;font-weight:800;color:#557080;letter-spacing:.04em}.notification-card .badge{height:max-content}
@media (max-width: 575.98px) {
    .reposo-page { padding-left: 10px; padding-right: 10px; }
    .reposo-page .form-control, .reposo-page .form-select { font-size: 16px; min-height: 44px; }
    .reposo-page .btn { min-height: 42px; }
    .reposo-page .table-responsive { max-width: 100%; overflow-x: auto; }
    .notification-dropdown{position:fixed;right:10px;left:10px;top:var(--app-navbar-height);width:auto;max-height:70vh}.notification-page{padding-left:10px;padding-right:10px}.notification-card .btn{min-height:42px}.app-username{display:none}
}
/* =========================================================
   REPOSOS MEDICOS
   ========================================================= */

.reposo-page {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 24px 28px 32px;
}


/* Encabezado */

.reposo-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    margin-bottom: 20px;
}

.reposo-title {
    margin: 0;
    font-size: 2rem;
    font-weight: 800;
    color: #19334a;
    line-height: 1.2;
}

.reposo-subtitle {
    margin: 5px 0 0;
    color: #6c7b89;
    font-size: 0.95rem;
}


/* Tarjeta */

.reposo-card {
    width: 100%;
    border: 1px solid #dce5ec;
    border-radius: 14px;
    overflow: hidden;
    background: #ffffff;
    box-shadow: 0 4px 14px rgba(30, 60, 80, 0.07);
}


/* Encabezado de tarjeta */

.reposo-card-header {
    background: #ffffff;
    border-bottom: 1px solid #e1e8ee;
    padding: 16px 20px;
}

.reposo-card-header h5 {
    color: #19334a;
    font-weight: 700;
}


/* Tabla */

.reposo-table {
    width: 100%;
}

.reposo-table thead th {
    background: #f4f8fb;
    color: #344d60;
    font-size: 0.82rem;
    font-weight: 700;
    text-transform: uppercase;
    white-space: nowrap;
    padding: 14px 16px;
    border-bottom: 1px solid #dce5ec;
}

.reposo-table tbody td {
    padding: 15px 16px;
    vertical-align: middle;
}


/* Acciones */

.reposo-actions {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
}


/* Sin resultados */

.reposo-empty {
    height: 190px;
    text-align: center;
    vertical-align: middle !important;
    color: #71808d;
}

.reposo-empty-icon {
    font-size: 2rem;
    color: #9baab5;
    margin-bottom: 6px;
}

.reposo-empty strong {
    display: block;
    color: #425667;
    font-size: 1rem;
    margin-bottom: 3px;
}

.reposo-empty span {
    display: block;
    font-size: 0.9rem;
}


/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width: 768px) {

    .reposo-page {
        padding: 16px 14px 24px;
    }

    .reposo-header {
        align-items: stretch;
        flex-direction: column;
        margin-bottom: 16px;
    }

    .reposo-title {
        font-size: 1.55rem;
    }

    .reposo-header .btn {
        width: 100%;
    }

    .reposo-card {
        border-radius: 10px;
    }

    .reposo-table {
        min-width: 850px;
    }

    .reposo-actions {
        justify-content: flex-start;
    }
}
/* =========================================
   PAMA - AJUSTE VISUAL DE REPOSOS MÉDICOS
   ========================================= */

.app-content > .reposo-page {
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
    padding: 0 !important;
    min-width: 0;
}

.reposo-page > .d-flex:first-child {
    margin-top: 0;
    margin-bottom: 20px !important;
}

.reposo-page > form.card {
    width: 100%;
    margin: 0;
}

@media (max-width: 768px) {
    .app-content > .reposo-page {
        padding: 0 !important;
    }
}