:root{
  --brand:#1C0851;
  --brand-dark:#2A0E73;
  --brand-deep:#120640;
  --brand-light:#EEEAF9;
  --brand-mid:#CFC3EA;
  --amber:#FDB800;
  --amber-dark:#E2A400;
  --bg-page:#f4f6f8;
  --bg-card:#FFFFFF;
  --bg-surface:#f0f2f5;
  --ink:#111827;
  --ink-soft:#4b5563;
  --ink-faint:#9ca3af;
  --line:#e5e7eb;
  --line-mid:rgba(0,0,0,0.16);
  --shadow: 0 24px 64px -30px rgba(28,8,81,0.45);
  --shadow-soft: 0 1px 3px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04);
  --radius:6px;
  --ease: cubic-bezier(0.4, 0, 0.2, 1);
  --danger:#ef4444;
  --danger-light:#fef2f2;
  --success:#16A34A;
  --success-light:#EAF7EE;
  --success-dark:#15803D;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--bg-page);
  color:var(--ink);
  font-family:'Inter', sans-serif;
  font-size:15px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{
  font-family:'Inter', sans-serif;
  font-weight:600;
  color:var(--ink);
  margin:0;
  line-height:1.25;
}
p{margin:0;}
a{color:inherit;}
img{display:block; max-width:100%;}
:focus-visible{outline:3px solid var(--brand); outline-offset:2px;}

.wrap{max-width:1080px; margin:0 auto; padding:0 24px;}

/* ---------- topo logado (área da empresa) ---------- */
.app-header{
  background:var(--bg-card); color:var(--ink); padding:0;
  height:72px; display:flex; align-items:center;
  border-bottom:0.5px solid var(--line);
  position:sticky; top:0; z-index:100;
  box-shadow:var(--shadow-soft);
}
.app-header .wrap{display:flex; align-items:center; justify-content:space-between; gap:16px;}
.app-logo{
  font-family:'Inter', sans-serif; font-weight:700; font-size:19px; letter-spacing:0.01em;
  color:var(--ink); text-decoration:none;
}
.app-logo span{color:var(--brand);}
.app-user{display:flex; align-items:center; gap:16px; font-size:12.5px; color:var(--ink-faint);}
.app-user strong{color:var(--ink); font-weight:600;}
.btn-logout{
  font-family:'Inter', sans-serif; font-weight:600; font-size:12.5px; letter-spacing:0.02em;
  background:transparent; color:var(--ink); border:1px solid var(--line-mid); border-radius:var(--radius);
  padding:8px 14px; text-decoration:none; cursor:pointer; transition:background 0.15s var(--ease), border-color 0.15s var(--ease);
}
.btn-logout:hover{background:var(--bg-surface); border-color:var(--ink-faint);}

