/*
 * NVsign UI 0.1.0
 * Especificação Visual v1.0
 * Fonte: Montserrat
 * Primária: #9cda2b
 * Dark: #303133
 */

:root{
  --nv-green:#9cda2b;
  --nv-green-hover:#86c024;
  --nv-dark:#303133;
  --nv-text:#303133;
  --nv-muted:#777b82;
  --nv-border:#e5e7eb;
  --nv-soft:#f8f9fa;
  --nv-danger:#dc2626;
  --nv-danger-hover:#b91c1c;

  --nv-space-1:4px;
  --nv-space-2:8px;
  --nv-space-3:12px;
  --nv-space-4:16px;
  --nv-space-5:20px;
  --nv-space-6:24px;
  --nv-space-7:32px;
}

/* ==========================================================
   BASE TYPOGRAPHY
   ========================================================== */

html body .nvsign-wrap,
html body .nvsign-media-wrap,
html body .nvsign-profile,
html body .nvsign-card,
html body .nvsign-quota{
  font-family:"Montserrat",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif !important;
  color:var(--nv-text) !important;
}

html body .nvsign-wrap *,
html body .nvsign-media-wrap *,
html body .nvsign-profile *,
html body .nvsign-card *,
html body .nvsign-quota *{
  font-family:"Montserrat",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif !important;
}

/* Limitar o peso visual: 600 é o máximo normal da interface */
html body .nvsign-wrap h1,
html body .nvsign-wrap h2,
html body .nvsign-wrap h3,
html body .nvsign-media-wrap h1,
html body .nvsign-media-wrap h2,
html body .nvsign-media-wrap h3,
html body .nvsign-profile h1,
html body .nvsign-profile h2,
html body .nvsign-profile h3{
  font-weight:600 !important;
}

html body .nvsign-wrap strong,
html body .nvsign-media-wrap strong,
html body .nvsign-profile strong,
html body .nvsign-quota strong{
  font-weight:500 !important;
}

/* ==========================================================
   PAGE WIDTH / RHYTHM
   ========================================================== */

html body .nvsign-wrap,
html body .nvsign-media-wrap,
html body .nvsign-profile{
  max-width:1100px !important;
  width:100% !important;
  margin-left:auto !important;
  margin-right:auto !important;
  padding:32px 16px !important;
  box-sizing:border-box !important;
}

/* ==========================================================
   CARDS
   ========================================================== */

html body .nvsign-wrap .nvsign-card,
html body .nvsign-profile .nvsign-profile-section,
html body .nvsign-media-wrap .nvsign-media-item{
  background:#fff !important;
  border:1px solid var(--nv-border) !important;
  border-radius:14px !important;
  box-shadow:0 3px 12px rgba(0,0,0,.04) !important;
}

html body .nvsign-wrap .nvsign-card{
  padding:24px !important;
}

html body .nvsign-profile .nvsign-profile-section{
  padding:24px !important;
  margin-bottom:24px !important;
}

/* ==========================================================
   TITLES / TEXT
   ========================================================== */

html body .nvsign-media-head h2,
html body .nvsign-profile-header h2{
  font-size:24px !important;
  line-height:1.25 !important;
  font-weight:600 !important;
}

html body .nvsign-headline h3,
html body .nvsign-profile-section-head h3{
  font-size:17px !important;
  line-height:1.3 !important;
  font-weight:600 !important;
}

html body .nvsign-list-head strong{
  font-size:14px !important;
  font-weight:600 !important;
}

html body .nvsign-mini,
html body .nvsign-muted,
html body .nvsign-help,
html body .nvsign-media-meta{
  font-weight:400 !important;
}

html body .nvsign-row-title > a,
html body .nvsign-media-name{
  font-weight:500 !important;
}

/* ==========================================================
   BUTTONS
   ========================================================== */

html body .nvsign-wrap .nvsign-btn,
html body .nvsign-media-wrap .nvsign-media-btn,
html body .nvsign-profile .nvsign-btn{
  min-height:40px !important;
  font-size:12px !important;
  font-weight:600 !important;
  border-radius:11px !important;
}

html body .nvsign-media-actions a,
html body .nvsign-media-delete{
  font-weight:500 !important;
}

html body .nvsign-link{
  font-weight:500 !important;
}

/* ==========================================================
   FORM FIELDS
   ========================================================== */

html body .nvsign-wrap input[type="text"],
html body .nvsign-wrap input[type="search"],
html body .nvsign-wrap input[type="number"],
html body .nvsign-wrap input[type="datetime-local"],
html body .nvsign-wrap select,
html body .nvsign-media-wrap input,
html body .nvsign-media-wrap select,
html body .nvsign-profile input,
html body .nvsign-profile textarea,
html body .nvsign-profile select{
  font-size:13px !important;
  font-weight:400 !important;
  border-radius:11px !important;
}

html body .nvsign-profile .nvsign-field label,
html body .nvsign-wrap .nvsign-grid label{
  font-weight:500 !important;
}

html body .nvsign-profile .nvsign-grid{
  column-gap:20px !important;
  row-gap:18px !important;
}

html body .nvsign-profile .nvsign-actions{
  margin-top:20px !important;
}

html body .nvsign-profile .nvsign-help{
  margin-top:12px !important;
}

/* ==========================================================
   PROFILE
   ========================================================== */

html body .nvsign-profile-header{
  margin-bottom:24px !important;
}

