/* =====================================================================
   Painel administrativo /promosoft. Reaproveita as variaveis de tema do
   app pai (../css/tema.css). Aqui so o layout de admin (sidebar + topbar).
   ===================================================================== */
.adm-shell { display: flex; min-height: 100vh; }
.adm-side {
	width: 240px; background: #0B1220; color: #C7D0DD; flex-shrink: 0;
	display: flex; flex-direction: column; position: sticky; top: 0; height: 100vh;
}
.adm-side__logo { padding: 20px; font-family: var(--fonte-titulo); font-weight: 800; color: #fff; display: flex; align-items: center; gap: .5rem; border-bottom: 1px solid rgba(255,255,255,.08); }
.adm-side__logo .cp-logo-badge { width: 32px; height: 32px; border-radius: 8px; background: var(--cor-primaria); display: grid; place-items: center; color: #fff; }
.adm-nav { padding: 12px 0; flex: 1; }
.adm-nav a { display: flex; align-items: center; gap: .7rem; padding: .7rem 20px; color: #d1d5db; font-weight: 500; }
.adm-nav a:hover { background: rgba(255,255,255,.06); color: #fff; }
.adm-nav a.ativo { background: var(--cor-primaria); color: #fff; }
.adm-nav a i { width: 20px; text-align: center; }
.adm-side__rodape { padding: 16px 20px; border-top: 1px solid rgba(255,255,255,.08); font-size: .82rem; }

.adm-main { flex: 1; display: flex; flex-direction: column; min-width: 0; background: var(--cor-fundo-alt); }
.adm-top { background: #fff; border-bottom: 1px solid var(--cor-borda); padding: 14px 28px; display: flex; justify-content: space-between; align-items: center; }
.adm-top__user { display: flex; align-items: center; gap: .6rem; font-size: .9rem; }
.adm-badge { font-size: .72rem; font-weight: 700; padding: .2rem .6rem; border-radius: var(--raio-pill); text-transform: uppercase; letter-spacing: .5px; }
.adm-badge.promotech { background: #dcfce7; color: #166534; }
.adm-badge.cliente { background: #dbeafe; color: #1e40af; }
.adm-content { padding: 28px; flex: 1; }
.adm-content h1 { margin: 0 0 4px; font-size: 1.6rem; }
.adm-content .sub { color: var(--cor-texto-suave); margin: 0 0 24px; }

.adm-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px,1fr)); gap: 16px; margin-bottom: 28px; }
.adm-card { background: #fff; border: 1px solid var(--cor-borda); border-radius: var(--raio); padding: 20px; }
.adm-card .num { font-family: var(--fonte-titulo); font-weight: 800; font-size: 2rem; color: var(--cor-primaria); }
.adm-card .lbl { color: var(--cor-texto-suave); font-size: .9rem; }

.adm-panel { background: #fff; border: 1px solid var(--cor-borda); border-radius: var(--raio); padding: 24px; margin-bottom: 24px; }
.adm-panel h2 { font-size: 1.15rem; margin: 0 0 4px; }
.adm-panel .sub { font-size: .9rem; }
.adm-table { width: 100%; border-collapse: collapse; }
.adm-table th, .adm-table td { text-align: left; padding: .6rem .8rem; border-bottom: 1px solid var(--cor-borda); font-size: .9rem; }
.adm-table th { color: var(--cor-texto-suave); font-weight: 600; }
.adm-alerta { border-radius: 10px; padding: .8rem 1rem; margin-bottom: 18px; font-size: .92rem; }
.adm-alerta.ok { background: #dcfce7; color: #166534; }
.adm-alerta.erro { background: #fef2f2; color: #b91c1c; }
.adm-form-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px,1fr)); gap: 16px; }

@media (max-width: 820px) {
	.adm-side { position: fixed; left: -240px; z-index: 100; transition: left .2s; }
	.adm-side.aberto { left: 0; }
	.adm-menu-btn { display: inline-flex !important; }
}
.adm-menu-btn { display: none; background: none; border: 0; font-size: 1.4rem; cursor: pointer; color: var(--cor-texto); }

/* ---------- Modulos do site (drag-and-drop) ---------- */
.adm-modulos { display: flex; flex-direction: column; gap: 10px; }
.adm-modulo { display: flex; align-items: center; gap: 14px; background: #fff; border: 1px solid var(--cor-borda); border-radius: var(--raio); padding: 14px 16px; box-shadow: var(--sombra-sm); }
.adm-modulo.sortable-ghost { opacity: .4; }
.adm-modulo.sortable-chosen { border-color: var(--cor-primaria); box-shadow: 0 0 0 3px rgba(var(--cor-primaria-rgb),.15); }
.adm-modulo__handle { cursor: grab; color: var(--cor-texto-suave); font-size: 1.2rem; padding: 0 4px; touch-action: none; }
.adm-modulo__handle:active { cursor: grabbing; }
.adm-modulo__info { flex: 1; min-width: 0; }
.adm-modulo__nome { font-family: var(--fonte-titulo); font-weight: 700; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.adm-modulo__chave { font-family: monospace; font-size: .78rem; color: var(--cor-primaria); }
.adm-modulo__desc { color: var(--cor-texto-suave); font-size: .85rem; margin-top: 2px; }
.adm-modulo__badge { font-size: .66rem; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; background: #fef3c7; color: #92400e; padding: .15rem .5rem; border-radius: 999px; }

/* Toggle switch */
.adm-switch { position: relative; display: inline-block; width: 46px; height: 26px; flex-shrink: 0; }
.adm-switch input { opacity: 0; width: 0; height: 0; }
.adm-switch__slider { position: absolute; inset: 0; background: #cbd5e1; border-radius: 999px; transition: .2s; cursor: pointer; }
.adm-switch__slider::before { content: ""; position: absolute; height: 20px; width: 20px; left: 3px; top: 3px; background: #fff; border-radius: 50%; transition: .2s; }
.adm-switch input:checked + .adm-switch__slider { background: var(--cor-primaria); }
.adm-switch input:checked + .adm-switch__slider::before { transform: translateX(20px); }
.adm-switch input:disabled + .adm-switch__slider { opacity: .6; cursor: not-allowed; }

/* ---------- Seletor de campanha (multi-campanha) ---------- */
.adm-top { gap: 12px; }
.adm-camp-logo { width: 34px; height: 34px; border-radius: 9px; background: var(--cor-primaria); display: grid; place-items: center; color: #fff; overflow: hidden; flex: 0 0 auto; }
.adm-camp-logo img { width: 100%; height: 100%; object-fit: contain; display: block; background: #fff; }
.adm-camp-seletor { display: inline-flex; align-items: center; gap: 8px; margin-right: auto; background: var(--cor-fundo-alt); border: 1px solid var(--cor-borda); border-radius: 10px; padding: .35rem .7rem; font-size: .9rem; color: var(--cor-texto); }
.adm-camp-seletor i { color: var(--cor-primaria); }
.adm-camp-seletor select { border: 0; background: transparent; font-family: var(--fonte-titulo); font-weight: 600; font-size: .9rem; color: var(--cor-texto); cursor: pointer; max-width: 220px; }
.adm-camp-seletor select:focus { outline: none; }

/* ---------- Planos de licenca (tela de compra) ---------- */
.adm-planos { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 22px; margin: 26px 0 8px; align-items: stretch; }
.adm-plano { background: #fff; border: 1.5px solid var(--cor-borda); border-radius: 18px; padding: 28px 24px; text-align: center; display: flex; flex-direction: column; position: relative; transition: transform .15s, box-shadow .15s; box-shadow: var(--sombra-sm); }
.adm-plano:hover { transform: translateY(-4px); box-shadow: var(--sombra); }
.adm-plano.destaque { border-color: var(--cor-primaria); box-shadow: 0 12px 40px rgba(var(--cor-primaria-rgb),.20); transform: scale(1.03); }
.adm-plano.destaque:hover { transform: scale(1.03) translateY(-4px); }
.adm-plano__tag { position: absolute; top: -13px; left: 50%; transform: translateX(-50%); background: linear-gradient(135deg, var(--cor-primaria), var(--cor-primaria-escura)); color: #fff; font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; padding: .3rem .9rem; border-radius: 999px; white-space: nowrap; box-shadow: 0 4px 12px rgba(var(--cor-primaria-rgb),.35); }
.adm-plano__tag i { margin-right: 3px; }
.adm-plano__cabecalho { padding-bottom: 16px; border-bottom: 1px dashed var(--cor-borda); margin-bottom: 16px; }
.adm-plano__nome { font-family: var(--fonte-titulo); font-weight: 800; font-size: 1.5rem; }
.adm-plano__num { color: var(--cor-texto-suave); font-size: .85rem; margin-top: 4px; }
.adm-plano__num i { color: var(--cor-primaria); }
.adm-plano__preco { font-family: var(--fonte-titulo); font-weight: 800; font-size: 2.3rem; color: var(--cor-texto); line-height: 1; }
.adm-plano__preco .cifra { font-size: 1.1rem; vertical-align: super; margin-right: 3px; color: var(--cor-texto-suave); font-weight: 700; }
.adm-plano.destaque .adm-plano__preco { color: var(--cor-primaria); }
.adm-plano__preco-nota { color: var(--cor-texto-suave); font-size: .78rem; margin: 4px 0 18px; }
.adm-plano__recursos { list-style: none; padding: 0; margin: 0 0 20px; text-align: left; flex: 1; }
.adm-plano__recursos li { font-size: .9rem; color: var(--cor-texto); padding: .42rem 0; display: flex; align-items: flex-start; gap: 10px; }
.adm-plano__recursos li i { color: var(--cor-secundaria); margin-top: 3px; width: 16px; text-align: center; flex-shrink: 0; }
.adm-plano__recursos li.destaque { font-weight: 700; }
.adm-plano__recursos li.destaque i { color: var(--cor-primaria); }

/* ===== Regulamento (prévia gerada) ===== */
.reg-doc { background: var(--cor-fundo-alt); border: 1px solid var(--cor-borda); border-radius: 12px; padding: 24px 26px; margin-top: 12px; max-height: 560px; overflow-y: auto; line-height: 1.55; font-size: .93rem; color: var(--cor-texto); }
.reg-doc h3 { font-family: var(--fonte-titulo); font-size: 1rem; margin: 20px 0 6px; color: var(--cor-primaria-escura); }
.reg-doc h3:first-child { margin-top: 0; }
.reg-doc p { margin: .4rem 0; }
.reg-pend { background: #fde68a; color: #92400e; padding: 1px 6px; border-radius: 5px; font-weight: 600; font-size: .85em; }
.reg-doc .reg-tabela { width: 100%; border-collapse: collapse; margin: 10px 0; font-size: .85rem; }
.reg-doc .reg-tabela th, .reg-doc .reg-tabela td { border: 1px solid var(--cor-borda); padding: .4rem .55rem; text-align: left; vertical-align: top; }
.reg-doc .reg-tabela th { background: #fff; font-weight: 700; }
/* Prévia em modo demonstração: marca d'água + seções bloqueadas */
.reg-doc--demo { position: relative; }
.reg-doc--demo::before { content: "DEMONSTRAÇÃO"; position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-family: var(--fonte-titulo); font-weight: 800; font-size: 2.4rem; letter-spacing: 6px; color: rgba(180,83,9,.10); transform: rotate(-24deg); pointer-events: none; z-index: 1; white-space: nowrap; }
.reg-bloqueado { display: flex; align-items: center; gap: 8px; background: repeating-linear-gradient(45deg, #fafafa, #fafafa 10px, #f3f4f6 10px, #f3f4f6 20px); border: 1px dashed var(--cor-borda); border-radius: 8px; padding: 14px 16px; color: var(--cor-texto-suave); font-size: .9rem; }
.reg-bloqueado i { color: var(--cor-secundaria); }

/* =====================================================================
   DOURADO + MODERNIDADE no admin (mesma linguagem do front)
   ===================================================================== */
/* Sidebar: logo com gradiente da marca e item ativo com trilho dourado */
.adm-side__logo .cp-logo-badge { background: var(--grad-marca); box-shadow: 0 4px 12px rgba(var(--cor-primaria-rgb),.30); }
.adm-nav a { position: relative; transition: background .18s ease, color .18s ease, padding-left .18s ease; }
.adm-nav a:not(.ativo):hover { padding-left: 24px; }
.adm-nav a.ativo { background: linear-gradient(90deg, rgba(var(--cor-primaria-rgb),.95), rgba(var(--cor-primaria-rgb),.72)); box-shadow: inset 3px 0 0 var(--cor-ouro); }

/* Topbar: selo da campanha com gradiente */
.adm-camp-logo { background: var(--grad-marca); }
.adm-badge.promotech { background: linear-gradient(135deg, #dcfce7, #f4e9cb); color: #4d6b1e; }

/* Cards de indicador: número em gradiente verde->ouro, faixa e lift no hover */
.adm-card { position: relative; overflow: hidden; transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease; }
.adm-card::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: var(--grad-verde-ouro); transform: scaleX(0); transform-origin: left; transition: transform .3s ease; }
.adm-card:hover { transform: translateY(-4px); box-shadow: var(--sombra); border-color: transparent; }
.adm-card:hover::before { transform: scaleX(1); }
.adm-card .num { background: var(--grad-verde-ouro); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }

/* Painéis: marca dourada antes do título */
.adm-panel > h2:first-child::before { content: ""; display: inline-block; width: 20px; height: 3px; border-radius: 3px; background: var(--grad-verde-ouro); vertical-align: middle; margin-right: 10px; }

/* Planos de licença: reforço dourado no plano em destaque */
.adm-plano.destaque { border-color: var(--cor-ouro); box-shadow: 0 12px 40px rgba(var(--cor-ouro-rgb),.22); }
.adm-plano.destaque .adm-plano__tag { background: var(--grad-ouro); color: #3a2e0a; box-shadow: 0 4px 12px rgba(var(--cor-ouro-rgb),.4); }

/* Entrada suave (reveal) — discreta, própria de ferramenta */
.adm-content .reveal { transform: translateY(14px); transition-duration: .45s; }
@media (prefers-reduced-motion: reduce) {
	.adm-card:hover { transform: none; }
}

/* Seletor de tema do hotsite (Configuracoes) */
.adm-temas { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; margin-top: 6px; }
.adm-tema { display: flex; align-items: center; gap: 12px; border: 2px solid var(--cor-borda); border-radius: 12px; padding: 12px 14px; cursor: pointer; transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; background: #fff; }
.adm-tema:hover { transform: translateY(-2px); box-shadow: var(--sombra-sm); }
.adm-tema.sel { border-color: var(--cor-primaria); box-shadow: 0 0 0 3px rgba(var(--cor-primaria-rgb), .15); }
.adm-tema input { position: absolute; opacity: 0; pointer-events: none; }
.adm-tema__swatch { width: 40px; height: 40px; border-radius: 10px; position: relative; flex-shrink: 0; box-shadow: inset 0 0 0 1px rgba(0,0,0,.06); }
.adm-tema__swatch b { position: absolute; right: -3px; bottom: -3px; width: 16px; height: 16px; border-radius: 50%; border: 2px solid #fff; }
.adm-tema__nome { font-family: var(--fonte-titulo); font-weight: 600; font-size: .9rem; }

/* ===== Dashboard do painel ===== */
.dash-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px,1fr)); gap: 16px; margin: 4px 0 24px; }
.dash-kpi { background: #fff; border: 1px solid var(--cor-borda); border-radius: var(--raio); padding: 18px 20px; display: flex; align-items: center; gap: 16px; box-shadow: var(--sombra-sm); }
.dash-kpi__ico { width: 48px; height: 48px; border-radius: 12px; display: grid; place-items: center; font-size: 1.3rem; color: #fff; flex-shrink: 0; }
.dash-kpi__num { font-family: var(--fonte-titulo); font-weight: 800; font-size: 1.9rem; line-height: 1.1; color: var(--cor-texto); }
.dash-kpi__lbl { color: var(--cor-texto-suave); font-size: .88rem; margin-top: 2px; }
.dash-kpi--verde   .dash-kpi__ico { background: linear-gradient(135deg, var(--cor-primaria), var(--cor-primaria-escura)); }
.dash-kpi--azul    .dash-kpi__ico { background: linear-gradient(135deg, #2563eb, #1e40af); }
.dash-kpi--laranja .dash-kpi__ico { background: linear-gradient(135deg, var(--cor-secundaria), #e2571b); }
.dash-kpi--roxo    .dash-kpi__ico { background: linear-gradient(135deg, #7c3aed, #5b21b6); }
.dash-grid { display: grid; grid-template-columns: 2fr 1fr; gap: 20px; margin-bottom: 24px; }
@media (max-width: 900px){ .dash-grid { grid-template-columns: 1fr; } }
