/* =========================================================
   NexoOdonto 1.5.6 — tema global da clínica
   Este arquivo é carregado por último para garantir que todas
   as telas utilizem a identidade selecionada pelo administrador.
   ========================================================= */

:root{
    /* Escala dinâmica — superfícies, bordas e textos derivadas das cores da clínica. */
    --theme-primary-surface-1:color-mix(in srgb,var(--clinic-primary) 3%,#fff);
    --theme-primary-surface-2:color-mix(in srgb,var(--clinic-primary) 8%,#fff);
    --theme-primary-surface-3:color-mix(in srgb,var(--clinic-primary) 16%,#fff);
    --theme-primary-soft:color-mix(in srgb,var(--clinic-primary) 32%,#fff);
    --theme-primary-mid:color-mix(in srgb,var(--clinic-primary) 58%,#fff);
    --theme-secondary-surface-1:color-mix(in srgb,var(--clinic-secondary) 3%,#fff);
    --theme-secondary-surface-2:color-mix(in srgb,var(--clinic-secondary) 8%,#fff);
    --theme-secondary-surface-3:color-mix(in srgb,var(--clinic-secondary) 16%,#fff);
    --theme-secondary-soft:color-mix(in srgb,var(--clinic-secondary) 32%,#fff);
    --theme-secondary-mid:color-mix(in srgb,var(--clinic-secondary) 58%,#fff);
    --theme-page-bg:color-mix(in srgb,var(--clinic-primary) 4%,#f8fafc);
    --theme-surface:#fff;
    --theme-surface-soft:color-mix(in srgb,var(--clinic-primary) 4%,#fff);
    --theme-surface-strong:color-mix(in srgb,var(--clinic-primary) 9%,#fff);
    --theme-border:color-mix(in srgb,var(--clinic-primary) 17%,#fff);
    --theme-border-strong:color-mix(in srgb,var(--clinic-primary) 29%,#fff);
    --theme-ink:color-mix(in srgb,var(--clinic-primary-950) 92%,#182433);
    --theme-muted:color-mix(in srgb,var(--clinic-primary-950) 58%,#fff);
    --theme-muted-soft:color-mix(in srgb,var(--clinic-primary-950) 43%,#fff);
    --theme-shadow:0 16px 40px rgba(var(--clinic-primary-rgb),.085);
    --theme-shadow-strong:0 24px 64px rgba(var(--clinic-primary-rgb),.16);
    --theme-gradient:linear-gradient(135deg,var(--clinic-primary-900),var(--clinic-primary),var(--clinic-secondary));
    --theme-gradient-short:linear-gradient(135deg,var(--clinic-primary-800),var(--clinic-secondary));
    --theme-gradient-soft:linear-gradient(135deg,rgba(var(--clinic-primary-rgb),.10),rgba(var(--clinic-secondary-rgb),.10));

    /* Cores de conteúdo da área de anotações também derivadas da clínica. */
    --note-yellow:color-mix(in srgb,var(--clinic-secondary) 22%,#fff);
    --note-pink:color-mix(in srgb,var(--clinic-primary) 16%,#fff);
    --note-blue:color-mix(in srgb,color-mix(in srgb,var(--clinic-primary) 42%,var(--clinic-secondary)) 24%,#fff);
    --note-green:color-mix(in srgb,var(--clinic-secondary) 17%,#fff);
    --note-purple:color-mix(in srgb,var(--clinic-primary) 23%,#fff);
    --note-orange:color-mix(in srgb,var(--clinic-secondary) 31%,#fff);

    /* Compatibilidade com todos os módulos e versões anteriores. */
    --bg:var(--theme-page-bg);
    --panel:var(--theme-surface);
    --surface:var(--theme-surface);
    --surface-soft:var(--theme-surface-soft);
    --surface-teal:var(--theme-secondary-surface-2);
    --text:var(--theme-ink);
    --ink:var(--theme-ink);
    --ink-soft:var(--theme-muted);
    --muted:var(--theme-muted);
    --line:var(--theme-border);
    --border:var(--theme-border);
    --border-soft:var(--theme-border);
    --blue:var(--clinic-primary);
    --blue-2:var(--clinic-primary-800);
    --teal:var(--clinic-secondary);
    --teal-soft:var(--theme-secondary-surface-2);
    --brand-1:var(--clinic-primary);
    --brand-2:var(--clinic-secondary);
    --brand-3:var(--clinic-primary-900);
    --brand-blue:var(--clinic-primary);
    --brand-blue-dark:var(--clinic-primary-950);
    --brand-teal:var(--clinic-secondary);
    --brand-cyan:var(--clinic-secondary);
    --soft-blue:var(--theme-primary-surface-2);
    --soft-teal:var(--theme-secondary-surface-2);
    --nexo-blue-950:var(--clinic-primary-950);
    --nexo-blue-900:var(--clinic-primary-900);
    --nexo-blue-800:var(--clinic-primary-800);
    --nexo-blue-700:var(--clinic-primary);
    --nexo-blue-600:var(--clinic-primary-600);
    --nexo-teal-700:var(--clinic-secondary-700);
    --nexo-teal-600:var(--clinic-secondary-600);
    --nexo-teal-500:var(--clinic-secondary);
    --nexo-cyan-100:var(--theme-secondary-surface-3);
    --nexo-ice:var(--theme-page-bg);
    --nexo-surface:var(--theme-surface);
    --nexo-ink:var(--theme-ink);
    --nexo-muted:var(--theme-muted);
    --nexo-line:var(--theme-border);
    --nexo-gradient:var(--theme-gradient);
    --nexo-gradient-soft:var(--theme-gradient-soft);
    --nexo-shadow:var(--theme-shadow);
    --nexo-shadow-strong:var(--theme-shadow-strong);
    --sidebar-bg-1:var(--clinic-primary-900);
    --sidebar-bg-2:var(--clinic-primary-950);
    --sidebar-active-1:var(--clinic-secondary);
    --sidebar-active-2:var(--clinic-primary);
    --shadow:var(--theme-shadow);
    accent-color:var(--clinic-primary);
}

html{background:var(--theme-page-bg)}
body,
body.nexo-body{
    color:var(--theme-ink);
    background:
        radial-gradient(circle at 92% 3%,rgba(var(--clinic-secondary-rgb),.09),transparent 24rem),
        linear-gradient(180deg,var(--theme-primary-surface-1),var(--theme-page-bg)) !important;
}
::selection{background:rgba(var(--clinic-secondary-rgb),.26);color:var(--theme-ink)}
a{color:var(--clinic-primary)}
a:hover{color:var(--clinic-secondary-700)}

/* Superfícies globais */
:where(.card,.metric,.patient-header,.dashboard-panel,.dashboard-metric,.report-card,.report-summary-card,.report-catalog-card,.side-card,.sub-panel,.notification-card,.payment-box,.payment-summary-card,.quick-section,.agenda-board-panel,.kanban-board,.migration-hero,.migration-detail-header,.migration-action-card,.manual-navigation,.manual-content-card,.personalization-section,.compact-editor-card,.branding-settings,.whatsapp-confirmation-settings){
    border-color:var(--theme-border) !important;
    box-shadow:var(--theme-shadow);
}
:where(.card,.metric,.patient-header,.dashboard-panel,.dashboard-metric,.report-card,.report-summary-card,.report-catalog-card,.side-card,.sub-panel,.notification-card,.payment-box,.payment-summary-card,.quick-section,.manual-navigation,.manual-content-card,.personalization-section,.compact-editor-card){background-color:var(--theme-surface)}
:where(.soft-subtitle,.muted,.card-head p,.topbar p,td small,.dashboard-panel-title p,.manual-content-header p,.personalization-hero p){color:var(--theme-muted) !important}
:where(h1,h2,h3,h4,h5,h6,.section-title,.card-head h2,.card-head h3){color:var(--theme-ink)}

/* Formulários e componentes interativos */
:where(input:not([type=checkbox]):not([type=radio]):not([type=color]),select,textarea,.nexo-select-trigger){
    border-color:var(--theme-border) !important;
    background:var(--theme-surface-soft) !important;
    color:var(--theme-ink) !important;
}
:where(input:not([type=checkbox]):not([type=radio]):not([type=color]),select,textarea,.nexo-select-trigger):focus,
.nexo-select.is-open .nexo-select-trigger{
    border-color:var(--clinic-secondary) !important;
    box-shadow:0 0 0 4px rgba(var(--clinic-secondary-rgb),.13) !important;
    background:#fff !important;
}
:where(input,textarea)::placeholder{color:var(--theme-muted-soft)}
label{color:var(--theme-ink)}
input[type=range]{accent-color:var(--clinic-primary)}

.btn-primary,
.btn-main,
button.primary,
.add-note-button,
.login-submit,
.dashboard-hero-actions .btn-primary:not(:hover){
    background:var(--theme-gradient-short) !important;
    color:var(--clinic-on-primary) !important;
    border-color:transparent !important;
    box-shadow:0 11px 26px rgba(var(--clinic-primary-rgb),.20) !important;
}
.btn-primary:hover,.btn-main:hover,.add-note-button:hover,.login-submit:hover{filter:brightness(1.04);box-shadow:0 15px 32px rgba(var(--clinic-primary-rgb),.27) !important}
.btn-soft,
:where(.inline,.status-row) button,
.pagination a,
.page-link{
    background:var(--theme-primary-surface-2) !important;
    color:var(--clinic-primary-800) !important;
    border-color:var(--theme-border) !important;
}
.btn-soft:hover,.page-link:hover{background:var(--theme-secondary-surface-2) !important;border-color:var(--theme-border-strong) !important;color:var(--clinic-secondary-700) !important}

/* Tabelas, abas, listas e paginação */
table th{color:var(--theme-muted);background:var(--theme-surface-soft)}
table td,table th{border-color:var(--theme-border)}
table tbody tr:hover{background:var(--theme-primary-surface-1)}
.tabs{border-color:var(--theme-border);box-shadow:var(--theme-shadow)}
.tabs a{color:var(--clinic-primary-800)}
.tabs a.active{background:var(--theme-gradient-short);color:var(--clinic-on-primary)}
.pill:not(.danger):not(.success):not(.warning),
.report-badge:not(.danger):not(.success):not(.warning),
.status-pill:not(.danger):not(.success):not(.warning){background:var(--theme-secondary-surface-2);color:var(--clinic-secondary-700)}

/* Menu lateral e cabeçalhos principais */
.sidebar{
    background:
        radial-gradient(circle at 15% 0%,rgba(var(--clinic-secondary-rgb),.25),transparent 22rem),
        linear-gradient(180deg,var(--clinic-primary-900),var(--clinic-primary-950)) !important;
    box-shadow:18px 0 48px rgba(var(--clinic-primary-rgb),.12);
}
.sidebar .nav-item.active{
    background:linear-gradient(135deg,rgba(var(--clinic-secondary-rgb),.32),rgba(var(--clinic-primary-rgb),.38)) !important;
    box-shadow:inset 3px 0 0 var(--clinic-secondary),0 9px 22px rgba(0,0,0,.09) !important;
}
.sidebar .nav-submenu .nav-item.active .nav-dot{background:var(--clinic-secondary);box-shadow:0 0 0 4px rgba(var(--clinic-secondary-rgb),.18)}
.clinic-avatar{background:linear-gradient(135deg,#fff,var(--theme-secondary-surface-3));color:var(--clinic-primary-900)}
.hero-panel,.finance-hero,.dashboard-hero,.report-index-hero,.notes-hero,.tooth-summary-box{background:var(--theme-gradient) !important}

/* Dashboard */
.dashboard-metric-icon,
.dashboard-list-avatar,
.dashboard-quick-action-icon{background:var(--theme-primary-surface-2) !important;color:var(--clinic-primary-800) !important}
.dashboard-list-row{border-color:var(--theme-border)}
.dashboard-list-row:hover,.dashboard-quick-action:hover{background:var(--theme-secondary-surface-1) !important}
.finance-bar{background:var(--theme-primary-surface-2)}
.finance-bar span{background:var(--theme-gradient-short)}

/* Seletores personalizados */
.nexo-select-menu{border-color:var(--theme-border-strong);box-shadow:0 22px 60px rgba(var(--clinic-primary-rgb),.20),0 6px 18px rgba(var(--clinic-primary-rgb),.09)}
.nexo-select-search{background:var(--theme-surface-soft) !important}
.nexo-select-option{color:var(--theme-ink)}
.nexo-select-option:hover,.nexo-select-option.is-active{background:var(--theme-primary-surface-2)}
.nexo-select-option.is-selected{background:var(--theme-gradient-soft);color:var(--clinic-primary-800)}
.nexo-select-option:not(.is-progress):not(.is-success):not(.is-danger) .nexo-select-option-marker{background:var(--clinic-primary);box-shadow:0 0 0 3px rgba(var(--clinic-primary-rgb),.14)}
.nexo-select-chevron{background:var(--theme-primary-surface-2);color:var(--clinic-primary)}

/* Anotações */
.notes-hero{background:var(--theme-gradient) !important;box-shadow:0 22px 52px rgba(var(--clinic-primary-rgb),.18)}
.notes-eyebrow{color:var(--theme-secondary-surface-3)}
.notes-toolbar,.kanban-board,.agenda-board-panel{border-color:var(--theme-border);box-shadow:var(--theme-shadow)}
.notes-search svg,.column-head-actions button,.column-empty span{color:var(--clinic-secondary-700)}
.board-surface{background:radial-gradient(circle,var(--theme-primary-soft) 1px,transparent 1px),linear-gradient(180deg,var(--theme-surface-soft),var(--theme-primary-surface-2));background-size:20px 20px,auto}
.board-column{border-color:var(--theme-border);background:rgba(255,255,255,.80)}
.board-column-head{border-color:var(--theme-border);background:rgba(255,255,255,.78)}
.board-column-head h3{color:var(--theme-ink)}
.column-count{background:var(--theme-primary-surface-2);color:var(--clinic-primary-800)}
.column-head-actions button{background:var(--theme-secondary-surface-2)}
.notes-stack.drag-over{background:rgba(var(--clinic-secondary-rgb),.10);box-shadow:inset 0 0 0 2px rgba(var(--clinic-secondary-rgb),.30)}
.column-empty{border-color:var(--theme-border-strong);color:var(--theme-muted)}
.column-empty:hover{border-color:var(--clinic-secondary);background:var(--theme-secondary-surface-2);color:var(--clinic-secondary-700)}
.column-dot.ideias{background:var(--theme-primary-mid);box-shadow:0 0 0 4px rgba(var(--clinic-primary-rgb),.12)}
.column-dot.fazer{background:var(--theme-secondary-mid);box-shadow:0 0 0 4px rgba(var(--clinic-secondary-rgb),.13)}
.column-dot.andamento{background:var(--clinic-secondary);box-shadow:0 0 0 4px rgba(var(--clinic-secondary-rgb),.13)}
.sticky-note{color:var(--theme-ink)}

/* Agenda: semanal, diária, mensal e lista */
.agenda-embedded{background:var(--theme-page-bg);color:var(--theme-ink)}
.agenda-top{background:linear-gradient(90deg,var(--clinic-primary-950),var(--clinic-primary-800)) !important}
.agenda-top .new,.mini-week a.sel{background:var(--clinic-secondary) !important;color:var(--clinic-on-primary)}
.agenda-side,.calendar,.times,.week-bar a{border-color:var(--theme-border);box-shadow:var(--theme-shadow)}
.mini-week a,.side-card button,.menu-action:not(.success):not(.danger),.agenda-navigation a{background:var(--theme-primary-surface-2);color:var(--clinic-primary-800)}
.cal-head,.times span,.day,.month-grid,.month-day{border-color:var(--theme-border)}
.day.weekend,.month-day.outside{background-color:var(--theme-primary-surface-1)}
.appt{border-color:var(--theme-border);box-shadow:0 8px 18px rgba(var(--clinic-primary-rgb),.11)}
.slot:hover{background:rgba(var(--clinic-secondary-rgb),.08)}
.slot span{background:var(--theme-secondary-surface-2);color:var(--clinic-secondary-700)}
.status-choice.status-agendado button{--status-color:var(--clinic-primary);--status-bg:var(--theme-primary-surface-2);--status-border:var(--theme-primary-soft)}

/* Relatórios */
.report-nav-link,.report-summary-card,.report-catalog-card,.report-table-wrap{border-color:var(--theme-border);box-shadow:var(--theme-shadow)}
.report-nav-link:hover,.report-catalog-card:hover{border-color:var(--theme-border-strong);box-shadow:var(--theme-shadow-strong)}
.report-nav-link.active{background:var(--theme-gradient-short);color:var(--clinic-on-primary)}
.report-nav-icon,.report-empty-icon,.report-rank,.report-catalog-card .catalog-icon{background:var(--theme-primary-surface-2);color:var(--clinic-primary-800)}
.report-summary-card:not(.success):not(.warning):not(.danger):before{background:var(--clinic-primary)}
.report-summary-card.teal:before{background:var(--clinic-secondary)}
.report-table th{background:var(--theme-surface-soft);color:var(--theme-muted)}
.report-bar-track{background:var(--theme-primary-surface-2)}
.report-bar-fill{background:linear-gradient(90deg,var(--clinic-primary),var(--clinic-secondary))}
.report-donut{background:conic-gradient(var(--clinic-secondary) calc(var(--pct)*1%),var(--theme-primary-surface-2) 0)}
.report-note{background:var(--theme-secondary-surface-2);color:var(--theme-muted)}
.report-note strong{color:var(--clinic-primary-800)}
.report-catalog-card:before{background:linear-gradient(90deg,var(--clinic-primary),var(--clinic-secondary))}

/* Migrações */
.migration-hero,.migration-detail-header{background:var(--theme-gradient-soft);border-color:var(--theme-border)}
.migration-dropzone{border-color:var(--theme-border-strong) !important;background:var(--theme-secondary-surface-1)}
.migration-dropzone:hover{border-color:var(--clinic-secondary) !important;background:var(--theme-secondary-surface-2)}
.dropzone-icon{background:var(--theme-gradient-short);box-shadow:0 10px 25px rgba(var(--clinic-primary-rgb),.18)}
.migration-source-pill,.step-number{background:var(--theme-secondary-surface-2);color:var(--clinic-secondary-700)}
.migration-action-card{border-left-color:var(--clinic-secondary)}
.entity-summary-list>div,.migration-checklist li,.migration-file-selection{background:var(--theme-surface-soft);border-color:var(--theme-border)}
.entity-summary-list strong,.file-state{color:var(--clinic-secondary-700)}

/* Odontograma e procedimentos */
.mouth-board,.sub-panel,.tooth-record-item,.floating-tooth-menu{border-color:var(--theme-border)}
.mouth-board{background:linear-gradient(180deg,#fff,var(--theme-primary-surface-1))}
.mouth-board:before{background:radial-gradient(circle at center,rgba(var(--clinic-secondary-rgb),.07),transparent 60%)}
.upper-jaw,.lower-jaw{background:linear-gradient(180deg,var(--theme-secondary-surface-1),var(--theme-primary-surface-2));border-color:var(--theme-border)}
.tooth-card.active .tooth-shape{border-color:var(--clinic-primary);box-shadow:0 16px 28px rgba(var(--clinic-primary-rgb),.18),0 0 0 4px rgba(var(--clinic-primary-rgb),.09)}
.quick-proc-btn:hover,.floating-proc-btn:hover{border-color:var(--clinic-secondary);background:var(--theme-secondary-surface-2)}
.smart-info-box,.empty-record-box{background:var(--theme-primary-surface-2);border-color:var(--theme-border)}
.smart-info-box strong,.floating-menu-head strong{color:var(--clinic-primary-800)}
.floating-menu-tabs{background:var(--theme-primary-surface-2)}
.floating-menu-tabs button.active{color:var(--clinic-primary);box-shadow:0 8px 20px rgba(var(--clinic-primary-rgb),.09)}
.procedure-status-planejado{background:var(--theme-primary-surface-2);color:var(--clinic-primary-800)}
.status-pill.status-em-atendimento,.detail-status.status-em-atendimento,.month-appointment.status-em-atendimento{background:var(--theme-secondary-surface-2) !important;color:var(--clinic-secondary-700) !important;border-color:var(--theme-secondary-soft) !important}
.status-choice.status-em-atendimento button{--status-color:var(--clinic-secondary-700);--status-bg:var(--theme-secondary-surface-2);--status-border:var(--theme-secondary-soft)}
.patient-timeline-event.event-prontuario .patient-timeline-marker{background:var(--theme-primary-surface-2);color:var(--clinic-primary-800)}

/* Configurações, personalização e manual */
.color-field,.branding-asset-card,.theme-color-fields>label,.compact-inline-controls,.compact-controls,.manual-quick-help button{border-color:var(--theme-border);background:var(--theme-surface-soft)}
.branding-asset-heading>span,.editor-note,.manual-page-badge{background:var(--theme-primary-surface-2);color:var(--clinic-primary-800)}
.clinic-logo-preview,.main-logo-preview,.compact-logo-frame,.compact-inline-frame{border-color:var(--theme-border-strong);background:linear-gradient(145deg,#fff,var(--theme-primary-surface-2))}
.regenerate-logo-button{border-color:var(--theme-border) !important;background:var(--theme-primary-surface-1) !important;color:var(--clinic-primary-800) !important}
.personalization-hero{background:var(--theme-gradient-soft)}
.system-theme-preview{border-color:var(--theme-border);background:var(--theme-page-bg)}
.manual-navigation nav button{background:var(--theme-primary-surface-1);color:var(--theme-muted)}
.manual-navigation nav button:hover,.manual-navigation nav button.active{border-color:var(--theme-border-strong);background:var(--theme-primary-surface-2);color:var(--clinic-primary)}
.manual-quick-help button:hover{border-color:var(--theme-border-strong);box-shadow:var(--theme-shadow)}
.manual-viewer{border-color:var(--theme-border);background:var(--theme-primary-surface-2)}

/* Modais e estados sobrepostos */
.modal-backdrop,.tooth-modal-backdrop{background:rgba(var(--clinic-primary-rgb),.58)}
:where(.modal-card,.slot-modal-card,.tooth-modal-card,.floating-tooth-menu){box-shadow:0 30px 90px rgba(var(--clinic-primary-rgb),.25)}
.modal-close,.floating-menu-head button{background:var(--theme-primary-surface-2);color:var(--theme-muted)}

/* Rolagem temática */
*{scrollbar-color:rgba(var(--clinic-primary-rgb),.32) transparent}
*::-webkit-scrollbar-thumb{background:rgba(var(--clinic-primary-rgb),.28);border-radius:99px}
*::-webkit-scrollbar-thumb:hover{background:rgba(var(--clinic-secondary-rgb),.48)}

@media print{
    body,body.nexo-body{background:#fff !important;color:#111 !important}
    .card,.metric,.report-card{box-shadow:none !important}
}

/* Licenciamento 1.7.0 */
.license-banner{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 16px;margin-bottom:16px;border-radius:12px;border:1px solid rgba(var(--clinic-primary-rgb),.2);background:rgba(var(--clinic-primary-rgb),.08);color:var(--clinic-primary-900)}
.license-banner span{flex:1;min-width:220px}.license-banner a{font-weight:800;color:inherit}.license-overdue{background:#fff4df;border-color:#f2d39c;color:#845000}.license-trial{background:rgba(var(--clinic-secondary-rgb),.10)}
.status-pill{display:inline-flex;padding:7px 12px;border-radius:999px;font-size:14px;background:rgba(var(--clinic-primary-rgb),.11);color:var(--clinic-primary-800)}.status-pill.overdue,.status-pill.pending{background:#fff2da;color:#8b5300}.status-pill.suspended,.status-pill.expired,.status-pill.cancelled,.status-pill.missing{background:#feecea;color:#9c261c}
.usage-tile{padding:16px;border:1px solid rgba(var(--clinic-primary-rgb),.14);border-radius:12px;background:rgba(var(--clinic-primary-rgb),.025)}.usage-tile .progress{height:9px;background:#e8edf3;border-radius:999px;overflow:hidden;margin-top:10px}.usage-tile .progress span{display:block;height:100%;background:linear-gradient(90deg,var(--clinic-primary),var(--clinic-secondary));border-radius:999px}