html body .nvsign-profile-section-head{
  margin-bottom:20px !important;
  padding-bottom:16px !important;
}

html body .nvsign-profile-section-head p,
html body .nvsign-profile-header p{
  font-weight:400 !important;
}

/* ==========================================================
   SCREEN DASHBOARD
   ========================================================== */

html body .nvsign-list-head{
  margin-bottom:16px !important;
}

html body .nvsign-monitor-summary{
  gap:12px !important;
  margin:14px 0 24px !important;
}

html body .nvsign-stat{
  padding:13px 15px !important;
}

html body .nvsign-stat span{
  font-size:23px !important;
  font-weight:600 !important;
}

html body .nvsign-stat small{
  font-weight:400 !important;
}

html body #nvsign-table{
  margin-top:12px !important;
  padding-top:20px !important;
}

html body #nvsign-table .nvsign-row{
  gap:20px !important;
  align-items:center !important;
  padding:20px 0 !important;
}

html body #nvsign-table .nvsign-row:first-child{
  padding-top:4px !important;
}

html body .nvsign-screen-primary{
  padding-bottom:14px !important;
}

html body .nvsign-screen-details{
  padding-top:14px !important;
}

html body .nvsign-row-title{
  margin-bottom:5px !important;
  gap:10px !important;
}

html body .nvsign-device-lines{
  margin-top:8px !important;
}

html body .nvsign-device-line{
  margin:5px 0 !important;
  line-height:1.45 !important;
}

html body .nvsign-screen-config{
  margin-top:9px !important;
}

html body .nvsign-status-badge{
  font-weight:500 !important;
}

html body .nvsign-monitor-line span,
html body .nvsign-device-list-id{
  font-weight:400 !important;
}

/* ==========================================================
   STORAGE / QUOTA
   ========================================================== */

/* Nas zonas-resumo o armazenamento deve ser discreto e curto */
html body .nvsign-quota{
  width:100% !important;
  max-width:400px !important;
}

html body .nvsign-quota__row{
  margin-bottom:10px !important;
  font-size:12px !important;
}

html body .nvsign-quota__row strong{
  font-size:12px !important;
  font-weight:500 !important;
}

html body .nvsign-quota__row span{
  font-size:12px !important;
  font-weight:400 !important;
}

html body .nvsign-quota__bar{
  height:8px !important;
  background:#eef0f2 !important;
  border-radius:999px !important;
}

html body .nvsign-quota__fill{
  background:var(--nv-green) !important;
  border-radius:999px !important;
}

/* Mesmo um consumo inferior a 1% deve ser perceptível */
html body .nvsign-quota__fill.has-usage{
  min-width:4px !important;
}

/* Dentro do card de perfil a barra pode usar toda a largura */
html body .nvsign-profile-quota-section .nvsign-quota{
  max-width:none !important;
}

html body .nvsign-profile-quota-section .nvsign-quota--compact .nvsign-quota__row{
  justify-content:flex-end !important;
}

/* ==========================================================
   MEDIA MANAGER
   ========================================================== */

html body .nvsign-media-head{
  margin-bottom:24px !important;
}

html body .nvsign-media-head h2{
  font-weight:600 !important;
}

html body .nvsign-media-btn{
  font-weight:600 !important;
}

html body .nvsign-media-quota{
  margin-bottom:20px !important;
}

html body .nvsign-media-tools{
  margin-bottom:20px !important;
  gap:12px !important;
}

html body .nvsign-media-grid{
  gap:16px !important;
}

html body .nvsign-media-name{
  font-weight:500 !important;
}

html body .nvsign-media-actions a,
html body .nvsign-media-delete,
html body .nvsign-media-toast{
  font-weight:500 !important;
}

html body .nvsign-media-compat strong{
  font-weight:500 !important;
}

/* ==========================================================
   RESPONSIVE
   ========================================================== */

@media(max-width:780px){
  html body .nvsign-wrap,
  html body .nvsign-media-wrap,
  html body .nvsign-profile{
    padding:20px 12px !important;
  }

  html body .nvsign-wrap .nvsign-card,
  html body .nvsign-profile .nvsign-profile-section{
    padding:18px !important;
  }

  html body .nvsign-profile .nvsign-grid{
    row-gap:16px !important;
  }

  html body #nvsign-table .nvsign-row{
    gap:14px !important;
    padding:18px 0 !important;
  }

  html body .nvsign-quota{
    max-width:100% !important;
  }
}


/* ==========================================================
   NVsign UI 0.1.1 — Painel de Ecrãs
   Mais hierarquia, espaço e leitura operacional
   ========================================================== */

/* Cabeçalho da lista */
html body .nvsign-list-head{
  align-items:center !important;
  margin-bottom:18px !important;
}

html body .nvsign-list-head input{
  width:min(290px,100%) !important;
  font-size:12px !important;
}

/* Indicadores: presentes, mas sem competir com o conteúdo */
html body .nvsign-monitor-summary{
  gap:12px !important;
  margin:16px 0 28px !important;
}

html body .nvsign-stat{
  min-height:48px !important;
  padding:12px 14px !important;
  border-radius:12px !important;
  box-shadow:none !important;
}

html body .nvsign-stat span{
  font-size:22px !important;
  font-weight:600 !important;
}

html body .nvsign-stat small{
  font-size:11px !important;
  font-weight:400 !important;
}

/* Separação clara entre indicadores e lista */
html body #nvsign-table{
  margin-top:0 !important;
  padding-top:22px !important;
  border-top:1px solid var(--nv-border) !important;
}

