/* ═════════════════════ NAVEGAÇÃO LATERAL EXPANSÍVEL v4.1.1 ═════════════════════ */
:root {
  --sidebar-w: 268px;
  --total-top: var(--topbar-h);
}

.app-tabbar { display:none !important; }
.sidebar-mobile-toggle {
  display:none; width:34px; height:34px; flex:0 0 34px;
  align-items:center; justify-content:center;
  border:1px solid rgba(255,255,255,.14); border-radius:8px;
  background:rgba(255,255,255,.08); color:#fff;
  font-size:18px; line-height:1;
}
.sidebar-mobile-toggle:hover { background:rgba(255,255,255,.14); }

.app-sidebar {
  display:flex !important;
  position:fixed; top:var(--topbar-h); left:0; bottom:0; z-index:108;
  width:var(--sidebar-w); min-width:var(--sidebar-w);
  flex-direction:column;
  background:#fff; border-right:1px solid var(--border);
  box-shadow:6px 0 22px rgba(15,23,42,.035);
  overflow:hidden;
}
.sidebar-scroll {
  flex:1; min-height:0; overflow-y:auto; overflow-x:hidden;
  padding:14px 12px 18px;
  scrollbar-width:thin;
}
.sidebar-context {
  padding:6px 10px 13px;
  font-size:10px; font-weight:800; letter-spacing:.1em;
  text-transform:uppercase; color:var(--text3);
  display:flex; align-items:center; justify-content:space-between; gap:8px;
}
.sidebar-collapse-btn {
  width:28px; height:28px; flex:0 0 28px;
  display:flex; align-items:center; justify-content:center;
  border:1px solid var(--border2); border-radius:8px;
  background:var(--surface); color:var(--text2);
  font-size:20px; line-height:1; transition:background .15s,color .15s,transform .18s;
}
.sidebar-collapse-btn:hover { background:var(--blue-bg); color:var(--blue); border-color:var(--blue-border); }
.app-sidebar,.app-main { transition:width .22s ease,min-width .22s ease,margin-left .22s ease; }
body.sidebar-collapsed { --sidebar-w:76px; }
body.sidebar-collapsed .sidebar-scroll { padding-left:8px; padding-right:8px; }
body.sidebar-collapsed .sidebar-context { justify-content:center; padding-left:0; padding-right:0; }
body.sidebar-collapsed .sidebar-context > span,
body.sidebar-collapsed .sidebar-group-label,
body.sidebar-collapsed .sidebar-chevron,
body.sidebar-collapsed .sidebar-link-label,
body.sidebar-collapsed .sidebar-soon,
body.sidebar-collapsed .sidebar-footer span,
body.sidebar-collapsed .sidebar-footer strong { display:none !important; }
body.sidebar-collapsed .sidebar-collapse-btn { transform:rotate(180deg); }
body.sidebar-collapsed .sidebar-group { margin-bottom:5px; }
body.sidebar-collapsed .sidebar-group-toggle,
body.sidebar-collapsed .sidebar-link { justify-content:center; padding-left:8px; padding-right:8px; gap:0; }
body.sidebar-collapsed .sidebar-group-toggle { min-height:42px; }
body.sidebar-collapsed .sidebar-link { min-height:36px; }
body.sidebar-collapsed .sidebar-group-body { grid-template-rows:1fr !important; }
body.sidebar-collapsed .sidebar-group-inner,
body.sidebar-collapsed .sidebar-group-body.open .sidebar-group-inner { padding:2px 0 4px !important; }
body.sidebar-collapsed .sidebar-link::before { left:1px; }
body.sidebar-collapsed .sidebar-badge { position:absolute; top:3px; right:2px; min-width:15px; height:15px; padding:0 3px; font-size:8px; }
body.sidebar-collapsed .sidebar-footer { justify-content:center; min-height:41px; padding:8px; }
body.sidebar-collapsed .sidebar-footer::after { content:'P'; width:25px; height:25px; display:flex; align-items:center; justify-content:center; border-radius:7px; background:#1A2766; color:#fff; font-family:'Sora',sans-serif; font-weight:800; }
.sidebar-group { margin-bottom:8px; }
.sidebar-group-toggle {
  width:100%; min-height:44px; padding:10px 11px;
  display:flex; align-items:center; gap:10px;
  border-radius:11px; color:var(--text2);
  font-size:13px; font-weight:700; text-align:left;
  transition:background .15s,color .15s;
}
.sidebar-group-toggle:hover { background:var(--surface2); color:var(--text); }
.sidebar-group-toggle.active { color:#1A2766; background:#f4f6ff; }
.sidebar-group-icon {
  width:28px; height:28px; flex:0 0 28px;
  display:flex; align-items:center; justify-content:center;
  border-radius:8px; background:var(--surface2); font-size:14px;
}
.sidebar-group-toggle.active .sidebar-group-icon { background:#e8edff; }
.sidebar-group-label { flex:1; }
.sidebar-chevron {
  color:var(--text3); font-size:12px;
  transition:transform .18s ease;
}
.sidebar-group-toggle.open .sidebar-chevron { transform:rotate(90deg); }
.sidebar-group-body {
  display:grid; grid-template-rows:0fr;
  transition:grid-template-rows .2s ease;
}
.sidebar-group-body.open { grid-template-rows:1fr; }
.sidebar-group-inner { min-height:0; overflow:hidden; padding:0 0 0 10px; }
.sidebar-group-body.open .sidebar-group-inner { padding-top:5px; padding-bottom:3px; }
.sidebar-link {
  width:100%; min-height:38px; padding:8px 10px 8px 14px;
  display:flex; align-items:center; gap:9px;
  border-radius:9px; color:var(--text2);
  font-size:12px; font-weight:550; text-align:left;
  position:relative; transition:background .13s,color .13s;
}
.sidebar-link::before {
  content:''; position:absolute; left:0; top:9px; bottom:9px;
  width:3px; border-radius:99px; background:transparent;
}
.sidebar-link:hover { background:var(--surface2); color:var(--text); }
.sidebar-link.active { background:var(--blue-bg); color:var(--blue); font-weight:700; }
.sidebar-link.active::before { background:var(--blue); }
.sidebar-link-icon { width:18px; text-align:center; flex:0 0 18px; display:inline-flex; align-items:center; justify-content:center; }
.sidebar-link-icon svg { width:16px; height:16px; display:block; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.sidebar-link-label { flex:1; min-width:0; }
.sidebar-badge {
  min-width:18px; height:18px; padding:0 5px;
  display:inline-flex; align-items:center; justify-content:center;
  border-radius:99px; background:#ef4444; color:#fff;
  font-size:9px; font-weight:800;
}
.sidebar-soon {
  margin-left:auto; padding:2px 6px; border-radius:99px;
  background:var(--amber-bg); color:var(--amber);
  border:1px solid var(--amber-border); font-size:8px; font-weight:800;
  letter-spacing:.04em; text-transform:uppercase;
}
.sidebar-footer {
  flex:0 0 auto; padding:12px 16px;
  border-top:1px solid var(--border); background:var(--surface2);
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  color:var(--text3); font-size:10px;
}
.sidebar-footer strong { color:var(--text2); font-family:'Sora',sans-serif; font-size:10px; }

.app-main {
  margin-top:var(--topbar-h);
  margin-left:var(--sidebar-w);
  width:auto; max-width:none;
  min-height:calc(100vh - var(--topbar-h));
  padding:24px;
}
.sidebar-overlay { display:none !important; }

.tools-placeholder {
  min-height:420px; display:flex; align-items:center; justify-content:center;
  padding:28px;
}
.tools-placeholder-card {
  width:min(720px,100%); padding:34px;
  background:linear-gradient(145deg,#fff 0%,#f7f8ff 100%);
  border:1px solid var(--border); border-radius:18px;
  box-shadow:var(--shadow); text-align:center;
}
.tools-placeholder-icon {
  width:64px; height:64px; margin:0 auto 18px;
  display:flex; align-items:center; justify-content:center;
  border-radius:18px; background:#e8edff; font-size:30px;
}
.tools-placeholder-title { font-family:'Sora',sans-serif; font-size:22px; font-weight:700; letter-spacing:-.035em; }
.tools-placeholder-text { max-width:520px; margin:9px auto 0; color:var(--text2); font-size:13px; line-height:1.65; }
.tools-placeholder-tag {
  display:inline-flex; margin-top:18px; padding:5px 10px;
  border-radius:99px; background:var(--amber-bg); color:var(--amber);
  border:1px solid var(--amber-border); font-size:10px; font-weight:800;
  text-transform:uppercase; letter-spacing:.08em;
}

@media (max-width: 900px) {
  :root, body.sidebar-collapsed { --sidebar-w: 278px; }
  .sidebar-mobile-toggle { display:flex; }
  .sidebar-collapse-btn { display:none; }
  body.sidebar-collapsed .sidebar-context > span,
  body.sidebar-collapsed .sidebar-group-label,
  body.sidebar-collapsed .sidebar-chevron,
  body.sidebar-collapsed .sidebar-link-label,
  body.sidebar-collapsed .sidebar-soon,
  body.sidebar-collapsed .sidebar-footer span,
  body.sidebar-collapsed .sidebar-footer strong { display:initial !important; }
  body.sidebar-collapsed .sidebar-context { justify-content:space-between; padding:6px 10px 13px; }
  body.sidebar-collapsed .sidebar-group-toggle,
  body.sidebar-collapsed .sidebar-link { justify-content:flex-start; gap:9px; }
  body.sidebar-collapsed .sidebar-group-toggle { padding:10px 11px; }
  body.sidebar-collapsed .sidebar-link { padding:8px 10px 8px 14px; }
  body.sidebar-collapsed .sidebar-group-body:not(.open) { grid-template-rows:0fr !important; }
  body.sidebar-collapsed .sidebar-group-inner { padding:0 0 0 10px !important; }
  body.sidebar-collapsed .sidebar-group-body.open .sidebar-group-inner { padding-top:5px !important; padding-bottom:3px !important; }
  body.sidebar-collapsed .sidebar-badge { position:static; min-width:18px; height:18px; padding:0 5px; font-size:9px; }
  body.sidebar-collapsed .sidebar-footer { justify-content:space-between; padding:12px 16px; }
  body.sidebar-collapsed .sidebar-footer::after { display:none; }

  .app-topbar { padding-left:10px; }
  .app-sidebar {
    z-index:180; transform:translateX(-102%);
    transition:transform .22s ease;
    box-shadow:16px 0 40px rgba(15,23,42,.2);
  }
  .app-sidebar.open { transform:translateX(0); }
  .sidebar-overlay {
    display:block !important; position:fixed;
    inset:var(--topbar-h) 0 0 0; z-index:170;
    background:rgba(15,23,42,.44); opacity:0;
    pointer-events:none; transition:opacity .2s ease;
  }
  .sidebar-overlay.open { opacity:1; pointer-events:auto; }
  .app-main { margin-left:0; padding:14px 12px 22px; }
}

@media (max-width: 480px) {
  .topbar-brand-sub { display:none; }
  .sidebar-footer { padding-bottom:calc(12px + env(safe-area-inset-bottom)); }
  .tools-placeholder { min-height:340px; padding:8px; }
  .tools-placeholder-card { padding:26px 20px; }
}



