/* =========================================================
   SERVENTIAX PROFISSIONAL — VISUAL CONTRACT V2
   Impacto: GLOBAL · camada final dos módulos profissionais.
   Objetivo: harmonizar superfícies sem alterar lógica jurídica.
   ========================================================= */

/* Contrato tipográfico e superfícies-base */
.qx-shell,.vm-shell,.admin-page,.settings-page,.team-page,.jx-page,.qa-archive,.user-manual,.sx-start-hub,.sx-assistant-runtime{
  font-family:var(--sx-font)!important;
  color:var(--sx-text);
}
.qx-shell{
  --navy:var(--sx-midnight);
  --navy-2:var(--sx-midnight-soft);
  --ink:var(--sx-graphite);
  --muted:var(--sx-text-muted);
  --caramel:var(--sx-gold);
  --caramel-dark:var(--sx-gold-dark);
  --sand:var(--sx-ivory);
  --cream:var(--sx-surface-soft);
  --line:var(--sx-line);
  --white:var(--sx-white);
  background:var(--sx-surface-page);
}
.user-manual{
  --navy:var(--sx-midnight);
  --gold:var(--sx-gold);
  --teal:var(--sx-teal);
}
.vm-shell,.admin-page,.settings-page,.team-page,.jx-page,.qa-archive{
  background:var(--sx-ivory-gradient)!important;
}

/* Identidade institucional */
.qx-brand img,.vm-brand img{content:url('/serventiax-symbol.svg');object-fit:contain}
.qx-hero,.vm-hero,.jx-topbar,.logo-preview-frame,.team-security-card{
  background:
    radial-gradient(circle at 88% 18%,rgba(201,154,93,.11),transparent 25%),
    var(--sx-navy-gradient)!important;
}
.qx-hero,.vm-hero,.jx-topbar{border-bottom:1px solid rgba(201,154,93,.42)!important}
.qx-hero .eyebrow,.vm-hero .eyebrow,.jx-back{color:var(--sx-gold-light)!important}
.qx-watermark,.vm-watermark,.admin-watermark,.settings-bg-symbol,.team-bg-symbol{filter:saturate(.75)}

/* Cards e painéis — geometria única */
:is(.qx-knowledge-head,.qx-guide-panel,.qx-guide-intro,.qx-document-group,.qx-legal-panel,.qx-review-panel,
.vm-search-card,.vm-result,.vm-side-card,.ep-panel,.qa-header,.qa-dossier-head,.qa-preventive,.qa-review-box,.qa-timeline,
.admin-panel,.admin-metrics article,.settings-panel,.settings-current,.team-panel,.team-metrics article,.team-modal,
.jx-panel,.jx-summary article,.jx-source,.jx-compact,.user-manual,.sx-start-hub,.sx-assistant-chat,.sx-assistant-window,.sx-status-panel){
  border-color:var(--sx-line)!important;
  box-shadow:var(--sx-shadow-sm)!important;
}
:is(.qx-knowledge-head,.qx-guide-intro,.qx-document-group,.vm-search-card,.vm-result,.vm-side-card,.ep-panel,
.qa-dossier-head,.qa-preventive,.qa-timeline,.admin-panel,.admin-metrics article,.settings-panel,.team-panel,
.team-metrics article,.jx-panel,.jx-summary article,.jx-source,.user-manual,.sx-start-hub,.sx-assistant-chat,.sx-status-panel){
  background:var(--sx-surface-card)!important;
}
:is(.qx-guide-panel,.qa-archive,.qa-detail-panel,.settings-page,.admin-page,.team-page,.jx-page){
  background-color:var(--sx-surface-page)!important;
}
:is(.admin-panel,.settings-panel,.team-panel,.team-modal,.ep-panel,.user-manual,.sx-start-hub,.sx-assistant-chat,.sx-status-panel){border-radius:var(--sx-radius-xl)!important}
:is(.vm-search-card,.vm-result,.vm-side-card,.jx-panel,.jx-summary article,.jx-source,.qa-dossier-head,.qa-preventive,.qa-timeline){border-radius:var(--sx-radius-lg)!important}

/* Cabeçalhos e hierarquia */
:is(.qx-brand strong,.qx-knowledge-head h2,.qx-guide-intro h2,.qx-panel-heading h2,.vm-result h3,.vm-side-card h3,
.ep-head h2,.qa-header h2,.qa-dossier-head h3,.admin-header h1,.admin-panel h2,.settings-header h1,.settings-panel h2,
.team-header h1,.team-panel-title h2,.jx-topbar h1,.jx-panel h2,.user-manual__header h2,.user-manual__article-head h3,
.sx-start-hub h2,.sx-status-panel h2){
  color:var(--sx-midnight)!important;
  letter-spacing:var(--sx-title-tracking);
}
:is(.qx-hero h1,.vm-hero h1,.jx-topbar h1){color:var(--sx-text-on-dark)!important;font-weight:var(--sx-weight-bold)}
:is(.qx-hero p,.vm-hero p,.jx-topbar p){color:var(--sx-text-on-dark-muted)!important}
:is(.qx-kicker,.qx-shell .eyebrow,.vm-kind,.ep-basis strong,.qa-diff-group h5,.user-manual .eyebrow,.sx-start-hub__eyebrow,.sx-status-panel .eyebrow){color:var(--sx-gold-dark)!important}