/* Cada ecrã passa a ser uma unidade visual mais respirada */
html body #nvsign-table .nvsign-row{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) auto !important;
  gap:28px !important;
  align-items:start !important;
  padding:24px 0 !important;
  border-top:1px solid var(--nv-border) !important;
  border-radius:0 !important;
  background:transparent !important;
}

html body #nvsign-table .nvsign-row:first-child{
  border-top:0 !important;
  padding-top:2px !important;
}

html body #nvsign-table .nvsign-row:last-child{
  padding-bottom:2px !important;
}

/* Ações ficam junto ao topo do ecrã, não perdidas no meio da ficha técnica */
html body #nvsign-table .nvsign-actions{
  align-self:start !important;
  display:flex !important;
  gap:10px !important;
  justify-content:flex-end !important;
  margin:0 !important;
  padding-top:1px !important;
  white-space:nowrap !important;
}

html body #nvsign-table .nvsign-actions .nvsign-btn{
  min-width:64px !important;
  min-height:38px !important;
  height:38px !important;
  padding:0 14px !important;
  font-size:11px !important;
  font-weight:600 !important;
  border-radius:10px !important;
}

html body #nvsign-table .nvsign-actions .nvsign-btn[data-act="edit"]{
  background:var(--nv-dark) !important;
  border-color:var(--nv-dark) !important;
}

html body #nvsign-table .nvsign-actions .nvsign-btn[data-act="edit"]:hover{
  background:#242527 !important;
  border-color:#242527 !important;
}

/* Nome / estado / link / ping */
html body .nvsign-screen-primary{
  padding:0 0 16px !important;
}

html body .nvsign-row-title{
  gap:9px !important;
  margin-bottom:7px !important;
}

html body .nvsign-row-title > a{
  color:var(--nv-dark) !important;
  font-size:15px !important;
  line-height:1.35 !important;
  font-weight:500 !important;
  letter-spacing:0 !important;
  text-decoration:none !important;
}

html body .nvsign-row-title > a:hover{
  color:var(--nv-green-hover) !important;
  text-decoration:none !important;
}

html body .nvsign-screen-primary > .nvsign-mini{
  line-height:1.55 !important;
}

html body .nvsign-screen-primary > .nvsign-mini + .nvsign-mini{
  margin-top:2px !important;
}

html body .nvsign-screen-primary > .nvsign-mini a{
  color:#687078 !important;
  font-size:11px !important;
  font-weight:400 !important;
  text-decoration:none !important;
}

html body .nvsign-screen-primary > .nvsign-mini a:hover{
  color:var(--nv-green-hover) !important;
  text-decoration:underline !important;
}

/* Estados mais discretos */
html body .nvsign-status-badge{
  padding:3px 7px !important;
  font-size:10px !important;
  line-height:1 !important;
  font-weight:500 !important;
}

html body .nvsign-status-badge.online{
  background:#f1faf4 !important;
  border-color:#d5efdc !important;
  color:#2d7a43 !important;
}

html body .nvsign-status-badge.partial{
  background:#fffaf0 !important;
  border-color:#f4e2bd !important;
  color:#9a651c !important;
}

html body .nvsign-status-badge.offline{
  background:#fff5f5 !important;
  border-color:#f4d6d6 !important;
  color:#a84242 !important;
}

html body .nvsign-status-badge.unknown{
  background:#f7f8f9 !important;
  border-color:#e7e9ec !important;
  color:#757b82 !important;
}

/* Bloco técnico */
html body .nvsign-screen-details{
  padding:16px 0 0 !important;
  border-top:1px solid var(--nv-border) !important;
}

html body .nvsign-screen-details .nvsign-monitor-line{
  margin:0 0 10px !important;
}

html body .nvsign-screen-details .nvsign-monitor-line span{
  padding:3px 8px !important;
  background:#f8f9fa !important;
  border-color:#e7e9ec !important;
  color:#70767d !important;
  font-size:10px !important;
  font-weight:400 !important;
}

/* Dispositivos: ponto | descrição | ID, sem empurrar IDs para junto das ações */
html body .nvsign-device-lines{
  display:grid !important;
  gap:7px !important;
  margin:0 !important;
  max-width:780px !important;
}

html body .nvsign-device-line{
  display:grid !important;
  grid-template-columns:8px minmax(0,auto) auto !important;
  justify-content:start !important;
  align-items:center !important;
  column-gap:8px !important;
  margin:0 !important;
  min-height:18px !important;
  color:#596068 !important;
  font-size:11px !important;
  line-height:1.45 !important;
}

html body .nvsign-device-line .nvsign-device-dot{
  width:7px !important;
  height:7px !important;
  flex-basis:7px !important;
}

html body .nvsign-device-line .nvsign-device-description{
  min-width:0 !important;
  max-width:none !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
  font-weight:400 !important;
}

html body .nvsign-device-line .nvsign-device-list-id{
  margin:0 0 0 4px !important;
  padding:2px 6px !important;
  background:#fafafa !important;
  border-color:#e7e9ec !important;
  color:#858b91 !important;
  font-size:9px !important;
  font-weight:400 !important;
}

html body .nvsign-device-more{
  margin:2px 0 0 15px !important;
  color:var(--nv-muted) !important;
  font-size:10px !important;
}