.notif-bell-btn.is-open{color:var(--ink); background:var(--bg-surface);}
.notif-badge{
  position:absolute; top:2px; right:2px; min-width:15px; height:15px; padding:0 3px;
  background:var(--danger); color:#fff; border-radius:999px;
  font-size:9.5px; font-weight:700; line-height:15px; text-align:center;
}
.notif-empty{padding:40px 20px; text-align:center; font-size:13px; color:var(--ink-faint);}
.notif-item{
  display:flex; gap:12px; align-items:flex-start; padding:16px 20px; border-bottom:0.5px solid var(--line);
  text-decoration:none; color:inherit; cursor:pointer; transition:background 0.12s var(--ease);
}
.notif-item:last-child{border-bottom:none;}
.notif-item:hover{background:var(--bg-surface);}
.notif-item.is-unread{background:var(--brand-light);}
.notif-item.is-unread:hover{background:var(--brand-light); filter:brightness(0.97);}
.notif-icon{
  flex:none; width:36px; height:36px; border-radius:50%; margin-top:1px;
  background:var(--bg-surface); color:var(--brand-dark);
  display:flex; align-items:center; justify-content:center;
}
.notif-icon svg{width:16px; height:16px;}
.notif-item.is-unread .notif-icon{background:var(--brand); color:#fff;}
.notif-content{flex:1; min-width:0;}
.notif-title{display:block; margin:0 0 4px; font-size:13.5px; color:var(--ink);}
.notif-item p{margin:0 0 4px; font-size:13px; color:var(--ink); line-height:1.45; word-break:break-word;}
.notif-item.is-unread p{font-weight:600;}
.notif-item-static{cursor:default;}
.notif-item-static:hover{background:transparent;}
.notif-item-static.is-unread:hover{background:var(--brand-light);}
.notif-aviso-trigger{cursor:pointer;}
.notif-aviso-trigger:focus-visible{outline:3px solid var(--brand); outline-offset:-3px;}
.notif-aviso-image{width:100%; max-height:150px; object-fit:cover; border-radius:var(--radius); margin:8px 0 10px;}
.notif-rich-text{font-size:13px; color:var(--ink); line-height:1.45; word-break:break-word;}
.notif-rich-text p{margin:0 0 8px;}
.notif-rich-text ul, .notif-rich-text ol{margin:6px 0 8px; padding-left:18px;}
.notif-rich-text li{margin:2px 0;}
.notif-rich-text a{color:var(--brand); font-weight:600;}
.notif-date{font-size:11.5px; color:var(--ink-faint);}

/* ---------- painel lateral de notificações ---------- */
.notif-panel-overlay{
  position:fixed; inset:0; background:rgba(15,10,35,0.45); backdrop-filter:blur(1px);
  opacity:0; visibility:hidden; transition:opacity 0.2s var(--ease), visibility 0.2s var(--ease);
  z-index:300;
}
.notif-panel-overlay.is-open{opacity:1; visibility:visible;}
.notif-panel{
  position:fixed; top:0; right:0; height:100vh; width:360px; max-width:88vw;
  background:var(--bg-card); border-left:0.5px solid var(--line); box-shadow:var(--shadow);
  z-index:301; display:flex; flex-direction:column;
  transform:translateX(100%); transition:transform 0.25s var(--ease);
}
.notif-panel.is-open{transform:translateX(0);}
.notif-panel-header{
  display:flex; align-items:center; justify-content:space-between; flex-shrink:0;
  padding:20px 20px 16px; border-bottom:0.5px solid var(--line);
}
.notif-panel-header h3{font-size:15.5px; font-weight:700; color:var(--ink); margin:0;}
.notif-panel-close{
  background:none; border:none; cursor:pointer; padding:6px; border-radius:6px; color:var(--ink-soft);
  display:flex; align-items:center; justify-content:center; transition:background 0.15s var(--ease), color 0.15s var(--ease);
}
.notif-panel-close:hover{background:var(--bg-surface); color:var(--ink);}
.notif-panel-body{flex:1; overflow-y:auto; padding:0;}

main{padding:40px 0 64px;}

/* ══════════════════════════════════════════════
   PAINEL ADMINISTRATIVO (sidebar + topbar fixos)
   ══════════════════════════════════════════════ */
.admin-layout{display:flex; height:100vh; min-height:100vh; overflow:hidden; background:var(--bg-page);}

/* ---------- sidebar ---------- */
.admin-sidebar{
  width:220px; flex-shrink:0; background:var(--bg-card); color:var(--ink);
  border-right:0.5px solid var(--line);
  display:flex; flex-direction:column;
  height:100vh; position:sticky; top:0; align-self:flex-start;
  transition:width 0.25s var(--ease);
  overflow:hidden;
}
.admin-sidebar-brand{
  display:flex; align-items:center; justify-content:center;
  height:72px; box-sizing:border-box; padding:0 16px; flex-shrink:0;
  border-bottom:0.5px solid var(--line);
}
.admin-sidebar-brand-link{display:flex; align-items:center; text-decoration:none;}
.admin-sidebar-logo-full{
  height:52px; width:auto; display:block;
  background:#fff; border-radius:8px; padding:4px 9px;
}
.admin-sidebar-logo-icon{height:32px; width:32px; display:none;}
.admin-layout.sidebar-collapsed .admin-sidebar-logo-full{display:none;}
.admin-layout.sidebar-collapsed .admin-sidebar-logo-icon{display:block;}

.admin-nav{flex:1; padding:32px 0 10px; display:flex; flex-direction:column; gap:8px;}
.admin-sidebar-footer{
  flex:none; display:flex; flex-direction:column; gap:8px; padding:14px 16px;
  border-top:0.5px solid var(--line);
}
.sidebar-forja-credit{
  display:flex; align-items:center; justify-content:center; gap:7px;
  min-height:36px; padding:8px 6px; border-radius:var(--radius);
  color:var(--ink-faint); font-size:11px; font-weight:600; text-decoration:none;
  white-space:nowrap; transition:background 0.15s var(--ease), color 0.15s var(--ease);
}
.sidebar-forja-credit:hover{background:var(--bg-surface); color:var(--ink-soft);}
.sidebar-forja-label{font-size:10.5px; letter-spacing:0.02em;}
button.admin-nav-item{background:none; border:none; width:100%; text-align:left; font-family:inherit;}
.admin-nav-item .notif-badge{position:static; margin-left:auto; flex-shrink:0;}
.admin-nav-item{
  display:flex; align-items:center; gap:9px;
  padding:9px 16px; font-family:'Inter', sans-serif; font-weight:500; font-size:13.5px;
  color:var(--ink-soft); text-decoration:none; cursor:pointer;
  border-left:2.5px solid transparent;
  transition:color 0.12s var(--ease), background 0.12s var(--ease), border-color 0.12s var(--ease);
}
.admin-nav-item svg{width:16px; height:16px; fill:currentColor; flex-shrink:0;}
.admin-nav-item:hover{color:var(--ink); background:var(--bg-surface);}
.admin-nav-item.active{color:var(--ink); border-left-color:var(--brand); background:var(--brand-light); font-weight:600;}

/* ---------- sidebar recolhida ---------- */
.admin-layout.sidebar-collapsed .admin-sidebar{width:56px; overflow:visible;}
.admin-layout.sidebar-collapsed .admin-sidebar-brand{padding:0;}
.admin-layout.sidebar-collapsed .admin-sidebar-footer{padding:14px 8px;}
.admin-layout.sidebar-collapsed .sidebar-forja-credit{padding:8px 0;}
.admin-layout.sidebar-collapsed .sidebar-forja-label{display:none;}
.admin-layout.sidebar-collapsed .sidebar-forja-credit .forja-credit-icon{height:16px;}
.admin-layout.sidebar-collapsed .admin-nav-item{justify-content:center; padding:11px 0; gap:0;}
.admin-layout.sidebar-collapsed .nav-label{display:none;}
.admin-layout.sidebar-collapsed .admin-nav-item,
.admin-layout.sidebar-collapsed .sidebar-forja-credit{position:relative;}
.admin-layout.sidebar-collapsed .admin-nav-item::after,
.admin-layout.sidebar-collapsed .sidebar-forja-credit::after{
  content:attr(data-tip);
  position:absolute; left:calc(100% + 10px); top:50%;
  transform:translateY(-50%) translateX(-4px);
  background:#1a2535; color:#fff; padding:5px 11px; border-radius:var(--radius);
  font-size:12px; font-weight:500; white-space:nowrap;
  border:1px solid rgba(28,8,81,0.25);
  pointer-events:none; opacity:0;
  transition:opacity 0.15s var(--ease), transform 0.15s var(--ease);
  z-index:200;
}
.admin-layout.sidebar-collapsed .admin-nav-item:hover::after,
.admin-layout.sidebar-collapsed .sidebar-forja-credit:hover::after{opacity:1; transform:translateY(-50%) translateX(0);}

/* ---------- topbar + conteúdo ---------- */
.admin-main{flex:1; min-width:0; height:100vh; display:flex; flex-direction:column; padding:0;}
.admin-topbar{
  height:72px; flex-shrink:0; background:var(--bg-card); border-bottom:0.5px solid var(--line);
  display:flex; align-items:center; gap:14px; padding:0 24px;
}
.admin-topbar-title{font-size:15px; font-weight:600; color:var(--ink);}
.admin-topbar-right{margin-left:auto; display:flex; align-items:center; gap:10px;}
.topbar-icon-btn{
  width:36px; height:36px; border:none; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  position:relative;
  background:var(--bg-surface); color:var(--ink-soft); cursor:pointer;
  transition:background 0.15s var(--ease), color 0.15s var(--ease), transform 0.15s var(--ease);
}
.topbar-icon-btn:hover{background:var(--brand-light); color:var(--brand-dark); transform:translateY(-1px);}
.topbar-icon-btn svg{width:17px; height:17px;}
.admin-topbar-profile{display:flex; align-items:center;}
.admin-topbar-profile-btn{
  display:flex; align-items:center; gap:9px; padding:5px 5px 5px 10px; border-radius:999px;
  background:none; border:none; cursor:pointer; color:var(--ink); font-family:'Inter', sans-serif;
  transition:background 0.15s var(--ease);
}
.admin-topbar-profile-btn:hover, .admin-topbar-profile.is-open .admin-topbar-profile-btn{background:var(--bg-surface);}
.admin-profile-av{
  width:32px; height:32px; border-radius:50%; flex-shrink:0;
  background:linear-gradient(135deg, var(--brand-dark), var(--brand));
  color:#fff; display:flex; align-items:center; justify-content:center;
  font-size:12px; font-weight:700; text-transform:uppercase;
  object-fit:cover;
}
.admin-profile-name{font-size:13px; font-weight:600; color:var(--ink); white-space:nowrap; max-width:140px; overflow:hidden; text-overflow:ellipsis;}
.sidebar-toggle{
  background:none; border:none; cursor:pointer; color:var(--ink-soft); padding:7px;
  border-radius:var(--radius); display:flex; align-items:center; justify-content:center;
  transition:background 0.12s var(--ease), color 0.12s var(--ease); flex-shrink:0;
}
.sidebar-toggle:hover{background:var(--brand-light); color:var(--brand-dark);}

.admin-content{flex:1; overflow-y:auto; padding:32px 24px 24px;}

/* ---------- rodapé do painel (versão) ---------- */
.admin-page-footer{
  padding:12.8px 24px; border-top:0.5px solid var(--line); flex-shrink:0;
  display:flex; align-items:center; justify-content:flex-end;
  font-size:12px; color:var(--ink-faint);
  background:var(--bg-page);
}
.admin-page-footer-version{font-size:12px; color:var(--ink-faint);}
.forja-credit-icon{height:20px; width:auto; max-width:none; display:inline-block; flex-shrink:0;}
.forja-credit-icon-dark{display:none;}

/* ---------- grid de métricas (dashboard) ---------- */
.admin-stats-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(150px, 1fr)); gap:14px; margin-bottom:24px;}
.admin-stat{background:var(--bg-card); border:0.5px solid var(--line); border-radius:var(--radius); padding:20px; box-shadow:var(--shadow-soft);}
.admin-stat-val{font-size:28px; font-weight:700; color:var(--ink); margin-bottom:4px;}
.admin-stat-lbl{font-size:12px; color:var(--ink-soft);}
@media (max-width:520px){ .admin-stats-grid{grid-template-columns:1fr;} }