/* Controles e formulários */
:is(.qx-shell,.vm-shell,.ep-panel,.qa-archive,.admin-page,.settings-page,.team-page,.jx-page,.user-manual,.sx-start-hub,.sx-assistant-runtime) :is(input,select,textarea){
  font-family:var(--sx-font)!important;
  color:var(--sx-text)!important;
  background:var(--sx-white)!important;
  border-color:var(--sx-line-strong)!important;
}
:is(.qx-shell,.vm-shell,.ep-panel,.qa-archive,.admin-page,.settings-page,.team-page,.jx-page,.user-manual,.sx-assistant-runtime) :is(input,select,textarea):focus{
  border-color:var(--sx-gold)!important;
  box-shadow:var(--sx-focus-ring)!important;
  outline:0;
}
:is(.qx-shell,.vm-shell,.ep-panel,.qa-archive,.admin-page,.settings-page,.team-page,.jx-page,.user-manual,.sx-start-hub,.sx-assistant-runtime) :is(button,a):focus-visible{
  outline:2px solid var(--sx-gold)!important;
  outline-offset:2px!important;
}

/* CTAs primários */
:is(.qx-guide-cta,.vm-result-actions .use,.ep-calculate,.qa-current-actions button,.admin-primary,.settings-primary,.team-primary,.upload-button){
  background:var(--sx-navy-gradient)!important;
  color:var(--sx-white)!important;
  border-color:var(--sx-midnight)!important;
  box-shadow:var(--sx-shadow-xs)!important;
}
:is(.qx-guide-cta,.ep-calculate,.admin-primary,.settings-primary,.team-primary){
  transition:transform var(--sx-duration) var(--sx-ease),box-shadow var(--sx-duration) var(--sx-ease);
}
:is(.qx-guide-cta,.ep-calculate,.admin-primary,.settings-primary,.team-primary):hover:not(:disabled){
  transform:translateY(-1px);
  box-shadow:var(--sx-shadow-sm)!important;
}

/* Ouro para seleção/ênfase, teal para confirmação/ação segura */
:is(.qx-tabs button.active,.qx-service-picker button.active,.vm-result:hover,.vm-result.selected,.qa-metrics button.active,
.qa-protocol-list>button.active,.team-actions button:hover,.sx-start-action:hover){border-color:var(--sx-gold)!important}
:is(.qx-step-number,.team-avatar,.ep-icon){background:var(--sx-midnight)!important;color:var(--sx-gold-light)!important}
:is(.vm-context svg,.vm-status svg,.ep-rule-note svg,.jx-governance>svg,.jx-national>svg,.user-manual__safety svg){color:var(--sx-teal)!important}
:is(.team-module-grid button.selected .module-check){background:var(--sx-teal)!important;border-color:var(--sx-teal)!important}

/* Vade Mecum — texto normativo é protagonista */
.vm-official-text,.vm-result-law>pre{
  color:var(--sx-midnight)!important;
  background:var(--sx-surface-soft)!important;
  border-left-color:var(--sx-gold)!important;
  font-size:13px!important;
  line-height:1.68!important;
}
.vm-result-law{border-color:var(--sx-line)!important;border-left-color:var(--sx-gold)!important;background:var(--sx-surface-soft)!important}
.vm-review-bar,.vm-governance{background:var(--sx-midnight)!important}

/* QualificaX — leitura jurídica e fluxo */
.qx-service-picker{background:var(--sx-surface-soft)!important;border-color:var(--sx-line)!important}
.qx-tabs{border-color:var(--sx-line)!important}
.qx-tabs button.active{border-bottom-color:var(--sx-gold)!important;background:rgba(201,154,93,.08)!important}
.qx-procedure-list>article{border-color:var(--sx-line)!important;box-shadow:var(--sx-shadow-xs)}
.qx-document-group.group-core>header{background:var(--sx-success-soft)!important}
.qx-document-group.group-conditional>header{background:var(--sx-warning-soft)!important}
.qx-document-group.group-avoid>header{background:var(--sx-danger-soft)!important}

/* EmolumentosX */
.ep-panel{background:linear-gradient(180deg,var(--sx-white),var(--sx-surface-soft))!important}
.ep-matrix>div,.ep-result-grid>div,.ep-act-summary{border-color:var(--sx-line)!important;background:var(--sx-surface-soft)!important}
.ep-result-grid .emphasis{background:var(--sx-midnight)!important;border-color:var(--sx-midnight)!important}
.ep-total{color:var(--sx-success)!important}
.ep-basis{border-left-color:var(--sx-gold)!important;background:rgba(201,154,93,.07)!important}

/* Arquivo/Auditoria — preserva estados semânticos */
.qa-command-bar,.qa-list-panel,.qa-progress-card{background:var(--sx-surface-soft)!important;border-color:var(--sx-line)!important}
.qa-progress-line span{background:var(--sx-gold-gradient)!important}
.qa-review-box{border-color:rgba(201,154,93,.55)!important;background:var(--sx-warning-soft)!important}
.qa-current-actions button.secondary{background:var(--sx-white)!important;color:var(--sx-midnight)!important;border:1px solid var(--sx-line-strong)!important}

