:root{
  --bg:#f6f8fb;           /* fundo geral */
  --bg-2:#ffffff;         /* superfícies (cards/side) */
  --border:#e5e7eb;       /* bordas claras */
  --text:#0f172a;         /* texto principal (Slate-900) */
  --muted:#64748b;        /* texto secundário (Slate-500) */
  --accent:#3b82f6;       /* azul */
  --accent-600:#2563eb;   /* azul escuro */
  --accent-100:#dbeafe;   /* azul claro */
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 system-ui,Segoe UI,Roboto,Arial,sans-serif;padding-bottom:56px}

.topbar{position:sticky;top:0;display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--bg-2);border-bottom:1px solid var(--border);z-index:10;box-shadow:0 2px 10px rgba(15,23,42,.06)}
.topbar .brand{font-weight:700;letter-spacing:.5px;color:var(--text)}
.toggle-btn{background:#fff;border:1px solid var(--border);color:var(--text);padding:8px 12px;border-radius:10px;cursor:pointer;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.toggle-btn:hover{background:#fafafa}

.layout{display:grid;grid-template-columns:260px 1fr;min-height:calc(100vh - 50px)}
.sidebar{background:linear-gradient(180deg,#ffffff 0%, #F0F8FF 100%);border-right:1px solid var(--border);padding:8px 0;position:sticky;top:50px;height:calc(100vh - 50px);overflow:auto;box-shadow:inset -1px 0 0 rgba(0,0,0,0)}
.menu{margin:0;padding:0}
.menu ul{list-style:none;margin:0;padding:0}
.item{display:flex;align-items:center;gap:12px;width:100%;padding:12px 16px;color:var(--text);text-decoration:none;border-radius:10px;background:transparent;border:0;cursor:pointer;transition:background .15s ease, color .15s ease;font-size:16px}
.item:hover{background:var(--accent-100);color:var(--accent-600)}
.item.active{background:var(--accent-100);color:var(--accent-600);border-left:3px solid var(--accent);border-top-left-radius:0;border-bottom-left-radius:0}
.icon{width:20px;text-align:center;opacity:.9}
.caret{margin-left:auto;color:var(--muted)}

.has-sub .submenu{display:none;padding:6px 0 8px 10px}
.has-sub .submenu.open{display:block}
.subitem{display:block;padding:8px 16px 8px 44px;color:var(--muted);text-decoration:none;border-radius:8px}
.subitem:hover{color:var(--text);background:#f1f5f9}

.content{padding:20px}
.card{background:#F0F8FF;border:1px solid var(--border);border-radius:14px;padding:16px;box-shadow:0 1px 2px rgba(0,0,0,.03)}

/* Footer (fixo) */
.footer{position:fixed;left:0;right:0;bottom:0;z-index:50;margin:0;color:var(--muted);background:transparent}
.footer-inner{margin:8px 16px;background:var(--bg-2);border:1px solid var(--border);border-radius:10px;padding:10px 12px;box-shadow:0 1px 2px rgba(0,0,0,.03)}

/* Botões e badges */
.badge{display:inline-block;background:#eef2ff;border:1px solid var(--border);color:#334155;padding:4px 10px;border-radius:999px;font-size:12px;line-height:1;text-decoration:none}
.btn{display:inline-flex;align-items:center;gap:8px;background:#a7d8ff;border:1px solid #7cb5f2;color:#0b3b6f;padding:10px 16px;border-radius:999px;font-weight:700;text-decoration:none;cursor:pointer;box-shadow:inset 0 1px 0 rgba(255,255,255,.6), 0 1px 2px rgba(0,0,0,.08);transition:filter .15s ease, background-color .15s ease}
.btn:hover{background:#98cdfa;filter:saturate(1.02)}
.btn-outline{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--border);color:var(--text);padding:10px 14px;border-radius:12px;font-weight:600;text-decoration:none;cursor:pointer;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.btn-outline:hover{background:#f8fafc}

/* Inputs modernos */
input[type="text"],
input[type="password"],
input[type="url"],
input[type="datetime-local"],
input[type="file"],
select, textarea{
  appearance:none;
  width:100%;
  max-width:640px;
  padding:10px 12px;
  border:1px solid var(--border);
  border-radius:12px;
  background:#f8fafc;
  color:var(--text);
  outline:none;
  transition:border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
select{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="%2364748b" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"/></svg>');background-repeat:no-repeat;background-position:right 10px center;padding-right:34px}
input[type="file"]{background:#fff}
textarea{min-height:120px;resize:vertical}
input:focus, select:focus, textarea:focus{
  border-color:var(--accent);
  box-shadow:0 0 0 3px rgba(59,130,246,.15);
  background:#fff;
}
label{color:var(--muted);display:inline-block;margin:6px 0}

/* Tabelas */
table{background:var(--bg-2)}
thead tr{background:#f8fafc}
th,td{border-color:var(--border)}

/* Responsivo */
@media (max-width: 900px){
  .layout{grid-template-columns:64px 1fr}
  .sidebar .item span:nth-child(2){display:none}
  .sidebar .caret{display:none}
}
@media (max-width: 640px){
  .layout{grid-template-columns:0 1fr}
  .sidebar{transform:translateX(-100%);transition:transform .25s ease}
  .sidebar.open{transform:translateX(0)}
}
