.sidebar-export-btn{color:#e0f2fe;cursor:pointer;text-align:left;background:#38bdf81f;border:1px solid #ffffff2e;border-radius:.5rem;width:100%;margin-top:1rem;padding:.65rem .75rem;font-weight:700}.export-modal-backdrop{z-index:9999;background:#0f172aad;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.export-modal{background:#fff;border:1px solid #e2e8f0;border-radius:1rem;width:100%;max-width:560px;overflow:hidden;box-shadow:0 24px 70px #0f172a59}.export-modal-header{background:#f8fafc;border-bottom:1px solid #e2e8f0;justify-content:space-between;gap:1rem;padding:1rem 1.1rem;display:flex}.export-modal-close:hover{background:#cbd5e1}.export-format-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;display:grid}.export-format{color:#0f172a;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:.55rem;align-items:center;gap:.5rem;min-height:42px;padding:.65rem .75rem;font-weight:800;display:flex}.export-format.selected{background:#eff6ff;border-color:#2563eb;box-shadow:inset 0 0 0 1px #2563eb}.export-option{cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:.75rem;grid-template-columns:auto 1fr;align-items:flex-start;gap:.75rem;padding:.8rem;display:grid}.export-option:hover{background:#f8fafc;border-color:#cbd5e1}.export-option.selected{background:#eff6ff;border-color:#2563eb;box-shadow:inset 0 0 0 1px #2563eb}.export-option strong{color:#0f172a;font-size:.95rem;display:block}.export-option small{color:#64748b;margin-top:.2rem;font-size:.8rem;line-height:1.35;display:block}@media print{@page{size:A4 landscape;margin:7mm}html,body{width:100%;background:#fff!important}body{-webkit-print-color-adjust:exact;print-color-adjust:exact}.sidebar,.no-print,.export-modal-backdrop,.cal-acciones,.cal-navegacion,.btn-primary,.btn-secondary,.btn-danger,.alert,form{display:none!important}.app-shell{min-height:auto!important;display:block!important}.app-main{background:#fff!important;width:100%!important;padding:0!important}.panel{box-shadow:none!important;background:#fff!important;border:none!important;padding:0!important}.pdf-export-header{color:#0f172a;border-bottom:2px solid #0f172a;margin-bottom:4mm;padding-bottom:2mm;display:block!important}.pdf-export-header h1{margin:0;font-size:12pt}.pdf-export-header h2{margin:1mm 0 1.5mm;font-size:9pt;font-weight:700}.pdf-export-header p{margin:.5mm 0;font-size:7pt}.cal-contenedor{background:#fff!important}.cal-cabecera{margin-bottom:2mm!important}.cal-titulo{margin:0!important;font-size:12pt!important}.cal-subtitulo{margin:.5mm 0 0!important;font-size:7pt!important}.cal-leyenda{border-radius:2mm!important;gap:3mm!important;margin-bottom:2mm!important;padding:1.5mm 2mm!important;font-size:6.5pt!important}.cal-ley-box,.cal-ley-dot{width:8px!important;height:8px!important}.cal-cuadrante{gap:1.5mm!important;padding-bottom:0!important;display:grid!important;overflow:visible!important}.cal-cuadrante-bloque{width:100%!important;min-width:0!important;box-shadow:none!important;page-break-inside:avoid!important;break-inside:avoid!important;border:1px solid #cbd5e1!important;border-radius:2mm!important}.cal-cuadrante-grid{grid-template-columns:15mm repeat(7,1fr)!important}.cal-puesto-esquina{min-height:8mm!important;padding:1mm!important;font-size:5.5pt!important}.cal-dia-col-header{min-height:8mm!important;padding:1mm!important}.cal-dia-col-nombre{font-size:5.5pt!important;line-height:1!important}.cal-dia-col-numero{margin-top:.5mm!important;font-size:7pt!important;line-height:1!important}.cal-dia-col-festivo{margin-top:.5mm!important;font-size:5pt!important;line-height:1!important}.cal-puesto-row-label{border-left-width:3px!important;min-height:8mm!important;padding:1mm!important;font-size:5.5pt!important}.cal-turno-slot{border-left-width:2px!important;min-height:8mm!important;padding:1mm!important}.cal-turno-slot-content{border-width:1px!important;border-radius:1.5mm!important;padding:0!important}.cal-cuadrante-select,.cal-select,select{color:#0f172a!important;appearance:none!important;background:0 0!important;border:none!important;width:100%!important;min-height:6mm!important;padding:.5mm 1mm!important;font-size:5.8pt!important;font-weight:800!important;line-height:1.1!important}.cal-cuadrante-select.mat,.cal-cuadrante-select.ucin{border-left-width:2px!important}.dot-vacante,.cal-dia-vacante-dot,.cal-slot-vacante-dot{width:6px!important;height:6px!important}.table{font-size:7pt!important}.table th,.table td{padding:1.5mm!important}.item-card{page-break-inside:avoid!important;break-inside:avoid!important}}.app-shell{min-height:100vh;display:flex}.sidebar{color:#fff;background:#0f172a;flex-direction:column;width:280px;height:100vh;padding:1rem;display:flex;position:sticky;top:0}.sidebar-title{color:#38bdf8;align-items:center;gap:.55rem;margin-top:0;font-size:1.2rem;display:flex}.side-nav{gap:.35rem;margin-top:1rem;display:grid}.nav-btn{text-align:left;cursor:pointer;color:#cbd5e1;background:0 0;border:none;border-radius:.5rem;align-items:center;gap:.45rem;padding:.65rem .75rem;display:flex}.nav-btn-icon{width:2.35rem;color:inherit;flex:0 0 2.35rem;justify-content:center;align-items:center;font-size:1.45rem;font-weight:800;line-height:1;display:inline-flex}.nav-btn.active{color:#0f172a;background:#38bdf8;font-weight:700}.role-badge{border-radius:999px;margin-top:.75rem;padding:.2rem .6rem;font-size:.8rem;display:inline-block}.role-admin{color:#854d0e;background:#fef9c3}.role-gestion{color:#1d4ed8;background:#dbeafe}.role-reader{color:#334155;background:#e2e8f0}.app-main{background:#f1f5f9;flex:1;padding:1.25rem}.mobile-section-header{display:none}.notifications-center{z-index:9000;width:auto;max-width:min(300px,100vw - 1rem);position:fixed;top:.55rem;right:.55rem}.notifications-center summary{list-style:none}.notifications-center summary::-webkit-details-marker{display:none}.notifications-trigger{color:#fff;cursor:pointer;border:1px solid #0f172a29;border-radius:999px;justify-content:space-between;align-items:center;gap:.35rem;min-height:30px;padding:.25rem .42rem;font-size:.72rem;font-weight:900;display:flex;box-shadow:0 8px 20px #0f172a24}.notifications-center.notifications-status-clear .notifications-trigger{background:#16a34a}.notifications-center.notifications-status-pending .notifications-trigger{background:#f97316}.notifications-center.notifications-status-new .notifications-trigger{background:#2563eb}.notifications-icon{background:#ffffff38;border-radius:999px;justify-content:center;align-items:center;width:1.05rem;height:1.05rem;display:inline-flex}.notifications-trigger strong{color:#0f172a;background:#ffffffeb;border-radius:999px;justify-content:center;align-items:center;min-width:1.15rem;height:1.15rem;font-size:.68rem;display:inline-flex}.notifications-panel{background:#fff;border:1px solid #dbe3ee;border-radius:.9rem;width:min(300px,100vw - 1rem);margin-top:.32rem;padding:.65rem;position:absolute;top:100%;right:0;box-shadow:0 18px 50px #0f172a33}.notifications-page{max-width:920px}.notifications-page .notifications-title{font-size:1.35rem}.notifications-page .notifications-list{max-height:none;overflow:visible}.notifications-page .notification-item{grid-template-columns:1fr auto}.notifications-history{border-top:1px solid #e2e8f0;margin-top:1.25rem;padding-top:1rem}.notifications-history-header{justify-content:space-between;align-items:end;gap:1rem;margin-bottom:.8rem;display:flex}.notifications-history-header h3{color:#0f172a;margin:0}.notifications-history-filters{grid-template-columns:repeat(3,minmax(90px,1fr));gap:.6rem;min-width:min(100%,460px);display:grid}.notifications-history-filters label{color:#475569;gap:.25rem;font-size:.78rem;font-weight:800;display:grid}.notifications-history-list .notification-item{background:#f8fafc;border-color:#dbe3ee}.notification-push-settings{background:#f8fafc;border:1px solid #dbe3ee;border-radius:.65rem;gap:.65rem;margin:.75rem 0 1rem;padding:.75rem;display:grid}.notification-push-settings-head{gap:.25rem;display:grid}.notification-push-settings-head h3{color:#0f172a;margin:0;font-size:.95rem}.notification-push-settings-head p{color:#475569;margin:0;font-size:.82rem;line-height:1.35}.notification-push-options{gap:.55rem;display:grid}.notification-push-option{background:#fff;border:1px solid #e2e8f0;border-radius:.55rem;grid-template-columns:auto 1fr;align-items:start;gap:.55rem;padding:.6rem;display:grid}.notification-push-option input{accent-color:#2563eb;width:1.1rem;height:1.1rem;margin-top:.1rem}.notification-push-option span{gap:.15rem;display:grid}.notification-push-option strong{color:#0f172a;font-size:.86rem}.notification-push-option small{color:#64748b;font-size:.74rem;line-height:1.3}.notification-push-option.is-locked{background:#f1f5f9}.notification-item.is-read{opacity:.72}.notification-item small{color:#64748b;margin-top:.25rem;font-size:.76rem;display:block}.notifications-title{color:#0f172a;margin:0 0 .5rem;font-size:1rem;font-weight:900}.notifications-permission-btn{width:100%;margin-bottom:.65rem}.notifications-list{gap:.65rem;max-height:min(420px,100vh - 8rem);display:grid;overflow:auto}.notification-item{background:#fff7ed;border:1px solid #fed7aa;border-radius:.65rem;grid-template-columns:1fr auto;align-items:center;gap:.75rem;padding:.7rem;display:grid}.notification-item p,.notification-empty{color:#7c2d12;margin:0;font-size:.9rem}.notification-empty{color:#166534}.notification-item .btn-secondary{white-space:nowrap}.notification-actions{grid-column:1/-1;justify-content:flex-end;gap:.45rem;display:flex}.notification-actions .btn-primary,.notification-actions .btn-danger{padding:.38rem .55rem;font-size:.78rem}.panel{background:#fff;border:1px solid #e2e8f0;border-radius:.9rem;max-width:100%;padding:1rem;overflow:hidden}.update-banner{z-index:5000;color:#075985;background:#e0f2fe;border:1px solid #38bdf8;border-radius:.75rem;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;padding:.85rem 1rem;display:flex;position:sticky;top:.75rem;box-shadow:0 12px 32px #0e74902e}.update-banner strong,.update-banner p{margin:0}.update-banner p{margin-top:.15rem;font-size:.88rem}.confirm-banner-backdrop{z-index:9500;background:#0f172a73;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.confirm-banner{background:#fff;border:1px solid #38bdf8;border-radius:.8rem;width:min(100%,520px);padding:1rem;box-shadow:0 22px 70px #0f172a47}.confirm-banner h3{color:#0f172a;margin:0 0 .55rem}.confirm-banner p{color:#334155;margin:0;line-height:1.45}.confirm-banner-actions{justify-content:flex-end;gap:.55rem;margin-top:1rem;display:flex}.notification-info-pop{z-index:9600;color:#075985;text-align:center;cursor:pointer;background:#e0f2fe;border:1px solid #7dd3fc;border-radius:.75rem;width:min(92vw,440px);padding:.85rem 1rem;font-weight:800;position:fixed;bottom:1.25rem;left:50%;transform:translate(-50%);box-shadow:0 16px 42px #0f172a33}.dismissible-reminder-backdrop{z-index:9550;background:#0f172a4d;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.dismissible-reminder{color:#0f172a;background:#fff;border:1px solid #38bdf8;border-radius:.75rem;width:min(100%,460px);padding:1rem;box-shadow:0 22px 70px #0f172a47}.dismissible-reminder h3{margin:0 0 .45rem;font-size:1.05rem}.dismissible-reminder p{color:#334155;margin:0;line-height:1.45}.dismissible-reminder-actions{flex-wrap:wrap;justify-content:flex-end;gap:.55rem;margin-top:1rem;display:flex}.panel-header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.panel-section{margin:1rem 0}.category-panel-description{color:#64748b;margin:.2rem 0 0;font-size:.95rem}.category-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.8rem;margin-top:1rem;display:grid}.category-action{color:#0f172a;text-align:left;cursor:pointer;background:#f8fafc;border:1px solid #dbe3ef;border-radius:.55rem;grid-template-columns:42px 1fr;align-items:center;gap:.75rem;min-height:88px;padding:.85rem;display:grid}.category-action:hover{background:#eff6ff;border-color:#38bdf8}.category-action-icon{color:#075985;background:#e0f2fe;border-radius:.45rem;flex:0 0 42px;place-items:center;width:42px;height:42px;font-size:1.35rem;font-weight:900;line-height:1;display:inline-grid}.category-action strong,.category-action small{display:block}.category-action small{color:#64748b;margin-top:.18rem;font-size:.82rem;line-height:1.35}.rules-box{background:#f0f9ff;border:1px solid #bae6fd;border-radius:.65rem;margin-top:1rem;padding:1rem}.rules-box h3{color:#0f172a;margin:0 0 .65rem}.rules-box ul{color:#334155;margin:0;padding-left:1.2rem;line-height:1.55}.mail-config-box{background:#f8fafc;border-color:#dbe3ef}.mail-config-grid{grid-template-columns:repeat(2,minmax(180px,1fr));gap:.75rem;margin:.4rem 0 1rem;display:grid}.mail-config-grid div{min-width:0}.mail-config-grid dt{color:#64748b;text-transform:uppercase;font-size:.78rem;font-weight:700}.mail-config-grid dd{color:#0f172a;overflow-wrap:anywhere;margin:.2rem 0 0;font-weight:700}.mail-test-form{margin-top:.8rem}.mail-test-row{grid-template-columns:minmax(180px,1fr) max-content;align-items:center;gap:.65rem;display:grid}.mail-config-note{color:#475569;margin:.8rem 0 0;font-size:.9rem}.subpanel{background:#f8fafc;border:1px solid #e2e8f0;border-radius:.65rem;margin:1rem 0;padding:.9rem}.subpanel h3{color:#0f172a;margin:0 0 .75rem}.subpanel-highlight{background:#f0f9ff;border-color:#38bdf8;box-shadow:0 0 0 1px #38bdf82e}.admin-invite-callout{color:#075985;background:#e0f2fe;border:1px solid #7dd3fc;border-radius:.6rem;margin:.75rem 0 1rem;padding:.75rem .9rem;font-weight:700}.users-admin-panel,.user-admin-section{overflow:hidden}.user-admin-section>summary{cursor:pointer;color:#0f172a;justify-content:space-between;align-items:center;gap:.75rem;font-weight:900;list-style:none;display:flex}.user-admin-section>summary::-webkit-details-marker{display:none}.user-admin-section>summary:after{content:"+";color:#0f172a;background:#e2e8f0;border-radius:.35rem;flex:none;justify-content:center;align-items:center;width:1.35rem;height:1.35rem;display:inline-flex}.user-admin-section[open]>summary:after{content:"-"}.user-admin-section-body{gap:.85rem;min-width:0;margin-top:.85rem;display:grid}.user-admin-inner-panel{background:#ffffffb8;border:1px solid #dbeafe;border-radius:.6rem;min-width:0;padding:.75rem}.user-admin-toolbar{margin-bottom:.6rem}.user-batch-list{background:#fff;border:1px solid #d6dce5;border-radius:.5rem;max-height:180px;padding:.55rem;overflow:auto}.user-batch-option{overflow-wrap:anywhere;padding:.18rem 0;display:block}.generated-links-block{gap:.45rem;min-width:0;margin-top:.75rem;display:grid}.managed-table-wrap{background:#fff;border:1px solid #e2e8f0;border-radius:.55rem;width:100%;max-width:100%;overflow-x:auto}.compact-admin-table{table-layout:fixed;min-width:520px}.compact-admin-table th,.compact-admin-table td{vertical-align:top;overflow-wrap:normal;word-break:normal;white-space:nowrap;padding:.42rem;font-size:.82rem;line-height:1.25}.compact-admin-table th{vertical-align:middle;word-break:normal}.compact-admin-table .text-cell{text-overflow:ellipsis;max-width:16rem;overflow:hidden}.table-actions{flex-wrap:nowrap;gap:.35rem}.table-actions .btn-primary,.table-actions .btn-secondary,.table-actions .btn-danger,.email-toggle-btn{white-space:nowrap;min-height:2rem;padding:.34rem .52rem;font-size:.78rem;line-height:1.1}.table-actions .icon-btn,.email-toggle-btn.icon-btn,.expiry-cell .icon-btn{justify-content:center;align-items:center;width:1.82rem;min-width:1.82rem;height:1.82rem;min-height:1.82rem;padding:0;font-size:.95rem;line-height:1;display:inline-flex}.table-actions .whatsapp-icon-btn{letter-spacing:.02em;font-size:.7rem;font-weight:900}.links-admin-table th:first-child,.links-admin-table td:first-child{width:34%}.links-admin-table{min-width:430px}.links-admin-table th:nth-child(2),.links-admin-table td:nth-child(2){text-align:center;width:11%}.links-admin-table th:nth-child(3),.links-admin-table td:nth-child(3){width:18%}.links-admin-table th:last-child,.links-admin-table td:last-child{width:37%}.users-admin-table th:first-child,.users-admin-table td:first-child{width:30%}.users-admin-table{min-width:430px}.users-admin-table th:nth-child(2),.users-admin-table td:nth-child(2){width:14%}.users-admin-table th:nth-child(3),.users-admin-table td:nth-child(3){text-align:center;width:12%}.users-admin-table th:nth-child(4),.users-admin-table td:nth-child(4),.users-admin-table th:nth-child(5),.users-admin-table td:nth-child(5){width:22%}.users-level-legend{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.users-level-legend span{border-radius:999px;align-items:center;gap:.35rem;padding:.2rem .5rem;font-size:.74rem;font-weight:800;display:inline-flex}.status-legend{color:#334155;flex-wrap:wrap;align-items:center;gap:.4rem .65rem;font-size:.76rem;font-weight:800;display:flex}.status-legend span{white-space:nowrap;align-items:center;gap:.3rem;display:inline-flex}.table-legend{background:#f8fafc;border-bottom:1px solid #e2e8f0;padding:.45rem .55rem}.users-filter-row th{background:#f8fafc;padding:.32rem}.table-filter-input{border-radius:.35rem;width:100%;min-width:0;min-height:1.85rem;padding:.25rem .35rem;font-size:.72rem}.table-filter-clear{width:100%;min-height:1.85rem;padding:.25rem .35rem;font-size:.72rem}.status-icon,.status-icon-button{border-radius:999px;justify-content:center;align-items:center;width:1.55rem;min-width:1.55rem;height:1.55rem;font-size:.86rem;font-weight:950;line-height:1;display:inline-flex}.status-icon-button{cursor:pointer;border:0}.status-icon-button:disabled{cursor:not-allowed;opacity:.65}.status-ok{color:#15803d;background:#dcfce7}.status-pending{color:#c2410c;background:#ffedd5}.status-error{color:#b91c1c;background:#fee2e2}.status-neutral{color:#0f172a;background:#e2e8f0}.legend-admin,.user-row-admin td{background:#fee2e2}.legend-gestion,.user-row-gestion td{background:#e0f2fe}.legend-user,.user-row-user td{background:#f0fdf4}.users-admin-table td:first-child strong,.users-admin-table td:first-child small{display:block}.users-admin-table td:first-child strong{white-space:normal;overflow-wrap:normal;word-break:normal;margin-bottom:.22rem}.users-admin-table td:first-child small{color:#475569;margin-top:.2rem;font-size:.72rem;font-weight:700}.email-toggle-btn{max-width:100%}.email-cell{justify-content:center;align-items:center;gap:.28rem;min-width:0;display:flex}.email-inline-value,.expiry-inline-value{text-overflow:ellipsis;white-space:nowrap;color:#334155;min-width:0;font-weight:700;overflow:hidden}.user-email-modal{width:min(100%,520px)}.email-modal-value{overflow-wrap:anywhere;-webkit-user-select:text;user-select:text;background:#f8fafc;border:1px solid #cbd5e1;border-radius:.5rem;padding:.75rem;font-size:1rem;font-weight:850;color:#0f172a!important;margin-top:.55rem!important}.expiry-cell{justify-content:center;align-items:center;gap:.28rem;min-width:0;display:flex}.user-inline-check{margin-top:.5rem}.password-reveal-once{color:#713f12;background:#fefce8;border:1px solid #facc15;border-radius:.65rem;justify-content:space-between;align-items:center;gap:.75rem;margin:.75rem 0 1rem;padding:.85rem;display:flex}.password-reveal-once code{color:#f8fafc;background:#111827;border-radius:.35rem;width:fit-content;margin-top:.35rem;padding:.35rem .5rem;font-size:1rem;font-weight:800;display:block}.password-reveal-once small{color:#854d0e;margin-top:.35rem;display:block}.field-label{color:#cbd5e1;margin-bottom:.25rem;font-size:.85rem;display:block}.app-main .field-label{color:#475569}.field-input{border:1px solid #cbd5e1;border-radius:.5rem;width:100%;padding:.5rem .65rem}.password-input-wrap{align-items:center;display:flex;position:relative}.password-input-wrap .password-input{padding-right:2.8rem}.password-eye-btn{cursor:pointer;color:#334155;background:0 0;border:1px solid #0000;border-radius:.45rem;justify-content:center;align-items:center;width:2.1rem;height:2.1rem;display:inline-flex;position:absolute;right:.35rem}.password-eye-btn:active{background:#e0f2fe;border-color:#7dd3fc}.manual-panel{max-width:1120px}.manual-header h2{margin-bottom:.2rem}.manual-header p,.manual-intro{color:#475569}.manual-download-summary{color:#075985;background:#f0f9ff;border:1px solid #bae6fd;border-radius:.65rem;flex-wrap:wrap;align-items:center;gap:.5rem;margin:1rem 0;padding:.75rem;font-weight:700;display:flex}.manual-download-summary span{color:#0369a1;font-size:.9rem}.manual-download-summary strong{color:#082f49}.manual-download-grid{gap:1rem;margin-top:1rem;display:grid}.manual-download-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:.75rem;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1rem;padding:1rem;display:grid}.manual-download-icon{color:#991b1b;letter-spacing:.02em;background:#fee2e2;border-radius:.65rem;justify-content:center;align-items:center;width:3.2rem;height:3.2rem;font-weight:900;display:inline-flex}.manual-download-copy h3{color:#0f172a;margin:0 0 .25rem}.manual-download-copy p{color:#334155;margin:.25rem 0;line-height:1.5}.manual-download-subtitle{color:#0369a1;font-weight:700}.manual-download-actions{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;display:flex}.field-input-fit{width:auto;max-width:100%}.nombre-medico-input{width:16rem}.nivel-medico-select{width:12rem}.fecha-efecto-input,.fecha-turno-input{width:10.5rem}.anio-turnos-input{width:7rem}.field-help{color:#64748b;margin-top:.25rem;font-size:.78rem;line-height:1.35;display:block}.form-row{grid-template-columns:repeat(3,minmax(150px,1fr));align-items:end;gap:.75rem;margin-bottom:1rem;display:grid}.form-row-fit{grid-template-columns:repeat(3,max-content)}.form-grid{grid-template-columns:repeat(3,minmax(150px,1fr));gap:.75rem;margin-bottom:1rem;display:grid}.form-row-4{grid-template-columns:repeat(4,minmax(120px,1fr))}.full-width{grid-column:1/-1}.table{border-collapse:collapse;width:100%}.table th,.table td{text-align:left;border-bottom:1px solid #e2e8f0;padding:.55rem}.btn-primary,.btn-secondary,.btn-danger{cursor:pointer;border:none;border-radius:.5rem;padding:.45rem .7rem}.btn-primary{color:#fff;background:#2563eb}.btn-secondary{color:#0f172a;background:#e2e8f0}.btn-danger{color:#991b1b;background:#fee2e2}.kpis{gap:1rem;margin-bottom:1rem;display:flex}.kpis>div{background:#f8fafc;border-radius:.5rem;min-width:110px;padding:.75rem}.kpis span{color:#64748b;font-size:.8rem;display:block}.kpis strong{font-size:1.2rem}.list-cards{gap:.75rem;display:grid}.item-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:.6rem;padding:.75rem}.item-card-header{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.item-card-header h4{margin:0}.row-actions{align-items:center;gap:.5rem;display:flex}.alert{border-radius:.6rem;margin-bottom:.8rem;padding:.6rem .8rem}.alert-error{color:#991b1b;background:#fee2e2}.alert-success{color:#166534;background:#dcfce7}.loading-state{color:#334155;font-weight:600}.form-error{color:#b91c1c;margin:0}.badge-warning{color:#9a3412;background:#ffedd5;border-radius:999px;padding:.2rem .5rem;font-size:.75rem}.role-badge-inline{border-radius:999px;padding:.15rem .5rem;font-size:.75rem;font-weight:600;display:inline-block}.turno-vacaciones-select{width:8rem;min-width:0;max-width:100%}.turnos-vacaciones-grid{grid-template-columns:repeat(2,minmax(260px,1fr));align-items:stretch;gap:.75rem;display:grid}.empty-msg{color:#94a3b8;font-style:italic}.sol-badge{border-radius:999px;padding:.15rem .55rem;font-size:.72rem;font-weight:800;display:inline-block}.badge-pendiente{color:#854d0e;background:#fef9c3}.badge-aceptada{color:#166534;background:#dcfce7}.badge-rechazada{color:#991b1b;background:#fee2e2}.sidebar-user-menu{background:#ffffff0a;border:1px solid #94a3b833;border-radius:.75rem;margin:.75rem 0;overflow:hidden}.sidebar-user-menu-summary{cursor:pointer;justify-content:space-between;align-items:center;gap:.75rem;padding:.85rem;display:flex}.sidebar-user-menu-summary:hover{background:#ffffff0f}.sidebar-user-menu-arrow{opacity:.8;font-size:1.05rem}.sidebar-user-menu-body{border-top:1px solid #94a3b826;padding:.75rem}.sidebar-user-menu-body .field-label{margin-bottom:.4rem}.sidebar-user-menu-body .field-input{width:100%}.sidebar-user-menu-logout{color:#f87171;cursor:pointer;text-align:left;background:#ffffff0f;border:1px solid #ffffff26;border-radius:.5rem;width:100%;margin-top:.85rem;padding:.55rem .75rem;font-weight:700}.sidebar-user-menu-action{text-align:left;width:100%;margin-top:.75rem}.sidebar-user-menu-logout:hover{background:#f8717126}.sidebar-user-name{color:#f1f5f9;font-size:.95rem;font-weight:700}.sidebar-user-email{color:#94a3b8;font-size:.8rem}.dias-vacaciones-menu{border-top:1px solid #94a3b826;padding:.75rem 0}.dias-vacaciones-title{color:#f1f5f9;margin:0 0 .6rem;font-size:.9rem;font-weight:700}.dias-vacaciones-view{padding:.5rem 0}.dias-vacaciones-approved-info{color:#dcfce7;background:#22c55e14;border:1px solid #22c55e33;border-radius:.5rem;margin-bottom:.6rem;padding:.6rem;font-size:.8rem}.dias-vacaciones-approved-info p{margin:.3rem 0}.dias-vacaciones-grid{grid-template-columns:repeat(2,1fr);gap:.5rem;margin:.6rem 0;display:grid}.dias-vacaciones-item{background:#ffffff0a;border:1px solid #94a3b826;border-radius:.5rem;flex-direction:column;align-items:center;gap:.2rem;padding:.5rem;display:flex}.dias-vacaciones-icon{font-size:1.3rem}.dias-vacaciones-label{color:#cbd5e1;text-align:center;font-size:.75rem}.dias-vacaciones-value{color:#0f172a;font-size:1.1rem;font-weight:700}.dias-vacaciones-value.solicitados{color:#2563eb}.dias-vacaciones-value.aceptados{color:#111827}.dias-vacaciones-total{color:#bae6fd;text-align:center;background:#38bdf81a;border:1px solid #38bdf833;border-radius:.5rem;padding:.5rem;font-size:.8rem}.dias-vacaciones-form{flex-direction:column;gap:.5rem;padding:.5rem 0;display:flex}.dias-vacaciones-form .field-label{color:#cbd5e1;margin-bottom:.2rem;font-size:.8rem}.dias-vacaciones-form .field-input{color:#f1f5f9;background:#ffffff0f;border:1px solid #94a3b84d;width:100%;padding:.4rem .5rem;font-size:.85rem}.dias-vacaciones-form textarea{resize:vertical}.dias-vacaciones-period-grid{grid-template-columns:1fr 1fr;gap:.5rem;display:grid}.dias-vacaciones-period small{margin-top:.35rem;line-height:1.35;display:block}.dias-vacaciones-period-ok{color:#86efac}.dias-vacaciones-period-error{color:#fcd34d}.vacaciones-submenu{margin-bottom:1rem}.vacaciones-submenu summary{cursor:pointer;color:#0f172a;font-weight:700}.vacaciones-submenu-actions{flex-wrap:wrap;gap:.5rem;margin-top:.75rem;display:flex}.vacaciones-accounting-table{border:1px solid #e2e8f0;border-radius:.55rem;max-height:min(68vh,760px);overflow:auto}.vacaciones-accounting-table table{border-collapse:collapse;width:100%;min-width:860px}.vacaciones-accounting-table th,.vacaciones-accounting-table td{color:#0f172a;text-align:left;vertical-align:top;border-bottom:1px solid #e2e8f0;padding:.65rem;font-size:.85rem}.vacaciones-accounting-table thead th{z-index:2;background:#f8fafc;position:sticky;top:0;box-shadow:0 1px #e2e8f0}.vacaciones-accounting-table td span,.vacaciones-accounting-table td strong{line-height:1.35;display:block}.vacaciones-accounting-table .accounting-total-row td{background:#f0f9ff;font-weight:700}.btn-close{color:#cbd5e1;cursor:pointer;background:0 0;border:none;justify-content:center;align-self:flex-end;align-items:center;width:1.5rem;height:1.5rem;padding:0;font-size:1.2rem;display:flex}.btn-close:hover{color:#f1f5f9}.alert-warning{color:#78350f;background:#fffbeb;border:1px solid #fbbf24;border-radius:.5rem;margin-bottom:.6rem;padding:.6rem;font-size:.86rem;font-weight:700}.btn-logout{color:#f87171;cursor:pointer;text-align:left;background:#ffffff0f;border:1px solid #ffffff26;border-radius:.5rem;width:100%;margin-top:1rem;padding:.55rem .75rem;font-weight:700}.btn-logout:hover{background:#f8717126}.user-data-menu{gap:.85rem;display:grid}.user-data-block{padding-bottom:.15rem}.user-data-title{color:#f1f5f9;margin:0 0 .6rem;font-size:.9rem}.user-data-list{gap:.45rem;margin:0;display:grid}.user-data-row{gap:.1rem;display:grid}.user-data-row dt{color:#94a3b8;text-transform:uppercase;font-size:.72rem;font-weight:700}.user-data-row dd{color:#e2e8f0;overflow-wrap:anywhere;margin:0;font-size:.85rem}.push-toggle-row{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.push-toggle-row span{color:#e2e8f0;font-size:.85rem}.user-data-details{border-top:1px solid #94a3b826;border-bottom:1px solid #94a3b826;padding:.65rem 0}.user-data-details summary{cursor:pointer;color:#f1f5f9;font-size:.85rem;font-weight:700}.password-form{gap:.5rem;margin-top:.7rem;display:grid}.password-form .field-label{margin-bottom:-.25rem}.password-form .field-input{color:#f1f5f9;background:#ffffff0f;border:1px solid #94a3b84d;font-size:.85rem}.password-form .btn-primary{margin-top:.2rem}.datos-usuario-panel .user-data-title,.datos-usuario-panel .user-data-details summary{color:#0f172a}.datos-usuario-panel .user-data-row dt{color:#64748b}.datos-usuario-panel .user-data-row dd,.datos-usuario-panel .push-toggle-row span{color:#0f172a}.datos-usuario-panel .password-form .field-input{color:#0f172a;background:#fff;border-color:#cbd5e1}.datos-usuario-panel .dias-vacaciones-title,.datos-usuario-panel .dias-vacaciones-form .field-label{color:#0f172a}.datos-usuario-panel .dias-vacaciones-form .field-input{color:#0f172a;-webkit-text-fill-color:#0f172a;background:#fff;border-color:#cbd5e1}.datos-usuario-panel .dias-vacaciones-form .field-input::placeholder{color:#64748b}.datos-usuario-panel .dias-vacaciones-form .alert-warning{color:#78350f}.datos-usuario-panel .dias-vacaciones-item{background:#f8fafc;border-color:#e2e8f0}.datos-usuario-panel .dias-vacaciones-label{color:#475569}.sidebar-version{text-align:center;color:#475569;opacity:.6;letter-spacing:.05em;margin-top:auto;padding-top:1rem;font-size:.7rem}.sidebar-version span{letter-spacing:0;margin-top:.12rem;font-size:.66rem;display:block}.login-container{background:linear-gradient(135deg,#0f172a 0%,#1e3a5f 100%);justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.login-card{background:#fff;border-radius:1rem;width:100%;max-width:460px;padding:2rem;box-shadow:0 20px 60px #0003}.login-header{text-align:center;margin-bottom:1.5rem}.login-header h1{color:#0f172a;margin:0;font-size:1.5rem}.login-header p{color:#64748b;margin:.3rem 0 0}.login-form{gap:.75rem;display:grid}.login-register-modes{grid-template-columns:1fr 1fr;gap:.5rem;margin-bottom:1rem;display:grid}.login-form .field-label{color:#475569}.terms-box{white-space:pre-wrap;color:#334155;background:#f8fafc;border:1px solid #cbd5e1;border-radius:.75rem;max-height:220px;padding:1rem;font-size:.85rem;overflow:auto}.terms-page pre{white-space:pre-wrap;color:#0f172a;margin:0;font-family:inherit;line-height:1.6}.terms-toggle{justify-content:flex-end;display:flex}.btn-small{padding:.45rem .75rem;font-size:.85rem}.checkbox-field{color:#334155;align-items:center;gap:.5rem;font-size:.95rem;display:flex}.form-success{color:#16a34a;background:#ecfdf5;border:1px solid #d1fae5;border-radius:.75rem;padding:.75rem 1rem}.terms-modal-backdrop{z-index:10000;background:#0f172a9e;justify-content:center;align-items:center;min-height:100dvh;padding:1rem;display:flex;position:fixed;inset:0;overflow-y:auto}.terms-modal{background:#fff;border:1px solid #cbd5e1;border-radius:.9rem;grid-template-rows:auto minmax(220px,1fr) auto;width:min(100%,640px);max-height:calc(100dvh - 2rem);display:grid;overflow:hidden;box-shadow:0 24px 70px #0f172a52}.terms-modal-header,.terms-modal-footer{padding:1rem}.terms-modal-header{border-bottom:1px solid #e2e8f0}.terms-modal-header h2,.terms-modal-header p{margin:0}.terms-modal-header p{color:#64748b;margin-top:.25rem;font-size:.9rem}.terms-modal-body{color:#0f172a;padding:1rem;overflow-y:auto}.terms-modal-body pre{white-space:pre-wrap;margin:0;font-family:inherit;line-height:1.55}.terms-modal-footer{background:#f8fafc;border-top:1px solid #e2e8f0;justify-content:flex-end;gap:.5rem;display:flex}.install-prompt{z-index:20;color:#075985;background:#e0f2fe;border:1px solid #bae6fd;border-radius:.75rem;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1rem;padding:.75rem;display:flex;position:sticky;top:.75rem}.install-prompt p{margin:.2rem 0 0;font-size:.85rem}.install-modal-backdrop{z-index:9999;background:#0f172a8c;justify-content:center;align-items:center;min-height:100dvh;padding:1rem;display:flex;position:fixed;inset:0;overflow-y:auto}.install-modal{background:#fff;border:1px solid #dbe3ee;border-radius:1rem;width:min(100%,620px);max-height:calc(100dvh - 2rem);overflow:auto;box-shadow:0 22px 70px #0f172a4d}.install-modal-header{border-bottom:1px solid #e2e8f0;justify-content:space-between;gap:1rem;padding:1rem;display:flex}.install-modal-header h2,.install-modal-header p{margin:0}.install-modal-header p{color:#64748b;margin-top:.25rem;font-size:.88rem}.install-modal-body{gap:.75rem;padding:1rem;display:grid}.install-option{background:#f8fafc;border:1px solid #e2e8f0;border-radius:.75rem;padding:.85rem}.login-btn{width:100%;margin-top:.5rem;padding:.65rem;font-size:1rem;font-weight:700}.login-footer{text-align:center;color:#94a3b8;margin-top:1rem}.cal-contenedor{background:#f8fafc}.cal-cabecera{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.cal-titulo{color:#0f172a;margin:0;font-size:1.5rem}.cal-subtitulo{color:#64748b;margin:.25rem 0 0;font-size:.85rem}.cal-acciones{align-items:center;gap:.5rem;display:flex}.cal-btn-vista{color:#334155;cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:999px;padding:.5rem .85rem;font-size:.85rem;font-weight:700}.cal-btn-vista.activo{color:#fff;background:#0f172a;border-color:#0f172a}.cal-btn-hoy{color:#fff;cursor:pointer;background:#2563eb;border:none;border-radius:999px;padding:.5rem .85rem;font-size:.85rem;font-weight:800}.cal-navegacion{background:#fff;border:1px solid #e2e8f0;border-radius:.75rem;justify-content:space-between;align-items:center;margin-bottom:1rem;padding:.75rem 1rem;display:flex}.cal-periodo{color:#1e293b;text-transform:uppercase;text-align:center;min-width:200px;margin:0;font-size:1rem}.cal-leyenda{color:#475569;background:#fff;border:1px solid #e2e8f0;border-radius:.6rem;flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1rem;padding:.6rem .75rem;font-size:.78rem;display:flex}.cal-add-extra-btn{color:#fff;background:#16a34a;border-color:#16a34a;margin-left:auto;padding:.35rem .6rem;font-size:.76rem}.cal-add-extra-btn:hover:not(:disabled){color:#fff;background:#15803d;border-color:#15803d}.cal-leyenda-item{align-items:center;gap:.35rem;display:flex}.cal-ley-box{border-radius:3px;width:14px;height:14px;display:inline-block}.cal-ley-dot{background:#f97316;border-radius:50%;width:12px;height:12px;display:inline-block}.domingo-bg{background:#b91c1c}.festivo-bg{background:#1e3a8a}.sandwich-bg{background:#fef08a;border:2px solid #facc15}.maternidad-bg{background:#ec4899}.ucin-bg{background:#2563eb}.extra-bg{background:#16a34a}.cal-cuadrante{gap:.55rem;padding-bottom:.5rem;display:grid;overflow-x:auto}.cal-weekday-row{z-index:15;background:#f8fafc;border:2px solid #cbd5e1;border-radius:.65rem;grid-template-columns:repeat(7,minmax(110px,1fr));min-width:820px;display:grid;position:sticky;top:0;overflow:hidden;box-shadow:0 4px 10px #0f172a14}.cal-weekday-row span{color:#0f172a;text-align:center;white-space:nowrap;border-right:1px solid #cbd5e1;padding:.42rem .35rem;font-size:.78rem;font-weight:950;line-height:1}.cal-weekday-row span:last-child{border-right:0}.cal-cuadrante-bloque{background:#fff;border:2px solid #cbd5e1;border-radius:.85rem;min-width:820px;overflow:hidden;box-shadow:0 2px 8px #0f172a0f}.cal-cuadrante-bloque.semana{min-width:820px}.cal-cuadrante-grid{grid-template-columns:repeat(7,minmax(110px,1fr));align-items:stretch;display:grid}.cal-puesto-esquina{color:#475569;text-transform:uppercase;letter-spacing:.04em;background:#f1f5f9;border-bottom:1px solid #cbd5e1;border-right:1px solid #cbd5e1;justify-content:center;align-items:center;padding:.65rem .55rem;font-size:.72rem;font-weight:900;display:flex}.cal-dia-col-header{color:#0f172a;text-align:center;background:#f8fafc;border-bottom:1px solid #cbd5e1;border-right:1px solid #cbd5e1;flex-direction:column;justify-content:center;align-items:center;min-height:24px;padding:.08rem .18rem;display:flex;position:relative}.cal-dia-col-header.vacio{background:#f8fafc}.cal-dia-col-header.domingo{color:#fff;background:#b91c1c}.cal-dia-col-header.sabado-festivo{color:#fff;background:#1e3a8a}.cal-dia-col-header.hoy{box-shadow:inset 0 0 0 2px #38bdf8}.cal-dia-col-header.pasado{opacity:.7}.cal-dia-col-nombre{opacity:.9;text-transform:capitalize;font-size:.7rem;font-weight:800}.cal-dia-col-numero{justify-content:center;align-items:center;gap:.35rem;font-size:.78rem;font-weight:950;display:flex}.cal-dia-col-festivo{opacity:.95;margin-top:.2rem;font-size:.62rem;font-weight:800;line-height:1.1}.cal-festivos-lista{color:#334155;background:#f8fafc;border:1px solid #e2e8f0;border-radius:.55rem;align-items:flex-start;gap:.6rem;margin-top:.25rem;padding:.55rem .7rem;font-size:.76rem;display:flex}.cal-festivos-lista strong{color:#0f172a;flex:none}.cal-festivos-lista div{flex-wrap:wrap;gap:.4rem .75rem;display:flex}.cal-festivos-lista span{white-space:nowrap}.cal-dia-vacante-dot{flex:none;position:static}.cal-puesto-row-label{text-align:center;z-index:2;border-bottom:1px solid #cbd5e1;border-right:1px solid #cbd5e1;justify-content:center;align-items:center;min-height:58px;padding:.6rem .55rem;font-size:.78rem;font-weight:950;display:flex;position:sticky;left:0}.cal-puesto-row-label.mat{color:#be185d;background:#fff1f5;border-left:8px solid #ec4899}.cal-puesto-row-label.ucin{color:#1d4ed8;background:#eff6ff;border-left:8px solid #2563eb}.cal-puesto-row-label.extra{color:#166534;background:#f0fdf4;border-left:8px solid #22c55e}.cal-turno-slot{background:#fff;border-bottom:1px solid #cbd5e1;border-right:1px solid #cbd5e1;align-items:center;min-height:50px;padding:.34rem;display:flex}.cal-turno-slot.vacio{background:#f8fafc}.cal-turno-slot.domingo{background:#fff5f5}.cal-turno-slot.sabado-festivo{background:#f5f8ff}.cal-turno-slot.hoy{box-shadow:inset 0 0 0 2px #38bdf8}.cal-turno-slot.pasado{opacity:.7}.cal-turno-slot.mat{border-left:5px solid #ec4899}.cal-turno-slot.ucin{border-left:5px solid #2563eb}.cal-turno-slot.extra{border-left:5px solid #22c55e}.cal-turno-slot.disabled{opacity:.5;cursor:not-allowed;background:#f3f4f6}.cal-turno-slot-content{background:0 0;border:0;border-radius:.55rem;width:100%;padding:0;position:relative}.cal-turno-slot-content.mat,.cal-turno-slot-content.ucin,.cal-turno-slot-content.extra{border-color:#0000}.cal-turno-slot-content.sandwich{box-shadow:none;background:0 0!important;border-color:#0000!important}.cal-turno-slot-content.mi-guardia{background:0 0;border-color:#0000}.cal-slot-vacante-dot{z-index:3;position:absolute;top:-5px;right:-5px}.cal-cuadrante-select{color:#0f172a;background:#fff;border:1px solid #cbd5e1;border-radius:.45rem;width:100%;min-height:34px;padding:.42rem .55rem;font-size:.78rem;font-weight:900}.cal-cuadrante-select:disabled{opacity:1;color:#0f172a;-webkit-text-fill-color:#0f172a;font-weight:900}.cal-turno-slot-content.sandwich .cal-cuadrante-select{box-shadow:inset 0 0 0 2px #f59e0b;background:#fef3c7!important;border-color:#f59e0b!important}.cal-cuadrante-select.sandwich-select,.cal-cuadrante-select.sandwich-select:disabled{-webkit-text-fill-color:#78350f;box-shadow:inset 0 0 0 2px #f59e0b;color:#78350f!important;background:#fef3c7!important;border-color:#f59e0b!important}.cal-cuadrante-select.mat{border-left:5px solid #ec4899}.cal-cuadrante-select.ucin{border-left:5px solid #2563eb}.cal-cuadrante-select.extra{border-left:5px solid #22c55e}.cal-cuadrante-select.sin-asignar{color:#dc2626;background:#fff1f2;border-color:#fecaca;font-weight:900}.cal-cuadrante-select.bloqueado{cursor:not-allowed;color:#0f172a;-webkit-text-fill-color:#0f172a;background:#f8fafc;font-weight:900}.cal-cuadrante .cal-select.mi-guardia-select{color:#0f172a!important;background:#e0f2fe!important;border-color:#0284c7!important;font-size:.82rem!important;font-weight:950!important}.cal-turno-slot-vacio{min-height:34px}.cal-change-request-btn{color:#075985;cursor:pointer;background:#e0f2fe;border:1px solid #38bdf8;border-radius:.35rem;width:100%;margin-top:.2rem;padding:.18rem;font-size:.68rem;font-weight:900}.cal-guardia-chip{color:#0f172a;cursor:pointer;text-align:center;white-space:normal;overflow-wrap:anywhere;background:#fff;border:1px solid #cbd5e1;border-radius:.45rem;width:100%;min-height:34px;padding:.38rem .12rem;font-weight:900;line-height:1.05}.cal-guardia-chip:disabled{opacity:1;cursor:default}.cal-guardia-chip.nombre-len-5{font-size:.82rem}.cal-guardia-chip.nombre-len-6{font-size:.78rem}.cal-guardia-chip.nombre-len-7{font-size:.73rem}.cal-guardia-chip.nombre-len-8{font-size:.68rem}.cal-guardia-chip.nombre-len-9{font-size:.63rem}.cal-guardia-chip.nombre-len-long{font-size:.58rem}.cal-turno-slot-content.sandwich .cal-guardia-chip,.cal-guardia-chip.sandwich-select,.cal-guardia-chip.sandwich-select:disabled{-webkit-text-fill-color:#78350f;box-shadow:inset 0 0 0 2px #f59e0b;color:#78350f!important;background:#fef3c7!important;border-color:#f59e0b!important}.cal-guardia-chip.mat{border-left:5px solid #ec4899}.cal-guardia-chip.ucin{border-left:5px solid #2563eb}.cal-guardia-chip.extra{border-left:5px solid #22c55e}.cal-guardia-chip.sin-asignar{color:#dc2626;background:#fff1f2;border-color:#fecaca;font-weight:900}.cal-guardia-chip.bloqueado{cursor:default;color:#0f172a;-webkit-text-fill-color:#0f172a;background:#f8fafc;font-weight:900}.cal-cuadrante .cal-guardia-chip.mi-guardia-select{color:#0f172a!important;background:#e0f2fe!important;border-color:#0284c7!important;font-weight:950!important}.cal-turno-action-menu{z-index:30;background:#fff;border:1px solid #cbd5e1;border-radius:.5rem;gap:.35rem;width:min(220px,72vw);padding:.55rem;display:grid;position:absolute;top:calc(100% + .2rem);left:0;box-shadow:0 12px 28px #0f172a38}.cal-turno-action-menu .btn-secondary{justify-content:center;width:100%;font-size:.78rem}.cal-turno-action-select{min-height:34px;font-size:.78rem}.availability-month-list{flex-direction:column;gap:.55rem;margin-top:1rem;display:flex}.availability-month-row{background:#fff;border:1px solid #cbd5e1;border-radius:.5rem;grid-template-columns:7.5rem minmax(0,1fr);align-items:center;gap:.75rem;padding:.55rem .65rem;display:grid}.availability-month-label{color:#0f172a;justify-content:space-between;align-items:baseline;gap:.45rem;display:flex}.availability-month-label strong{font-size:.9rem}.availability-month-label span{color:#64748b;white-space:nowrap;font-size:.72rem;font-weight:800}.availability-day-strip{grid-template-columns:repeat(31,minmax(0,1fr));gap:.12rem;min-width:0;display:grid}.availability-day-cell{color:#0f172a;cursor:pointer;border:1px solid #0f172a29;border-radius:.18rem;justify-content:center;align-items:center;min-width:0;min-height:1.3rem;padding:0;font-size:.58rem;font-weight:900;line-height:1;display:inline-flex}.availability-day-cell:hover,.availability-day-cell:focus-visible{outline-offset:1px;outline:2px solid #0f172a;transform:translateY(-1px)}.estadisticas-tabs{flex-wrap:wrap;gap:.5rem;display:flex}.cronograma-scroll{margin-top:.75rem;overflow-x:auto}.cronograma-ocupacion-table{border-collapse:collapse;--cronograma-cell-size:28px;width:max-content;min-width:100%}.cronograma-ocupacion-table th,.cronograma-ocupacion-table td{border:1px solid #e2e8f0}.cronograma-sticky-col{z-index:2;text-align:left;background:#fff;min-width:175px;padding:.4rem .55rem;position:sticky;left:0}.cronograma-staff-name{color:#0f172a;font-size:.82rem;font-weight:700}.cronograma-day-header{width:var(--cronograma-cell-size);min-width:var(--cronograma-cell-size);text-align:center;color:#334155;padding:.2rem .05rem;font-size:.68rem}.cronograma-day-header div{font-weight:800}.cronograma-day-header em{margin-top:.15rem;font-size:.5rem;font-style:normal;font-weight:700;line-height:1.05;display:block}.cronograma-day-header.domingo{color:#fff;background:#b91c1c}.cronograma-day-header.sabado-festivo{color:#fff;background:#1e3a8a}.cronograma-day-header small{min-width:calc(var(--cronograma-cell-size) - 4px);color:#fff;border-radius:.2rem;justify-content:center;align-items:center;min-height:14px;margin-top:.2rem;font-size:.57rem;font-weight:800;line-height:1;display:inline-flex}.cronograma-ocupacion-cell{width:var(--cronograma-cell-size);min-width:var(--cronograma-cell-size);height:var(--cronograma-cell-size)}.cronograma-ocupacion-cell.is-available{background:#dcfce7}.cronograma-ocupacion-cell.is-unavailable{background:#fee2e2}.cronograma-ocupacion-cell.is-postguard{background:#fde68a}.cronograma-day-header.domingo,.cronograma-ocupacion-cell.domingo{border-left-color:#b91c1c;border-right-color:#b91c1c}.cronograma-day-header.sabado-festivo,.cronograma-ocupacion-cell.sabado-festivo{border-left-color:#1e3a8a;border-right-color:#1e3a8a}.cronograma-ocupacion-table thead .cronograma-day-header.domingo{border-top-color:#b91c1c}.cronograma-ocupacion-table thead .cronograma-day-header.sabado-festivo{border-top-color:#1e3a8a}.cronograma-ocupacion-table tbody tr:last-child .cronograma-ocupacion-cell.domingo{border-bottom-color:#b91c1c}.cronograma-ocupacion-table tbody tr:last-child .cronograma-ocupacion-cell.sabado-festivo{border-bottom-color:#1e3a8a}.app-shell.view-mobile .availability-month-row{grid-template-columns:1fr;gap:.35rem;padding:.5rem}.app-shell.view-mobile .availability-month-label{justify-content:flex-start}.app-shell.view-mobile .availability-day-strip{gap:.07rem}.app-shell.view-mobile .availability-day-cell{border-radius:.12rem;min-height:1.1rem;font-size:.48rem}.app-shell.view-mobile .cronograma-sticky-col{min-width:120px;padding:.3rem .35rem;font-size:.72rem}.app-shell.view-mobile .cronograma-ocupacion-table{--cronograma-cell-size:22px}.cal-grid-mes,.cal-lista-semana{display:none}.app-shell.view-mobile{flex-direction:column}.app-shell.view-mobile .sidebar{width:100%;height:auto;min-height:auto;padding:.85rem;position:relative}.app-shell.view-mobile .notifications-center{max-width:8.5rem;top:.35rem;right:.35rem}.app-shell.view-mobile .notifications-trigger{min-height:28px;padding:.2rem .36rem;font-size:.65rem}.app-shell.view-mobile .notifications-panel{width:min(280px,100vw - .7rem);right:0}.app-shell.view-mobile.mobile-menu-open .app-main,.app-shell.view-mobile.mobile-content-open .sidebar{display:none}.app-shell.view-mobile.mobile-content-open .mobile-section-header{display:flex}.mobile-section-header{background:#fff;border:1px solid #cbd5e1;border-radius:.65rem;align-items:center;gap:.75rem;margin-bottom:.75rem;padding:.55rem .65rem;box-shadow:0 1px 4px #0f172a0f}.mobile-section-header h1{color:#0f172a;min-width:0;margin:0;font-size:1rem;line-height:1.2}.mobile-back-btn{color:#0f172a;cursor:pointer;white-space:nowrap;background:#f8fafc;border:1px solid #cbd5e1;border-radius:.55rem;padding:.45rem .65rem;font-weight:900}.app-shell.view-mobile .sidebar-title,.app-shell.view-mobile .sidebar-user-menu,.app-shell.view-mobile .role-badge,.app-shell.view-mobile .side-nav,.app-shell.view-mobile .sidebar-export-btn,.app-shell.view-mobile .sidebar-install-btn,.app-shell.view-mobile .view-mode-switch,.app-shell.view-mobile .sidebar-terms-btn{border:1px solid #e2e8f059;box-shadow:0 0 0 1px #0f172a1f}.app-shell.view-mobile .sidebar-title{background:#ffffff0a;border-radius:.65rem;margin-bottom:.65rem;padding:.65rem .75rem;font-size:1rem}.app-shell.view-mobile .sidebar-user-menu{margin:.5rem 0}.app-shell.view-mobile .role-badge{overflow-wrap:anywhere;max-width:100%}.app-shell.view-mobile .side-nav{background:#ffffff09;border-radius:.75rem;grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem;margin-top:.65rem;padding:.65rem}.app-shell.view-mobile .nav-btn{align-items:center;gap:.35rem;min-height:42px;padding:.5rem .55rem;font-size:.88rem;display:flex}.app-shell.view-mobile .nav-btn-icon{flex-basis:2rem;width:2rem;min-width:2rem;font-size:1.6rem}.app-shell.view-mobile .category-action{align-items:center;min-height:76px}.app-shell.view-mobile .category-action-icon{flex-basis:46px;width:46px;height:46px;font-size:1.7rem}.app-shell.view-mobile .sidebar-export-btn,.app-shell.view-mobile .sidebar-install-btn,.app-shell.view-mobile .sidebar-terms-btn,.app-shell.view-mobile .view-mode-switch{background:#ffffff0b}.app-shell.view-mobile .app-main{padding:.5rem}.app-shell.view-mobile .panel{border-radius:.55rem;padding:.55rem}.app-shell.view-mobile .mobile-section-header{margin-bottom:.45rem;padding:.42rem .5rem}.app-shell.view-mobile .cal-cabecera{gap:.35rem;margin-bottom:.45rem}.app-shell.view-mobile .cal-titulo{margin:0;font-size:.95rem}.app-shell.view-mobile .cal-subtitulo{margin-top:.1rem}.app-shell.view-mobile .cal-navegacion{gap:.35rem;margin-bottom:.45rem}.app-shell.view-mobile .cal-navegacion .btn-secondary,.app-shell.view-mobile .cal-btn-vista,.app-shell.view-mobile .cal-btn-hoy{min-height:28px;padding:.28rem .45rem;font-size:.68rem}.app-shell.view-mobile .panel-header,.app-shell.view-mobile .item-card-header,.app-shell.view-mobile .notification-item,.app-shell.view-mobile .cal-navegacion{flex-direction:column;align-items:stretch}.app-shell.view-mobile .form-row,.app-shell.view-mobile .form-grid,.app-shell.view-mobile .form-row-4{grid-template-columns:1fr}.app-shell.view-mobile .row-actions{flex-wrap:wrap}.app-shell.view-mobile .table-actions{flex-wrap:nowrap;gap:.22rem}.app-shell.view-mobile .kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;display:grid}.app-shell.view-mobile .kpis>div{min-width:0}.app-shell.view-mobile .table{white-space:nowrap;width:100%;display:block;overflow-x:auto}.app-shell.view-mobile .managed-table-wrap .table{white-space:normal;display:table}.app-shell.view-mobile .compact-admin-table{min-width:520px}.app-shell.view-mobile .users-admin-table,.app-shell.view-mobile .links-admin-table{min-width:430px}.app-shell.view-mobile .user-admin-section-body{gap:.65rem}.app-shell.view-mobile .table-actions .btn-primary,.app-shell.view-mobile .table-actions .btn-secondary,.app-shell.view-mobile .table-actions .btn-danger,.app-shell.view-mobile .email-toggle-btn{padding:.28rem .38rem;font-size:.68rem}.app-shell.view-mobile .table-actions .icon-btn,.app-shell.view-mobile .email-toggle-btn.icon-btn{width:1.55rem;min-width:1.55rem;height:1.55rem;min-height:1.55rem;padding:0;font-size:.74rem}.app-shell.view-mobile .cal-acciones{flex-wrap:wrap}.app-shell.view-mobile .cal-periodo,.app-shell.view-mobile .cal-cuadrante-bloque{min-width:0}.app-shell.view-mobile .cal-weekday-row{border-radius:.45rem;grid-template-columns:repeat(7,minmax(0,1fr));min-width:0}.app-shell.view-mobile .cal-weekday-row span{padding:.24rem .04rem;font-size:.46rem}.app-shell.view-mobile .cal-cuadrante{gap:.35rem;overflow-x:visible}.app-shell.view-mobile .cal-cuadrante-grid{grid-template-columns:repeat(7,minmax(0,1fr))}.app-shell.view-mobile .cal-puesto-esquina,.app-shell.view-mobile .cal-puesto-row-label{word-break:break-word;min-height:23px;padding:0 .04rem;font-size:.4rem}.app-shell.view-mobile .cal-dia-col-header{min-height:15px;padding:0 .02rem}.app-shell.view-mobile .cal-dia-col-nombre{font-size:.36rem;line-height:1}.app-shell.view-mobile .cal-dia-col-numero{font-size:.46rem;line-height:1.05}.app-shell.view-mobile .cal-turno-slot{min-height:21px;padding:2px}.app-shell.view-mobile .cal-turno-slot-vacio{min-height:21px}.app-shell.view-mobile .cal-turno-slot-content{border-width:1px;border-radius:.35rem;padding:0}.app-shell.view-mobile .cal-cuadrante-select{text-align:center;border-left-width:2px;border-radius:.35rem;min-height:24px;padding:.12rem .04rem;font-size:clamp(.38rem,1.8vw,.52rem)}.app-shell.view-mobile .cal-guardia-chip{border-left-width:2px;border-radius:.28rem;min-height:19px;padding:0 .02rem;line-height:1}.app-shell.view-mobile .cal-guardia-chip.nombre-len-5{font-size:.52rem}.app-shell.view-mobile .cal-guardia-chip.nombre-len-6{font-size:.5rem}.app-shell.view-mobile .cal-guardia-chip.nombre-len-7{font-size:.47rem}.app-shell.view-mobile .cal-guardia-chip.nombre-len-8{font-size:.44rem}.app-shell.view-mobile .cal-guardia-chip.nombre-len-9{font-size:.4rem}.app-shell.view-mobile .cal-guardia-chip.nombre-len-long{font-size:.37rem}.app-shell.view-mobile .cal-turno-action-menu{width:min(190px,82vw);padding:.45rem}.app-shell.view-mobile .cal-change-request-btn{border-radius:.25rem;margin-top:.08rem;padding:.08rem .02rem;font-size:0;line-height:1}.app-shell.view-mobile .cal-change-request-btn:after{content:"↔";color:#075985;font-size:.58rem;font-weight:900}.app-shell.view-mobile .cal-subtitulo,.app-shell.view-mobile .cal-leyenda{font-size:.68rem}.app-shell.view-mobile .cal-festivos-lista{flex-direction:column;gap:.25rem;padding:.45rem .55rem;font-size:.64rem}.app-shell.view-mobile .cal-festivos-lista div{gap:.25rem .55rem}.app-shell.view-mobile .install-prompt{flex-direction:column;align-items:stretch;position:static}.app-shell.view-mobile .contacto-layout{grid-template-columns:1fr}.app-shell.view-mobile .contacto-lista{border-bottom:1px solid #e2e8f0;border-right:0;padding-bottom:1rem;padding-right:0}.app-shell.view-mobile .contacto-mensaje{max-width:100%}.app-shell.view-mobile .sidebar-version{margin-top:.75rem}.app-shell.view-desktop{flex-direction:row}.app-shell.view-desktop .sidebar{width:280px;height:100vh;position:sticky}@media (width<=900px){.app-shell{flex-direction:column}.sidebar{width:100%;height:auto;position:relative}.app-shell.view-auto.mobile-menu-open .app-main,.app-shell.view-auto.mobile-content-open .sidebar{display:none}.app-shell.view-auto.mobile-content-open .mobile-section-header{display:flex}.form-row,.form-grid,.form-row-4,.form-row-fit,.turnos-vacaciones-grid,.manual-download-card{grid-template-columns:1fr}.manual-download-actions{justify-content:stretch}.manual-download-actions a{text-align:center;flex:1}.field-input-fit,.nombre-medico-input,.nivel-medico-select,.fecha-efecto-input,.fecha-turno-input,.anio-turnos-input,.turno-vacaciones-select{width:100%}.calendar-grid{grid-template-columns:1fr}.cal-cabecera{flex-direction:column;align-items:flex-start}.app-shell:not(.view-mobile) .cal-cuadrante-bloque{min-width:660px}.app-shell:not(.view-mobile) .cal-weekday-row{grid-template-columns:repeat(7,minmax(90px,1fr));min-width:660px}.app-shell:not(.view-mobile) .cal-cuadrante-grid{grid-template-columns:repeat(7,minmax(90px,1fr))}.app-shell:not(.view-mobile) .cal-puesto-row-label{font-size:.7rem}.app-shell:not(.view-mobile) .cal-cuadrante-select{font-size:.72rem}.app-shell.view-auto .sidebar{padding:.85rem}.app-shell.view-auto .sidebar-title,.app-shell.view-auto .sidebar-user-menu,.app-shell.view-auto .role-badge,.app-shell.view-auto .side-nav,.app-shell.view-auto .sidebar-export-btn,.app-shell.view-auto .sidebar-install-btn,.app-shell.view-auto .view-mode-switch,.app-shell.view-auto .sidebar-terms-btn{border:1px solid #e2e8f059;box-shadow:0 0 0 1px #0f172a1f}.app-shell.view-auto .side-nav{background:#ffffff09;border-radius:.75rem;grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem;margin-top:.65rem;padding:.65rem}.app-shell.view-auto .nav-btn{align-items:center;gap:.35rem;min-height:42px;padding:.5rem .55rem;font-size:.88rem;display:flex}.app-shell.view-auto .app-main{padding:.5rem}.app-shell.view-auto .mobile-section-header{margin-bottom:.45rem;padding:.42rem .5rem}.app-shell.view-auto .cal-cabecera{gap:.35rem;margin-bottom:.45rem}.app-shell.view-auto .cal-titulo{margin:0;font-size:.95rem}.app-shell.view-auto .cal-subtitulo{margin-top:.1rem}.app-shell.view-auto .cal-navegacion{gap:.35rem;margin-bottom:.45rem}.app-shell.view-auto .cal-navegacion .btn-secondary,.app-shell.view-auto .cal-btn-vista,.app-shell.view-auto .cal-btn-hoy{min-height:28px;padding:.28rem .45rem;font-size:.68rem}.app-shell.view-auto .cal-cuadrante-bloque{min-width:0}.app-shell.view-auto .cal-weekday-row{border-radius:.45rem;grid-template-columns:repeat(7,minmax(0,1fr));min-width:0}.app-shell.view-auto .cal-weekday-row span{padding:.24rem .04rem;font-size:.46rem}.app-shell.view-auto .cal-cuadrante{gap:.35rem;overflow-x:visible}.app-shell.view-auto .cal-cuadrante-grid{grid-template-columns:repeat(7,minmax(0,1fr))}.app-shell.view-auto .cal-puesto-esquina,.app-shell.view-auto .cal-puesto-row-label{word-break:break-word;min-height:23px;padding:0 .04rem;font-size:.4rem}.app-shell.view-auto .cal-dia-col-header{min-height:15px;padding:0 .02rem}.app-shell.view-auto .cal-dia-col-nombre{font-size:.36rem;line-height:1}.app-shell.view-auto .cal-dia-col-numero{font-size:.46rem;line-height:1.05}.app-shell.view-auto .cal-turno-slot{min-height:21px;padding:2px}.app-shell.view-auto .cal-turno-slot-vacio{min-height:21px}.app-shell.view-auto .cal-turno-slot-content{border-width:1px;border-radius:.35rem;padding:0}.app-shell.view-auto .cal-cuadrante-select{text-align:center;border-left-width:2px;border-radius:.35rem;min-height:24px;padding:.12rem .04rem;font-size:clamp(.38rem,1.8vw,.52rem)}.app-shell.view-auto .cal-guardia-chip{border-left-width:2px;border-radius:.28rem;min-height:19px;padding:0 .02rem;line-height:1}.app-shell.view-auto .cal-guardia-chip.nombre-len-5{font-size:.52rem}.app-shell.view-auto .cal-guardia-chip.nombre-len-6{font-size:.5rem}.app-shell.view-auto .cal-guardia-chip.nombre-len-7{font-size:.47rem}.app-shell.view-auto .cal-guardia-chip.nombre-len-8{font-size:.44rem}.app-shell.view-auto .cal-guardia-chip.nombre-len-9{font-size:.4rem}.app-shell.view-auto .cal-guardia-chip.nombre-len-long{font-size:.37rem}.app-shell.view-auto .cal-turno-action-menu{width:min(190px,82vw);padding:.45rem}.app-shell.view-auto .cal-festivos-lista{flex-direction:column;gap:.25rem;padding:.45rem .55rem;font-size:.64rem}.app-shell.view-auto .cal-festivos-lista div{gap:.25rem .55rem}.app-shell.view-auto .cal-change-request-btn{border-radius:.25rem;margin-top:.08rem;padding:.08rem .02rem;font-size:0;line-height:1}.app-shell.view-auto .cal-change-request-btn:after{content:"↔";color:#075985;font-size:.58rem;font-weight:900}}@media print{@page{size:A4 landscape;margin:12mm}body{background:#fff!important}.sidebar,.no-print,.cal-acciones,.cal-navegacion,.btn-primary,.btn-secondary,.btn-danger,.alert{display:none!important}.app-shell{display:block!important}.app-main{background:#fff!important;padding:0!important}.panel{box-shadow:none!important;border:none!important;padding:0!important}.pdf-export-header{color:#0f172a;border-bottom:2px solid #0f172a;margin-bottom:1rem;padding-bottom:.75rem;display:block}.pdf-export-header h1{margin:0;font-size:1.35rem}.pdf-export-header h2{margin:.25rem 0 .5rem;font-size:1rem;font-weight:700}.pdf-export-header p{margin:.15rem 0;font-size:.8rem}.cal-cuadrante{overflow:visible!important}.cal-cuadrante-bloque{page-break-inside:avoid;break-inside:avoid;min-width:0!important}.table{font-size:.75rem}.table th,.table td{padding:.35rem}.item-card{page-break-inside:avoid;break-inside:avoid}}.sidebar-export-btn,.sidebar-install-btn{color:#e0f2fe;cursor:pointer;text-align:left;background:#38bdf81f;border:1px solid #ffffff2e;border-radius:.5rem;width:100%;margin-top:1rem;padding:.55rem .75rem;font-weight:700}.sidebar-install-btn{color:#dcfce7;background:#22c55e1f;margin-top:.55rem}.sidebar-export-btn:hover{background:#38bdf838}.sidebar-install-btn:hover{background:#22c55e38}.view-mode-switch{text-align:center;background:#ffffff0a;border:1px solid #94a3b840;border-radius:.65rem;margin-top:1.1rem;padding:.8rem}.view-mode-switch>span{color:#94a3b8;text-transform:uppercase;margin-bottom:.45rem;font-size:.72rem;font-weight:800;display:block}.view-mode-options{grid-template-columns:1fr;justify-items:center;gap:.45rem;display:grid}.view-mode-options button{color:#cbd5e1;cursor:pointer;background:0 0;border:1px solid #94a3b840;border-radius:.45rem;justify-content:center;align-items:center;gap:.25rem;width:min(100%,9rem);padding:.45rem .65rem;font-size:.78rem;font-weight:800;display:inline-flex}.view-mode-options button.active{color:#0f172a;background:#38bdf8;border-color:#38bdf8}.sidebar-terms-btn{color:#cbd5e1;cursor:pointer;text-align:center;background:0 0;border:1px solid #94a3b840;border-radius:.5rem;width:min(100%,12rem);margin:2rem auto 0;padding:.65rem .75rem;font-weight:700;display:block}.sidebar-terms-btn:hover,.sidebar-terms-btn.active{color:#f8fafc;background:#ffffff14}.contacto-layout{grid-template-columns:minmax(220px,280px) 1fr;gap:1rem;display:grid}.contacto-lista{border-right:1px solid #e2e8f0;padding-right:1rem}.contacto-conversacion h3{margin-top:0}.contacto-mensajes{background:#f8fafc;border:1px solid #e2e8f0;border-radius:.5rem;gap:.75rem;max-height:460px;margin-bottom:1rem;padding:.5rem;display:grid;overflow-y:auto}.contacto-mensaje{background:#fff;border:1px solid #e2e8f0;border-radius:.5rem;max-width:78%;padding:.7rem .85rem}.contacto-mensaje.propio{background:#e0f2fe;border-color:#7dd3fc;justify-self:end}.contacto-mensaje p{white-space:pre-wrap;margin:.35rem 0}@media (width<=760px){.contacto-layout{grid-template-columns:1fr}.contacto-lista{border-bottom:1px solid #e2e8f0;border-right:0;padding-bottom:1rem;padding-right:0}.contacto-mensaje{max-width:100%}}.export-modal-backdrop{z-index:9999;background:#0f172a8c;justify-content:center;align-items:center;min-height:100dvh;padding:1rem;display:flex;position:fixed;inset:0;overflow-y:auto}.export-modal{background:#fff;border:1px solid #e2e8f0;border-radius:1rem;width:100%;max-width:520px;max-height:calc(100dvh - 2rem);overflow:hidden;box-shadow:0 20px 60px #0f172a47}.export-modal-header{border-bottom:1px solid #e2e8f0;justify-content:space-between;gap:1rem;padding:1rem;display:flex}.export-modal-header h2{color:#0f172a;margin:0;font-size:1.2rem}.export-modal-header p{color:#64748b;margin:.25rem 0 0;font-size:.85rem}.export-modal-close{color:#0f172a;cursor:pointer;background:#f1f5f9;border:none;border-radius:.5rem;width:34px;height:34px;font-size:1.4rem;line-height:1}.export-modal-body{gap:.6rem;padding:1rem;display:grid}.export-option{cursor:pointer;background:#f8fafc;border:1px solid #e2e8f0;border-radius:.75rem;align-items:flex-start;gap:.75rem;padding:.75rem;display:flex}.export-option.selected{background:#eff6ff;border-color:#2563eb}.export-option input{margin-top:.2rem}.export-option strong{color:#0f172a;display:block}.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;position:relative}.sortable:hover{background-color:#f1f5f9}.export-option small{color:#64748b;margin-top:.15rem;display:block}.export-modal-footer{background:#f8fafc;border-top:1px solid #e2e8f0;justify-content:flex-end;gap:.5rem;padding:1rem;display:flex}.cal-cambio-modal-backdrop,.cal-extra-modal-backdrop{z-index:9998;background:#0f172a94;justify-content:center;align-items:center;min-height:100dvh;padding:1rem;display:flex;position:fixed;inset:0;overflow-y:auto}.cal-cambio-modal,.cal-extra-modal{background:#fff;border:1px solid #dbe3ee;border-radius:1rem;width:min(560px,100%);max-height:min(720px,100dvh - 2rem);overflow:auto;box-shadow:0 22px 70px #0f172a4d}.cal-cambio-modal-body,.cal-extra-modal-body{padding:1rem}.cal-extra-modal-body{gap:.75rem;display:grid}@media (width<=640px){.terms-modal-backdrop,.export-modal-backdrop,.cal-cambio-modal-backdrop,.cal-extra-modal-backdrop,.install-modal-backdrop{align-items:center;padding:.55rem}.terms-modal,.export-modal,.cal-cambio-modal,.cal-extra-modal,.install-modal{border-radius:.75rem;width:min(100%,100vw - 1.1rem);max-height:calc(100dvh - 1.1rem)}.terms-modal-header,.terms-modal-footer,.export-modal-header,.export-modal-footer,.cal-cambio-modal-body,.cal-extra-modal-body,.install-modal-header,.install-modal-body{padding:.75rem}.cal-cambio-opciones{grid-template-columns:1fr}.notifications-history-header{flex-direction:column;align-items:stretch}.notifications-history-filters{grid-template-columns:1fr;min-width:0}.update-banner{flex-direction:column;align-items:stretch;position:static}}.cal-cambio-opciones{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;margin-bottom:1rem;display:grid}.cal-cambio-panel{gap:.75rem;display:grid}.muted-text{color:#64748b;margin:0;font-size:.9rem}.pdf-export-header{display:none}@media print{@page{size:A4 landscape;margin:12mm}body{background:#fff!important}.sidebar,.no-print,.export-modal-backdrop,.cal-cambio-modal-backdrop,.cal-acciones,.cal-navegacion,.btn-primary,.btn-secondary,.btn-danger,.alert,form{display:none!important}.app-shell{display:block!important}.app-main{background:#fff!important;padding:0!important}.panel{box-shadow:none!important;border:none!important;padding:0!important}.pdf-export-header{color:#0f172a;border-bottom:2px solid #0f172a;margin-bottom:1rem;padding-bottom:.75rem;display:block!important}.pdf-export-header h1{margin:0;font-size:1.35rem}.pdf-export-header h2{margin:.25rem 0 .5rem;font-size:1rem;font-weight:700}.pdf-export-header p{margin:.15rem 0;font-size:.8rem}.cal-cuadrante,.cal-grid-mes,.cal-lista-semana{overflow:visible!important}.cal-cuadrante-bloque,.cal-dia-card,.cal-semana-card,.item-card{page-break-inside:avoid;break-inside:avoid}.table{font-size:.75rem}.table th,.table td{padding:.35rem}select{appearance:none;color:#0f172a!important;background:0 0!important;border:none!important;font-weight:700!important}}:root{color:#0f172a;background:#f1f5f9;font-family:Inter,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:2px;outline:3px solid #93c5fd}.sr-only{clip:rect(0,0,0,0);border:0;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}