/* Administração, configurações e equipe */
.admin-page,.settings-page,.team-page{
  background:
    radial-gradient(circle at 92% 4%,rgba(201,154,93,.075),transparent 22%),
    var(--sx-ivory-gradient)!important;
}
.admin-metric-icon,.admin-card-icon,.upload-icon{background:rgba(201,154,93,.14)!important;color:var(--sx-gold-dark)!important}
.admin-secondary,.settings-secondary{background:var(--sx-surface-page-deep)!important;color:var(--sx-midnight)!important}
.team-panel:before,.team-modal:before{background:var(--sx-gold)!important}

/* Jurisdição e base normativa */
.jx-summary article>svg,.jx-engine>svg,.jx-compact-head>svg,.jx-empty svg{color:var(--sx-gold)!important}
.jx-source-foot button,.jx-reference,.jurisdiction-pill-runtime strong{color:var(--sx-success)!important}
.jx-overlay-host{background:var(--sx-surface-page)!important}

/* Manual/Biblioteca de ajuda */
.user-manual{background:var(--sx-white)!important}
.user-manual__mark{background:var(--sx-navy-gradient)!important;color:var(--sx-gold-light)!important}
.user-manual__profiles button.active,.user-manual__steps li>span{background:var(--sx-success-soft)!important;color:var(--sx-success)!important;border-color:var(--sx-teal)!important}
.user-manual__topics button.active{background:var(--sx-surface-page)!important;color:var(--sx-midnight)!important}
.user-manual__actions button.primary{background:var(--sx-midnight)!important;color:var(--sx-white)!important}

/* Hub inicial profissional */
.sx-start-hub{
  background:
    radial-gradient(circle at 94% 8%,rgba(201,154,93,.10),transparent 24%),
    linear-gradient(180deg,var(--sx-white),var(--sx-surface-soft))!important;
  border-color:var(--sx-line)!important;
}
.sx-start-hub__badge{background:var(--sx-midnight)!important;color:var(--sx-white)!important}
.sx-start-hub__badge:before{color:var(--sx-gold-light)!important}
.sx-start-action{background:var(--sx-white)!important;border-color:var(--sx-line)!important;color:var(--sx-midnight)!important;border-radius:var(--sx-radius-lg)!important}
.sx-start-action__icon{background:var(--sx-surface-page)!important;color:var(--sx-midnight)!important}
.sx-start-action:focus-visible{outline:2px solid var(--sx-gold)!important;outline-offset:2px!important}

/* Assistente/IA global — mesmo padrão do produto, sem mudar comportamento */
.sx-avatar-ring{background:conic-gradient(from 20deg,var(--sx-gold),var(--sx-teal),var(--sx-midnight),var(--sx-gold))!important}
.sx-avatar-core,.sx-assistant-chat>header,.sx-window-header{background:var(--sx-navy-gradient)!important}
.sx-mini-avatar{background:var(--sx-gold)!important}
.sx-assistant-bubble{border-color:rgba(201,154,93,.55)!important;color:var(--sx-midnight)!important;box-shadow:var(--sx-shadow-md)!important}
.sx-assistant-chat,.sx-assistant-window,.sx-status-panel{background:var(--sx-white)!important;border-color:var(--sx-line)!important}
.sx-chat-message,.sx-status-proof{background:var(--sx-success-soft)!important}
.sx-chat-message svg,.sx-assistant-chat>small svg,.sx-status-proof svg{color:var(--sx-teal)!important}
.sx-chat-quick button{border-color:var(--sx-line)!important;color:var(--sx-midnight)!important}
.sx-chat-quick button:hover{border-color:var(--sx-teal)!important;color:var(--sx-success)!important;background:var(--sx-success-soft)!important}
.sx-assistant-chat form button,.sx-context-error button,.sx-status-panel button{background:var(--sx-midnight)!important;color:var(--sx-white)!important}
.sx-assistant-window{background:var(--sx-surface-page)!important}

/* Consistência de movimento */
@media(prefers-reduced-motion:reduce){
  .qx-shell *,.vm-shell *,.ep-panel *,.qa-archive *,.admin-page *,.settings-page *,.team-page *,.jx-page *,.user-manual *,.sx-start-hub *,.sx-assistant-runtime *{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
    scroll-behavior:auto!important;
  }
}

/* Responsividade transversal sem reescrever layouts específicos */
@media(max-width:720px){
  :is(.admin-page,.settings-page,.team-page){padding-left:16px!important;padding-right:16px!important}
  :is(.admin-panel,.settings-panel,.team-panel,.ep-panel,.user-manual,.sx-start-hub){border-radius:var(--sx-radius-lg)!important}
  :is(.qx-hero,.vm-hero,.jx-topbar){padding-left:20px!important;padding-right:20px!important}
  .sx-start-hub{padding-left:16px!important;padding-right:16px!important}
}