/* ---------- barra de ações + busca ---------- */
.admin-section-header{display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:20px; flex-wrap:wrap;}
.admin-section-header-actions{display:flex; gap:8px; flex-wrap:wrap;}
.admin-search{
  flex:1; min-width:220px; max-width:360px;
  font-family:'Inter', sans-serif; font-size:14px; color:var(--ink);
  background:var(--bg-surface); border:1px solid var(--line-mid); border-radius:var(--radius);
  padding:10px 13px; outline:none;
  transition:border-color 0.15s var(--ease), background 0.15s var(--ease), box-shadow 0.15s var(--ease);
}
.admin-search::placeholder{color:var(--ink-faint);}
.admin-search:focus{border-color:var(--brand); background:rgba(28,8,81,0.06); box-shadow:0 0 0 3px rgba(28,8,81,0.18);}

/* ---------- cards de listagem (usuários, etc.) ---------- */
.users-card{background:var(--bg-card); border:0.5px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow-soft); padding:24px; margin-bottom:20px;}
.users-card-title{font-size:13px; font-weight:600; text-transform:uppercase; letter-spacing:0.05em; color:var(--ink-faint); margin-bottom:14px;}
.users-card:last-child{margin-bottom:0;}

/* ---------- tela de login (sem app-header) ---------- */
.auth-shell{
  min-height:100vh; display:flex; align-items:center; justify-content:center;
  background: radial-gradient(
    ellipse at center,
    #6B46B8 0%,
    #5A3AA0 11%,
    #4A2E8C 22%,
    #3B1E75 33%,
    #2A0E73 44%,
    #1C0851 55%,
    #130735 66%,
    #0A0320 77%,
    #04010F 88%,
    #000000 100%
  );
  padding:24px;
}
.auth-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:20px;
  box-shadow:var(--shadow);
  padding:40px 40px 44px; width:100%; max-width:400px;
}
.auth-brand-logo{
  height:auto; max-width:190px; margin:0 auto 20px; display:block;
}
.auth-subtitle{text-align:center; color:#6b7280; font-size:13.5px; margin-bottom:28px;}

/* ---------- formulários ---------- */
.field{margin-bottom:18px;}
.field label{
  display:block; font-family:'Inter', sans-serif; font-weight:600; font-size:12px;
  letter-spacing:0.04em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:7px;
}
.field input, .field select, .field textarea{
  width:100%; font-family:'Inter', sans-serif; font-size:14px; color:var(--ink);
  background:var(--bg-surface); border:1px solid var(--line-mid); border-radius:var(--radius); padding:10px 13px;
  transition:border-color 0.15s var(--ease), background 0.15s var(--ease), box-shadow 0.15s var(--ease);
}
.field input:focus, .field select:focus, .field textarea:focus{
  outline:none; border-color:var(--brand); background:rgba(28,8,81,0.06); box-shadow:0 0 0 3px rgba(28,8,81,0.18);
}
.field-hint{font-size:12px; color:var(--ink-faint); margin-top:6px;}
.field-hint.is-success{color:var(--success-dark);}
.field-hint.is-error{color:var(--danger);}
.field-hint.is-loading{color:var(--brand);}
.field:has(:required) > label::after{
  content:" *";
  color:var(--danger);
}
.field-with-action{display:grid; grid-template-columns:minmax(0, 1fr) auto; gap:10px; align-items:start;}
.field-with-action .btn{min-height:44px; white-space:nowrap;}
.empresa-dados-grid{display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:0 16px;}
.empresa-dados-grid-wide{grid-template-columns:minmax(0, 1fr) minmax(120px, 0.25fr);}
.empresa-dados-grid-city{grid-template-columns:minmax(0, 1fr) minmax(84px, 0.18fr);}
@media (max-width:760px){
  .field-with-action,
  .empresa-dados-grid,
  .empresa-dados-grid-wide,
  .empresa-dados-grid-city{grid-template-columns:1fr;}
  .field-with-action .btn{width:100%;}
}

.field-password{position:relative;}
.field-password input{padding-right:42px;}
.password-toggle{
  position:absolute; right:4px; top:50%; transform:translateY(-50%);
  background:none; border:none; cursor:pointer; padding:7px; color:var(--ink-faint);
  display:flex; align-items:center; justify-content:center; border-radius:6px;
  transition:color 0.15s var(--ease), background 0.15s var(--ease);
}
.password-toggle:hover{color:var(--ink-soft); background:var(--bg-card);}
.password-toggle svg{width:18px; height:18px; flex:none;}
.password-toggle .icon-eye-off{display:none;}
.password-toggle.is-visible .icon-eye{display:none;}
.password-toggle.is-visible .icon-eye-off{display:block;}

.checklist{border:1px solid var(--line); border-radius:var(--radius); max-height:340px; overflow-y:auto;}
.checklist-all{
  display:flex; align-items:center; gap:10px; padding:12px 16px;
  border-bottom:1px solid var(--line); background:var(--bg-surface);
  font-weight:600; font-size:13.5px; color:var(--ink);
}
.checklist-item{
  display:flex; align-items:center; gap:10px; padding:11px 16px;
  border-bottom:1px solid var(--line); font-size:14px; color:var(--ink);
}
.checklist-item:last-child{border-bottom:none;}
.checklist-item input, .checklist-all input{width:16px; height:16px; accent-color:var(--brand); cursor:pointer; flex:none;}
.checklist-item label, .checklist-all label{cursor:pointer; flex:1;}

.choice-row{display:flex; flex-wrap:wrap; gap:10px;}
.choice-pill{
  display:inline-flex; align-items:center; gap:9px; min-height:42px; padding:10px 14px;
  border:1px solid var(--line); border-radius:var(--radius); background:var(--bg-card);
  color:var(--ink); font-size:13.5px; font-weight:600; cursor:pointer;
}
.choice-pill input{width:15px; height:15px; accent-color:var(--brand); margin:0;}
.choice-pill:has(input:checked){border-color:var(--brand); background:var(--brand-light);}

.rich-editor{border:1px solid var(--line-mid); border-radius:var(--radius); background:var(--bg-card); overflow:hidden;}
.rich-toolbar{
  display:flex; flex-wrap:wrap; gap:4px; padding:8px; border-bottom:1px solid var(--line);
  background:var(--bg-surface);
}
.rich-toolbar button{
  min-width:34px; height:32px; padding:0 10px; border:1px solid var(--line);
  border-radius:calc(var(--radius) - 2px); background:var(--bg-card); color:var(--ink);
  font-family:'Inter', sans-serif; font-size:12px; font-weight:700; cursor:pointer;
}
.rich-toolbar button[data-link]{min-width:52px;}
.rich-toolbar button:hover{border-color:var(--brand); color:var(--brand);}
.rich-area{
  min-height:180px; padding:14px 16px; outline:none; color:var(--ink);
  font-size:14px; line-height:1.55;
}
.rich-area:empty::before{content:attr(data-placeholder); color:var(--ink-faint);}
.rich-area p{margin:0 0 10px;}
.rich-area ul, .rich-area ol{margin:8px 0 10px; padding-left:22px;}
.rich-area a{color:var(--brand); font-weight:600;}
.rich-link-preview{
  display:flex; align-items:center; gap:8px; padding:10px 14px;
  border-top:1px solid var(--line); background:rgba(253,184,0,0.08);
  color:var(--ink-soft); font-size:12.5px; line-height:1.45;
}
.rich-link-preview[hidden]{display:none;}
.rich-link-preview span{font-weight:700; color:var(--ink);}
.rich-link-preview a{color:var(--brand); font-weight:600; word-break:break-all;}

/* ---------- modos de envio (página Conteúdo) ---------- */
.mode-grid{display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:16px; margin-bottom:24px;}
.mode-card{
  background:var(--bg-card); border:1px solid var(--line); border-radius:var(--radius);
  box-shadow:var(--shadow-soft); padding:22px 24px; text-decoration:none; color:var(--ink);
  display:flex; flex-direction:column; gap:6px;
  transition:border-color 0.15s var(--ease), transform 0.15s var(--ease), box-shadow 0.15s var(--ease);
}
.mode-card-icon{
  width:38px; height:38px; border-radius:50%; background:var(--brand-light); color:var(--brand);
  display:flex; align-items:center; justify-content:center; margin-bottom:8px; flex:none;
}
.mode-card-icon svg{width:19px; height:19px;}
.mode-card h3{font-size:15.5px; font-weight:700; color:var(--ink);}
.mode-card p{font-size:13px; color:var(--ink-soft); line-height:1.55;}
.mode-card-cta{font-size:12.5px; font-weight:600; color:var(--brand); margin-top:8px;}
a.mode-card:hover{border-color:var(--brand); transform:translateY(-2px); box-shadow:var(--shadow);}
a.mode-card:hover .mode-card-cta{text-decoration:underline;}
@media (max-width:760px){ .mode-grid{grid-template-columns:1fr;} }

/* ---------- cards de categoria ---------- */
.categoria-grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(240px, 1fr)); gap:20px;}
.categoria-card{
  background:var(--bg-card); border:0.5px solid var(--line); border-radius:var(--radius);
  box-shadow:var(--shadow-soft); overflow:hidden; text-decoration:none; color:var(--ink);
  display:flex; flex-direction:column;
  transition:transform 0.15s var(--ease), box-shadow 0.15s var(--ease), border-color 0.15s var(--ease);
}
.categoria-card:hover{transform:translateY(-2px); box-shadow:var(--shadow); border-color:var(--brand);}
.categoria-card-capa{width:100%; height:150px; object-fit:cover; display:block; flex:none;}
.categoria-card-capa-placeholder{
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg, var(--brand-dark), var(--brand)); color:#fff; font-size:13px; font-weight:600;
}
.categoria-card-body{padding:16px 18px 20px; display:flex; flex-direction:column; gap:6px; flex:1;}
.categoria-card-body h3{font-size:15.5px; font-weight:700; color:var(--ink);}
.categoria-card-meta{font-size:12.5px; color:var(--ink-faint);}

