/* Posicionamento operacional: o painel sempre começa no topo da tela. */
html, body { height: 100%; overflow: hidden; }
body:not(.authenticated) > aside,
body:not(.authenticated) > main,
body:not(.authenticated) > dialog { display: none !important; }
.login-gate { z-index: 1000; }
.login-visual { align-items: center; justify-content: center; text-align: center; }

/* Paleta institucional: lavanda e roxo. */
:root { --ink:#493a52; --muted:#7e6e87; --line:#e5dbe8; --paper:#f8f5f9; --blue:#93619d; --blue-deep:#805087; }
body { background: var(--paper); color: var(--ink); }
aside { background:#fff; border-color:#e5dbe8; }
aside .brand { background:#f1e9f3; border-bottom-color:#805087; }
.brand span,.login-mark { background:#93619d; }
.brand small,.nav-label,.sidebar-note { color:#987da0; }
aside .collapse,aside nav,aside .sidebar-note { border-color:#e5dbe8; }
.nav { color:#62536a; }
.nav b,.panel-action,.order-detail-link { color:#93619d; }
.nav:hover,.nav.active { background:#f1e8f3; color:#70477a; }
.topbar { background:#f0e8f2; border-bottom-color:#805087; }
.search { border-color:#c7adcb; background:#fff; color:#866f8d; }
.account small,.section-action p,.empty,.table th { color:#7e6e87; }
h1,h2 { color:#805087; }
.primary { background:#93619d; box-shadow:0 4px 10px #80508733; }
.primary:hover { background:#805087; }
.card { border-color:#e5dbe8; box-shadow:0 2px 10px #51365f0b; }
input,select,textarea { border-color:#e5dbe8; }
input:focus,select:focus,textarea:focus { outline-color:#b290b5; border-color:#b290b5; }
.workspace-tab { background:#f4edf5; border-color:#d8c4db; color:#735f7b; }
.workspace-tab.active { color:#805087; border-color:#bfa3c3; box-shadow:inset 0 -2px #93619d; }
.activity { background:linear-gradient(115deg,#805087,#93619d); }
.activity .dashboard-eyebrow { color:#f2e9f4; }
.avatar { background:#f1e9f3; color:#805087; }
.list-item,.customer-section,.crm-registration,.wizard-step,.order-detail-hero,.order-detail-grid > div,.production-toolbar { border-color:#e5dbe8; }
.task-empty { border-color:#cdb5d1; color:#7e6e87; }
.task-empty strong,.order-detail-hero h3,.order-detail-grid strong { color:#493a52; }
.task-empty button,.wizard-back { border-color:#cdb5d1; color:#805087; background:#f8f2f9; }
.column { background:#f1e9f3; }
.column h3,.order-card span,.list-item small,.order-detail-hero p,.order-detail-hero small,.order-detail-grid small,.order-detail-grid span,.production-toolbar small { color:#7e6e87; }
.order-card button,.customer-section summary,.crm-registration summary,.crm-registration h4,.wizard-step-title,.production-toolbar strong { color:#805087; }
.crm-filters label { color:#93619d; }
.crm-select-cell input { accent-color:#93619d; }
.crm-bulk-actions { border-color:#ddcbe0; background:#f5eef6; color:#75577d; }
.crm-bulk-actions button { border-color:#c7adcb; color:#805087; }
.wizard-progress-item.active { color:#805087; }
.wizard-progress-item.active span { border-color:#93619d; background:linear-gradient(145deg,#b290b5,#805087); box-shadow:0 4px 10px #80508744; }
.wizard-progress-item span { border-color:#dacbdd; background:linear-gradient(145deg,#fff,#f2ebf4); }
.login-visual { background:radial-gradient(circle at 75% 25%,#dbc7df 0 3%,transparent 20%),radial-gradient(circle at 20% 80%,#b290b5 0 1%,transparent 24%),linear-gradient(125deg,#51365f,#805087 55%,#d9c5dc); }
.login-card h1 { color:#805087; }
.login-copy { color:#7e6e87; }
aside { height: 100vh; overflow: hidden; overscroll-behavior: contain; }
aside nav { flex: 1; min-height: 0; margin-top: 0; overflow-y: auto; overscroll-behavior: contain; }
aside .brand, aside .collapse, aside .sidebar-note { flex: 0 0 auto; }
aside { border-right: 0 !important; }
aside .brand { background: #e6f1f9; }
aside .collapse, aside nav, aside .sidebar-note { border-right: 1px solid #d8e4ec; }
main { height: 100vh; margin: 0 auto !important; overflow-y: auto; overflow-x: hidden; overscroll-behavior: contain; }
.topbar { position: sticky; top: 0; z-index: 20; }
main > header { position: sticky; top: 81px; z-index: 15; margin-bottom: 0; padding: 20px 4px 17px; background: var(--paper); }
.activity { position: sticky; top: 174px; z-index: 12; margin-bottom: 17px; }
@media (max-width: 800px) { .activity { top: 166px; } }
.dashboard-mode { overflow: hidden; }
.dashboard-mode #content { height: calc(100vh - 175px); display: flex; flex-direction: column; }
.dashboard-mode .activity { position: static; flex: 0 0 auto; margin-bottom: 17px; }
.dashboard-mode .dashboard-grid { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: 0 4px 32px; margin-top: 0; }
.workspace-tabs { position: sticky; top: 81px; z-index: 19; height: 50px; display: flex; align-items: end; gap: 5px; padding: 0 12px; background: var(--paper); border-bottom: 1px solid #d5e2eb; overflow:hidden; }
.workspace-tab { height: 40px; padding: 0 15px; border: 1px solid #c9ddeb; border-bottom: 0; border-radius: 11px 11px 0 0; background: #edf5fa; color: #57738b; font: 600 13px 'DM Sans',sans-serif; cursor: pointer; white-space:nowrap; }
.workspace-tabs > .workspace-tab { flex:0 0 auto; }
.workspace-tab-slider { display:flex; align-items:end; gap:5px; min-width:0; flex:1 1 auto; height:100%; }
.workspace-tab-viewport { min-width:0; flex:1 1 auto; overflow-x:auto; scrollbar-width:none; scroll-behavior:smooth; }
.workspace-tab-viewport::-webkit-scrollbar { display:none; }
.workspace-tab-track { display:flex; align-items:end; gap:5px; width:max-content; min-width:100%; height:100%; }
.workspace-tab-arrow { flex:0 0 26px; height:26px; margin-bottom:3px; border:1px solid #c9ddeb; border-radius:7px; background:#fff; color:#805087; cursor:pointer; }
.workspace-tab-arrow:disabled { opacity:.4; cursor:default; }
.workspace-tab[draggable="true"] { cursor:grab; }
.workspace-tab.dragging { opacity:.45; }
.workspace-tab.drag-target { box-shadow:inset 3px 0 #a05ca7; }
.workspace-tab.drag-target-after { box-shadow:inset -3px 0 #a05ca7; }
.workspace-tab.active { background: #fff; color: #2474a6; border-color: #a9cce4; box-shadow: inset 0 -2px #2e87bc; }
.workspace-tab-label { display:inline-flex; align-items:center; gap:7px; }
.workspace-tab-label i { font-size:12px; }
.workspace-tab-close { margin-left:10px; color:#b25571; font-size:17px; line-height:1; cursor:default; }
main > header { top: 131px; }
.dashboard-mode #content { height: calc(100vh - 225px); }
@media (max-width: 800px) { .workspace-tabs { top: 81px; overflow:hidden; }.workspace-tab { white-space:nowrap; } main > header { top:131px; } .dashboard-mode #content { height: calc(100vh - 215px); } }

/* Layout mais compacto para aproveitar a área útil. */
main { padding-left: 14px !important; padding-right: 14px !important; }
.topbar { margin: 0 -14px 10px !important; padding-left: 18px !important; padding-right: 18px !important; }
.topbar-actions { display: flex; gap: 9px; margin-left: auto; margin-right: 32px; }
.topbar-actions .primary { padding: 10px 14px; }
main > header { padding-top: 12px; padding-bottom: 10px; }
.activity { gap: 8px; padding: 12px; border-radius: 13px; }
.activity-intro h2 { font-size: 20px; margin-bottom: 3px; }
.activity .dashboard-eyebrow { color: #dceffc; margin: 0 0 4px; }
.activity-intro p { font-size: 12px; line-height: 1.3; }
.activity .card { padding: 8px 11px; min-height: 0; }
.activity .metric-label { font-size: 11px; }
.activity .metric-value { font-size: 22px; margin: 3px 0 0; }
.activity .metric-detail { font-size: 10px; margin-top: 2px; }
.dashboard-grid { gap: 12px; margin-top: 12px; }
.card { padding: 15px; }

/* Faixa de abas mais enxuta. */
.workspace-tabs { height: 35px; }
.workspace-tab { height: 32px; }
main > header { top: 126px; }
.dashboard-mode > header { display: none; }
.dashboard-mode #content { height: calc(100vh - 146px); margin-top: 10px; }

/* Nas demais abas, o cabeçalho do módulo permanece visível e apenas o conteúdo rola. */
main:not(.dashboard-mode) { overflow: hidden; }
main:not(.dashboard-mode) #content { height: calc(100vh - 202px); overflow-y: auto; overflow-x: hidden; padding: 0 4px 32px; overscroll-behavior: contain; }

/* Almoxarifado: controles fixos e apenas a lista de materiais com rolagem. */
main.inventory-mode #content { display:flex; flex-direction:column; overflow:hidden; padding-bottom:0; }
main.inventory-mode #content > :not(.inventory-list-card) { flex:0 0 auto; }
main.inventory-mode .inventory-list-card { flex:1 1 auto; min-height:0; overflow-y:auto; margin-bottom:0; padding-bottom:20px; overscroll-behavior:contain; }

/* Visualização ampliada dos cards do painel. */
.card-maximize { margin-left: 8px; border: 0; background: transparent; color: #53809e; font: 22px/1 sans-serif; cursor: pointer; padding: 0 2px; }
.card-maximize:hover { color: #2474a6; }
.card-dialog { width: min(1100px, 94vw); height: min(680px, 84vh); max-width: none; border: 0; border-radius: 13px; padding: 0; background: #fff; }
.card-dialog-shell { height: 100%; display: flex; flex-direction: column; }
.card-dialog-head { display: flex; align-items: center; justify-content: space-between; padding: 15px 20px; background: #f4f8fb; border-bottom: 1px solid #dce8f1; }
.card-dialog-head h2 { margin: 0; font-size: 17px; color: var(--ink); }
.card-dialog-head .close { font-size: 26px; line-height: 1; }
.maximized-card-body { flex: 1; overflow: auto; padding: 20px; }
.maximized-card-body > .panel-title { display: none; }
.maximized-card-body .task-empty { min-height: 175px; display: grid; place-content: center; }
.card-dialog-actions { display:flex; justify-content:flex-end; gap:10px; padding: 12px 20px; border-top: 1px solid #dce8f1; text-align: right; }
.card-dialog-actions .primary { min-width: 100px; }
.expanded-card-note { margin: 0 0 14px; color: #7289a0; font-size: 13px; }

/* Segunda linha de indicadores do painel. */
.quick-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.quick-actions button { border: 1px solid #bcdcf1; border-radius: 8px; padding: 10px; background: #eef8fe; color: #2474a6; font: 600 12px 'DM Sans',sans-serif; cursor: pointer; }
.quick-actions button:last-child { grid-column: span 2; }
.quick-actions button:hover { background: #dff1fc; }
.summary-row { display: flex; align-items: baseline; gap: 9px; padding: 11px 0; border-bottom: 1px solid #dce8f1; }
.summary-row strong { color: #2878aa; font-size: 20px; }
.summary-row span, .card-helper { color: #7289a0; font-size: 12px; }
.card-helper { margin: 12px 0 0; line-height: 1.4; }
@media (max-width: 800px) { .topbar-actions { margin-right: 12px; } .topbar-actions .primary { padding: 9px 10px; font-size: 11px; } }

/* CRM: acompanhamento comercial por cliente. */
.crm-summary { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; margin-bottom: 16px; }
.crm-summary div { background: #fff; border: 1px solid #dce8f1; border-radius: 10px; padding: 11px 13px; }
.crm-summary small { display: block; color: #7289a0; font-size: 11px; }
.crm-summary strong { display: block; color: #2878aa; font-size: 22px; margin-top: 2px; }
.crm-customer-row { cursor: pointer; }
.crm-customer-row:hover { background: #f3f9fd; }
.crm-customer-link { border: 0; padding: 0; background: transparent; color: #29435d; text-align: left; font: inherit; cursor: pointer; }
.crm-customer-link small { display: block; color: #7289a0; margin-top: 3px; }
.crm-stage { display: inline-block; padding: 4px 8px; border-radius: 999px; background: #e8f3fb; color: #2474a6; font-size: 11px; font-weight: 700; }
.crm-proposta,.crm-negociacao { background: #fff1db; color: #a96516; }
.crm-cliente { background: #e5f4ec; color: #267052; }
.crm-inativo { background: #edf0f2; color: #687b8a; }
.crm-dialog { width: min(1080px, 95vw); height: min(730px, 88vh); max-width: none; border: 0; border-radius: 13px; padding: 0; }
.crm-dialog-shell { height: 100%; display: flex; flex-direction: column; background: #fff; }
.crm-content { flex: 1; overflow: auto; padding: 20px; }
.crm-profile { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding-bottom: 17px; border-bottom: 1px solid #dce8f1; }
.crm-profile > div { display: grid; grid-template-columns: 42px 1fr; column-gap: 11px; align-items: center; }
.crm-profile .avatar { grid-row: span 2; width: 42px; height: 42px; }
.crm-profile h3,.crm-profile p { margin: 0; }
.crm-profile p { color: #7289a0; font-size: 12px; }
.crm-profile label { width: 185px; margin: 0; }
.crm-profile select { padding: 8px; }
.crm-columns { display: grid; grid-template-columns: 1.1fr .9fr; gap: 26px; margin-top: 18px; }
.crm-columns h3 { margin: 0 0 10px; color: #347cac; }
.crm-columns form { padding: 0; }
.crm-columns form select,.crm-columns form textarea,.crm-columns form input { margin-bottom: 9px; }
.crm-columns form .primary { width: 100%; }
.crm-section-title { margin-top: 24px !important; }
.crm-history article { border-left: 3px solid #b9dbee; padding: 7px 11px; margin-bottom: 10px; background: #f8fbfd; }
.crm-history article strong { color: #296f9f; font-size: 12px; }
.crm-history time { float: right; color: #7289a0; font-size: 11px; }
.crm-history p { margin: 5px 0 0; font-size: 13px; white-space: pre-wrap; }
.crm-tasks article { display: flex; justify-content: space-between; align-items: center; gap: 12px; border: 1px solid #dce8f1; border-radius: 9px; padding: 10px; margin-bottom: 8px; }
.crm-tasks strong,.crm-tasks small { display: block; }
.crm-tasks small { color: #7289a0; font-size: 11px; margin-top: 3px; }
.crm-tasks button { border: 0; background: #e4f3eb; color: #267052; border-radius: 7px; padding: 7px 9px; font: 600 11px 'DM Sans',sans-serif; cursor: pointer; }
.crm-tasks .done { opacity: .58; }
.crm-tasks .done > span { color: #267052; font-size: 11px; }
.crm-orders p { margin: 0; padding: 9px 0; border-bottom: 1px solid #dce8f1; font-size: 13px; }
@media (max-width: 800px) { .crm-summary { grid-template-columns: repeat(2, 1fr); } .crm-columns { grid-template-columns: 1fr; } .crm-profile { align-items: flex-start; flex-direction: column; } .crm-profile label { width: 100%; } }

/* Organização visual do perfil de CRM. */
.crm-dialog .card-dialog-head { padding: 16px 20px; }
.crm-profile { margin: -2px 0 18px; padding: 15px 16px; border: 1px solid #dce8f1; border-radius: 11px; background: #f8fbfd; }
.crm-profile > div { grid-template-columns: 46px 1fr; }
.crm-profile .avatar { width: 46px; height: 46px; border-radius: 13px; }
.crm-profile h3 { font-size: 17px; color: #29435d; }
.crm-profile label { padding: 9px 11px; border: 1px solid #d6e7f2; border-radius: 9px; background: #fff; color: #5c7891; font-size: 11px; }
.crm-profile label select { border: 0; border-radius: 0; padding: 4px 0 0; color: #29435d; font-weight: 600; }
.crm-columns { align-items: stretch; gap: 18px; }
.crm-columns > div { display: flex; flex-direction: column; min-width: 0; padding: 17px; border: 1px solid #dce8f1; border-radius: 11px; background: #fff; box-shadow: 0 2px 10px #52738c0a; }
.crm-columns h3 { padding-bottom: 10px; margin-bottom: 12px; border-bottom: 1px solid #dce8f1; font-size: 16px; }
.crm-columns form .primary { box-shadow: none; }
.crm-section-title { padding-top: 18px; }
.crm-history,.crm-tasks,.crm-orders { min-height: 54px; }
.crm-history .empty,.crm-tasks .empty,.crm-orders .empty { margin: 3px 0; padding: 8px 0; }
.crm-tasks { margin-top: 12px; }

/* CRM: resumo e filtros fixos; somente a lista de clientes rola. */
main.crm-mode #content { height: calc(100vh - 202px); display: flex; flex-direction: column; overflow: hidden; padding-bottom: 0; }
main.crm-mode #content > :not(.crm-list) { flex: 0 0 auto; }
main.crm-mode .crm-list { flex: 1 1 auto; min-height: 0; overflow-y: auto; margin-bottom: 0; }

/* Cadastro completo do cliente e dados preparados para uso fiscal. */
.customer-dialog { width: min(680px, 95vw); max-height: 90vh; overflow: auto; }
.customer-section { margin-top: 15px; border: 1px solid #dce8f1; border-radius: 9px; padding: 0 12px 12px; }
.customer-section summary,.crm-registration summary { color: #347cac; font-size: 13px; font-weight: 700; cursor: pointer; padding: 11px 0; }
.customer-section[open] summary,.crm-registration[open] summary { margin-bottom: 3px; }
.crm-registration { margin: 17px 0; border: 1px solid #dce8f1; border-radius: 10px; padding: 0 14px 14px; background: #fbfdff; }
.crm-registration form { padding: 0; }
.crm-registration h4 { color: #347cac; font-size: 13px; margin: 20px 0 5px; }
.crm-registration .primary { margin-top: 16px; }
.crm-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
@media (max-width: 520px) { .crm-form-grid { grid-template-columns: 1fr; gap: 0; } }

/* Produção sem rolagem horizontal: as etapas se reorganizam na largura disponível. */
.board { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); overflow-x: visible; }
.board .column { min-width: 0; width: auto; }
.production-dropzone { transition:background .16s ease,outline-color .16s ease; }
.production-dropzone.drag-over { outline:2px dashed #93619d; outline-offset:-4px; background:#ead9ed; }
.order-card[draggable="true"] { cursor:grab; }
.order-card[draggable="true"].dragging { opacity:.45; cursor:grabbing; }
.production-dropzone .order-card { position:relative; min-height:200px; margin:10px 0; padding:52px 16px 32px; border:0; border-radius:8px 8px 15px 8px; background:transparent url('/assets/production-postit.webp') center/145% 100% no-repeat; box-shadow:none; transform:rotate(-.35deg); transition:transform .16s ease,filter .16s ease; }
.production-dropzone .order-card:nth-of-type(even) { transform:rotate(.35deg); }
.production-dropzone .order-card:hover { transform:translateY(-2px) rotate(0deg); filter:drop-shadow(3px 6px 5px #6b416d33); }
.production-dropzone .order-card strong { display:block; margin-bottom:5px; color:#513755; line-height:1.25; }
.production-dropzone .order-card span { display:block; line-height:1.4; }
.production-dropzone .order-card button { display:block; margin-top:12px; color:#75427d; }
.production-dropzone .order-card strong,.production-dropzone .order-card span,.production-dropzone .order-card button { transform:rotate(-4deg); transform-origin:left center; }
.inventory-config-link { border:0; padding:0; background:transparent; color:#513755; font:700 14px inherit; text-align:left; text-decoration:underline; text-decoration-color:#c9a9ce; text-underline-offset:3px; cursor:pointer; }
.inventory-config-link:hover { color:#805087; text-decoration-color:currentColor; }
.inventory-buy-link { color:#c54d57; font-weight:700; text-decoration:underline; text-underline-offset:3px; }
.inventory-buy-link:hover { color:#9d3844; }
.inventory-list-card { padding: 12px 16px; }
.inventory-list-card .table { border-collapse: separate; border-spacing: 0; }
.inventory-list-card .inventory-row { cursor:pointer; transition:background .15s ease; }
.inventory-list-card .inventory-row:hover { background:#fbf7fc; }
.inventory-list-card .table td { padding-top:14px; padding-bottom:14px; border-top:1px solid #e5d8e8; }
.inventory-list-card .table th:first-child,.inventory-list-card .table td:first-child { width: 35px; padding-left: 8px; padding-right: 0; }
.inventory-list-card input[type="checkbox"] { accent-color:#93619d; }
.inventory-list-card .table td { vertical-align: middle; }
.inventory-list-card .inventory-config-link + small { display:block; margin-top:4px; color:#8b778f; font-size:11px; }
.inventory-status-ok { color:#5e5362; }
.inventory-bulk-actions { display:flex; align-items:center; gap:10px; margin:12px 0; padding:10px 12px; border:1px solid #ddcbe0; border-radius:9px; background:#f5eef6; color:#75577d; font-size:12px; }
.inventory-bulk-actions[hidden] { display:none; }
.inventory-bulk-actions button { border:1px solid #cdb5d1; border-radius:7px; padding:7px 11px; background:#fff; color:#805087; font:600 12px inherit; cursor:pointer; }
.inventory-bulk-actions button.danger { border-color:#edbec2; color:#b23d48; }
@media (max-width: 1050px) { .board { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 720px) { .board { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 440px) { .board { grid-template-columns: 1fr; } }

/* Busca e filtros do CRM. */
.crm-filters { display: flex; align-items: center; gap: 10px; margin: 0 0 14px; }
.crm-filters label { flex: 1; display: flex; align-items: center; gap: 7px; margin: 0; color: #4386b5; font-size: 17px; }
.crm-filters label input { margin: 0; min-width: 260px; }
.crm-filters select { width: 170px; margin: 0; padding: 10px; }
.crm-filters span { color: #7289a0; font-size: 12px; white-space: nowrap; }
@media (max-width: 800px) { .crm-filters { align-items: stretch; flex-wrap: wrap; } .crm-filters label { min-width: 100%; } .crm-filters label input { min-width: 0; } .crm-filters select { flex: 1; } }

/* Seleção e ações em lote de clientes. */
.crm-select-cell { width: 36px; padding-left: 8px !important; padding-right: 4px !important; text-align: center; }
.crm-select-cell input { width: 15px; height: 15px; margin: 0; accent-color: #2b86bd; cursor: pointer; }
.crm-bulk-actions { display: flex; align-items: center; gap: 9px; margin: -4px 0 12px; padding: 9px 12px; border: 1px solid #cfe4f1; border-radius: 9px; background: #eef8fe; color: #396e94; font-size: 12px; }
.crm-bulk-actions[hidden] { display: none; }
.crm-bulk-actions button { border: 1px solid #9fcde7; border-radius: 7px; padding: 7px 10px; background: #fff; color: #2474a6; font: 600 12px 'DM Sans',sans-serif; cursor: pointer; }
.crm-bulk-actions .danger { border-color: #edc2c0; color: #a73f3b; }
.crm-bulk-actions .danger:hover { background: #fff2f1; }
@media (max-width: 520px) { .crm-bulk-actions { flex-wrap: wrap; } }

/* Cadastro de cliente em etapas guiadas. */
.customer-wizard-progress { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin: 18px 0; }
.customer-dialog { height: min(690px, calc(100vh - 28px)); max-height: none; overflow: hidden; }
.customer-dialog form { height: 100%; display: flex; flex-direction: column; padding: 18px 24px; }
.customer-wizard-progress { margin: 13px 0; }
.wizard-progress-item { position: relative; display: flex; align-items: center; gap: 8px; color: #8aa0b1; font-size: 11px; font-weight: 700; }
.wizard-progress-item:not(:last-child)::after { display: none; }
.wizard-progress-item span { position: relative; z-index: 1; display: grid; place-items: center; flex: 0 0 30px; width: 30px; height: 30px; border: 2px solid #c8dce9; border-radius: 50%; background: linear-gradient(145deg,#fff,#edf6fb); box-shadow: 0 2px 5px #52738c1c; font-size: 13px; }
.wizard-progress-item small { font: inherit; line-height: 1.1; }
.wizard-progress-item.active { color: #2474a6; }
.wizard-progress-item.active span { border-color: #2b86bd; background: linear-gradient(145deg,#3b9bce,#246f9f); color: #fff; box-shadow: 0 4px 10px #347cac55; transform: scale(1.08); }
.wizard-progress-item.done { color: #43846e; }
.wizard-progress-item.done span { border-color: #78b89e; background: linear-gradient(145deg,#effaf4,#d8f0e3); color: #267052; }
.wizard-step { flex: 1 1 auto; min-height: 0; margin-top: 0; border: 1px solid #dce8f1; border-radius: 12px; padding: 14px 18px; background: #fbfdff; }
.wizard-step summary { display: none; }
.wizard-step-title { margin: 0 0 8px; color: #347cac; font-size: 16px; }
.wizard-step label { margin-top: 9px; }
.wizard-step input,.wizard-step select { margin-top: 4px; padding: 8px 10px; }
.customer-wizard-nav { display: flex; align-items: center; gap: 10px; margin-top: 12px; }
.customer-wizard-nav > span { flex: 1; color: #7289a0; font-size: 12px; text-align: center; }
.customer-wizard-nav button { margin: 0; }
.wizard-back { border: 1px solid #bcdcf1; border-radius: 8px; padding: 10px 14px; background: #fff; color: #287bae; font: 600 13px 'DM Sans',sans-serif; cursor: pointer; }
.wizard-finish { min-width: 175px; }
@media (max-width: 600px) { .customer-dialog { height: min(720px, calc(100vh - 20px)); } .customer-wizard-progress { grid-template-columns: repeat(2, 1fr); } .wizard-progress-item:not(:last-child)::after { display: none; } .wizard-step { min-height: 0; } }

/* Acesso aos detalhes de cada pedido. */
.order-detail-link { border: 0; background: transparent; color: #2474a6; padding: 0; font: 600 12px 'DM Sans',sans-serif; cursor: pointer; white-space: nowrap; }
.order-detail-link:hover { text-decoration: underline; }
.order-details-dialog { width: min(720px, 94vw); border: 0; border-radius: 13px; padding: 0; }
.order-details-shell { background: #fff; }
.order-details-content { padding: 20px; }
.order-detail-hero { display: flex; align-items: center; gap: 12px; padding: 15px; border: 1px solid #dce8f1; border-radius: 11px; background: #f8fbfd; }
.order-detail-hero .avatar { width: 45px; height: 45px; }
.order-detail-hero p,.order-detail-hero h3,.order-detail-hero small { margin: 0; display: block; }
.order-detail-hero p,.order-detail-hero small { color: #7289a0; font-size: 12px; }
.order-detail-hero h3 { color: #29435d; font-size: 17px; margin: 2px 0; }
.order-detail-hero .pill { margin-left: auto; }
.order-detail-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 16px; }
.order-detail-grid > div { padding: 13px; border: 1px solid #dce8f1; border-radius: 9px; }
.order-detail-grid small,.order-detail-grid strong,.order-detail-grid span { display: block; }
.order-detail-grid small,.order-detail-grid span { color: #7289a0; font-size: 11px; }
.order-detail-grid strong { color: #29435d; margin: 4px 0; font-size: 14px; }
@media (max-width: 560px) { .order-detail-grid { grid-template-columns: 1fr 1fr; } }

/* Filtro de período da Produção. */
.production-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 0 0 14px; padding: 12px 14px; border: 1px solid #dce8f1; border-radius: 10px; background: #fff; }
.production-toolbar strong,.production-toolbar small { display: block; }
.production-toolbar strong { color: #347cac; font-size: 14px; }
.production-toolbar small { color: #7289a0; font-size: 12px; margin-top: 3px; }
.production-toolbar label { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 12px; }
.production-toolbar select { width: 175px; margin: 0; padding: 9px; }
@media (max-width: 560px) { .production-toolbar { align-items: stretch; flex-direction: column; } .production-toolbar label { align-items: stretch; flex-direction: column; } .production-toolbar select { width: 100%; } }

/* Complementos da paleta institucional em componentes adicionados posteriormente. */
.workspace-tabs { background:var(--paper); border-bottom-color:#ddcbe0; }
.workspace-tab { background:#f4edf5; border-color:#d8c4db; color:#735f7b; }
.workspace-tab.active { background:#fff; color:#805087; border-color:#bfa3c3; box-shadow:inset 0 -2px #93619d; }
.sidebar-note { background:#f7f1f8; border-color:#ddcbe0; color:#987da0; }
.sidebar-note strong { color:#805087; }
.quick-actions button { border-color:#cdb5d1; background:#f5eef6; color:#805087; }
.quick-actions button:hover { background:#eaddec; }
.summary-row { border-bottom-color:#e5dbe8; }
.summary-row strong { color:#805087; }
.summary-row span,.card-helper,.expanded-card-note { color:#7e6e87; }
.card-maximize { color:#8f7597; }
.card-maximize:hover { color:#805087; }
.card-dialog-actions { border-top-color:#e5dbe8; }
.crm-history article { border-left-color:#c7adcb; background:#fbf8fc; }
.crm-columns > div,.crm-columns h3 { border-color:#e5dbe8; }
.crm-filters label { color:#93619d; }
.crm-filters span,.customer-wizard-nav > span { color:#7e6e87; }
.crm-select-cell input { accent-color:#93619d; }
.crm-bulk-actions { border-color:#ddcbe0; background:#f5eef6; color:#75577d; }
.crm-bulk-actions button { border-color:#c7adcb; color:#805087; }
.wizard-progress-item { color:#8a778f; }
.wizard-progress-item span { border-color:#dacbdd; background:linear-gradient(145deg,#fff,#f2ebf4); box-shadow:0 2px 5px #51365f1c; }
.wizard-progress-item.active { color:#805087; }
.wizard-progress-item.active span { border-color:#93619d; background:linear-gradient(145deg,#b290b5,#805087); box-shadow:0 4px 10px #80508744; }
.wizard-step { border-color:#e5dbe8; background:#fcf9fc; }
.wizard-step-title { color:#805087; }
.wizard-back { border-color:#cdb5d1; color:#805087; background:#f8f2f9; }
.order-detail-link { color:#805087; }
.orders-list-card .order-row { cursor:pointer; transition:background .15s ease; }
.orders-list-card .order-row:hover,.orders-list-card .order-row:focus { background:#fbf7fc; outline:none; }
.product-list-card .product-row { cursor:pointer; transition:background .15s ease; }
.product-list-card .product-row:hover,.product-list-card .product-row:focus { background:#fbf7fc; outline:none; }
.supplier-list-card .supplier-row { cursor:pointer; transition:background .15s ease; }
.supplier-list-card .supplier-row:hover,.supplier-list-card .supplier-row:focus { background:#fbf7fc; outline:none; }
.product-list-card .panel-title { display:none; }
.order-detail-hero,.order-detail-grid > div,.production-toolbar { border-color:#e5dbe8; }
.order-detail-hero { background:#fbf8fc; }
.order-detail-hero p,.order-detail-hero small,.order-detail-grid small,.order-detail-grid span,.production-toolbar small { color:#7e6e87; }
.order-detail-hero h3,.order-detail-grid strong,.production-toolbar strong { color:#493a52; }
aside .brand { background:#f1e9f3 !important; border-bottom-color:#805087 !important; }
.activity,.activity h2,.activity p,.activity .metric-label,.activity .metric-value,.activity .metric-detail { color:#fff !important; }
.crm-summary div { border-color:#e5dbe8; }
.crm-summary small,.crm-customer-link small,.crm-profile p,.crm-history time,.crm-tasks small { color:#7e6e87; }
.crm-customer-link { color:#493a52; }
.crm-summary strong { color:#805087; }
.crm-customer-row:hover { background:#faf6fb; }
.crm-stage { background:#f0e6f2; color:#805087; }
.crm-proposta,.crm-negociacao { background:#f7ebdc; color:#9b681f; }
.crm-cliente { background:#e7f0ea; color:#3f725e; }
.crm-profile { border-color:#e5dbe8; background:#fbf8fc; }
.crm-profile label { border-color:#ddcbe0; color:#7e6e87; }
.crm-profile label select,.crm-profile h3,.crm-columns h3,.crm-history article strong { color:#493a52; }
.crm-tasks article,.crm-orders p { border-color:#e5dbe8; }
.pill { background:#f1e4f3; color:#805087; }
.pill.urgent { background:#e4cfe7; color:#714477; }
.pill.ready { background:#eadbed; color:#805087; }
.pill.stage-aguardando_producao { background:#f1e4f3; color:#805087; }
.pill.stage-arte { background:#eee0f2; color:#744b81; }
.pill.stage-impressao { background:#e6d5eb; color:#6c3f76; }
.pill.stage-acabamento { background:#e9d1e4; color:#7a3e70; }
.pill.stage-qualidade { background:#eee2ea; color:#77506e; }
.pill.stage-embalagem { background:#e5d8e9; color:#654875; }
.pill.stage-pronto { background:#ddc5e1; color:#5d3562; }
.pill.stage-entregue { background:#e8dce9; color:#6f4b73; }

/* Cabeçalho-resumo compartilhado pelos módulos principais. */
main.module-mode > header { display:none; }
main.module-mode:not(.dashboard-mode) #content { height:calc(100vh - 146px); }
main.crm-mode.module-mode #content { height:calc(100vh - 146px); }
.module-hero { position:static !important; margin:10px 0 16px; }
.module-hero .activity-intro .eyebrow { color:#f2e9f4 !important; }
main.module-mode #content { display:flex; flex-direction:column; overflow:hidden; padding-bottom:0; }
.module-mode .module-hero { flex:0 0 auto; }
.module-mode .module-scroll { flex:1 1 auto; min-height:0; overflow-y:auto; padding:0 4px 32px; overscroll-behavior:contain; }
.module-mode .orders-scroll { overflow:hidden; padding-bottom:6px; }
.orders-list-card { height:100%; overflow-y:auto; padding-bottom:24px; overscroll-behavior:contain; }
.supplier-dialog { width:min(760px,95vw); max-height:90vh; overflow:auto; }
.supplier-dialog form { padding:20px 24px 24px; }
.supplier-form-section { margin-top:18px; padding:14px 16px 16px; border:1px solid #e5dbe8; border-radius:11px; background:#fcf9fc; }
.supplier-form-section h3 { margin:0 0 7px; color:#805087; font-size:15px; }
.supplier-form-section label { margin-top:10px; }
.table td small { display:block; margin-top:3px; color:#7e6e87; font-size:11px; }

/* Ações de cadastro concentradas no cabeçalho. */
.create-menu { position:relative; }
#createMenuButton { display:flex; align-items:center; gap:8px; }
#createMenuButton span { font-size:15px; line-height:1; }
.create-menu-popover { position:absolute; z-index:50; top:calc(100% + 9px); right:0; width:260px; padding:7px; border:1px solid #ddcbe0; border-radius:11px; background:#fff; box-shadow:0 12px 28px #51365f24; }
.create-menu-popover[hidden] { display:none; }
.create-menu-popover button { display:flex; align-items:center; gap:10px; width:100%; border:0; border-radius:8px; padding:10px; background:transparent; color:#805087; text-align:left; font:inherit; cursor:pointer; }
.create-menu-popover button:hover { background:#f5eef6; }
.create-menu-popover button > i { display:grid; place-items:center; flex:0 0 26px; width:26px; height:26px; border-radius:7px; background:#f0e4f2; font-size:14px; font-style:normal; }
.create-menu-popover button > span { min-width:0; }
.create-menu-popover strong,.create-menu-popover small { display:block; }
.create-menu-popover strong { color:#493a52; font-size:13px; }
.create-menu-popover small { margin-top:2px; color:#7e6e87; font-size:11px; }
.sidebar-create { flex:0 0 auto; margin:8px 13px 0; }
.sidebar-create .create-menu { width:100%; }
.sidebar-create #createMenuButton { width:100%; justify-content:center; }
.sidebar-create .create-menu-popover { top:auto; bottom:calc(100% + 8px); left:0; right:auto; width:220px; }
aside .sidebar-note { margin:8px 13px 14px; }

/* Grupos expansíveis do menu lateral. */
.nav-group { border-bottom:1px solid #eee5ef; padding:4px 0; }
.nav-group summary { display:flex; align-items:center; justify-content:space-between; padding:10px 11px; color:#987da0; font-size:10px; font-weight:700; letter-spacing:1.1px; cursor:pointer; list-style:none; }
.nav-group summary::-webkit-details-marker { display:none; }
.nav-group summary b { color:#805087; font-size:15px; font-weight:400; line-height:1; transition:transform .18s ease; }
.nav-group[open] summary b { transform:rotate(180deg); }
.nav-group > div { display:grid; gap:3px; padding:0 0 5px; }
.nav-group .nav { width:100%; }
aside nav { align-content:start; gap:4px; padding:8px 10px; }
.nav-group { border:0; padding:0; }
.nav-group summary { margin:0; border-radius:8px; padding:9px 11px; }
.nav-group summary:hover,.nav-group[open] summary { background:#f5eef6; color:#805087; }
.nav-group > div { padding:4px 0 6px; }

/* Menu de conta e acesso ao perfil. */
.account-menu { position:relative; }
.account { border:0; background:transparent; padding:4px; cursor:pointer; color:#493a52; }
.account-popover { position:absolute; z-index:50; top:calc(100% + 8px); right:0; width:185px; padding:6px; border:1px solid #ddcbe0; border-radius:10px; background:#fff; box-shadow:0 12px 28px #51365f24; }
.account-popover[hidden] { display:none; }
.account-popover button { display:flex; align-items:center; gap:9px; width:100%; border:0; border-radius:7px; padding:9px 10px; background:transparent; color:#493a52; text-align:left; font:600 12px 'DM Sans',sans-serif; cursor:pointer; }
.account-popover button:hover { background:#f5eef6; }
.account-popover .account-logout { color:#875064; }
.brand { justify-content:center; }
.brand img { display:block; width:145px; max-height:62px; object-fit:contain; }
.login-logo { display:block; width:170px; height:auto; margin:0 0 25px; }

/* Tela de acesso: uma coluna visualmente única para marca, texto e formulário. */
.login-card {
  width: min(100%, 430px);
  margin: 0 auto;
  padding: 52px 48px;
}
.login-logo { width:70%; max-width:none; margin:0 auto 22px; }
.login-card h1 { max-width:none; font-size:clamp(16px,5vw,21px); line-height:1.2; letter-spacing:-.45px; white-space:nowrap; margin-bottom:12px; }
.login-copy { max-width:none; font-size:13px; line-height:1.5; margin:0; text-align:center; letter-spacing:-.08px; }
.login-visual p { color:#fff; }

/* Administração da plataforma na raiz, exibida apenas para o usuário mestre. */
body.platform-admin { display:block; overflow:hidden; background:#f8f5f9; }
body.platform-admin > aside,body.platform-admin > main { display:none !important; }
/* O painel da plataforma ocupa a janela, mas seu próprio conteúdo permanece rolável.
   O body geral do CRM é propositalmente travado para os módulos internos; sem esta
   área de rolagem, os cards abaixo da primeira dobra ficam inacessíveis no admin. */
#platformAdmin { box-sizing:border-box; width:100%; height:100vh; overflow-y:auto; overflow-x:hidden; overscroll-behavior:contain; color:#493a52; }
#platformAdmin[hidden] { display:none; }
.platform-shell { width:min(100% - 48px,1280px); margin:0 auto; padding:28px 0 48px; }
.platform-admin-head { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:24px; padding:20px 24px; border:1px solid #e4d9e7; border-radius:16px; background:#fff; box-shadow:0 8px 22px #51365f0b; }
.platform-brand { display:flex; flex-direction:column; justify-content:center; align-items:flex-start; min-width:150px; padding-right:24px; border-right:1px solid #eee5f0; }
.platform-brand img { display:block; width:138px; height:auto; }.platform-brand span { margin-top:5px; color:#93619d; font-size:9px; font-weight:800; letter-spacing:1.25px; }
.platform-admin-intro p,.platform-section-heading p { margin:0 0 6px; color:#93619d; font-size:10px; font-weight:800; letter-spacing:1.2px; }
.platform-admin-intro h1,.platform-section-heading h2 { margin:0; color:#51365f; }.platform-admin-intro h1 { font-size:27px; }.platform-section-heading h2 { font-size:19px; }
.platform-admin-intro span,.platform-section-heading span { display:block; margin-top:6px; color:#7e6e87; font-size:13px; }
.platform-admin-head .secondary,.platform-company-actions button { border:1px solid #cdb5d1; border-radius:8px; padding:10px 13px; background:#fff; color:#805087; font:600 13px inherit; cursor:pointer; white-space:nowrap; }
.platform-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin:18px 0; }
.platform-summary article,.platform-section { box-sizing:border-box; background:#fff; border:1px solid #e5dbe8; border-radius:14px; padding:20px; box-shadow:0 5px 16px #51365f08; }
.platform-summary article { position:relative; overflow:hidden; min-height:106px; }.platform-summary article::before { position:absolute; top:0; left:0; width:100%; height:3px; content:''; background:#93619d; }.platform-summary article:nth-child(2)::before { background:#c68270; }.platform-summary article:nth-child(3)::before { background:#6d9d86; }
.platform-summary span,.platform-section small { display:block; color:#7e6e87; font-size:12px; }.platform-summary b { display:block; margin-top:10px; color:#805087; font-size:28px; }
.platform-section-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:17px; }.platform-create-section { margin-bottom:16px; }
#platformCompanyForm { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px 16px; padding:0; }
#platformCompanyForm label { display:block; min-width:0; margin:0; color:#51365f; font-size:12px; font-weight:700; }
#platformCompanyForm input { min-width:0; width:100%; margin:6px 0 0; border:1px solid #ddcbe0; border-radius:8px; padding:11px; font:inherit; }
.platform-form-action { display:flex; align-items:end; }.platform-form-action button { width:100%; min-height:42px; border:0; border-radius:8px; padding:11px 14px; background:#93619d; color:#fff; font-weight:700; cursor:pointer; white-space:nowrap; }.platform-form-action button:hover { background:#805087; }
.platform-company-section { margin-bottom:16px; }.platform-table-wrap { overflow-x:auto; }.platform-section table { width:100%; border-collapse:collapse; min-width:620px; }.platform-section th { padding:0 5px 10px; color:#7e6e87; font-size:11px; text-align:left; }.platform-section td { padding:13px 5px; border-top:1px solid #eee5f0; vertical-align:middle; }.platform-section td strong,.platform-section td small { display:block; }
.platform-status { display:inline-block; border-radius:99px; padding:5px 8px; font-size:12px; }
.platform-status.active { background:#eee0f2; color:#744b81; }.platform-status.inactive { background:#f5e1e3; color:#a33b47; }
.platform-company-actions { display:flex; align-items:center; justify-content:flex-end; gap:7px; }
.platform-delete { border:0; padding:7px; background:transparent; color:#b94d61; cursor:pointer; }
.platform-support-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }.platform-support-card { min-height:260px; }
.platform-support-item { position:relative; margin-top:10px; padding:14px 42px 14px 15px; border:1px solid #e7dbe9; border-left:4px solid #c48a92; border-radius:10px; background:#fff; }
.platform-support-item.answered { border-left-color:#6d9d86; background:#fbfefc; }
.platform-support-item-top { display:flex; justify-content:space-between; gap:10px; color:#805087; font-size:12px; font-weight:700; }
.platform-support-item-top span:last-child { border-radius:99px; padding:4px 8px; background:#f6e5e8; color:#9d4a59; white-space:nowrap; }.platform-support-item.answered .platform-support-item-top span:last-child { background:#e1f0e7; color:#39705a; }
.platform-support-item strong { display:block; margin-top:9px; }.platform-support-item p { margin:7px 0; color:#6e5e74; white-space:pre-wrap; }.platform-response { margin-top:10px; padding:9px; border-radius:8px; background:#edf6f0; }.platform-response p { margin-bottom:0; }
.platform-support-actions { padding:8px 0 0; text-align:right; }.platform-support-actions button { border:1px solid #cdb5d1; border-radius:7px; padding:7px 11px; background:#fff; color:#805087; font:600 12px inherit; cursor:pointer; }.platform-empty { color:#7e6e87; }
#platformReplyDialog { width:min(540px,calc(100vw - 32px)); border:0; border-radius:14px; padding:0; box-shadow:0 20px 48px #34203a45; }#platformReplyDialog form { padding:22px; background:#fff; }#platformReplyDialog textarea { width:100%; margin-top:7px; padding:11px; border:1px solid #ddcbe0; border-radius:8px; resize:vertical; font:inherit; }
@media (max-width:900px) { .platform-shell { width:min(100% - 32px,1280px); }.platform-admin-head { grid-template-columns:1fr auto; }.platform-brand { grid-column:1/-1; flex-direction:row; align-items:center; gap:12px; padding:0 0 14px; border-right:0; border-bottom:1px solid #eee5f0; }.platform-brand span { margin:0; } #platformCompanyForm { grid-template-columns:1fr 1fr; }.platform-support-grid { grid-template-columns:1fr; } }
@media (max-width:600px) { .platform-shell { width:min(100% - 24px,1280px); padding-top:16px; }.platform-admin-head { grid-template-columns:1fr; gap:14px; padding:18px; }.platform-admin-head .secondary { justify-self:start; }.platform-summary,#platformCompanyForm { grid-template-columns:1fr; }.platform-section { padding:16px; }.platform-company-actions { justify-content:flex-start; } }
.login-card form { width: 100%; padding: 22px 0 0; }
.login-card .login-field + .login-field { margin-top: 16px; }
.login-card .login-field input { margin-top:0; }
.login-card form .full { margin-top: 16px; }
.login-card .login-error { min-height:0; margin:8px 0 0; }
.login-card .login-error:empty { display:none; }
.login-card .password-field { position:relative; display:block; margin-top:6px; }
.login-card .password-field input { margin-top:0; padding-right:46px; }
.login-card .password-field button {
  position:absolute; right:6px; top:50%; display:grid; place-items:center;
  width:32px; height:32px; margin:0; padding:0; transform:translateY(-50%); border:0 !important;
  border-radius:0; outline:0; box-shadow:none !important; appearance:none; -webkit-appearance:none;
  background:transparent !important; color:#805087; font-size:15px; line-height:1; cursor:pointer;
}
.login-card .password-field button:hover { color:#5f3267; }
.login-card .password-field button:focus-visible { outline:2px solid #a77cab; outline-offset:1px; }
.forgot-password-link { display:block; width:max-content; margin:15px auto 0; padding:2px; border:0; background:transparent; color:#805087; font:600 12px inherit; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.forgot-password-link:hover { color:#5f3267; }
.password-recovery-dialog { width:min(430px,calc(100vw - 32px)); border:0; border-radius:16px; padding:0; box-shadow:0 22px 56px #34203a45; }.password-recovery-dialog::backdrop { background:#2e20387a; }.password-recovery-dialog form { padding:25px; background:#fff; }.password-recovery-dialog h2 { margin:0; color:#51365f; }.password-recovery-dialog p { margin:14px 0 0; color:#74647c; line-height:1.45; }.password-recovery-dialog .dialog-eyebrow { margin:0 0 6px; color:#93619d; font-size:10px; font-weight:800; letter-spacing:1px; }.password-recovery-dialog label { color:#51365f; }.password-recovery-dialog label input { margin-top:7px; border-color:#ddcbe0; }.password-recovery-feedback { min-height:18px; font-size:12px; }.password-recovery-feedback.success { color:#39705a; }.password-recovery-feedback.error { color:#ad4756; }
@media (max-width:720px) {
  .login-card { width: 100%; padding: 38px 34px; }
}
.company-branding { display:grid; gap:5px; margin-top:18px; border-top:1px solid #e5dbe8; padding-top:16px; }
.company-branding > strong { color:#493a52; font-size:13px; }
.company-branding > small { color:#7e6e87; font-size:11px; }
.company-branding > div { display:flex; align-items:center; gap:12px; margin-top:5px; }
.company-branding img { width:104px; height:54px; border:1px solid #e5dbe8; border-radius:8px; padding:5px; object-fit:contain; background:#faf7fb; }
.company-logo-upload { display:inline-flex; align-items:center; margin:0; border:1px solid #c7adcb; border-radius:8px; padding:9px 11px; background:#fff; color:#805087; font-size:12px; font-weight:600; cursor:pointer; }
.company-logo-upload:hover { background:#f5eef6; }
.company-logo-upload input { display:none; }

/* Widgets do Dashboard: mesma área e ordem personalizável. */
.dashboard-grid { grid-template-columns:repeat(3,minmax(0,1fr)); grid-auto-flow:row; grid-auto-rows:272px; }
.dashboard-grid > .card { height:272px; min-width:0; overflow:auto; cursor:grab; transition:transform .15s ease,box-shadow .15s ease,opacity .15s ease; }
.dashboard-grid > .card:active { cursor:grabbing; }
.dashboard-grid > .card.dashboard-card-dragging { opacity:.45; transform:scale(.98); }
.dashboard-grid > .card.dashboard-card-drag-over { outline:2px dashed #93619d; outline-offset:3px; box-shadow:0 8px 20px #80508722; }
.dashboard-grid > .card.dashboard-card-drop-before { box-shadow:inset 0 4px 0 #93619d,0 8px 20px #80508722; }
.dashboard-grid > .card.dashboard-card-drop-after { box-shadow:inset 0 -4px 0 #93619d,0 8px 20px #80508722; }
@media (max-width:1000px) { .dashboard-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .dashboard-grid .card:last-child { grid-column:auto; } }
@media (max-width:520px) { .dashboard-grid { grid-template-columns:1fr; } }

/* Barras de rolagem discretas na paleta da marca. */
* { scrollbar-width:thin; scrollbar-color:#93619d #f5eef6; }
*::-webkit-scrollbar { width:8px; height:8px; }
*::-webkit-scrollbar-track { background:#f5eef6; border-radius:999px; }
*::-webkit-scrollbar-thumb { background:#93619d; border:2px solid #f5eef6; border-radius:999px; }
*::-webkit-scrollbar-thumb:hover { background:#805087; }
*::-webkit-scrollbar-button { width:0; height:0; display:none; }

/* O estado vazio de tarefas cabe por inteiro no card, sem rolagem interna. */
.dashboard-grid > [data-dashboard-card="tasks"] { display:flex; flex-direction:column; overflow:hidden; }
.dashboard-grid > [data-dashboard-card="tasks"] .panel-title { flex:0 0 auto; }
.dashboard-grid > [data-dashboard-card="tasks"] .task-empty { display:flex; flex:1 1 auto; min-height:0; flex-direction:column; align-items:center; justify-content:center; padding:16px 15px; }
.dashboard-grid > [data-dashboard-card="tasks"] .task-empty p { margin:8px 0 14px; }
.dashboard-grid > [data-dashboard-card="tasks"] .dashboard-new-task,.dashboard-grid > [data-dashboard-card="tasks"] [data-dashboard-new-task] { display:block; margin:10px auto 0; border:1px solid #93619d; border-radius:18px; padding:7px 13px; color:#fff; background:#93619d; font:600 11px 'DM Sans',sans-serif; cursor:pointer; }
.dashboard-grid > [data-dashboard-card="tasks"] .dashboard-new-task:hover,.dashboard-grid > [data-dashboard-card="tasks"] [data-dashboard-new-task]:hover { border-color:#774b81; background:#774b81; }
.dashboard-task-row { position:relative; padding-right:44px; cursor:pointer; }
.dashboard-task-row:hover,.dashboard-task-row:focus-visible { border-color:#b98cc1; background:#f5eef6; outline:none; }
.dashboard-task-delete { position:absolute; right:7px; top:50%; display:grid; place-items:center; width:28px; height:28px; border:0; border-radius:7px; transform:translateY(-50%); background:transparent; color:#b24d62; cursor:pointer; }
.dashboard-task-delete:hover { background:#fff0f2; }

.dashboard-widget-list { display:flex; flex-direction:column; gap:8px; }
.dashboard-mini-row { display:flex; align-items:center; gap:9px; padding:8px; border:1px solid #e5dbe8; border-radius:10px; background:#fbf8fc; }
.dashboard-mini-row .avatar,.dashboard-mini-row .rank { display:grid; place-items:center; flex:0 0 32px; width:32px; height:32px; border-radius:9px; background:#f2e5f4; color:#805087; font-size:14px; }
.dashboard-mini-row .rank { font-weight:700; }
.dashboard-mini-row div { min-width:0; flex:1; }
.dashboard-mini-row strong,.dashboard-mini-row small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.dashboard-mini-row strong { color:#493a52; font-size:12px; }
.dashboard-mini-row small { margin-top:2px; color:#7e6e87; font-size:11px; }
.dashboard-mini-row b { color:#b26e25; font-size:11px; white-space:nowrap; }
.dashboard-birthday-link { color:inherit; text-decoration:none; cursor:pointer; }
.dashboard-birthday-link:hover,.dashboard-birthday-link:focus { border-color:#a76aae; background:#f5eef6; outline:none; }

/* Convite de sugestões ao fim do painel. */
.dashboard-feedback { display:flex; flex:0 0 auto; align-items:center; justify-content:center; gap:8px; margin:8px 4px 2px; padding:10px 14px; color:#7e6e87; font-size:12px; text-align:center; }
.dashboard-feedback i { color:#8f5a98; }
.dashboard-feedback p { margin:0; }
.dashboard-feedback button { border:0; padding:0; background:transparent; color:#805087; font:700 12px 'DM Sans',sans-serif; text-decoration:underline; cursor:pointer; }
.dashboard-feedback button:hover,.dashboard-feedback button:focus { color:#613c68; outline:none; }
.suggestion-dialog { width:min(520px,calc(100vw - 30px)); border:0; border-radius:18px; padding:0; box-shadow:0 20px 48px #3d214a55; }
.suggestion-dialog::backdrop { background:#28172c80; }
.suggestion-dialog form { display:grid; gap:14px; padding:24px; }
.suggestion-dialog p { margin:-4px 0 0; color:#7e6e87; font-size:13px; }
.suggestion-dialog textarea { min-height:120px; resize:vertical; }
@media (max-width:520px) { .dashboard-feedback { align-items:flex-start; } }

/* Central de alertas no cabeçalho. */
.topbar-user-actions { display:flex; align-items:center; gap:10px; }
.notifications-menu { position:relative; }
.notifications-button { position:relative; display:grid; place-items:center; width:40px; height:40px; border:1px solid #ddcbe0; border-radius:50%; background:#fff; color:#805087; cursor:pointer; }
.notifications-button:hover,.notifications-button[aria-expanded="true"] { border-color:#a77cab; background:#f5eef6; }
.notifications-button > i { font-size:16px; }
.notifications-badge { position:absolute; top:-4px; right:-4px; display:grid; place-items:center; min-width:17px; height:17px; padding:0 4px; border:2px solid #f4edf5; border-radius:999px; background:#b25571; color:#fff; font:700 9px 'DM Sans',sans-serif; }
.notifications-popover { position:absolute; z-index:55; top:calc(100% + 9px); right:0; width:min(350px,calc(100vw - 28px)); max-height:min(460px,calc(100vh - 105px)); overflow:auto; border:1px solid #ddcbe0; border-radius:12px; background:#fff; box-shadow:0 14px 34px #51365f2b; }
.notifications-popover[hidden] { display:none; }
.notifications-head { display:flex; align-items:center; justify-content:space-between; padding:13px 14px 10px; border-bottom:1px solid #eee5ef; color:#493a52; }
.notifications-head button { border:0; border-radius:7px; padding:6px; background:transparent; color:#805087; cursor:pointer; }
.notifications-head button:hover { background:#f5eef6; }
.notifications-list { padding:5px; }
.notification-item { display:flex; width:100%; gap:10px; border:0; border-radius:9px; padding:10px; background:transparent; color:#493a52; text-align:left; font:inherit; cursor:pointer; }
.notification-item:hover { background:#f8f3f9; }
.notification-item > i { display:grid; place-items:center; flex:0 0 29px; width:29px; height:29px; border-radius:8px; background:#f1e4f3; color:#805087; font-size:13px; }
.notification-item.notification-critical > i { background:#f8e4e7; color:#a34b60; }
.notification-item.notification-attention > i { background:#f7eddc; color:#9b681f; }
.notification-item.notification-success > i { background:#e7f0ea; color:#3f725e; }
.notification-item strong,.notification-item small { display:block; }
.notification-item strong { font-size:12px; }
.notification-item small { margin-top:3px; color:#7e6e87; font-size:11px; line-height:1.35; }
.notifications-empty { margin:0; padding:23px 15px; color:#7e6e87; text-align:center; font-size:12px; }
.notifications-empty i { color:#805087; }
.account > i { background:#805087; font-size:15px; }

/* Busca global. */
.search-menu { position:relative; width:min(480px,45%); }
.topbar .search { width:100%; display:flex; align-items:center; gap:9px; padding:0 15px; color:#805087; }
.topbar .search input { width:100%; margin:0; padding:0; border:0; outline:0; background:transparent; color:#493a52; font:14px 'DM Sans',sans-serif; }
.topbar .search input::placeholder { color:#987da0; opacity:1; }
.search-results { position:absolute; z-index:60; top:calc(100% + 8px); left:0; width:100%; max-height:360px; overflow:auto; padding:5px; border:1px solid #ddcbe0; border-radius:12px; background:#fff; box-shadow:0 14px 34px #51365f2b; }
.search-results[hidden] { display:none; }
.search-results button { display:flex; width:100%; align-items:center; gap:10px; border:0; border-radius:8px; padding:9px; background:transparent; color:#493a52; text-align:left; font:inherit; cursor:pointer; }
.search-results button:hover { background:#f8f3f9; }
.search-results button > i { display:grid; place-items:center; flex:0 0 28px; width:28px; height:28px; border-radius:8px; background:#f1e4f3; color:#805087; font-size:12px; }
.search-results strong,.search-results small { display:block; }
.search-results strong { font-size:12px; }
.search-results small { margin-top:2px; color:#7e6e87; font-size:10px; }
.search-results p { margin:0; padding:15px 11px; color:#7e6e87; font-size:12px; }
@media (max-width:800px) { .search-menu { width:70%; } .topbar .search { width:100%; } }

/* Agenda e planejamento de conteúdo. */
.agenda-layout { display:grid; grid-template-columns:minmax(250px,.72fr) minmax(0,1.5fr); gap:14px; }
.agenda-month-layout { grid-template-columns:minmax(250px,.55fr) minmax(0,2.1fr); align-items:start; }
.agenda-form-card h2 { margin-bottom:0; }
.agenda-form-card form { padding:0; }
.agenda-form-card select { appearance:none; padding-right:36px; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='m1 1 5 5 5-5' fill='none' stroke='%23805087' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.7'/%3E%3C/svg%3E"); background-position:right 14px center; background-repeat:no-repeat; }
.agenda-form-card .full { margin-top:18px; }
.agenda-calendar { min-width:0; overflow:visible; padding:14px; }
.agenda-calendar .panel-title { align-items:center; margin-bottom:10px; }
.agenda-header-action { display:inline-flex; align-items:center; gap:7px; white-space:nowrap; }
main:not(:has(.agenda-calendar)) .agenda-header-action { display:none; }
.agenda-calendar-title { display:flex; align-items:center; gap:8px; }
.agenda-calendar-title h2 { min-width:188px; margin:0; color:#805087; font-size:18px; text-align:center; text-transform:capitalize; }
.agenda-calendar-title .secondary { display:grid; place-items:center; width:32px; height:32px; margin:0; border:1px solid #d5c0d9; border-radius:8px; padding:0; background:#fff; color:#805087; cursor:pointer; }
.agenda-calendar-title .secondary:hover { background:#f5eef6; }
.calendar-weekdays,.calendar-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); }
.calendar-weekdays { overflow:hidden; border:1px solid #e5dbe8; border-bottom:0; border-radius:9px 9px 0 0; background:#f8f3f9; }
.calendar-weekdays span { padding:7px 5px; color:#805087; font-size:9px; font-weight:700; letter-spacing:.3px; text-align:center; text-transform:uppercase; }
.calendar-grid { overflow:visible; border-left:1px solid #e5dbe8; border-radius:0 0 9px 9px; }
.calendar-day { position:relative; min-width:0; min-height:64px; border-right:1px solid #e5dbe8; border-bottom:1px solid #e5dbe8; padding:5px; background:#fff; }
.calendar-day.has-tasks { cursor:default; }
.calendar-day.has-tasks:hover,.calendar-day.has-tasks:focus-within { background:#fcf8fc; outline:none; }
.calendar-grid.calendar-weeks-6 .calendar-day { min-height:54px; }
.calendar-day > span { display:grid; place-items:center; width:24px; height:24px; margin-bottom:4px; border-radius:999px; color:#6e5f77; font-size:11px; font-weight:700; }
.calendar-day.outside-month { background:#fcf9fc; }
.calendar-day.outside-month > span { color:#b6a9ba; }
.calendar-day.today > span { background:#805087; color:#fff; }
.calendar-task-indicator { display:grid; place-items:center; width:17px; height:17px; margin:3px 0 0; border-radius:999px; background:#93619d; color:#fff; font-size:9px; font-style:normal; font-weight:700; }
.calendar-day-popover { position:absolute; z-index:15; top:29px; left:4px; display:none; width:min(245px,calc(100vw - 44px)); border:1px solid #c8afcc; border-radius:9px; padding:8px; background:#fff; box-shadow:0 10px 22px #51365f2b; color:#493a52; }
.calendar-day.has-tasks:hover .calendar-day-popover,.calendar-day.has-tasks:focus .calendar-day-popover,.calendar-day.has-tasks:focus-within .calendar-day-popover { display:block; }
.calendar-day:nth-child(7n) .calendar-day-popover,.calendar-day:nth-child(7n - 1) .calendar-day-popover { right:4px; left:auto; }
.calendar-grid.calendar-weeks-5 .calendar-day:nth-child(n + 29) .calendar-day-popover,.calendar-grid.calendar-weeks-6 .calendar-day:nth-child(n + 36) .calendar-day-popover { top:auto; bottom:25px; }
.calendar-day-popover > strong { display:block; margin-bottom:5px; color:#805087; font-size:10px; }
.calendar-popover-task { display:flex; align-items:center; justify-content:space-between; gap:7px; border-top:1px solid #eee5ef; padding:6px 0; }
.calendar-popover-task > span { min-width:0; }
.calendar-popover-task b,.calendar-popover-task small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.calendar-popover-task b { font-size:10px; }
.calendar-popover-task small { margin-top:2px; color:#7e6e87; font-size:9px; }
.calendar-popover-task > div { display:flex; align-items:center; gap:3px; }
.calendar-popover-task button { border:1px solid #cbb3cf; border-radius:5px; padding:4px 6px; background:#fff; color:#805087; font:600 9px 'DM Sans',sans-serif; cursor:pointer; }
.calendar-popover-task .calendar-complete { display:grid; place-items:center; width:23px; height:23px; padding:0; }
.calendar-popover-task .calendar-delete { display:grid; place-items:center; width:23px; height:23px; border-color:#e4b7bf; padding:0; color:#a34b60; }
.calendar-popover-task .calendar-delete:hover { background:#fbecef; }
.calendar-popover-task.done { opacity:.65; }
.calendar-task { position:relative; min-width:0; margin-top:3px; border-left:3px solid #93619d; border-radius:5px; padding:3px 18px 3px 5px; background:#f2e7f4; color:#493a52; }
.calendar-task.done { border-left-color:#77a58f; background:#eef5f0; opacity:.72; }
.calendar-task strong,.calendar-task small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.calendar-task strong { font-size:9px; line-height:1.2; }
.calendar-task small { margin-top:1px; color:#7e6e87; font-size:8px; }
.calendar-task button { position:absolute; top:2px; right:2px; display:grid; place-items:center; width:14px; height:14px; border:0; border-radius:4px; padding:0; background:transparent; color:#805087; cursor:pointer; font-size:8px; }
.calendar-task button:hover { background:#fff; }
.calendar-campaign-marker{display:flex;align-items:center;gap:4px;min-width:0;margin-top:3px;padding:3px 5px;border-left:3px solid #d98d3c;border-radius:5px;background:#fff1df;color:#86521e;font-size:8px;line-height:1.2}.calendar-campaign-marker i{flex:0 0 auto;font-size:8px}.calendar-campaign-marker span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-day.has-campaign-process{background-image:linear-gradient(135deg,#fffaf2 0%,transparent 48%)}
.task-list,.content-list { display:grid; gap:8px; }
.category-list { display:flex; flex-wrap:wrap; gap:9px; }
.category-list > span,.category-list > button { display:inline-flex; align-items:center; gap:7px; border:1px solid #ddcbe0; border-radius:999px; padding:8px 11px; background:#f8f3f9; color:#805087; font-size:12px; font-weight:600; }
.category-list > button { cursor:pointer; font:inherit; }
.category-list > button:hover,.category-list > button:focus { border-color:#a76aae; background:#f2e7f4; outline:none; }

/* Precificador. */
.pricing-layout { display:grid; height:100%; min-height:0; grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr); gap:14px; }
main:has(.pricing-layout),main:has(.pricing-layout) #content { overflow-y:hidden; }
main:has(.pricing-layout) #content { padding-bottom:0; }
.pricing-form { min-height:0; overflow-y:auto; scrollbar-gutter:stable; }
.pricing-form form { padding:0; }
.pricing-controls { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.pricing-controls label { min-width:0; }
.pricing-result { display:flex; background:linear-gradient(135deg,#805087,#9b6aa2); color:#fff; }
.pricing-result-content { display:flex; width:100%; flex:1; flex-direction:column; align-items:flex-start; justify-content:center; }
.pricing-result .eyebrow,.pricing-result-content > span,.pricing-result p { color:#f4eaf5; }
.pricing-result-content > strong { margin-top:2px; color:#fff; font-size:31px; }
.pricing-result-content > span { font-size:11px; }
.pricing-breakdown { display:grid; width:100%; grid-template-columns:1fr 1fr; gap:6px; margin:13px 0 8px; }
.pricing-breakdown > div { padding:8px; border:1px solid #ffffff38; border-radius:8px; background:#ffffff14; }
.pricing-breakdown small,.pricing-breakdown b { display:block; }
.pricing-breakdown small { color:#f4eaf5; font-size:9px; }
.pricing-breakdown b { margin-top:3px; color:#fff; font-size:13px; }
.pricing-result .primary { margin-top:7px; padding:9px 13px; font-size:12px; background:#fff; color:#805087; box-shadow:none; }
.pricing-result .primary:disabled { opacity:.55; cursor:not-allowed; }
@media (max-width:800px) { main:has(.pricing-layout),main:has(.pricing-layout) #content { overflow-y:auto; } main:has(.pricing-layout) #content { padding-bottom:32px; } .pricing-layout { height:auto; grid-template-columns:1fr; } .pricing-form { overflow:visible; } }
@media (max-width:620px) { .pricing-controls { grid-template-columns:1fr; } }
.pricing-table-wrap { margin-top:16px; overflow:hidden; border:1px solid #e5dbe8; border-radius:10px; }
.pricing-table { width:100%; max-width:100%; min-width:0; table-layout:fixed; border-collapse:collapse; }
.pricing-table th { padding:9px 6px; background:#f1e4f3; color:#805087; font-size:10px; letter-spacing:.35px; text-align:left; text-transform:uppercase; overflow-wrap:anywhere; }
.pricing-table th:nth-child(1) { width:51%; }.pricing-table th:nth-child(2) { width:25%; }.pricing-table th:nth-child(3) { width:19%; }.pricing-table th:nth-child(4) { width:5%; }
.pricing-table td { min-width:0; overflow:hidden; padding:6px 5px; border-top:1px solid #eee5ef; }
.pricing-table td input { width:100%; min-width:0; margin:0; padding:7px; font-size:12px; }
.pricing-table td:first-child { min-width:0; }
.pricing-table td:first-child { display:block; }
.pricing-table td select { width:100%; min-width:0; margin:0; padding:7px; font-size:12px; }
.pricing-form .panel-action + .panel-action { display:block; margin-top:4px; }
.pricing-table td:first-child input { min-width:0; }
.pricing-table td strong { color:#493a52; font-size:12px; white-space:nowrap; }
.pricing-add { margin-top:10px; border:1px dashed #bfa3c3; border-radius:8px; padding:8px 10px; background:#f8f3f9; color:#805087; font:600 12px 'DM Sans',sans-serif; cursor:pointer; }
.pricing-remove { display:grid; place-items:center; width:28px; height:28px; border:0; border-radius:7px; background:transparent; color:#a34b60; cursor:pointer; }
.pricing-remove:hover { background:#f8e4e7; }
.printing-profile-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:14px; }
.printing-printer-group { padding:16px; }
.printing-printer-group .panel-title { margin-bottom:10px; }
.printing-printer-group .panel-title h2 { margin:2px 0 0; font-size:18px; }
.printing-profile-list { display:grid; gap:8px; }
.printing-printer-group .printing-profile-card { min-height:0; display:grid; grid-template-columns:1fr auto; gap:3px 12px; padding:11px; border:1px solid #e2d5e5; border-radius:9px; background:#fdfaff; }
.printing-printer-group .printing-profile-card:hover { transform:translateY(-1px); }
.printing-printer-group .printing-profile-card strong { color:#493a52; }
.printing-printer-group .printing-profile-card small,.printing-printer-group .printing-profile-card span { display:block; color:#7e6e87; font-size:11px; margin-top:3px; }
.printing-printer-group .printing-profile-card b { color:#805087; font-size:14px; text-align:right; }
.printing-printer-group .printing-profile-card b small { display:inline; font-weight:500; }
#newPrintingProfile { min-height:48px; border-radius:10px; overflow:hidden; line-height:1.15; }
.printing-actions { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:10px; }
.printing-new-printer { min-height:48px; border:1px solid #c7adcb; border-radius:10px; padding:11px 16px; background:#fff; color:#805087; font:600 13px 'DM Sans',sans-serif; cursor:pointer; }
.printing-new-printer:hover { background:#f5eef6; }
.printing-registration p { color:#7e6e87; font-size:13px; line-height:1.45; }
.printing-registration .full { margin-top:14px; }
.printing-list-card { min-width:0; }
.printing-profile-card { display:flex; min-height:190px; flex-direction:column; cursor:pointer; transition:transform .15s ease,box-shadow .15s ease; }
.printing-profile-card:hover { transform:translateY(-2px); box-shadow:0 8px 18px #51365f1a; }
.printing-profile-card h2 { margin:2px 0 0; font-size:18px; }
.printing-profile-card span { color:#7e6e87; font-size:11px; }
.printing-profile-card > strong { margin:20px 0 12px; color:#805087; font-size:25px; }
.printing-profile-card > strong small { color:#7e6e87; font-size:11px; font-weight:500; }
.printing-profile-card dl { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:0; }
.printing-profile-card dl div { padding:8px; border-radius:8px; background:#f6eff7; }
.printing-profile-card dt { color:#7e6e87; font-size:10px; }
.printing-profile-card dd { margin:3px 0 0; color:#493a52; font-size:12px; font-weight:700; }
.printing-edit { align-self:flex-start; margin-top:auto; border:0; padding:8px 0 0; background:transparent; color:#805087; font:600 12px 'DM Sans',sans-serif; cursor:pointer; }
.printing-active { display:flex; align-items:center; gap:8px; }
.printing-active input { width:auto; margin:0; }
.material-variation-toggle { display:flex; align-items:center; gap:8px; margin-top:18px; }
.material-variation-toggle input { width:auto; margin:0; }
.material-variation-fields { margin-top:2px; }
.material-variation-fields[hidden] { display:none !important; }
.pricing-variation-reference { margin-top:0; }
.pricing-variation-reference select { min-height:30px; font-size:12px; }
.pricing-table td:first-child:has(.pricing-variation-reference:not([hidden])) { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:end; gap:8px; }
.pricing-table td:first-child:has(.pricing-variation-reference:not([hidden])) > select[data-field="inventoryId"] { grid-column:1; }
.pricing-table td:first-child:has(.pricing-variation-reference:not([hidden])) .pricing-variation-reference { grid-column:2; margin:0; }
.pricing-table td:first-child:has(.pricing-variation-reference:not([hidden])) .pricing-variation-reference select { width:100%; }
.order-variations { margin:14px 0 2px; padding:12px; border:1px solid var(--line); border-radius:10px; background:#fbf7fc; }
.order-variations strong { display:block; margin-bottom:8px; color:var(--purple); font-size:.86rem; }
.order-variations label { display:block; margin-top:8px; }
.agenda-task,.marketing-item { display:flex; align-items:center; gap:11px; padding:11px; border:1px solid #e5dbe8; border-radius:10px; }
.agenda-task > i,.marketing-item > i { display:grid; place-items:center; flex:0 0 31px; width:31px; height:31px; border-radius:8px; background:#f1e4f3; color:#805087; }
.agenda-task > div,.marketing-item > div { min-width:0; flex:1; }
.agenda-task strong,.agenda-task small,.marketing-item strong,.marketing-item small { display:block; }
.agenda-task strong,.marketing-item strong { color:#493a52; font-size:13px; }
.agenda-task small,.marketing-item small { margin-top:3px; color:#7e6e87; font-size:11px; line-height:1.35; }
.agenda-task button { border:1px solid #cdb5d1; border-radius:8px; padding:7px 9px; background:#f8f2f9; color:#805087; font:600 11px 'DM Sans',sans-serif; cursor:pointer; }
.agenda-task.done { opacity:.65; }
.task-complete { color:#3f725e; font-size:11px; font-weight:700; }
.marketing-item select { width:auto; min-width:106px; margin:0; padding:7px 8px; font-size:11px; }
.marketing-registration p{margin:4px 0 12px;color:#7e6e87;font-size:13px;line-height:1.45}.marketing-list-card{min-width:0}.marketing-campaign-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:14px}.marketing-campaign-card{display:flex;min-height:186px;flex-direction:column;padding:14px;border:1px solid #e2d5e5;border-radius:10px;background:#fdfaff}.marketing-campaign-head{display:flex;align-items:flex-start;gap:9px}.marketing-campaign-head>div{min-width:0;flex:1}.marketing-campaign-head strong,.marketing-campaign-head small{display:block}.marketing-campaign-head strong{color:#493a52;font-size:14px}.marketing-campaign-head small{margin-top:3px;color:#7e6e87;font-size:11px}.marketing-campaign-head select{width:auto;max-width:95px;margin:0;padding:7px 23px 7px 8px;font-size:11px}.marketing-campaign-icon{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:8px;background:#f1e4f3;color:#805087}.marketing-campaign-card dl{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0 0}.marketing-campaign-card dl div{padding:8px;border-radius:8px;background:#f6eff7}.marketing-campaign-card dt{color:#7e6e87;font-size:10px}.marketing-campaign-card dd{margin:3px 0 0;color:#493a52;font-size:12px;font-weight:700}.marketing-campaign-card>p{margin:12px 0 0;color:#64546b;font-size:12px;line-height:1.4}.marketing-campaign-card .marketing-empty-note{color:#9b8aa1;font-style:italic}
.marketing-campaign-card{position:relative;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.marketing-campaign-card:hover{transform:translateY(-2px);border-color:#b98cc1;box-shadow:0 8px 18px #51365f1a}.marketing-campaign-card:focus-visible{outline:3px solid #d5b5da;outline-offset:2px}.marketing-campaign-delete{position:absolute;right:12px;bottom:11px;display:grid;place-items:center;width:28px;height:28px;border:0;border-radius:7px;background:transparent;color:#b24d62;cursor:pointer}.marketing-campaign-delete:hover{background:#fff0f2}
.marketing-campaign-card{min-height:160px}
.campaign-processes-editor{margin:4px 0 16px;padding:14px;border:1px solid #e6d8e8;border-radius:10px;background:#fcf9fc}.campaign-processes-editor .panel-title{align-items:center;margin-bottom:10px}.campaign-processes-editor h3{margin:0;color:#805087;font-size:16px}.campaign-processes-editor small{display:block;margin-top:3px;color:#7e6e87}.campaign-processes-editor .secondary{white-space:nowrap}.campaign-process-row{position:relative;margin-top:10px;padding:12px 42px 12px 12px;border:1px solid #eaddeb;border-radius:9px;background:#fff}.campaign-process-fields{display:grid;grid-template-columns:1fr 1fr;gap:9px}.campaign-period-fields{grid-column:1/-1}.campaign-period-fields>strong{display:block;margin-bottom:5px;color:#4b3c52;font-size:12px}.campaign-period-fields>div{display:grid;grid-template-columns:1fr 1fr;gap:9px}.campaign-period-fields small{display:inline;margin:0;font-size:10px}.campaign-process-fields label:last-child{grid-column:1/-1}.campaign-process-fields label{margin:0;font-size:12px}.campaign-process-fields input{margin-top:5px}.campaign-process-delete{position:absolute;top:12px;right:8px;width:28px;height:28px;padding:0;border:0;border-radius:7px;background:transparent;color:#b24d62;cursor:pointer}.campaign-process-delete:hover{background:#fff0f2}.campaign-process-empty{margin:0;padding:12px;border:1px dashed #d9c1dd;border-radius:8px;color:#8a748f;font-size:12px;text-align:center}
.campaign-period-fields>div{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;align-items:end}.campaign-period-fields>div>label{min-width:0!important}.campaign-period-fields>div input{box-sizing:border-box;width:100%}
.campaign-process-custom{display:grid;grid-column:1/-1;grid-template-columns:1fr 1fr;gap:9px}.campaign-process-custom label{min-width:0}
.campaign-date-range{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:9px!important}.campaign-date-range label{min-width:0!important}.campaign-date-range input{width:100%!important;min-width:0}
.campaign-period-fields .campaign-date-range>label:last-child{grid-column:auto!important}
@media (max-width:620px){.campaign-process-fields,.campaign-period-fields>div{grid-template-columns:1fr}.campaign-process-fields label:last-child{grid-column:auto}.campaign-processes-editor .panel-title{align-items:flex-start}.campaign-processes-editor .secondary{font-size:11px}}
@media (max-width:800px) { .agenda-layout { grid-template-columns:1fr; } .agenda-calendar { overflow-x:auto; } .agenda-calendar .panel-title { min-width:620px; } .calendar-weekdays,.calendar-grid { min-width:620px; } .calendar-day { min-height:58px; } .calendar-grid.calendar-weeks-6 .calendar-day { min-height:50px; } }
@media (max-width:520px) { main > header { align-items:center; } .agenda-header-action { padding:9px 11px; font-size:11px; } .agenda-calendar-title h2 { min-width:154px; font-size:16px; } }

/* Administração e relatórios. */
.user-status { border-radius:999px; padding:4px 8px; font-size:10px; font-weight:700; }
.user-status.active { background:#e7f0ea; color:#3f725e; }
.user-status.inactive { background:#f8e4e7; color:#a34b60; }
.user-access-row { cursor:pointer; transition:background .15s ease,border-color .15s ease; }
.user-access-row:hover,.user-access-row:focus { border-color:#b998bd; background:#faf6fb; outline:none; }
.user-access-row.readonly { cursor:default; opacity:.78; }
.user-access-row.readonly:hover { border-color:#e5dbe8; background:transparent; }
.user-active-control { display:flex; align-items:center; gap:8px; }
.user-active-control input { display:inline-block; width:auto; margin:0; }
.user-edit-dialog { width:min(560px,94vw); max-height:88vh; overflow:auto; }
.force-password-dialog { width:min(440px,92vw); }
.force-password-dialog form { padding:24px; }
.force-password-dialog .dialog-head { margin-bottom:6px; }
.force-password-copy { margin:0; color:#7e6e87; line-height:1.45; }
.force-password-dialog .login-error { min-height:18px; }
.activity-critical { display:inline-block; margin-left:6px; color:#a05f20; font-weight:700; }
.user-menu-permissions { margin-top:16px; padding:13px; border:1px solid #e5dbe8; border-radius:10px; background:#fcf9fc; }
.user-menu-permissions > strong,.user-menu-permissions > small { display:block; }
.user-menu-permissions > strong { color:#805087; font-size:14px; }
.user-menu-permissions > small { margin-top:3px; color:#7e6e87; font-size:11px; line-height:1.35; }
#userPermissionGroups { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; margin-top:11px; }
#userPermissionGroups fieldset { min-width:0; margin:0; padding:9px; border:1px solid #eadfeb; border-radius:8px; }
#userPermissionGroups legend { padding:0 4px; color:#805087; font-size:10px; font-weight:700; letter-spacing:.6px; text-transform:uppercase; }
#userPermissionGroups label { display:flex; align-items:center; gap:6px; margin:7px 0 0; color:#493a52; font-size:12px; font-weight:500; }
#userPermissionGroups input { display:inline-block; width:auto; margin:0; }
#userPermissionGroups .user-create-actions { grid-column:1 / -1; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 10px; }
#userPermissionGroups .user-create-actions legend { grid-column:1 / -1; }
aside .nav[hidden],aside .nav-group[hidden],.sidebar-create[hidden] { display:none !important; }
@media (max-width:520px) { #userPermissionGroups { grid-template-columns:1fr; } }
@media (max-width:520px) { #userPermissionGroups .user-create-actions { grid-template-columns:1fr; } }
.report-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:13px; }
.finance-summary { margin-bottom:14px; }
.finance-summary .report-metric { min-height:118px; }
.finance-summary .report-metric strong { margin-top:8px; }
.finance-summary .report-metric small { display:block; margin-top:5px; color:#7e6e87; }
.finance-receive { border-top:3px solid #57936e; }
.finance-pay { border-top:3px solid #c37c5f; }
.finance-balance { border-top:3px solid #805087; }
.finance-overdue { border-top:3px solid #bf5353; }
.finance-toolbar { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.finance-toolbar p { margin:0; }
.finance-toolbar .primary { white-space:nowrap; }
.finance-filters input[type="month"] { width:150px; margin:0; }
.finance-month-navigator { display:flex; align-items:center; justify-content:space-between; gap:6px; min-width:190px; padding:3px; border:1px solid #ddcbe0; border-radius:9px; background:#fff; }
.finance-month-navigator strong { min-width:110px; color:#805087; font-size:12px; text-align:center; text-transform:capitalize; }
.finance-month-navigator .secondary { width:30px; min-width:30px; height:30px; padding:0; border-color:transparent; box-shadow:none; }
.finance-month-navigator .secondary:hover { border-color:#c7adcb; }
main > header .finance-month-navigator { width:220px; margin-left:auto; }
main:not(:has(.finance-list-card)) > header .finance-month-navigator { display:none; }
.finance-row { cursor:pointer; }
.finance-row:hover { background:#fbf7fc; }
.finance-row.finance-vencido { background:#fff7f6; }
.finance-row.finance-hoje { background:#fffbf2; }
.finance-status { display:inline-block; padding:4px 8px; border-radius:99px; font-size:11px; font-weight:700; }
.finance-status.aberto { background:#eee7f1; color:#75577d; }
.finance-status.hoje { background:#fff0d9; color:#a56b23; }
.finance-status.vencido { background:#fae1df; color:#a43734; }
.finance-status.concluido { background:#e1f0ea; color:#356b5a; }
.finance-settle { padding:8px 11px; border:0; border-radius:8px; background:#93619d; color:#fff; font:600 11px 'DM Sans',sans-serif; white-space:nowrap; cursor:pointer; box-shadow:0 3px 8px #8050872b; }
.finance-settle:hover { background:#805087; }
.finance-settle:focus-visible { outline:2px solid #c7adcb; outline-offset:2px; }
.secondary { display:inline-flex; align-items:center; justify-content:center; gap:7px; border:1px solid #c7adcb; border-radius:8px; padding:8px 11px; background:#fff; color:#805087; font:600 12px 'DM Sans',sans-serif; cursor:pointer; box-shadow:0 2px 6px #80508716; }
.secondary:hover { background:#f5eef6; border-color:#93619d; }
.secondary:focus-visible { outline:2px solid #c7adcb; outline-offset:2px; }
.finance-recurring-costs { margin-top:14px; }
.finance-recurring-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.finance-recurring-list > div { display:grid; grid-template-columns:1fr auto; gap:3px 10px; padding:11px; border:1px solid #e5dbe8; border-radius:9px; background:#fbf8fc; }
.finance-recurring-list strong { font-size:13px; }
.finance-recurring-list span { grid-column:1/2; color:#7e6e87; font-size:11px; }
.finance-recurring-list b { grid-column:2; grid-row:1/3; align-self:center; color:#805087; font-size:13px; }
.fixed-cost-row { cursor:pointer; }
.fixed-cost-row:hover { background:#fbf7fc; }
.fixed-cost-actions-head,.fixed-cost-actions { width:42px; text-align:right; }
.fixed-cost-actions { padding:8px 10px !important; }
.fixed-cost-delete { display:inline-grid; place-items:center; width:28px; height:28px; border:0; border-radius:7px; padding:0; background:transparent; color:#a34b60; cursor:pointer; }
.fixed-cost-delete:hover { background:#fbecef; }
@media (max-width:800px) { .finance-recurring-list { grid-template-columns:1fr; } }
.check-line { display:flex; align-items:center; gap:7px; }
.check-line input { width:auto; margin:0; accent-color:#93619d; }
.form-note { margin:13px 0 0; color:#7e6e87; font-size:12px; line-height:1.45; }
@media (max-width:800px) { .finance-toolbar { align-items:stretch; flex-direction:column; } .finance-toolbar .primary { width:100%; } .finance-filters input[type="month"] { flex:1; width:auto; } }
.reports-toolbar { display:flex; align-items:end; justify-content:space-between; gap:12px; margin-bottom:14px; }
.reports-toolbar label { margin:0; color:#7e6e87; font-size:11px; }
.reports-toolbar input { width:176px; margin-top:5px; }
.reports-toolbar .primary { display:inline-flex; align-items:center; gap:8px; padding:10px 14px; }
.report-metric { min-height:132px; display:flex; flex-direction:column; justify-content:space-between; }
.report-metric > i { color:#805087; font-size:19px; }
.report-metric span { color:#7e6e87; font-size:12px; }
.report-metric strong { color:#493a52; font-size:23px; }
.report-note { margin-top:14px; }
.report-note h2 { margin-bottom:5px; }
.report-note p { margin:0; color:#7e6e87; }
@media (max-width:1000px) { .report-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:520px) { .report-grid { grid-template-columns:1fr; } }
@media (max-width:520px) { .reports-toolbar { align-items:stretch; flex-direction:column; } .reports-toolbar input { width:100%; } .reports-toolbar .primary { justify-content:center; } }

/* Menu lateral recolhível. */
aside { transition:width .2s ease; }
.collapsed-nav-items { display:none; }
body.sidebar-collapsed aside { width:72px; }
body.sidebar-collapsed aside .brand { height:81px; padding:14px 8px; }
body.sidebar-collapsed aside .brand img { width:54px; }
body.sidebar-collapsed aside .collapse { display:grid; place-items:center; padding:15px 0; }
body.sidebar-collapsed aside .collapse span { display:none; }
body.sidebar-collapsed aside nav { padding:8px; overflow-y:auto; }
body.sidebar-collapsed aside .nav-group { display:none; }
body.sidebar-collapsed aside .collapsed-nav-items { display:grid; gap:3px; }
body.sidebar-collapsed aside .nav-group summary { display:none; }
body.sidebar-collapsed aside .nav-group > div { display:grid !important; padding:0; }
body.sidebar-collapsed aside .nav { display:grid; place-items:center; min-height:42px; padding:9px 0; font-size:0; }
body.sidebar-collapsed aside .nav b { width:auto; margin:0; font-size:17px; }
body.sidebar-collapsed .sidebar-create { margin:8px; }
body.sidebar-collapsed .sidebar-create #createMenuButton { position:relative; display:grid; place-items:center; height:40px; padding:0; font-size:0; }
body.sidebar-collapsed .sidebar-create #createMenuButton::after { position:absolute; inset:0; display:grid; place-items:center; content:'+'; font-size:18px; line-height:1; }
body.sidebar-collapsed .sidebar-create .create-menu-popover { left:calc(100% + 8px); bottom:auto; top:0; }
body.sidebar-collapsed aside .sidebar-note { display:none; }
body.sidebar-collapsed aside:hover { width:245px; z-index:40; box-shadow:8px 0 20px #51365f1c; }
body.sidebar-collapsed aside:hover .brand { padding:16px 21px; }
body.sidebar-collapsed aside:hover .brand img { width:145px; }
body.sidebar-collapsed aside:hover .collapse { display:block; padding:15px 20px; }
body.sidebar-collapsed aside:hover .collapse span { display:inline; }
body.sidebar-collapsed aside:hover nav { padding:8px 10px; }
body.sidebar-collapsed aside:hover .collapsed-nav-items { gap:3px; }
body.sidebar-collapsed aside:hover .nav-group > div { padding:4px 0 6px; }
body.sidebar-collapsed aside:hover .nav { display:flex; align-items:center; min-height:0; padding:11px 12px; font-size:13px; }
body.sidebar-collapsed aside:hover .nav b { width:22px; margin-right:7px; font-size:17px; }
body.sidebar-collapsed aside:hover .sidebar-create { margin:8px 13px 0; }
body.sidebar-collapsed aside:hover .sidebar-create #createMenuButton { padding:11px 16px; font-size:13px; }
body.sidebar-collapsed aside:hover .sidebar-create #createMenuButton::after { display:none; }
body.sidebar-collapsed aside:hover .sidebar-create .create-menu-popover { left:0; bottom:calc(100% + 8px); top:auto; }
body.sidebar-collapsed aside:hover .sidebar-note { display:block; }

/* O menu lateral segue a paleta roxa também no modo recolhido. */
aside .collapse { color:#805087; }
aside .collapse:hover { background:#f5eef6; color:#70477a; }
aside .collapse,aside nav,aside .sidebar-note { border-right-color:#e5dbe8; }

/* Chamados: cartões resumidos e leitura completa em uma janela própria. */
.ticket-list{display:grid;gap:10px}.ticket-item{position:relative;display:block;width:100%;padding:14px 42px 14px 15px;border:1px solid #e7dbe9;border-left:4px solid #c48a92;border-radius:10px;background:#fff;text-align:left;color:#493a52;cursor:pointer;transition:transform .15s,box-shadow .15s,border-color .15s}.ticket-item:hover{transform:translateY(-1px);border-color:#ad75b5;box-shadow:0 7px 16px #51365f14}.ticket-item.answered{border-left-color:#6d9d86;background:#fbfefc}.ticket-item-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.ticket-item-head strong{font-size:15px}.ticket-item-head span,.ticket-detail-status{padding:4px 8px;border-radius:99px;background:#f6e5e8;color:#9d4a59;font-size:11px;font-weight:700;white-space:nowrap}.ticket-item.answered .ticket-item-head span,.ticket-detail-status.answered{background:#e1f0e7;color:#39705a}.ticket-item p{display:-webkit-box;overflow:hidden;margin:7px 0;color:#6e5e74;font-size:13px;line-height:1.4;-webkit-line-clamp:2;-webkit-box-orient:vertical}.ticket-item small{color:#8f7b96;font-size:11px}.ticket-item>i{position:absolute;top:50%;right:15px;transform:translateY(-50%);color:#93619d;font-size:12px}.ticket-details-dialog{width:min(620px,calc(100vw - 32px));padding:0;border:0;border-radius:16px;box-shadow:0 24px 60px #34203a45}.ticket-details-dialog::backdrop{background:#2e20387a}.ticket-details-shell{background:#fff}.ticket-details-content{padding:0 24px 24px}.ticket-detail-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:4px 0 18px}.ticket-detail-meta small{color:#8f7b96;font-size:12px}.ticket-details-content h3{margin:0 0 16px;color:#4b3b54;font-size:20px}.ticket-details-content section{padding:14px;border:1px solid #eadfed;border-radius:10px;background:#fcf9fc}.ticket-details-content section>strong{display:block;color:#805087;font-size:12px}.ticket-details-content section p{margin:7px 0 0;white-space:pre-wrap;line-height:1.5;color:#574761}.ticket-details-content .ticket-response{margin-top:12px;background:#edf6f0;border-color:#d3e6da}.ticket-details-content .ticket-response strong{color:#39705a}.ticket-details-content .ticket-response small{display:block;margin-top:8px;color:#6a8776;font-size:11px}.ticket-waiting{margin-top:12px;color:#7b657e;font-size:13px}.ticket-waiting i{margin-right:7px;color:#93619d}.ticket-thread{display:grid;gap:9px;margin-top:14px}.ticket-thread>strong{color:#805087;font-size:12px}.ticket-details-content .ticket-client-message{background:#f5eef7;border-color:#e4d4e8}.ticket-client-message small{display:block;margin-top:8px;color:#8f7b96;font-size:11px}.ticket-reply-dialog{width:min(540px,calc(100vw - 32px));padding:0;border:0;border-radius:14px;box-shadow:0 20px 48px #34203a45}.ticket-reply-dialog::backdrop{background:#2e20387a}.ticket-reply-dialog form{padding:22px;background:#fff}.ticket-reply-dialog textarea{width:100%;margin-top:7px;padding:11px;border:1px solid #ddcbe0;border-radius:8px;resize:vertical;font:inherit}.ticket-reply-dialog form button[type="submit"]{margin-top:18px}