/* Configuração do ecrã fica claramente secundária */
html body .nvsign-screen-config{
  margin-top:11px !important;
  color:#81878e !important;
  font-size:10px !important;
  line-height:1.45 !important;
  font-weight:400 !important;
}

/* Mobile */
@media(max-width:760px){
  html body #nvsign-table .nvsign-row{
    grid-template-columns:1fr !important;
    gap:16px !important;
    padding:22px 0 !important;
  }

  html body #nvsign-table .nvsign-actions{
    justify-content:flex-start !important;
    padding-top:0 !important;
  }

  html body .nvsign-device-lines{
    max-width:100% !important;
  }

  html body .nvsign-device-line{
    grid-template-columns:8px minmax(0,1fr) auto !important;
  }
}


/* ==========================================================
   NVsign UI 0.1.2 — Biblioteca WordPress / separadores modal
   Hover e estado ativo com melhor contraste
   ========================================================== */
html body .media-modal .media-router{
  padding:0 !important;
  border-bottom:1px solid var(--nv-border) !important;
}

html body .media-modal .media-router .media-menu-item{
  margin:0 6px 0 0 !important;
  padding:10px 16px !important;
  border:1px solid #cfe79a !important;
  border-bottom:0 !important;
  border-radius:8px 8px 0 0 !important;
  background:#f7fbe9 !important;
  color:#6f8f1f !important;
  font-size:13px !important;
  font-weight:500 !important;
  box-shadow:none !important;
  transition:background .18s ease,color .18s ease,border-color .18s ease !important;
}

html body .media-modal .media-router .media-menu-item:hover,
html body .media-modal .media-router .media-menu-item:focus{
  background:#eef7d0 !important;
  border-color:#b9db63 !important;
  color:var(--nv-dark) !important;
  outline:none !important;
  box-shadow:none !important;
}

html body .media-modal .media-router .media-menu-item.active,
html body .media-modal .media-router .media-menu-item.active:hover,
html body .media-modal .media-router .media-menu-item.active:focus{
  background:var(--nv-green) !important;
  border-color:var(--nv-green) !important;
  color:#ffffff !important;
  text-shadow:none !important;
}


/* ==========================================================
   NVsign UI 0.1.3 — Modal Biblioteca Multimédia WordPress
   Refinamento integral sem alterar comportamento nativo
   ========================================================== */

/* Moldura e fundo geral */
html body .media-modal{
  color:var(--nv-dark) !important;
}

html body .media-modal .media-modal-content{
  background:#fff !important;
  color:var(--nv-dark) !important;
}

/* Cabeçalho */
html body .media-modal .media-frame-title{
  left:0 !important;
  right:0 !important;
  border-bottom:1px solid var(--nv-border) !important;
  background:#fff !important;
}

html body .media-modal .media-frame-title h1{
  margin:0 !important;
  color:var(--nv-dark) !important;
  font-family:"Montserrat",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif !important;
  font-size:20px !important;
  line-height:1.3 !important;
  font-weight:600 !important;
}

/* Fechar */
html body .media-modal .media-modal-close{
  top:8px !important;
  right:10px !important;
  width:38px !important;
  height:38px !important;
  border:0 !important;
  border-radius:10px !important;
  background:#f3f4f5 !important;
  color:var(--nv-dark) !important;
  box-shadow:none !important;
}

html body .media-modal .media-modal-close:hover,
html body .media-modal .media-modal-close:focus{
  background:#eaf5cc !important;
  color:var(--nv-dark) !important;
  outline:none !important;
  box-shadow:0 0 0 3px rgba(156,218,43,.18) !important;
}

html body .media-modal .media-modal-close .media-modal-icon:before{
  color:var(--nv-dark) !important;
}

/* Router / separadores */
html body .media-modal .media-frame-router{
  background:#fff !important;
}

html body .media-modal .media-router{
  padding:0 16px !important;
  border-bottom:1px solid var(--nv-border) !important;
  background:#fff !important;
}

html body .media-modal .media-router .media-menu-item{
  margin:0 6px 0 0 !important;
  padding:10px 16px !important;
  border:1px solid #d9e8b8 !important;
  border-bottom:0 !important;
  border-radius:8px 8px 0 0 !important;
  background:#f8fbeF !important;
  color:#60711f !important;
  font-family:"Montserrat",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif !important;
  font-size:13px !important;
  line-height:1.3 !important;
  font-weight:500 !important;
  text-decoration:none !important;
  box-shadow:none !important;
}

html body .media-modal .media-router .media-menu-item:hover,
html body .media-modal .media-router .media-menu-item:focus{
  background:#eef7d0 !important;
  border-color:#bedb72 !important;
  color:var(--nv-dark) !important;
  outline:none !important;
  box-shadow:none !important;
}

html body .media-modal .media-router .media-menu-item.active,
html body .media-modal .media-router .media-menu-item.active:hover,
html body .media-modal .media-router .media-menu-item.active:focus{
  background:var(--nv-green) !important;
  border-color:var(--nv-green) !important;
  color:#fff !important;
}

/* Área principal */
html body .media-modal .media-frame-content,
html body .media-modal .attachments-browser,
html body .media-modal .media-frame-content[data-columns]{
  background:#fff !important;
}

/* Barra de ferramentas */
html body .media-modal .media-toolbar{
  background:#fff !important;
  border-color:var(--nv-border) !important;
}

html body .media-modal .attachments-browser .media-toolbar{
  padding-top:12px !important;
  padding-bottom:12px !important;
}

