:root{
  --bg:#f6f7fb;
  --panel:#ffffff;
  --panel2:#fbfbfe;
  --fg:#0f172a;
  --muted:#64748b;
  --border:#e5e7eb;
  --primary:#2563eb;
  --primary2:#1d4ed8;
  --danger:#b91c1c;
  --shadow:0 10px 30px rgba(2,6,23,.08);
  --shadow2:0 4px 14px rgba(2,6,23,.08);
  --radius:14px;
  --radius2:12px;
  --sidebarw:280px;
  --sidebarw-collapsed:84px;
  --topbarh:56px;
  --focus:0 0 0 4px rgba(37,99,235,.18);
}

html[data-theme="dark"]{
  --bg:#0b1220;
  --panel:#0f172a;
  --panel2:#0b1220;
  --fg:#e5e7eb;
  --muted:#94a3b8;
  --border:#1f2a44;
  --primary:#60a5fa;
  --primary2:#3b82f6;
  --danger:#ef4444;
  --shadow:0 10px 30px rgba(0,0,0,.35);
  --shadow2:0 4px 14px rgba(0,0,0,.28);
  --focus:0 0 0 4px rgba(96,165,250,.20);
}

*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--fg);font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Arial,sans-serif}
a{color:inherit}
code{background:rgba(148,163,184,.18);padding:2px 6px;border-radius:10px}
html[data-theme="dark"] code{background:rgba(148,163,184,.14)}
.small{font-size:12px;color:var(--muted)}
.badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;border:1px solid var(--border);background:var(--panel2);color:var(--muted);font-size:12px}
.flash{padding:12px 14px;border-radius:var(--radius2);background:rgba(37,99,235,.10);border:1px solid rgba(37,99,235,.25);margin:12px 0}
html[data-theme="dark"] .flash{background:rgba(96,165,250,.12);border-color:rgba(96,165,250,.25)}

