:root {
    --dental-primary: #0f766e;
    --dental-primary-dark: #0b4f4a;
    --dental-navy: #123047;
    --dental-aqua: #dff7f4;
    --dental-surface: #f5f8fa;
    --dental-border: #e3ebef;
    --dental-text: #263746;
}

body { color: var(--dental-text); background: var(--dental-surface); }
#content-wrapper, #content { background: var(--dental-surface) !important; }
.dental-sidebar { background: var(--dental-primary) !important; background-image: none !important; }
.dental-sidebar-platform { background: #172a3a !important; background-image: none !important; }
.sidebar-brand-icon .fa-tooth { transform: rotate(-8deg); }
.sidebar .sidebar-brand { height: 5.25rem; padding: .75rem 1rem; }
.sidebar .sidebar-brand-text { max-width: 135px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sidebar .nav-item .nav-link { padding-top: .8rem; padding-bottom: .8rem; }
.sidebar .nav-item.active .nav-link { background: rgba(255,255,255,.14); border-radius: .6rem; margin: 0 .6rem; width: auto; }
.topbar { border-bottom: 1px solid var(--dental-border); box-shadow: 0 .15rem 1rem rgba(25,55,72,.06) !important; }
.branch-switcher { min-width: 220px; border-color: var(--dental-border); font-weight: 600; color: var(--dental-navy); }
.card { border: 0; border-radius: .85rem; }
.card-header { border-bottom: 1px solid var(--dental-border); background: #fff; border-radius: .85rem .85rem 0 0 !important; }
.shadow { box-shadow: 0 .35rem 1.4rem rgba(18,48,71,.08) !important; }
.btn { border-radius: .55rem; }
.btn-primary { background-color: var(--dental-primary); border-color: var(--dental-primary); }
.btn-primary:hover, .btn-primary:focus { background-color: var(--dental-primary-dark); border-color: var(--dental-primary-dark); }
.text-primary { color: var(--dental-primary) !important; }
.border-left-primary { border-left-color: var(--dental-primary) !important; }
.form-control, .custom-select { border-color: #d8e3e8; border-radius: .5rem; }
.form-control:focus, .custom-select:focus { border-color: var(--dental-primary); box-shadow: 0 0 0 .15rem rgba(15,118,110,.12); }
.table thead th { border-top: 0; border-bottom-width: 1px; color: #667785; font-size: .74rem; text-transform: uppercase; letter-spacing: .04em; }
.table-bordered, .table-bordered td, .table-bordered th { border-color: var(--dental-border); }
.page-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1.5rem; }
.page-kicker { color: var(--dental-primary); font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.stat-card { overflow: hidden; position: relative; }
.stat-card::after { content: ""; position: absolute; width: 72px; height: 72px; right: -22px; top: -22px; border-radius: 50%; background: currentColor; opacity: .07; }
.stat-icon { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 12px; background: var(--dental-aqua); color: var(--dental-primary); }
.quick-action { display: flex; align-items: center; gap: .85rem; padding: 1rem; border: 1px solid var(--dental-border); border-radius: .75rem; color: var(--dental-text); transition: .15s ease; }
.quick-action:hover { border-color: var(--dental-primary); color: var(--dental-primary); text-decoration: none; transform: translateY(-1px); }
.configuration-card .card-body { display: flex; flex-direction: column; }
.configuration-icon { display: grid; place-items: center; width: 42px; height: 42px; margin-bottom: 1rem; border-radius: .7rem; color: var(--dental-primary); background: var(--dental-aqua); }
.configuration-links { display: grid; gap: .35rem; }
.field-help { display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px; margin-left: .25rem; padding: 0; border: 0; border-radius: 50%; background: #e8f3f4; color: var(--dental-primary); font-size: .72rem; vertical-align: middle; cursor: help; }
.field-help:hover, .field-help:focus { background: var(--dental-primary); color: #fff; outline: 2px solid #b8e3e3; }
.search-select { position: relative; min-width: 0; }
.search-select > input { padding-right: 2.4rem; text-overflow: ellipsis; }
.search-select-clear { position: absolute; right: .4rem; top: .3rem; border: 0; background: transparent; color: #657582; font-size: 1.3rem; line-height: 1.6rem; width: 1.8rem; }
.search-select-results { position: fixed; z-index: 1080; overflow-y: auto; overscroll-behavior: contain; background: #fff; border: 1px solid var(--dental-border); border-radius: .55rem; }
.search-select-option { display: block; width: 100%; border: 0; border-bottom: 1px solid var(--dental-border); padding: .75rem; background: #fff; text-align: left; color: var(--dental-text); font-size: .9rem; overflow-wrap: anywhere; }
.search-select-option:hover, .search-select-option.active, .search-select-option[aria-selected="true"] { background: var(--dental-aqua); color: var(--dental-primary-dark); }
.search-select-option small { display: block; color: #657582; margin-top: .2rem; }
.search-select-note { padding: .75rem; font-size: .8rem; color: #657582; }
.list-search { padding: .85rem 0; max-width: 560px; }
.list-search label { margin-bottom: .4rem; }
.payment-preview { border: 1px solid #cce5df; background: #f2faf7; border-radius: .7rem; padding: 1rem; margin-bottom: 1rem; }
.payment-preview-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.payment-preview-grid small { display: block; color: #586c66; }
.payment-preview-grid strong { display: block; font-size: 1.1rem; overflow-wrap: anywhere; }
.filter-reset { margin-left: .5rem; white-space: nowrap; }
.purchase-product { min-width: 240px; }
.purchase-number { min-width: 130px; }
.purchase-summary { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 1.5rem; padding: 1rem; margin-bottom: 1rem; border-radius: .6rem; background: #f2f7f8; }
.purchase-summary small { display: block; color: #657582; }
.purchase-summary strong { font-size: 1.15rem; }
.file-selected { font-size: .8rem; margin-top: .4rem; color: #657582; }
[hidden] { display: none !important; }
@media (max-width: 767px) {
    .page-heading { flex-direction: column; }
    .page-heading > div:last-child { display: flex; flex-wrap: wrap; gap: .5rem; }
    .page-heading > div:first-child { display: block; }
    .branch-switcher { min-width: 0; max-width: 160px; }
    .payment-preview-grid { grid-template-columns: 1fr; gap: .6rem; }
    .patient-tabs { flex-wrap: nowrap; overflow-x: auto; }
    .patient-tabs a { white-space: nowrap; }
    .agenda-toolbar { flex-wrap: wrap; gap: .6rem; }
}
@media print {
    .search-select-results, .list-search, .filter-reset { display: none !important; }
}
.patient-autocomplete { position: relative; }
.patient-autocomplete-control { position: relative; }
.patient-autocomplete-results { position: absolute; z-index: 1060; top: 100%; left: 0; right: 0; max-height: 300px; overflow-y: auto; border: 1px solid var(--dental-border); border-radius: .55rem; background: #fff; }
.patient-autocomplete-item { display: block; width: 100%; padding: .65rem .8rem; border: 0; border-bottom: 1px solid var(--dental-border); background: #fff; color: var(--dental-text); text-align: left; }
.patient-autocomplete-item:last-child { border-bottom: 0; }
.patient-autocomplete-item:hover, .patient-autocomplete-item.active { background: #eff8f7; color: var(--dental-primary); }
.patient-autocomplete-item strong, .patient-autocomplete-item small { display: block; }
.patient-autocomplete-item small { margin-top: .15rem; color: #71818e; }
.patient-autocomplete-empty { padding: .8rem; color: #71818e; font-size: .875rem; }
.help-guide .card-body { display: flex; flex-direction: column; }
.help-guide ol { flex: 1; }
.help-preview { border: 1px solid var(--dental-border); border-radius: .6rem; overflow: hidden; background: #f8fbfc; font-size: .72rem; }
.help-preview-title { padding: .45rem .7rem; background: var(--dental-primary); color: #fff; font-weight: 700; }
.help-preview-row { margin: .45rem .7rem; padding: .4rem .6rem; border: 1px solid var(--dental-border); border-radius: .3rem; background: #fff; color: #607480; }
.help-preview-accent { display: inline-block; color: var(--dental-primary); border-color: #b6dcd9; }
.configuration-links a { display: flex; align-items: center; min-height: 37px; padding: .45rem .55rem; border-radius: .45rem; color: var(--dental-text); font-size: .88rem; text-decoration: none; }
.configuration-links a:hover, .configuration-links a:focus { color: var(--dental-primary); background: #eff8f7; text-decoration: none; }
.resource-card { border: 1px solid var(--dental-border); border-radius: .75rem; padding: 1rem; height: 100%; background: #fff; }
.chair-dot { width: 11px; height: 11px; border-radius: 50%; display: inline-block; margin-right: .4rem; }
.chair-free { background: #1cc88a; }
.chair-busy { background: #e74a3b; }
.empty-state { text-align: center; padding: 3.2rem 1rem; color: #71818e; }
.empty-state i { color: #c8d8de; margin-bottom: 1rem; }
.login-shell { min-height: 100vh; background: radial-gradient(circle at 15% 20%, rgba(20,184,166,.28), transparent 32%), linear-gradient(145deg, #0b2735, #0f766e); }
.login-card { border-radius: 1.1rem; overflow: hidden; }
.login-mark { width: 64px; height: 64px; display: grid; place-items: center; margin: 0 auto 1rem; border-radius: 18px; background: var(--dental-aqua); color: var(--dental-primary); }
.hierarchy-line { border-left: 2px solid var(--dental-border); margin-left: .65rem; padding-left: 1.25rem; }
.patient-avatar { width: 70px; height: 70px; display: grid; place-items: center; flex: 0 0 70px; border-radius: 22px; background: var(--dental-aqua); color: var(--dental-primary); font-size: 1.35rem; font-weight: 800; }
.patient-avatar-sm { width: 42px; height: 42px; flex-basis: 42px; border-radius: 13px; font-size: .85rem; }
.patient-tag { display: inline-flex; align-items: center; margin: 0 .3rem .25rem 0; padding: .2rem .55rem; border-radius: 999px; border: 1px solid var(--tag-color); background: color-mix(in srgb, var(--tag-color) 12%, white); color: var(--tag-color); font-size: .72rem; font-weight: 700; }
.tag-picker { display: flex; flex-wrap: wrap; gap: .55rem; }
.tag-option { position: relative; margin: 0; cursor: pointer; }
.tag-option input { position: absolute; opacity: 0; pointer-events: none; }
.tag-option span { display: inline-flex; align-items: center; padding: .42rem .75rem; border: 1px solid #d8e3e8; border-radius: 999px; background: #fff; color: #52636f; transition: .15s ease; }
.tag-option span::before { content: ""; width: 9px; height: 9px; margin-right: .45rem; border-radius: 50%; background: var(--tag-color); }
.tag-option input:checked + span { border-color: var(--tag-color); box-shadow: 0 0 0 2px color-mix(in srgb, var(--tag-color) 18%, white); color: var(--tag-color); font-weight: 700; }
.tag-color-preview { width: 28px; height: 28px; display: inline-block; border-radius: 9px; vertical-align: middle; background: var(--tag-color); }
.patient-tabs { display: flex; gap: .35rem; overflow-x: auto; border-bottom: 1px solid var(--dental-border); }
.patient-tabs a { white-space: nowrap; padding: .8rem 1rem; color: #6b7d89; border-bottom: 2px solid transparent; }
.patient-tabs a:hover { color: var(--dental-primary); text-decoration: none; }
.patient-tabs a.active { color: var(--dental-primary); border-bottom-color: var(--dental-primary); font-weight: 700; }
.clinical-alert { background: #fff7ed; border: 1px solid #fed7aa; color: #9a3412; border-radius: .75rem; padding: .9rem 1rem; }
.timeline { position: relative; padding-left: 1.5rem; }
.timeline::before { content: ""; position: absolute; left: .35rem; top: .4rem; bottom: .4rem; width: 2px; background: var(--dental-border); }
.timeline-item { position: relative; padding: 0 0 1.3rem .5rem; }
.timeline-item::before { content: ""; position: absolute; left: -1.54rem; top: .25rem; width: 11px; height: 11px; border-radius: 50%; background: var(--dental-primary); box-shadow: 0 0 0 4px var(--dental-aqua); }
.agenda-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.agenda-grid { display: grid; gap: .65rem; }
.agenda-grid-dia { grid-template-columns: minmax(280px, 1fr); }
.agenda-grid-semana, .agenda-grid-mes { grid-template-columns: repeat(7, minmax(120px, 1fr)); overflow-x: auto; }
.agenda-day { position: relative; min-height: 185px; min-width: 120px; border: 1px solid var(--dental-border); border-radius: .75rem; background: #fff; overflow: hidden; }
.agenda-grid-dia .agenda-day { min-height: 360px; }
.agenda-grid-mes .agenda-day { min-height: 145px; }
.agenda-day.is-today { border-color: var(--dental-primary); box-shadow: 0 0 0 1px var(--dental-primary); }
.agenda-day > header { display: flex; align-items: center; justify-content: space-between; padding: .55rem .7rem; border-bottom: 1px solid var(--dental-border); background: #f8fafb; }
.agenda-day > header a { display: flex; align-items: baseline; gap: .4rem; color: var(--dental-text); text-decoration: none; }
.agenda-day > header span { font-size: .7rem; text-transform: uppercase; color: #71818e; }
.agenda-day > header strong { font-size: 1rem; }
.agenda-day > header small { color: var(--dental-primary); font-weight: 700; }
.agenda-events { padding: .45rem; }
.agenda-event { position: relative; display: block; margin-bottom: .45rem; padding: .5rem .55rem .5rem .7rem; border-radius: .5rem; background: #f5f8fa; color: var(--dental-text); font-size: .78rem; line-height: 1.3; overflow: hidden; }
.agenda-event::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 4px; background: var(--chair-color); }
.agenda-event:hover { color: var(--dental-primary); text-decoration: none; background: #eef6f5; }
.agenda-event strong, .agenda-event small { display: block; overflow: hidden; text-overflow: ellipsis; }
.agenda-event-time { color: var(--dental-primary); font-weight: 800; }
.agenda-event.status-cancelada { opacity: .55; text-decoration: line-through; }
.agenda-empty { padding: 1rem .3rem; text-align: center; color: #a2afb7; font-size: .75rem; }
.agenda-add { position: absolute; right: .45rem; bottom: .4rem; width: 26px; height: 26px; display: grid; place-items: center; border-radius: 50%; background: var(--dental-aqua); color: var(--dental-primary); font-size: .7rem; }
.agenda-add:hover { text-decoration: none; background: var(--dental-primary); color: #fff; }
.appointment-date-box { width: 64px; height: 70px; display: flex; flex-direction: column; align-items: center; justify-content: center; border-radius: .75rem; background: var(--dental-aqua); color: var(--dental-primary); }
.appointment-date-box strong { font-size: 1.7rem; line-height: 1; }
.appointment-date-box span { font-size: .7rem; font-weight: 800; }
.odontogram-legend { display: flex; gap: 1rem; flex-wrap: wrap; font-size: .75rem; color: #687a86; }
.odontogram-legend span { display: inline-flex; align-items: center; }
.odontogram-legend i { width: 10px; height: 10px; margin-right: .35rem; border-radius: 50%; }
.odontogram-arch { margin-bottom: 2rem; overflow-x: auto; }
.odontogram-arch:last-child { margin-bottom: 0; }
.odontogram-arch-title { margin-bottom: .75rem; color: var(--dental-primary); font-size: .74rem; font-weight: 800; text-align: center; text-transform: uppercase; letter-spacing: .08em; }
.odontogram-teeth { display: grid; grid-template-columns: repeat(16, minmax(54px, 1fr)); gap: .35rem; min-width: 940px; }
.odontogram-teeth-primary { grid-template-columns: repeat(10, minmax(54px, 1fr)); min-width: 590px; max-width: 720px; margin: 0 auto; }
.odontogram-dentition + .odontogram-dentition { margin-top: 2.25rem; padding-top: 1.75rem; border-top: 1px solid #e8eef1; }
.odontogram-tooth { position: relative; padding: .4rem .15rem .55rem; border-radius: .6rem; background: #f8fafb; text-align: center; }
.odontogram-tooth.tooth-is-absent::before, .odontogram-tooth.tooth-is-absent::after { content: ''; position: absolute; z-index: 4; top: 50%; left: 8%; width: 84%; height: 3px; border-radius: 4px; background: #dc2626; pointer-events: none; transform: rotate(45deg); }
.odontogram-tooth.tooth-is-absent::after { transform: rotate(-45deg); }
.odontogram-tooth.tooth-is-absent .tooth-surfaces { opacity: .35; }
.odontogram-tooth.tooth-is-completed::after { content: '\2713'; position: absolute; z-index: 5; top: -.2rem; right: -.15rem; display: grid; width: 1.35rem; height: 1.35rem; place-items: center; border: 2px solid #fff; border-radius: 50%; background: #16a34a; box-shadow: 0 2px 7px rgba(22,163,74,.35); color: #fff; font-size: .82rem; font-weight: 900; line-height: 1; pointer-events: none; }
.tooth-number { margin-bottom: .3rem; font-size: .72rem; font-weight: 800; }
.tooth-number a { color: var(--dental-primary); }
.tooth-surfaces { display: grid; grid-template: 14px 24px 14px / 14px 24px 14px; justify-content: center; gap: 1px; }
.tooth-surface { display: grid; place-items: center; border: 1px solid #cbd8de; border-radius: 3px; background: #fff; color: #84939c; font-size: .45rem; font-weight: 800; line-height: 1; }
a.tooth-surface:hover { position: relative; z-index: 2; border-color: var(--dental-primary); color: var(--dental-primary); text-decoration: none; transform: scale(1.15); }
.tooth-surface.has-finding { border-color: var(--surface-color); background: var(--surface-color); color: #fff; }
.surface-top { grid-area: 1 / 2; }
.surface-left { grid-area: 2 / 1; }
.surface-center { grid-area: 2 / 2; border-radius: 50%; }
.surface-right { grid-area: 2 / 3; }
.surface-bottom { grid-area: 3 / 2; }
.odontogram-mini-guide { display: flex; gap: .75rem; flex-wrap: wrap; padding: .8rem; border-radius: .6rem; background: #f5f8fa; color: #687a86; font-size: .75rem; }
.odontogram-mini-guide strong { color: var(--dental-primary); }
.odontogram-legend-cross { margin-right: .3rem; color: #dc2626; font-size: 1.15rem; line-height: .7; }
.odontogram-legend-check { display: inline-grid; width: 1rem; height: 1rem; margin-right: .35rem; place-items: center; border-radius: 50%; background: #16a34a; color: #fff; font-size: .68rem; line-height: 1; }
.treatment-water { position: relative; width: 112px; height: 142px; margin: .4rem auto; overflow: hidden; border: 5px solid #dce8eb; border-radius: 16px 16px 38px 38px; background: #f8fbfc; box-shadow: inset 0 0 16px rgba(20, 80, 90, .08); }
.treatment-water-fill { position: absolute; right: 0; bottom: 0; left: 0; min-height: 0; background: linear-gradient(180deg, #52d6b4, #15997e); transition: height .35s ease; }
.treatment-water-fill::before { content: ''; position: absolute; top: -5px; left: -8%; width: 116%; height: 10px; border-radius: 50%; background: rgba(255,255,255,.45); }
.treatment-water-label { position: absolute; z-index: 2; inset: 0; display: grid; align-content: center; justify-items: center; color: #173047; text-shadow: 0 1px 2px #fff; }
.treatment-water-label strong { font-size: 1.45rem; }
.treatment-water-label small { font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.odontogram-surface-picker { display: flex; flex-wrap: wrap; gap: .45rem; }
.odontogram-surface-option { margin: 0; cursor: pointer; }
.odontogram-surface-option input { position: absolute; opacity: 0; pointer-events: none; }
.odontogram-surface-option span { display: block; padding: .42rem .7rem; border: 1px solid #cbd8de; border-radius: 999px; background: #fff; color: #687a86; font-size: .78rem; font-weight: 700; transition: .15s ease; }
.odontogram-surface-option input:checked + span { border-color: var(--dental-primary); background: var(--dental-aqua); color: var(--dental-primary); box-shadow: 0 0 0 2px rgba(17, 132, 145, .08); }
.odontogram-surface-option input:focus + span { outline: 2px solid rgba(17, 132, 145, .3); outline-offset: 2px; }
.procedure-calendar-modal .modal-dialog { max-width: 1240px; }
.procedure-calendar-grid { display: grid; grid-template-columns: 62px repeat(7, minmax(125px, 1fr)); min-width: 970px; overflow: visible; border: 1px solid var(--dental-border); border-radius: .65rem; background: #fff; }
.procedure-calendar-modal .modal-body { overflow-x: auto; }
.procedure-calendar-corner, .procedure-calendar-header { position: sticky; top: 0; z-index: 8; padding: .65rem .35rem; border-bottom: 1px solid var(--dental-border); background: #f5f8fa; color: #667785; font-size: .72rem; font-weight: 800; text-align: center; text-transform: uppercase; }
.procedure-calendar-header { border-left: 1px solid var(--dental-border); color: var(--dental-primary); }
.procedure-calendar-axis { position: relative; height: var(--calendar-height); background: #f8fafb; }
.procedure-calendar-axis span { position: absolute; right: .45rem; color: #7b8a94; font-size: .68rem; transform: translateY(-50%); }
.procedure-calendar-day { position: relative; height: var(--calendar-height); overflow: hidden; border-left: 1px solid var(--dental-border); cursor: crosshair; background: repeating-linear-gradient(to bottom, transparent 0, transparent 44px, rgba(205,218,224,.5) 45px); }
.procedure-calendar-day.is-closed { cursor: not-allowed; background: repeating-linear-gradient(135deg, #f3f5f6, #f3f5f6 8px, #e9edef 8px, #e9edef 16px); }
.procedure-calendar-open { position: absolute; z-index: 1; right: 0; left: 0; background: rgba(28, 200, 138, .07); border-top: 1px dashed rgba(28, 200, 138, .5); border-bottom: 1px dashed rgba(28, 200, 138, .5); pointer-events: none; }
.procedure-calendar-event { position: absolute; z-index: 3; right: 4px; left: 4px; overflow: hidden; padding: .2rem .3rem; border-left: 4px solid #e74a3b; border-radius: .35rem; background: rgba(231, 74, 59, .9); color: #fff; font-size: .66rem; font-weight: 700; line-height: 1.15; pointer-events: none; }
.procedure-calendar-ghost { position: absolute; z-index: 5; right: 3px; left: 3px; display: flex; align-items: center; justify-content: center; overflow: hidden; border: 2px solid #118491; border-radius: .4rem; background: rgba(17, 132, 145, .72); color: #fff; font-size: .68rem; font-weight: 800; line-height: 1.1; pointer-events: none; }
.procedure-calendar-ghost.is-invalid { border-color: #b42318; background: rgba(220, 38, 38, .72); }
.procedure-calendar-legend { display: flex; flex-wrap: wrap; gap: 1rem; color: #667785; font-size: .75rem; }
.procedure-calendar-legend span { display: inline-flex; align-items: center; }
.procedure-calendar-legend i { width: 12px; height: 12px; margin-right: .35rem; border-radius: 3px; }
.procedure-calendar-legend .legend-open { border: 1px solid #1cc88a; background: rgba(28, 200, 138, .12); }
.procedure-calendar-legend .legend-busy { background: #e74a3b; }
.procedure-calendar-legend .legend-selection { background: #118491; }
.audit-json { min-height: 160px; max-height: 460px; overflow: auto; padding: 1rem; border-radius: .6rem; background: #17242b; color: #d8e7ec; font-size: .75rem; white-space: pre-wrap; word-break: break-word; }
.print-document { display: none; }
.receipt-logo { display: flex; align-items: center; min-height: 64px; }
.receipt-logo img { display: block; max-width: 210px; max-height: 82px; object-fit: contain; object-position: left center; }

@media print {
    @page { size: A4 portrait; margin: 12mm; }
    html, body { width: 100% !important; min-width: 0 !important; margin: 0 !important; background: #fff !important; color: #111827 !important; font-family: Arial, Helvetica, sans-serif !important; font-size: 10pt !important; }
    .no-print, .dental-sidebar, .topbar, .sticky-footer, .scroll-to-top, .treatment-screen { display: none !important; }
    #wrapper, #content-wrapper, #content, .container-fluid { display: block !important; width: 100% !important; min-width: 0 !important; margin: 0 !important; padding: 0 !important; background: #fff !important; }
    .print-document { display: block !important; width: 100%; color: #111827 !important; }
    .print-document, .print-document * { box-sizing: border-box; color: #111827 !important; text-shadow: none !important; box-shadow: none !important; }
    .print-clinic-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding-bottom: 14px; border-bottom: 2px solid #111827; }
    .print-clinic-brand { display: flex; align-items: center; gap: 14px; min-width: 0; }
    .print-clinic-brand img { display: block; width: auto; max-width: 165px; height: auto; max-height: 76px; object-fit: contain; }
    .print-clinic-brand h1 { margin: 0 0 3px; font-size: 17pt; font-weight: 700; line-height: 1.1; }
    .print-clinic-brand > div > div { font-size: 8.5pt; }
    .print-clinic-contact { display: flex; flex-wrap: wrap; gap: 2px 10px; margin-top: 4px; color: #374151 !important; }
    .print-clinic-contact span:not(:last-child)::after { content: ' ·'; }
    .print-document-id { flex: 0 0 180px; text-align: right; }
    .print-document-id strong, .print-document-id span, .print-document-id small { display: block; }
    .print-document-id strong { font-size: 12pt; letter-spacing: .04em; }
    .print-document-id span { margin-top: 4px; font-size: 11pt; font-weight: 700; }
    .print-document-id small { margin-top: 3px; color: #4b5563 !important; }
    .print-info-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0; margin-top: 14px; border: 1px solid #9ca3af; }
    .print-info-grid > div { min-height: 56px; padding: 8px 10px; border-right: 1px solid #d1d5db; border-bottom: 1px solid #d1d5db; }
    .print-info-grid > div:nth-child(2n) { border-right: 0; }
    .print-info-grid > div:nth-last-child(-n+2) { border-bottom: 0; }
    .print-info-grid strong, .print-info-grid small { display: block; }
    .print-info-grid strong { margin-top: 2px; font-size: 10pt; }
    .print-info-grid small { margin-top: 2px; color: #4b5563 !important; }
    .print-label { display: block; color: #4b5563 !important; font-size: 7.5pt; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
    .print-plan-summary { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 10px; margin: 14px 0; padding: 10px; border: 1px solid #d1d5db; background: #f9fafb !important; }
    .print-plan-summary > div > strong { display: block; margin-top: 3px; }
    .print-plan-notes { grid-column: 1 / -1; padding-top: 8px; border-top: 1px solid #d1d5db; }
    .print-plan-notes p { margin: 3px 0 0; white-space: normal; }
    .print-financial-summary { display: grid; grid-template-columns: repeat(5, 1fr); margin: 0 0 14px; border: 1px solid #9ca3af; }
    .print-financial-summary > div { padding: 8px; border-right: 1px solid #d1d5db; }
    .print-financial-summary > div:last-child { border-right: 0; }
    .print-financial-summary span, .print-financial-summary strong { display: block; }
    .print-financial-summary span { color: #4b5563 !important; font-size: 7.5pt; text-transform: uppercase; }
    .print-financial-summary strong { margin-top: 3px; font-size: 10pt; }
    .print-financial-summary .is-total, .print-financial-summary .is-balance { background: #f3f4f6 !important; }
    .print-financial-summary .is-total strong, .print-financial-summary .is-balance strong { font-size: 11pt; }
    .print-treatment-table { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: 8.5pt; }
    .print-treatment-table thead { display: table-header-group; }
    .print-treatment-table tr { break-inside: avoid; page-break-inside: avoid; }
    .print-treatment-table th { padding: 7px 6px; border: 1px solid #4b5563; background: #e5e7eb !important; color: #111827 !important; font-size: 7.5pt; text-align: left; text-transform: uppercase; }
    .print-treatment-table td { padding: 7px 6px; border: 1px solid #9ca3af; vertical-align: top; overflow-wrap: anywhere; }
    .print-treatment-table th:nth-child(1), .print-treatment-table td:nth-child(1) { width: 11%; }
    .print-treatment-table th:nth-child(2), .print-treatment-table td:nth-child(2) { width: 36%; }
    .print-treatment-table th:nth-child(3), .print-treatment-table td:nth-child(3) { width: 15%; }
    .print-treatment-table th:nth-child(4), .print-treatment-table td:nth-child(4), .print-treatment-table th:nth-child(5), .print-treatment-table td:nth-child(5) { width: 19%; }
    .print-treatment-table td small { display: block; margin-top: 3px; color: #4b5563 !important; line-height: 1.25; }
    .print-money { white-space: nowrap; font-weight: 700; }
    .print-empty { padding: 18px !important; text-align: center; }
    .print-document-footer { display: grid; grid-template-columns: 1fr 1fr; gap: 45px; margin-top: 38px; break-inside: avoid; page-break-inside: avoid; }
    .print-document-footer > div { padding-top: 7px; border-top: 1px solid #4b5563; text-align: center; font-size: 8pt; }
    .print-document-footer p { grid-column: 1 / -1; margin: 4px 0 0; color: #6b7280 !important; font-size: 7.5pt; text-align: center; }
    .receipt-card { border: 1px solid #9ca3af !important; border-radius: 0 !important; background: #fff !important; box-shadow: none !important; }
    .receipt-card, .receipt-card * { color: #111827 !important; text-shadow: none !important; box-shadow: none !important; }
    .receipt-card .card-body { padding: 12mm !important; background: #fff !important; }
    .receipt-card .text-muted, .receipt-card .small { color: #4b5563 !important; }
    .receipt-card .text-primary, .receipt-card .display-4 { color: #111827 !important; }
    .receipt-card .badge { border: 1px solid #4b5563 !important; background: #fff !important; color: #111827 !important; }
    .receipt-card .alert { border: 1px solid #9ca3af !important; background: #fff !important; color: #111827 !important; }
    .receipt-card hr { border-color: #9ca3af !important; }
    .receipt-logo img { max-width: 170px; max-height: 72px; }
    a, a:visited { color: #111827 !important; text-decoration: none !important; }
}

@media (max-width: 767.98px) {
    .branch-switcher { min-width: 145px; max-width: 48vw; }
    .page-heading { flex-direction: column; }
    .agenda-toolbar { justify-content: center; }
    .agenda-grid-semana, .agenda-grid-mes { grid-template-columns: repeat(7, minmax(170px, 1fr)); }
}