html body .media-modal .media-toolbar label,
html body .media-modal .media-toolbar .media-attachments-filter-heading,
html body .media-modal .media-toolbar .screen-reader-text{
  font-family:"Montserrat",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif !important;
}

/* Pesquisa / filtros */
html body .media-modal input[type="search"],
html body .media-modal select.attachment-filters,
html body .media-modal .media-toolbar select{
  min-height:40px !important;
  border:1px solid var(--nv-border) !important;
  border-radius:10px !important;
  background:#fff !important;
  color:var(--nv-dark) !important;
  font-family:"Montserrat",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif !important;
  font-size:12px !important;
  font-weight:400 !important;
  box-shadow:none !important;
  outline:none !important;
}

html body .media-modal input[type="search"]:hover,
html body .media-modal select.attachment-filters:hover,
html body .media-modal .media-toolbar select:hover{
  border-color:#cfd5da !important;
}

html body .media-modal input[type="search"]:focus,
html body .media-modal select.attachment-filters:focus,
html body .media-modal .media-toolbar select:focus{
  border-color:var(--nv-green) !important;
  box-shadow:0 0 0 3px rgba(156,218,43,.15) !important;
}

/* Grelha de anexos */
html body .media-modal .attachments{
  padding-top:14px !important;
}

html body .media-modal .attachment{
  border-radius:12px !important;
}

html body .media-modal .attachment .attachment-preview{
  border-radius:12px !important;
  background:#fff !important;
  box-shadow:0 0 0 1px var(--nv-border) !important;
  overflow:hidden !important;
}

html body .media-modal .attachment:hover .attachment-preview{
  box-shadow:0 0 0 1px #cfd5da,0 4px 14px rgba(0,0,0,.05) !important;
}

html body .media-modal .attachment.details .attachment-preview,
html body .media-modal .attachment.selected .attachment-preview{
  box-shadow:0 0 0 2px var(--nv-green),0 5px 16px rgba(0,0,0,.06) !important;
}

html body .media-modal .attachment .thumbnail{
  background:#fff !important;
}

html body .media-modal .attachment .filename,
html body .media-modal .attachment .filename div{
  color:var(--nv-dark) !important;
  font-family:"Montserrat",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif !important;
  font-size:10px !important;
  font-weight:400 !important;
}

/* Check de seleção */
html body .media-modal .attachment .check,
html body .media-modal .attachment.details .check{
  border-radius:50% !important;
  background:#fff !important;
  border-color:#d7dde1 !important;
  box-shadow:none !important;
}

html body .media-modal .attachment.details .check,
html body .media-modal .attachment.selected .check{
  background:var(--nv-green) !important;
  border-color:var(--nv-green) !important;
  color:#fff !important;
}

html body .media-modal .attachment.details .check .media-modal-icon:before,
html body .media-modal .attachment.selected .check .media-modal-icon:before{
  color:#fff !important;
}

/* Sidebar de detalhes */
html body .media-modal .media-sidebar{
  background:#fafbfb !important;
  border-left:1px solid var(--nv-border) !important;
}

html body .media-modal .attachment-details,
html body .media-modal .attachment-details .settings{
  color:var(--nv-dark) !important;
}

html body .media-modal .attachment-details .filename,
html body .media-modal .attachment-details .uploaded,
html body .media-modal .attachment-details .file-size,
html body .media-modal .attachment-details .dimensions,
html body .media-modal .attachment-details label,
html body .media-modal .attachment-details .setting span,
html body .media-modal .attachment-info{
  font-family:"Montserrat",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif !important;
}

html body .media-modal .attachment-details label,
html body .media-modal .attachment-details .setting span{
  color:var(--nv-dark) !important;
  font-size:11px !important;
  font-weight:500 !important;
}

html body .media-modal .attachment-details input[type="text"],
html body .media-modal .attachment-details input[type="url"],
html body .media-modal .attachment-details textarea,
html body .media-modal .attachment-details select{
  border:1px solid var(--nv-border) !important;
  border-radius:9px !important;
  background:#fff !important;
  color:var(--nv-dark) !important;
  font-family:"Montserrat",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif !important;
  font-size:12px !important;
  font-weight:400 !important;
  box-shadow:none !important;
}

html body .media-modal .attachment-details input[type="text"]:focus,
html body .media-modal .attachment-details input[type="url"]:focus,
html body .media-modal .attachment-details textarea:focus,
html body .media-modal .attachment-details select:focus{
  border-color:var(--nv-green) !important;
  box-shadow:0 0 0 3px rgba(156,218,43,.15) !important;
  outline:none !important;
}

/* Zona upload */
html body .media-modal .upload-ui,
html body .media-modal .upload-inline-status{
  color:var(--nv-dark) !important;
  font-family:"Montserrat",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif !important;
}

html body .media-modal .uploader-inline{
  margin:24px !important;
  border:1px dashed #cfd6db !important;
  border-radius:14px !important;
  background:#fbfcfc !important;
}

html body .media-modal .uploader-inline:hover{
  border-color:#b7d66b !important;
  background:#fbfdeF !important;
}

html body .media-modal .upload-ui h2{
  color:var(--nv-dark) !important;
  font-family:"Montserrat",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif !important;
  font-size:18px !important;
  font-weight:600 !important;
}