.btn{
  display:inline-flex;align-items:center;gap:10px;
  border:1px solid var(--border);
  background:var(--panel);
  color:var(--fg);
  padding:10px 12px;
  border-radius:12px;
  text-decoration:none;
  cursor:pointer;
  box-shadow:var(--shadow2);
}
.btn:hover{border-color:rgba(37,99,235,.35)}
.btn:focus{outline:none;box-shadow:var(--focus)}
.btn.primary{background:var(--primary);border-color:transparent;color:#fff;box-shadow:0 10px 20px rgba(37,99,235,.25)}
.btn.primary:hover{background:var(--primary2)}
.btn.ghost{background:transparent;box-shadow:none}
.btn.danger{background:var(--danger);border-color:transparent;color:#fff;box-shadow:0 10px 20px rgba(185,28,28,.20)}
.iconbtn{
  display:inline-flex;align-items:center;justify-content:center;
  width:42px;height:42px;
  border-radius:12px;
  border:1px solid var(--border);
  background:var(--panel);
  cursor:pointer;
}
.iconbtn:hover{border-color:rgba(37,99,235,.35)}
.iconbtn:focus{outline:none;box-shadow:var(--focus)}

input[type=text],input[type=password],input[type=email],input[type=url],textarea,select{
  width:100%;
  padding:11px 12px;
  border-radius:12px;
  border:1px solid var(--border);
  background:var(--panel);
  color:var(--fg);
  outline:none;
}
textarea{min-height:120px}
input:focus,textarea:focus,select:focus{box-shadow:var(--focus);border-color:rgba(37,99,235,.45)}
label{display:block;font-size:13px;color:var(--muted);margin-bottom:6px}

.table{width:100%;border-collapse:collapse}
.table th,.table td{padding:12px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}
.table th{font-size:12px;color:var(--muted);letter-spacing:.06em;text-transform:uppercase}

.card{
  background:var(--panel);
  border:1px solid var(--border);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:18px;
}
.card + .card{margin-top:16px}
.hr{height:1px;background:var(--border);margin:14px 0}
.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}
@media(max-width:980px){.grid,.grid3{grid-template-columns:1fr}}

.backdrop{display:none;position:fixed;inset:0;background:rgba(2,6,23,.45);z-index:60}
.backdrop.show{display:block}

.shell{
  display:grid;
  grid-template-columns:var(--sidebarw) 1fr;
  min-height:100vh;
}
.shell.sidebar-collapsed{grid-template-columns:var(--sidebarw-collapsed) 1fr}

.sidebar{
  position:sticky;top:0;/*height:100vh;*/z-index:70;
  border-right:1px solid var(--border);
  background:var(--panel);
  padding:14px;
  display:flex;flex-direction:column;gap:10px;
}
.sidebar.collapsed{width:var(--sidebarw-collapsed)}
@media(max-width:1020px){
  .shell{grid-template-columns:1fr}
  .sidebar{position:fixed;left:-310px;width:var(--sidebarw);transition:left .18s ease}
  .sidebar.open{left:0}
}

.brand{
  display:flex;align-items:center;gap:10px;
  padding:10px;
  border:1px solid var(--border);
  border-radius:16px;
  background:var(--panel2);
}
.brand .logo{
  width:36px;height:36px;border-radius:12px;
  display:flex;align-items:center;justify-content:center;
  background:rgba(37,99,235,.10);
  color:var(--primary);
}
html[data-theme="dark"] .brand .logo{background:rgba(96,165,250,.12)}
.brand .name{font-weight:900}
.brand .top-actions{margin-left:auto;display:flex;gap:8px}

.section-title{
  font-size:11px;color:var(--muted);
  letter-spacing:.10em;text-transform:uppercase;
  padding:10px 12px 0 12px;
}

.nav{display:flex;flex-direction:column;gap:6px}
.nav a{
  display:flex;align-items:center;gap:10px;
  padding:11px 12px;
  border-radius:14px;
  border:1px solid transparent;
  text-decoration:none;
  color:var(--fg);
}
.nav a:hover{background:var(--panel2);border-color:var(--border)}
.nav a.active{background:rgba(37,99,235,.10);border-color:rgba(37,99,235,.25)}
html[data-theme="dark"] .nav a.active{background:rgba(96,165,250,.12);border-color:rgba(96,165,250,.25)}
.nav .ico{width:26px;display:flex;justify-content:center;color:var(--muted)}
.nav a.active .ico{color:var(--primary)}
.subnav{display:flex;flex-direction:column;gap:6px;margin:0 0 10px 38px}
.subnav a{padding:10px 12px;border-radius:12px}

.sidebar.collapsed .brand .name{display:none}
.sidebar.collapsed .section-title{display:none}
.sidebar.collapsed .nav .txt{display:none}
.sidebar.collapsed .subnav{display:none}
.sidebar.collapsed .nav a{justify-content:center;padding:12px 10px}

.main{
  padding:18px 18px 30px 18px;
}
.topbar{
  height:var(--topbarh);
  display:flex;align-items:center;justify-content:space-between;
  padding:8px 2px;
  margin-bottom:12px;
}
.topbar .left{display:flex;align-items:center;gap:10px}
.topbar .right{display:flex;align-items:center;gap:10px}

.login-shell{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
}
.login-card{
  width:100%;
  max-width:520px;
}


/* Rich editor */
.lk-editor{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow2);overflow:hidden}
.lk-toolbar{display:flex;gap:8px;flex-wrap:wrap;padding:10px;border-bottom:1px solid var(--border);background:var(--panel2)}
.lk-btn{width:40px;height:40px;border-radius:12px;border:1px solid var(--border);background:var(--panel);cursor:pointer;color:var(--fg)}
.lk-btn:hover{border-color:rgba(37,99,235,.35)}
.lk-btn:focus{outline:none;box-shadow:var(--focus)}
.lk-view{padding:12px;min-height:220px;outline:none}
.lk-html{width:100%;border:0;min-height:220px;padding:12px;background:var(--panel);color:var(--fg);outline:none;resize:vertical}



/* Patch: logo como toggle do menu */
.logo-btn{
  width:36px;height:36px;border-radius:12px;
  display:inline-flex;align-items:center;justify-content:center;
  border:0;
  cursor:pointer;
  background:rgba(37,99,235,.10);
  color:var(--primary);
}
html[data-theme="dark"] .logo-btn{background:rgba(96,165,250,.12)}

/* Patch: section-title vira menu (submenus) */
.section-title-btn{
  width:100%;
  display:flex;align-items:center;justify-content:space-between;
  gap:10px;
  padding:10px 12px;
  border-radius:14px;
  border:1px solid var(--border);
  background:var(--panel2);
  color:var(--muted);
  cursor:pointer;
  letter-spacing:.10em;
  text-transform:uppercase;
  font-size:11px;
}
.section-title-btn .chev{transition:transform .14s ease}
.section-title-btn.collapsed .chev{transform:rotate(-90deg)}
.section-panel{display:block}
.section-panel.collapsed{display:none}

/* Sidebar recolhida: seção compacta */
.sidebar.collapsed .section-title-btn{justify-content:center}
.sidebar.collapsed .section-title-btn .chev{display:none}


/* Patch: ícone do grupo quando sidebar recolhida */
.section-title-btn .secico{width:26px;display:inline-flex;justify-content:center;align-items:center}
.section-title-btn .sectxt{display:inline-block}
.sidebar.collapsed .section-title-btn .sectxt{display:none}
.sidebar.collapsed .section-title-btn{justify-content:center}
.sidebar.collapsed .section-title-btn .secico{width:auto}


/* Patch: quando sidebar recolhida, não exibir títulos de texto antigos */
.sidebar.collapsed .section-title{display:none}