/* O card de login é sempre branco (não acompanha o tema escuro do sistema/site),
   então seus campos e alertas precisam de cores fixas em vez das variáveis de tema. */
.auth-card .field label{ color:#4b5563; }
.auth-card .field input,
.auth-card .field select,
.auth-card .field textarea{
  background:#f4f6f8; border-color:rgba(0,0,0,0.16); color:#111827;
}
.auth-card .field input::placeholder{ color:#9ca3af; }
.auth-card .field input:focus,
.auth-card .field select:focus,
.auth-card .field textarea:focus{
  border-color:var(--brand); background:rgba(28,8,81,0.06); box-shadow:0 0 0 3px rgba(28,8,81,0.18);
}
.auth-card .field-hint{ color:#9ca3af; }
.auth-card .alert-erro{ background:#fef2f2; color:var(--danger); border-color:rgba(239,68,68,0.3); }
.auth-card .alert-sucesso{ background:#EAF7EE; color:var(--success-dark); border-color:rgba(22,163,74,0.3); }
.form-was-submitted .field input:required:invalid,
.form-was-submitted .field select:required:invalid,
.form-was-submitted .field textarea:required:invalid,
.field input.is-required-error,
.field select.is-required-error,
.field textarea.is-required-error{
  border-color:var(--danger);
  background:var(--danger-light);
  box-shadow:0 0 0 3px rgba(239,68,68,0.14);
}
.auth-card .form-was-submitted .field input:required:invalid,
.auth-card .field input.is-required-error{
  border-color:var(--danger);
  background:#fef2f2;
  box-shadow:0 0 0 3px rgba(239,68,68,0.14);
}
.auth-back-link{
  display:flex; align-items:center; justify-content:center; gap:8px;
  margin-top:18px; color:var(--brand); font-size:13px; font-weight:700;
  letter-spacing:0.02em; text-decoration:none;
}
.auth-back-link:hover{text-decoration:underline;}

.btn{
  font-family:'Inter', sans-serif; font-weight:600; font-size:13px; letter-spacing:0.03em;
  text-decoration:none; padding:11px 20px; display:inline-flex; align-items:center; justify-content:center; gap:8px;
  border:1px solid var(--line-mid); border-radius:var(--radius); cursor:pointer; background:transparent; color:var(--ink);
  transition:background 0.15s var(--ease), border-color 0.15s var(--ease), color 0.15s var(--ease), opacity 0.15s var(--ease), box-shadow 0.15s var(--ease);
}
.btn:hover{background:var(--bg-surface); border-color:var(--ink-faint);}
.btn-primary{
  background:linear-gradient(135deg, var(--brand-dark) 0%, var(--brand) 50%, var(--brand-dark) 100%);
  color:#fff; border:none; box-shadow:0 4px 14px rgba(28,8,81,0.35);
}
.btn-primary:hover{
  background:linear-gradient(135deg, var(--brand-dark) 0%, var(--brand) 50%, var(--brand-dark) 100%);
  opacity:0.88; box-shadow:0 6px 20px rgba(28,8,81,0.5); border-color:transparent;
}
.auth-card .btn{width:100%;}
.btn-auth-admin{
  margin-top:12px;
  background:#fff;
  color:var(--brand);
  border-color:rgba(28,8,81,0.22);
}
.btn-auth-admin:hover{
  background:var(--brand-light);
  color:var(--brand-dark);
  border-color:rgba(28,8,81,0.35);
}
.btn-ghost{background:transparent; color:var(--ink);}
.btn-ghost:hover{background:var(--bg-surface);}
.btn-danger{background:transparent; color:var(--danger); border-color:var(--danger); font-size:12px; padding:7px 13px;}
.btn-danger:hover{background:var(--danger-light); color:var(--danger); border-color:var(--danger);}

.alert{
  padding:13px 16px; border-radius:var(--radius); font-size:13.5px; margin-bottom:20px; border:0.5px solid transparent;
}
.alert-erro{background:var(--danger-light); color:var(--danger); border-color:rgba(239,68,68,0.3);}
.alert-sucesso{background:var(--success-light); color:var(--success-dark); border-color:rgba(22,163,74,0.3);}

/* ---------- cards e listas ---------- */
.page-head{display:flex; align-items:flex-end; justify-content:space-between; gap:16px; margin-bottom:28px; flex-wrap:wrap;}
.page-head h1{font-size:22px;}
.page-head p{color:var(--ink-soft); font-size:13.5px; margin-top:6px;}

.card{
  background:var(--bg-card); border:0.5px solid var(--line); border-radius:var(--radius);
  box-shadow:var(--shadow-soft); padding:28px;
}
.card + .card{margin-top:24px;}

.doc-list{list-style:none; margin:0; padding:0;}
.doc-item{
  display:flex; align-items:center; gap:16px; padding:16px 0; border-bottom:0.5px solid var(--line);
}
.doc-item:last-child{border-bottom:none;}
.doc-icon{
  flex:none; width:42px; height:42px; border-radius:var(--radius); background:var(--bg-surface);
  display:flex; align-items:center; justify-content:center; color:var(--brand-dark); font-weight:700; font-size:11px;
  text-transform:uppercase; overflow:hidden;
}
.doc-icon canvas{width:100%; height:100%; object-fit:cover; display:block;}
.doc-info{flex:1; min-width:0;}
.doc-info strong{display:block; font-size:14.5px; font-weight:500; color:var(--ink); word-break:break-word;}
.doc-meta{font-size:12px; color:var(--ink-faint); margin-top:2px;}
.doc-actions{flex:none; display:flex; gap:8px;}

/* ---------- alternador lista/cards ---------- */
.view-toggle{display:flex; gap:2px; background:var(--bg-surface); border-radius:var(--radius); padding:3px; flex:none;}
.view-toggle-btn{
  background:none; border:none; cursor:pointer; padding:7px 10px; border-radius:calc(var(--radius) - 3px);
  color:var(--ink-faint); display:flex; align-items:center; justify-content:center;
  transition:background 0.15s var(--ease), color 0.15s var(--ease);
}
.view-toggle-btn svg{width:16px; height:16px;}
.view-toggle-btn:hover{color:var(--ink);}
.view-toggle-btn.active{background:var(--bg-card); color:var(--brand); box-shadow:var(--shadow-soft);}

.doc-view[data-view="lista"] .doc-view-grade{display:none;}
.doc-view[data-view="grade"] .doc-view-lista{display:none;}

.doc-grid{display:grid; grid-template-columns:repeat(5, 1fr); gap:18px;}
.doc-card{
  background:var(--bg-card); border:0.5px solid var(--line); border-radius:var(--radius);
  box-shadow:var(--shadow-soft); padding:28px 18px; display:flex; flex-direction:column;
  align-items:center; text-align:center; gap:10px;
}
.doc-card-icon{width:68px; height:68px; font-size:13px; margin-bottom:2px;}
.doc-card strong{font-size:13.5px; font-weight:500; color:var(--ink); word-break:break-word;}
.doc-card .doc-meta{margin-top:-4px;}
.doc-card-actions{display:flex; flex-direction:column; gap:6px; width:100%; margin-top:6px;}
.doc-card-actions .btn{width:100%;}
@media (max-width:1100px){ .doc-grid{grid-template-columns:repeat(3, 1fr);} }
@media (max-width:760px){ .doc-grid{grid-template-columns:repeat(2, 1fr);} }
@media (max-width:480px){ .doc-grid{grid-template-columns:1fr;} }

.row-actions{position:relative; display:inline-block;}
.row-actions-btn{
  background:none; border:none; cursor:pointer; padding:6px; border-radius:6px;
  color:var(--ink-soft); display:flex; align-items:center; justify-content:center;
  transition:background 0.15s var(--ease), color 0.15s var(--ease);
}
.row-actions-btn:hover, .row-actions.is-open .row-actions-btn{background:var(--bg-surface); color:var(--ink);}
.row-actions-btn svg{width:18px; height:18px;}
.row-actions-menu{
  position:absolute; right:0; top:calc(100% + 4px); min-width:160px;
  background:var(--bg-card); border:1px solid var(--line); border-radius:var(--radius);
  box-shadow:var(--shadow); padding:6px; z-index:50; display:none;
}
.row-actions.is-open .row-actions-menu{display:block;}
.row-actions-menu a{
  display:block; padding:8px 12px; border-radius:6px; text-decoration:none; color:var(--ink);
  font-size:13.5px; font-weight:500; transition:background 0.15s var(--ease);
}
.row-actions-menu a:hover{background:var(--bg-surface);}
.row-actions-menu a.is-danger{color:var(--danger);}
.row-actions-menu a.is-danger:hover{background:var(--danger-light);}

.danger-zone{
  margin-top:32px; padding-top:24px; border-top:0.5px solid var(--line);
}
.danger-zone h3{font-size:14px; font-weight:600; color:var(--ink); margin:0 0 4px;}
.danger-zone p{font-size:13px; color:var(--ink-faint); margin:0 0 14px;}

.avatar-upload{display:flex; align-items:center; gap:16px;}
.avatar-upload-preview{
  width:64px; height:64px; border-radius:50%; flex-shrink:0; object-fit:cover;
  background:linear-gradient(135deg, var(--brand-dark), var(--brand));
  color:#fff; display:flex; align-items:center; justify-content:center;
  font-size:22px; font-weight:700; text-transform:uppercase;
}
.avatar-upload-actions{display:flex; flex-direction:column; gap:6px; align-items:flex-start;}
.avatar-upload-btn{padding:8px 16px; font-size:13px; cursor:pointer;}
.avatar-upload-input{display:none;}
.avatar-upload-actions label.avatar-upload-remove{
  display:flex; align-items:center; gap:6px; margin-bottom:0;
  font-family:'Inter', sans-serif; font-weight:500; font-size:12.5px; letter-spacing:normal;
  text-transform:none; color:var(--ink-soft); cursor:pointer;
}
.avatar-upload-remove input{width:auto; flex-shrink:0; margin:0;}

.capa-upload-preview{
  width:120px; height:60px; border-radius:8px; flex-shrink:0; object-fit:cover;
  background:linear-gradient(135deg, var(--brand-dark), var(--brand));
  color:#fff; display:flex; align-items:center; justify-content:center;
  font-size:11px; font-weight:600;
}

.modal-overlay{
  position:fixed; inset:0; background:rgba(15,10,35,0.55); backdrop-filter:blur(2px);
  display:none; align-items:center; justify-content:center; padding:20px; z-index:200;
}
.modal-overlay.is-open{display:flex;}
.modal-box{
  background:var(--bg-card); border:1px solid var(--line); border-radius:var(--radius);
  box-shadow:var(--shadow); max-width:420px; width:100%; padding:26px;
}
.modal-box h3{font-size:17px; font-weight:600; color:var(--ink); margin:0 0 10px;}
.modal-box p{font-size:14px; color:var(--ink-soft); line-height:1.5; margin:0 0 22px;}
.modal-box p strong{color:var(--danger);}
.modal-actions{display:flex; justify-content:flex-end; gap:10px;}
.modal-actions form{margin:0;}
.modal-actions .btn{padding:11px 20px; font-size:13px;}
.link-modal-box{max-width:480px;}
.link-modal-box .field{margin-bottom:20px;}
.aviso-modal-overlay{z-index:360;}
.aviso-modal-box{
  position:relative; max-width:680px; max-height:88vh; overflow:auto;
  padding:30px; border-radius:12px;
}
.aviso-modal-close{
  position:absolute; top:14px; right:14px; width:34px; height:34px;
  display:flex; align-items:center; justify-content:center;
  border:1px solid var(--line); border-radius:50%; background:var(--bg-card);
  color:var(--ink-soft); cursor:pointer; transition:background 0.15s var(--ease), color 0.15s var(--ease);
}
.aviso-modal-close:hover{background:var(--bg-surface); color:var(--ink);}
.aviso-modal-head{padding-right:34px; margin-bottom:18px;}
.aviso-modal-kicker{
  display:block; margin-bottom:6px; font-size:11px; font-weight:800;
  letter-spacing:0.12em; text-transform:uppercase; color:var(--brand);
}
.aviso-modal-box h3{font-size:22px; font-weight:800; line-height:1.2; color:var(--ink); margin:0 0 8px;}
.aviso-modal-date{display:block; color:var(--ink-faint); font-size:13px;}
.aviso-modal-image{
  width:100%; max-height:320px; object-fit:cover; border-radius:10px;
  margin:0 0 22px; box-shadow:var(--shadow-soft);
}
.aviso-modal-content{
  font-size:15px; line-height:1.7; color:var(--ink-soft);
}
.aviso-modal-content p{margin:0 0 12px;}
.aviso-modal-content ul, .aviso-modal-content ol{margin:8px 0 14px; padding-left:22px;}
.aviso-modal-content a{color:var(--brand); font-weight:700;}
.aviso-modal-actions{
  display:flex; justify-content:flex-end; gap:10px;
  margin-top:24px; padding-top:18px; border-top:1px solid var(--line);
}
.aviso-modal-actions .btn{min-width:170px;}

.viewer-modal-wrap{position:relative; display:flex; max-width:100%; max-height:100%;}
.viewer-modal-box{
  max-width:900px; width:92vw; height:85vh; padding:0;
  display:flex; flex-direction:column; overflow:hidden;
}
.viewer-modal-close{
  position:absolute; top:0; right:-50px; z-index:2; width:34px; height:34px; border-radius:50%;
  background:var(--bg-card); border:1px solid var(--line); box-shadow:var(--shadow-soft);
  color:var(--ink-soft); cursor:pointer; display:flex; align-items:center; justify-content:center;
  transition:background 0.15s var(--ease), color 0.15s var(--ease);
}
.viewer-modal-close:hover{background:var(--bg-surface); color:var(--ink);}
.viewer-modal-body{flex:1; background:#525659; display:flex; align-items:center; justify-content:center;}
.viewer-modal-body iframe{width:100%; height:100%; border:none;}
.viewer-modal-body img{max-width:100%; max-height:100%; object-fit:contain;}

.empty-state{text-align:center; padding:48px 24px; color:var(--ink-faint);}
.empty-state strong{display:block; color:var(--ink); font-size:15px; font-weight:600; margin-bottom:6px;}

.empresa-info-card{padding-bottom:12px;}
.empresa-info-grid{display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:18px 24px;}
.empresa-info-grid span{
  display:block; margin-bottom:4px; font-size:11px; font-weight:700; letter-spacing:0.04em;
  text-transform:uppercase; color:var(--ink-faint);
}
.empresa-info-grid strong{display:block; font-size:14px; font-weight:600; color:var(--ink); line-height:1.45;}
.empresa-info-grid small{display:block; margin-top:3px; font-size:12px; font-weight:500; color:var(--ink-soft);}
@media (max-width:760px){ .empresa-info-grid{grid-template-columns:1fr;} }

table.data-table{width:100%; border-collapse:collapse; font-size:14px;}
table.data-table th{
  text-align:left; font-family:'Inter', sans-serif; font-weight:600; font-size:11px; letter-spacing:0.04em;
  text-transform:uppercase; color:var(--ink-faint); padding:0 12px 12px; border-bottom:0.5px solid var(--line);
}
table.data-table td{padding:14px 12px; border-bottom:0.5px solid var(--line); vertical-align:middle;}
table.data-table tr:last-child td{border-bottom:none;}
table.data-table a.row-link{color:var(--ink); font-weight:600; text-decoration:none;}
table.data-table a.row-link:hover{text-decoration:underline;}
.table-subtext{font-size:12px; color:var(--ink-faint); margin-top:2px; line-height:1.4;}

.back-link{
  display:inline-flex; align-items:center; gap:6px; margin-bottom:20px;
  font-family:'Inter', sans-serif; font-weight:500; font-size:13px;
  color:var(--brand-dark); text-decoration:none;
}
.back-link:hover{text-decoration:underline;}

@media (max-width:640px){
  .app-header .wrap{flex-direction:column; align-items:flex-start; gap:10px; padding:14px 24px;}
  .app-header{height:auto;}
  .doc-item{flex-wrap:wrap;}
  table.data-table{display:block; overflow-x:auto;}
}

@media (max-width:820px){
  .admin-layout{height:auto; min-height:100vh; overflow:visible; flex-direction:column;}
  .admin-layout.sidebar-collapsed .admin-sidebar{width:100%;}
  .admin-sidebar{
    width:100%; flex-direction:row; align-items:center; flex-wrap:wrap;
    height:auto; position:relative; top:auto; align-self:auto; overflow:visible;
    padding:10px 16px; gap:8px 16px; border-right:none; border-bottom:0.5px solid var(--line);
  }
  .admin-main{height:auto; min-height:0;}
  .admin-sidebar-brand{height:auto; padding:0; border-bottom:none;}
  .admin-nav{display:flex; flex:1; padding:0; gap:2px;}
  .admin-profile-name{display:none;}
  .admin-sidebar-footer, .admin-layout.sidebar-collapsed .admin-sidebar-footer{
    flex-direction:row; border-top:none; padding:0; margin-left:auto;
  }
}