html body .media-modal .upload-ui .browser,
html body .media-modal .button.button-hero{
  border:0 !important;
  border-radius:11px !important;
  background:var(--nv-green) !important;
  color:#fff !important;
  font-family:"Montserrat",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif !important;
  font-size:12px !important;
  font-weight:600 !important;
  text-shadow:none !important;
  box-shadow:none !important;
}

html body .media-modal .upload-ui .browser:hover,
html body .media-modal .button.button-hero:hover{
  background:var(--nv-green-hover) !important;
  color:#fff !important;
}

/* Rodapé / seleção */
html body .media-modal .media-frame-toolbar,
html body .media-modal .media-selection{
  background:#fff !important;
  border-color:var(--nv-border) !important;
}

html body .media-modal .media-selection .selection-info,
html body .media-modal .media-selection .selection-view,
html body .media-modal .media-frame .media-toolbar-secondary,
html body .media-modal .media-frame .media-toolbar-primary{
  font-family:"Montserrat",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif !important;
  color:var(--nv-dark) !important;
}

/* Botões gerais do modal */
html body .media-modal .button,
html body .media-modal button.button{
  border-radius:9px !important;
  font-family:"Montserrat",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif !important;
  font-size:12px !important;
  font-weight:500 !important;
  text-shadow:none !important;
  box-shadow:none !important;
}

html body .media-modal .button:not(.button-primary):not(.button-hero),
html body .media-modal button.button:not(.button-primary):not(.button-hero){
  border-color:#d6dce0 !important;
  background:#fff !important;
  color:var(--nv-dark) !important;
}

html body .media-modal .button:not(.button-primary):not(.button-hero):hover,
html body .media-modal button.button:not(.button-primary):not(.button-hero):hover{
  border-color:#bec7cd !important;
  background:#f7f8f9 !important;
  color:var(--nv-dark) !important;
}

html body .media-modal .button.button-primary,
html body .media-modal button.button.button-primary{
  border-color:var(--nv-green) !important;
  background:var(--nv-green) !important;
  color:#fff !important;
  font-weight:600 !important;
}

html body .media-modal .button.button-primary:hover,
html body .media-modal button.button.button-primary:hover,
html body .media-modal .button.button-primary:focus,
html body .media-modal button.button.button-primary:focus{
  border-color:var(--nv-green-hover) !important;
  background:var(--nv-green-hover) !important;
  color:#fff !important;
  box-shadow:0 0 0 3px rgba(156,218,43,.18) !important;
}

/* Links e ações perigosas */
html body .media-modal a,
html body .media-modal a:visited{
  color:var(--nv-dark) !important;
}

html body .media-modal a:hover,
html body .media-modal a:focus{
  color:var(--nv-green-hover) !important;
}

html body .media-modal .delete-attachment,
html body .media-modal .trash-attachment{
  color:var(--nv-danger) !important;
  font-weight:500 !important;
}

html body .media-modal .delete-attachment:hover,
html body .media-modal .trash-attachment:hover{
  color:var(--nv-danger-hover) !important;
}

/* Avisos / progresso */
html body .media-modal .media-progress-bar,
html body .media-modal .upload-progress{
  border-radius:999px !important;
  overflow:hidden !important;
}

html body .media-modal .media-progress-bar div,
html body .media-modal .upload-progress .percent{
  background:var(--nv-green) !important;
}

@media(max-width:782px){
  html body .media-modal .media-router{
    padding:0 10px !important;
  }

  html body .media-modal .media-router .media-menu-item{
    padding:9px 12px !important;
    font-size:12px !important;
  }

  html body .media-modal .uploader-inline{
    margin:14px !important;
  }
}


/* ==========================================================
   NVsign UI 0.1.4 — Utilizador atual
   ========================================================== */

html body .nvsign-page-user{
  display:flex !important;
  justify-content:flex-end !important;
  align-items:center !important;
  margin:0 0 16px !important;
  min-height:34px !important;
}

html body .nvsign-user-badge{
  display:inline-flex !important;
  align-items:center !important;
  gap:8px !important;
  min-height:34px !important;
  max-width:100% !important;
  padding:4px 10px 4px 5px !important;
  background:#fff !important;
  border:1px solid var(--nv-border) !important;
  border-radius:999px !important;
  color:var(--nv-dark) !important;
  box-shadow:0 2px 8px rgba(0,0,0,.035) !important;
  font-family:"Montserrat",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif !important;
  vertical-align:middle !important;
}

html body .nvsign-user-badge__icon{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:26px !important;
  height:26px !important;
  flex:0 0 26px !important;
  border-radius:50% !important;
  background:#f2f6e9 !important;
  color:#667f2b !important;
}

html body .nvsign-user-badge__icon svg{
  display:block !important;
  width:15px !important;
  height:15px !important;
}

html body .nvsign-user-badge__name{
  display:block !important;
  max-width:220px !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
  color:var(--nv-dark) !important;
  font-size:12px !important;
  line-height:1.2 !important;
  font-weight:500 !important;
}

html body .nvsign-profile-header .nvsign-user-badge{
  flex:0 0 auto !important;
}

html body .nvsign-wrap > .nvsign-page-user + .nvsign-card{
  margin-top:0 !important;
}

@media(max-width:640px){
  html body .nvsign-page-user{
    justify-content:flex-start !important;
    margin-bottom:14px !important;
  }

  html body .nvsign-user-badge__name{
    max-width:170px !important;
  }
}


/* ==========================================================
   NVsign UI 0.1.5 — Checkout WooCommerce
   Checkout de licenças alinhado com a identidade NVsign
   ========================================================== */

body.woocommerce-checkout .entry-title,
body.woocommerce-checkout .wp-block-post-title{
  width:calc(100% - 32px) !important;
  max-width:1180px !important;
  margin:34px auto 8px !important;
  color:var(--nv-dark) !important;
  font-family:"Montserrat",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif !important;
  font-size:36px !important;
  line-height:1.2 !important;
  font-weight:600 !important;
  letter-spacing:-.02em !important;
}

body.woocommerce-checkout .nvsign-checkout-intro,
body.woocommerce-checkout .nvsign-checkout-note{
  width:calc(100% - 32px) !important;
  max-width:1180px !important;
  margin-left:auto !important;
  margin-right:auto !important;
  box-sizing:border-box !important;
  font-family:"Montserrat",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif !important;
}

body.woocommerce-checkout .nvsign-checkout-intro{
  margin-top:0 !important;
  margin-bottom:16px !important;
  color:var(--nv-muted) !important;
  font-size:14px !important;
  line-height:1.65 !important;
  font-weight:400 !important;
}

body.woocommerce-checkout .nvsign-checkout-note{
  margin-top:0 !important;
  margin-bottom:24px !important;
  padding:13px 16px !important;
  border:1px solid #dcebbd !important;
  border-radius:11px !important;
  background:#f7fbeF !important;
  color:#55652b !important;
  font-size:12px !important;
  line-height:1.55 !important;
  font-weight:500 !important;
}

body.woocommerce-checkout .wp-block-woocommerce-checkout{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) minmax(320px,360px) !important;
  gap:48px !important;
  align-items:start !important;
  width:calc(100% - 32px) !important;
  max-width:1180px !important;
  margin:0 auto 56px !important;
  padding:0 !important;
  box-sizing:border-box !important;
  color:var(--nv-dark) !important;
  font-family:"Montserrat",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif !important;
}

body.woocommerce-checkout .wp-block-woocommerce-checkout *,
body.woocommerce-checkout .wp-block-woocommerce-checkout input,
body.woocommerce-checkout .wp-block-woocommerce-checkout select,
body.woocommerce-checkout .wp-block-woocommerce-checkout textarea,
body.woocommerce-checkout .wp-block-woocommerce-checkout button{
  font-family:"Montserrat",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif !important;
  box-sizing:border-box !important;
}

body.woocommerce-checkout .wp-block-woocommerce-checkout-fields-block{
  width:100% !important;
  min-width:0 !important;
  margin:0 !important;
  padding:0 !important;
}

body.woocommerce-checkout .wp-block-woocommerce-checkout-totals-block{
  width:100% !important;
  min-width:0 !important;
  margin:0 !important;
  padding:0 !important;
  position:sticky !important;
  top:28px !important;
}

body.woocommerce-checkout .wc-block-components-checkout-step{
  margin:0 0 16px !important;
  padding:24px !important;
  border:1px solid var(--nv-border) !important;
  border-radius:14px !important;
  background:#fff !important;
  box-shadow:0 3px 12px rgba(0,0,0,.035) !important;
}

body.woocommerce-checkout .wc-block-components-checkout-step__heading{
  margin:0 0 18px !important;
  padding:0 !important;
}

body.woocommerce-checkout .wc-block-components-checkout-step__title,
body.woocommerce-checkout .wc-block-components-title{
  margin:0 !important;
  color:var(--nv-dark) !important;
  font-size:17px !important;
  line-height:1.35 !important;
  font-weight:600 !important;
  letter-spacing:0 !important;
}

body.woocommerce-checkout .wc-block-components-checkout-step__description,
body.woocommerce-checkout .wc-block-components-checkout-step__container,
body.woocommerce-checkout .wc-block-components-address-card address,
body.woocommerce-checkout .wc-block-components-radio-control__description,
body.woocommerce-checkout .wc-block-components-checkbox__label,
body.woocommerce-checkout .wc-block-checkout__terms{
  color:#60666d !important;
  font-size:12px !important;
  line-height:1.55 !important;
  font-weight:400 !important;
}

body.woocommerce-checkout .wc-block-components-text-input input,
body.woocommerce-checkout .wc-block-components-combobox .components-combobox-control__input,
body.woocommerce-checkout .wc-block-components-form .wc-block-components-text-input input,
body.woocommerce-checkout .wc-block-components-address-form input,
body.woocommerce-checkout .wc-block-components-address-form select{
  min-height:48px !important;
  border:1px solid #cfd4d8 !important;
  border-radius:10px !important;
  background:#fff !important;
  color:var(--nv-dark) !important;
  font-size:13px !important;
  font-weight:400 !important;
  box-shadow:none !important;
}

body.woocommerce-checkout .wc-block-components-text-input input:focus,
body.woocommerce-checkout .wc-block-components-combobox .components-combobox-control__input:focus,
body.woocommerce-checkout .wc-block-components-form .wc-block-components-text-input input:focus,
body.woocommerce-checkout .wc-block-components-address-form input:focus,
body.woocommerce-checkout .wc-block-components-address-form select:focus{
  border-color:var(--nv-green) !important;
  outline:none !important;
  box-shadow:0 0 0 3px rgba(156,218,43,.15) !important;
}

body.woocommerce-checkout .wc-block-components-text-input label,
body.woocommerce-checkout .wc-block-components-input-row label{
  color:#626870 !important;
  font-size:11px !important;
  font-weight:500 !important;
}

body.woocommerce-checkout .wc-block-components-address-card{
  padding:16px !important;
  border:1px solid var(--nv-border) !important;
  border-radius:11px !important;
  background:#fbfcfc !important;
}

body.woocommerce-checkout .wc-block-components-address-card__edit{
  color:#53651f !important;
  font-size:11px !important;
  font-weight:600 !important;
  text-decoration:none !important;
}

body.woocommerce-checkout .wc-block-components-address-card__edit:hover{
  color:var(--nv-green-hover) !important;
  text-decoration:none !important;
}

body.woocommerce-checkout .wc-block-components-radio-control-accordion-option{
  overflow:hidden !important;
  border:1px solid var(--nv-border) !important;
  border-radius:11px !important;
  background:#fff !important;
}

body.woocommerce-checkout .wc-block-components-radio-control-accordion-option + .wc-block-components-radio-control-accordion-option{
  margin-top:10px !important;
}

body.woocommerce-checkout .wp-block-woocommerce-checkout-terms-block{
  margin:22px 0 14px !important;
  padding:0 4px !important;
}

body.woocommerce-checkout .wp-block-woocommerce-checkout-actions-block{
  margin:0 !important;
}

body.woocommerce-checkout .wc-block-components-checkout-place-order-button{
  width:100% !important;
  min-height:52px !important;
  padding:0 24px !important;
  border:1px solid var(--nv-green) !important;
  border-radius:11px !important;
  background:var(--nv-green) !important;
  color:#fff !important;
  font-size:13px !important;
  line-height:1 !important;
  font-weight:600 !important;
  text-decoration:none !important;
  box-shadow:none !important;
  transition:background .18s ease,border-color .18s ease,transform .18s ease !important;
}

body.woocommerce-checkout .wc-block-components-checkout-place-order-button:hover,
body.woocommerce-checkout .wc-block-components-checkout-place-order-button:focus{
  border-color:var(--nv-green-hover) !important;
  background:var(--nv-green-hover) !important;
  color:#fff !important;
  outline:none !important;
  box-shadow:0 0 0 3px rgba(156,218,43,.17) !important;
}

body.woocommerce-checkout .wc-block-components-checkout-place-order-button:active{
  transform:translateY(1px) !important;
}

body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block{
  overflow:hidden !important;
  border:1px solid var(--nv-border) !important;
  border-radius:14px !important;
  background:#fff !important;
  box-shadow:0 5px 18px rgba(0,0,0,.045) !important;
}

body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block .wc-block-components-checkout-order-summary__title,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block .wc-block-components-title{
  padding:20px 18px !important;
  color:var(--nv-dark) !important;
  font-size:17px !important;
  line-height:1.3 !important;
  font-weight:600 !important;
}

body.woocommerce-checkout .wc-block-components-order-summary-item{
  padding:16px 18px !important;
}

body.woocommerce-checkout .wc-block-components-order-summary-item__image{
  display:none !important;
}

body.woocommerce-checkout .wc-block-components-order-summary-item__description{
  padding-left:0 !important;
}

body.woocommerce-checkout .wc-block-components-product-name{
  color:var(--nv-dark) !important;
  font-size:12px !important;
  line-height:1.45 !important;
  font-weight:600 !important;
}

body.woocommerce-checkout .wc-block-components-product-metadata,
body.woocommerce-checkout .wc-block-components-product-details{
  color:var(--nv-muted) !important;
  font-size:10px !important;
  line-height:1.45 !important;
  font-weight:400 !important;
}

body.woocommerce-checkout .wc-block-components-totals-wrapper{
  padding:14px 18px !important;
  border-color:var(--nv-border) !important;
}

body.woocommerce-checkout .wc-block-components-totals-item__label,
body.woocommerce-checkout .wc-block-components-totals-item__value{
  color:var(--nv-dark) !important;
  font-size:12px !important;
  font-weight:500 !important;
}

body.woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
body.woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__value{
  font-size:18px !important;
  font-weight:600 !important;
}

body.woocommerce-checkout .wc-block-components-spinner{
  color:var(--nv-green) !important;
}

@media(max-width:900px){
  body.woocommerce-checkout .entry-title,
  body.woocommerce-checkout .wp-block-post-title{
    margin-top:24px !important;
    font-size:30px !important;
  }

  body.woocommerce-checkout .wp-block-woocommerce-checkout{
    grid-template-columns:1fr !important;
    gap:24px !important;
    margin-bottom:36px !important;
  }

  body.woocommerce-checkout .wp-block-woocommerce-checkout-totals-block{
    position:static !important;
    order:-1 !important;
  }
}

@media(max-width:560px){
  body.woocommerce-checkout .entry-title,
  body.woocommerce-checkout .wp-block-post-title,
  body.woocommerce-checkout .nvsign-checkout-intro,
  body.woocommerce-checkout .nvsign-checkout-note,
  body.woocommerce-checkout .wp-block-woocommerce-checkout{
    width:calc(100% - 24px) !important;
  }

  body.woocommerce-checkout .entry-title,
  body.woocommerce-checkout .wp-block-post-title{
    font-size:26px !important;
  }

  body.woocommerce-checkout .wc-block-components-checkout-step{
    padding:18px !important;
    border-radius:12px !important;
  }

  body.woocommerce-checkout .nvsign-checkout-note{
    padding:12px 14px !important;
  }
}
