/* ==================================================================
   SISNV — Design System (base ITMB, adaptado para SERMATECNET)
   Cores: azul #1453F0 · verde #18E27A · sidebar dark
   Fonte: Sora (headings) + Inter (body)
   ================================================================== */

:root{
  --core-primary:#1453F0; --core-primary-hover:#0B3FC0; --core-accent:#00BFFF;
  --core-ink:#0F2440; --core-ink-hover:#1b3c6b;
  --core-bg:#FFFFFF; --core-bg-soft:#F5F7FB; --core-bg-muted:#EEF2F8;
  --core-border:#E3E9F2; --core-border-strong:#CDD7E6;
  --core-text:#0E1B2C; --core-text-soft:#4A5A70; --core-text-muted:#8493A8;
  --core-d-bg:#071B36; --core-d-bg-elev:#0D2748; --core-d-bg-high:#143360;
  --core-d-border:rgba(255,255,255,.08); --core-d-text:#FFFFFF; --core-d-text-soft:#B5C2D4;
  --core-success:#18E27A;
  --core-danger:#e0463e; --core-warning:#e8a317;
  --font-display:'Sora','Inter',system-ui,sans-serif;
  --font-body:'Inter',system-ui,sans-serif;
  --radius-md:12px; --radius-lg:16px;
  --shadow-sm:0 1px 2px rgba(16,32,64,.05);
  --shadow-md:0 8px 24px rgba(16,32,64,.10);
  --side-w:248px; --top-h:68px;
}

*{ box-sizing:border-box; margin:0; padding:0; }
body{ font-family:var(--font-body); color:var(--core-text); background:var(--core-bg-soft); -webkit-font-smoothing:antialiased; }
h1,h2,h3,h4{ font-family:var(--font-display); letter-spacing:-.01em; }
a{ text-decoration:none; color:inherit; }
img{ max-width:100%; display:block; }
button{ font-family:inherit; }

/* ==================================================================
   LAYOUT PRINCIPAL
   ================================================================== */
.app{ display:block; min-height:100vh; }

/* SIDEBAR (dark) */
.side, .sidebar{
  position:fixed; top:0; left:0; width:var(--side-w); height:100vh;
  background:var(--core-d-bg); color:var(--core-d-text-soft);
  display:flex; flex-direction:column; padding:20px 16px; gap:14px; z-index:30;
  overflow-y:auto; overflow-x:hidden;
}
.side::-webkit-scrollbar, .sidebar::-webkit-scrollbar{ width:6px; }
.side::-webkit-scrollbar-thumb, .sidebar::-webkit-scrollbar-thumb{ background:rgba(255,255,255,.10); border-radius:3px; }

.side__brand, .logo{
  background:#fff; border-radius:12px; padding:12px 14px;
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display); font-weight:700; font-size:16px;
  color:var(--core-ink); letter-spacing:.5px;
  margin-bottom:4px;
}
.side__brand span, .logo-sub, .logo span{ color:var(--core-primary); }
.logo::after{ content:none; } /* remove "sistema" antigo */

.usuario{
  color:var(--core-d-text-soft); font-size:13px;
  padding:12px 8px; margin:4px 0 8px 0;
  border-top:1px solid var(--core-d-border);
  border-bottom:1px solid var(--core-d-border);
  display:flex; flex-direction:column; gap:2px;
}
.usuario-label{ font-size:10px; color:var(--core-d-text-soft); text-transform:uppercase; letter-spacing:.08em; opacity:.7; }
.usuario strong{ color:#fff; font-size:14px; font-family:var(--font-body); }
.usuario small{ color:var(--core-accent); font-size:12px; }

.side__nav, .sidebar nav{ display:flex; flex-direction:column; gap:3px; flex:1; overflow:auto; }
.side__nav a, .sidebar nav a{
  display:flex; align-items:center; gap:12px;
  padding:10px 12px; border-radius:10px;
  color:var(--core-d-text-soft); font-weight:500; font-size:14px;
  transition:background .15s, color .15s; text-decoration:none;
  white-space:nowrap;
}
.side__nav a:hover, .sidebar nav a:hover{ background:rgba(255,255,255,.05); color:#fff; }
.side__nav a.is-active, .sidebar nav a.ativo{ background:rgba(20,83,240,.22); color:#fff; }
.side__nav a.is-active svg{ color:var(--core-accent); }

.side__label{
  font-size:10.5px; font-weight:600; letter-spacing:.08em;
  text-transform:uppercase; color:rgba(181,194,212,.6);
  padding:10px 12px 4px;
}
.sidebar-divisor{
  border:0; border-top:1px solid var(--core-d-border); margin:8px 0;
}

/* Submenu do sidebar (aparece quando um item pai está ativo) */
.side__sub{
  display:flex; flex-direction:column; gap:1px;
  margin: 2px 0 6px 8px; padding-left:12px;
  border-left:1px solid rgba(255,255,255,.08);
}
.side__sub a{
  padding:6px 10px !important; font-size:12.5px !important;
  color:rgba(181,194,212,.75) !important; border-radius:6px !important;
}
.side__sub a:hover{ background:rgba(255,255,255,.04) !important; color:#fff !important; }
.side__sub a.is-active{ background:rgba(20,83,240,.16) !important; color:#fff !important; }
.sidebar nav a.sair{ color:#fca5a5; }
.sidebar nav a.sair:hover{ background:rgba(248,113,113,.10); color:#fff; }

.side__user{
  display:flex; align-items:center; gap:11px;
  padding:14px 8px 4px; border-top:1px solid var(--core-d-border);
}
.side__av{
  width:38px; height:38px; border-radius:50%;
  background:var(--core-d-bg-high); color:#fff;
  display:grid; place-items:center; font-weight:600; font-size:13px; flex:0 0 auto;
}

/* MAIN (topbar + content) */
.app__main{ margin-left:var(--side-w); min-height:100vh; }
.conteudo{
  margin-left:var(--side-w); min-height:100vh;
  padding:28px 32px; background:var(--core-bg-soft);
}

.topbar{
  position:sticky; top:0; z-index:20; height:var(--top-h);
  background:rgba(255,255,255,.9); backdrop-filter:blur(10px);
  border-bottom:1px solid var(--core-border);
  display:flex; align-items:center; justify-content:space-between;
  gap:18px; padding:0 28px;
}
.search{
  display:flex; align-items:center; gap:10px;
  background:var(--core-bg-soft); border:1px solid var(--core-border);
  border-radius:999px; padding:10px 16px;
  width:min(380px,42vw); color:var(--core-text-muted);
}
.search input{
  border:0; background:none; outline:none;
  font-family:inherit; font-size:14px; color:var(--core-text); width:100%;
}
.topbar__r{ display:flex; align-items:center; gap:12px; }
.icon-btn{
  width:40px; height:40px; border-radius:10px;
  background:#fff; border:1px solid var(--core-border);
  display:grid; place-items:center; color:var(--core-text-soft); cursor:pointer;
  transition:background .15s, color .15s;
}
.icon-btn:hover{ background:var(--core-bg-muted); color:var(--core-text); }

.content{ padding:28px; max-width:1240px; }

/* ==================================================================
   PAGE HEAD + FLASH MESSAGES
   ================================================================== */
.page-head, .topo-pagina{
  display:flex; justify-content:space-between; align-items:flex-end;
  gap:16px; margin-bottom:22px; flex-wrap:wrap;
}
.page-head h1, .topo-pagina h1{ font-size:26px; font-weight:700; color:var(--core-text); }
.page-head p, .topo-pagina p{ color:var(--core-text-muted); font-size:14px; margin-top:4px; }
.acoes-topo{ display:flex; gap:10px; align-items:center; flex-wrap:wrap; }

.breadcrumb{ display:flex; align-items:center; gap:8px; font-size:13px; margin-bottom:16px; color:var(--core-text-muted); }
.breadcrumb a{ color:var(--core-primary); text-decoration:none; }
.breadcrumb a:hover{ text-decoration:underline; }
.breadcrumb strong{ color:var(--core-text); }

.flash{ padding:12px 16px; border-radius:var(--radius-md); margin-bottom:18px; font-size:14px; font-weight:500; }
.flash-ok, .alert-sucesso{ background:rgba(24,226,122,.12); color:#0b7a47; border:1px solid rgba(24,226,122,.3); padding:12px 16px; border-radius:var(--radius-md); margin-bottom:18px; }
.flash-erro, .alert-erro{ background:rgba(255,59,59,.1); color:#b42318; border:1px solid rgba(255,59,59,.3); padding:12px 16px; border-radius:var(--radius-md); margin-bottom:18px; }

/* ==================================================================
   BUTTONS
   ================================================================== */
.btn{
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--font-body); font-size:14px; font-weight:600;
  padding:10px 18px; border-radius:999px; border:1px solid transparent;
  cursor:pointer; text-decoration:none; transition:.15s;
}
.btn, .btn--primary{
  background:var(--core-ink); color:#fff;
}
.btn:hover, .btn--primary:hover{
  background:var(--core-ink-hover);
}
.btn--secondary, .btn-secundario{
  background:transparent !important; border:1px solid var(--core-border-strong) !important; color:var(--core-text) !important;
}
.btn--secondary:hover, .btn-secundario:hover{ background:var(--core-bg-muted) !important; }
.btn--sm{ padding:7px 14px; font-size:13px; }
.btn-bloco{ width:100%; padding:12px 18px; }

/* ==================================================================
   METRIC CARDS (dashboard)
   ================================================================== */
.metrics, .cards-dashboard{
  display:grid; grid-template-columns:repeat(4,1fr);
  gap:16px; margin-bottom:16px;
}
.metric, .card-metrica{
  position:relative;
  background:#fff; border:1px solid var(--core-border);
  border-radius:var(--radius-md); padding:20px;
  text-decoration:none; color:var(--core-text);
  transition:border-color .15s, box-shadow .15s;
  display:block;
}
.metric:hover, .card-metrica:hover{
  border-color:var(--core-border-strong);
  box-shadow:var(--shadow-sm);
}
.metric__l, .card-metrica span{ color:var(--core-text-muted); font-size:12px; text-transform:uppercase; letter-spacing:.04em; font-weight:600; }
.metric__v, .card-metrica strong{
  display:block; font-family:var(--font-display); font-weight:700;
  font-size:26px; margin:8px 0 6px; color:var(--core-text);
}
.metric__ico{ position:absolute; top:16px; right:16px; width:36px; height:36px; border-radius:10px; display:grid; place-items:center; background:rgba(20,83,240,.10); color:var(--core-primary); }

/* ==================================================================
   CARDS
   ================================================================== */
.card{
  background:#fff; border:1px solid var(--core-border);
  border-radius:var(--radius-md); padding:22px;
  margin-bottom:16px;
  box-shadow:none;
}
.card__h{ display:flex; justify-content:space-between; align-items:center; margin-bottom:16px; }
.card__h h4{ font-family:var(--font-body); font-size:15px; font-weight:600; }
.card__h a{ color:var(--core-primary); font-size:13px; font-weight:600; }

.grid-cliente{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px; }
.status-box{
  background:var(--core-bg-soft); border:1px solid var(--core-border);
  padding:14px; border-radius:var(--radius-md); margin-bottom:12px;
  color:var(--core-text);
}

/* ==================================================================
   FORMS
   ================================================================== */
form{ display:block; }
.form-padrao{
  display:grid; grid-template-columns:1fr 1fr; gap:16px;
}
.form-uma-coluna{ grid-template-columns:1fr; }
.form-grupo, .field{ display:flex; flex-direction:column; margin-bottom:0; }
.form-grupo label, .field label, form label{
  display:block; font-size:13px; font-weight:600;
  color:var(--core-text-soft); margin-bottom:6px;
}
.form-grupo input, .form-grupo select, .form-grupo textarea,
.field input, .field select, .field textarea,
form input, form select, form textarea{
  width:100%; height:42px;
  border:1px solid var(--core-border); border-radius:var(--radius-md);
  padding:0 14px; font-family:inherit; font-size:14px;
  color:var(--core-text); background:#fff; outline:none;
  transition:border-color .15s, box-shadow .15s;
}
.form-grupo textarea, .field textarea, form textarea{ height:auto; padding:12px 14px; min-height:80px; resize:vertical; }
.form-grupo input:focus, .form-grupo select:focus, .form-grupo textarea:focus,
.field input:focus, .field select:focus, .field textarea:focus,
form input:focus, form select:focus, form textarea:focus{
  border-color:var(--core-primary);
  box-shadow:0 0 0 3px rgba(20,83,240,.15);
}

.form-full, .field--full{ grid-column:1 / -1; }
.form-acoes, .form-actions{ display:flex; gap:12px; align-items:center; margin-top:16px; flex-wrap:wrap; }

.form-secao{
  padding-bottom:20px; margin-bottom:20px;
  border-bottom:1px solid var(--core-border);
}
.form-secao:last-of-type{ border-bottom:0; margin-bottom:8px; }
.form-secao-titulo{
  font-family:var(--font-body); font-size:11px; font-weight:700;
  color:var(--core-primary); margin-bottom:14px;
  text-transform:uppercase; letter-spacing:.10em;
}

/* Form de busca (mais compacto) */
.form-busca{
  display:flex; gap:10px; margin-bottom:20px; flex-wrap:wrap;
  background:#fff; padding:14px; border-radius:var(--radius-md);
  border:1px solid var(--core-border); align-items:center;
}
.form-busca input, .form-busca select{ flex:1 1 200px; height:40px; padding:0 14px; border-radius:var(--radius-md); border:1px solid var(--core-border); background:#fff; color:var(--core-text); font-size:14px; }
.form-busca .btn{ flex:0 0 auto; height:40px; }

/* ==================================================================
   TABLES
   ================================================================== */
table, .list-table{
  width:100%; border-collapse:collapse; font-size:14px;
  background:#fff; border-radius:var(--radius-md); overflow:hidden;
  border:1px solid var(--core-border);
}
table thead th, .list-table thead th, th{
  text-align:left; font-size:11.5px; font-weight:600;
  text-transform:uppercase; letter-spacing:.04em;
  color:var(--core-text-muted);
  padding:12px 16px; border-bottom:1px solid var(--core-border);
  background:var(--core-bg-soft);
}
table tbody td, .list-table tbody td, td{
  padding:14px 16px; border-bottom:1px solid var(--core-border);
  vertical-align:middle; color:var(--core-text);
}
table tbody tr:last-child td, .list-table tbody tr:last-child td{ border-bottom:0; }
table tbody tr:hover, .list-table tbody tr:hover{ background:var(--core-bg-soft); }
td small, small{ color:var(--core-text-muted); font-size:12.5px; }

.acoes-tabela{ display:flex; gap:6px; align-items:center; flex-wrap:wrap; }
.link-acao, .lt-act a, .lt-act button{
  font-size:12.5px; font-weight:600; padding:6px 12px;
  border-radius:999px; border:1px solid var(--core-border-strong);
  background:#fff; color:var(--core-text-soft); cursor:pointer;
  font-family:inherit; text-decoration:none;
  display:inline-flex; align-items:center; gap:5px;
  transition:.15s;
}
.link-acao:hover, .lt-act a:hover, .lt-act button:hover{
  background:var(--core-bg-muted); color:var(--core-text);
}
.link-acao.destaque{ background:var(--core-primary); color:#fff; border-color:var(--core-primary); }
.link-acao.destaque:hover{ background:var(--core-primary-hover); color:#fff; }

/* ==================================================================
   BADGES
   ================================================================== */
.badge, .badge-kind, .tag-muted{
  display:inline-block; font-size:11px; font-weight:600;
  padding:3px 10px; border-radius:999px; letter-spacing:.02em;
}
.tag-muted, .status-cancelado, .tipo-sem{
  background:var(--core-bg-muted); color:var(--core-text-muted);
}
.kind-cliente, .tipo-cliente, .status-concluido, .status-cliente-ativo{
  background:rgba(20,83,240,.10); color:var(--core-primary);
}
.kind-fornecedor, .tipo-revenda{
  background:rgba(24,226,122,.14); color:#0b7a47;
}
.kind-ambos, .tipo-prestador{
  background:rgba(127,119,221,.16); color:#5a52b5;
}
.kind-perdida, .status-aberto, .status-cliente-cancelado{
  background:rgba(255,59,59,.12); color:#b42318;
}
.status-em_andamento{ background:rgba(20,83,240,.10); color:var(--core-primary); }
.status-aguardando_cliente, .status-aguardando_terceiro, .status-cliente-pausado{ background:rgba(232,163,23,.14); color:#8a5a00; }

/* ==================================================================
   PAGINAÇÃO
   ================================================================== */
.paginacao{
  margin-top:20px; display:flex; gap:4px;
  justify-content:center; flex-wrap:wrap; align-items:center;
}
.pag-btn{
  min-width:36px; height:36px; padding:0 12px;
  display:inline-flex; align-items:center; justify-content:center;
  background:#fff; border:1px solid var(--core-border);
  color:var(--core-text-soft); text-decoration:none;
  border-radius:8px; font-size:13px; font-weight:600;
  transition:.15s;
}
.pag-btn:hover{ background:var(--core-bg-muted); color:var(--core-text); border-color:var(--core-border-strong); }
.pag-ativa{ background:var(--core-primary); color:#fff; border-color:var(--core-primary); }
.pag-ativa:hover{ background:var(--core-primary-hover); color:#fff; border-color:var(--core-primary-hover); }
.pag-ellipsis{ padding:0 4px; color:var(--core-text-muted); }
.pag-info{ text-align:center; color:var(--core-text-muted); margin-top:8px; }

/* ==================================================================
   TELA DE LOGIN
   ================================================================== */
body.tela-login{
  min-height:100vh; background:linear-gradient(135deg,#F5F7FB,#EEF2F8);
  display:flex; align-items:center; justify-content:center; padding:24px;
}
.login-wrapper{ width:100%; max-width:420px; display:flex; flex-direction:column; gap:16px; }
.login-card{
  background:#fff; border:1px solid var(--core-border);
  border-radius:var(--radius-lg); padding:36px 32px;
  box-shadow:0 20px 60px rgba(16,32,64,.10);
}
.login-marca{ margin-bottom:24px; text-align:center; }
.login-logo{
  font-family:var(--font-display); font-size:26px; font-weight:800;
  letter-spacing:.6px; margin-bottom:18px; color:var(--core-ink);
}
.login-logo span{ color:var(--core-primary); }
.login-titulo h1{ font-size:24px; margin-bottom:6px; color:var(--core-text); }
.login-titulo p{ font-size:14px; color:var(--core-text-muted); }
.form-login{ display:flex; flex-direction:column; gap:14px; }
.login-esqueci{ text-align:center; margin-top:8px; }
.login-esqueci a{ color:var(--core-primary); font-size:13px; text-decoration:none; }
.login-esqueci a:hover{ text-decoration:underline; }
.login-rodape{ text-align:center; color:var(--core-text-muted); font-size:12px; }

/* ==================================================================
   ATALHOS (dashboard)
   ================================================================== */
.grid-atalhos{
  display:grid; grid-template-columns:repeat(4,1fr); gap:14px;
}
.atalho{
  background:#fff; border:1px solid var(--core-border);
  border-radius:var(--radius-md); padding:16px 18px;
  color:var(--core-text); text-decoration:none;
  display:flex; flex-direction:column; gap:4px;
  transition:.15s;
}
.atalho:hover{
  border-color:var(--core-primary);
  background:rgba(20,83,240,.03);
  transform:translateY(-1px);
}
.atalho span{ font-weight:700; font-size:15px; color:var(--core-primary); }
.atalho small{ color:var(--core-text-muted); font-size:12.5px; }

/* ==================================================================
   BLOCOS DE GARANTIA / ASSISTÊNCIA (propostas)
   ================================================================== */
.bloco-garantia{
  padding:14px 16px; background:#fff;
  border:1px solid var(--core-border); border-radius:var(--radius-md);
  margin-bottom:10px; transition:.15s;
}
.bloco-garantia:hover{ border-color:var(--core-border-strong); }
.bloco-garantia.marcado{
  background:rgba(20,83,240,.04);
  border-color:rgba(20,83,240,.30);
}
.bloco-garantia .bloco-garantia-cab{
  display:flex !important; flex-direction:row !important;
  align-items:center !important; justify-content:space-between !important;
  gap:14px; cursor:pointer; margin:0 !important; padding:0 !important; width:100%;
}
.bloco-garantia .bloco-garantia-rotulo{
  color:var(--core-primary); font-weight:700; font-size:13px;
  text-transform:uppercase; letter-spacing:.08em;
  flex:1; user-select:none;
}
.bloco-garantia .bloco-garantia-cab input[type="checkbox"]{
  width:20px !important; height:20px !important;
  min-width:20px !important; max-width:20px !important;
  padding:0 !important; margin:0 !important;
  border:1px solid var(--core-border-strong) !important;
  border-radius:5px !important; background:#fff !important;
  accent-color:var(--core-primary); cursor:pointer; flex:0 0 auto;
}
.bloco-garantia .bloco-garantia-texto{
  width:100% !important; margin-top:12px !important;
  background:var(--core-bg-soft) !important; color:var(--core-text) !important;
  padding:10px 12px !important;
  border:1px solid var(--core-border) !important;
  border-radius:10px !important; font-size:13px !important;
  resize:vertical; min-height:60px;
  font-family:var(--font-body);
}
.bloco-garantia .bloco-garantia-texto:focus{
  border-color:var(--core-primary) !important;
  box-shadow:0 0 0 3px rgba(20,83,240,.15) !important;
}

/* ==================================================================
   CONTATOS (proposta)
   ================================================================== */
.grid-contatos{
  display:grid; grid-template-columns:repeat(auto-fill, minmax(280px, 1fr));
  gap:14px;
}
.contato-card{
  position:relative; background:#fff;
  border:1px solid var(--core-border); border-radius:var(--radius-md);
  padding:16px 18px;
  display:flex; flex-direction:column; gap:6px; transition:.15s;
}
.contato-card:hover{ border-color:var(--core-primary); box-shadow:var(--shadow-sm); }
.contato-card.contato-ativo{
  border-color:var(--core-success); background:rgba(24,226,122,.04);
}
.contato-badge{
  position:absolute; top:10px; right:14px;
  background:rgba(24,226,122,.14); color:#0b7a47;
  font-size:10px; font-weight:800; padding:3px 9px;
  border-radius:999px; text-transform:uppercase; letter-spacing:.05em;
}
.contato-nome{ font-size:15px; font-weight:700; color:var(--core-text); padding-right:90px; }
.contato-cargo{ color:var(--core-primary); font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; }
.contato-info{
  color:var(--core-text-soft); font-size:13px; line-height:1.6;
  margin-top:6px; padding-top:8px;
  border-top:1px solid var(--core-border);
}
.contato-acoes{
  display:flex; gap:8px; align-items:center;
  margin-top:10px; padding-top:10px;
  border-top:1px solid var(--core-border);
}
.form-novo-contato .form-padrao{ grid-template-columns:1fr 1fr 1fr; gap:12px; }
@media (max-width:700px){
  .form-novo-contato .form-padrao{ grid-template-columns:1fr; }
  .grid-contatos{ grid-template-columns:1fr; }
}

/* ==================================================================
   MODAL
   ================================================================== */
.modal-overlay{
  position:fixed; inset:0; background:rgba(15,36,64,.55);
  z-index:100; display:flex; align-items:flex-start; justify-content:center;
  padding:60px 20px 20px 20px; overflow-y:auto; backdrop-filter:blur(4px);
}
.modal-box{
  background:#fff; border-radius:var(--radius-lg);
  width:100%; max-width:640px; padding:26px 28px;
  box-shadow:0 24px 60px rgba(0,0,0,.30);
}
.modal-cab{ display:flex; justify-content:space-between; align-items:center; margin-bottom:10px; }
.modal-cab h3{ font-family:var(--font-display); font-size:18px; font-weight:700; }
.modal-fechar{
  background:none; border:0; font-size:24px;
  color:var(--core-text-muted); cursor:pointer; padding:0 6px;
}
.modal-fechar:hover{ color:var(--core-text); }

/* ==================================================================
   BOTÃO "SUGERIR PREÇO" no item de proposta
   ================================================================== */
.btn-sugerir-preco{
  background:rgba(20,83,240,.10); border:1px solid rgba(20,83,240,.20);
  color:var(--core-primary); cursor:pointer;
  padding:4px 8px; margin-left:4px; border-radius:6px;
  font-size:14px; line-height:1;
  transition:.15s;
}
.btn-sugerir-preco:hover{ background:var(--core-primary); color:#fff; }

/* ==================================================================
   RESPONSIVE + NAV MOBILE
   ================================================================== */
.side-ov{ display:none; }
.menu-btn{ display:none; }

@media (max-width:1080px){
  .metrics, .cards-dashboard{ grid-template-columns:repeat(2, 1fr); }
  .grid-cliente{ grid-template-columns:1fr; }
  .grid-atalhos{ grid-template-columns:repeat(2, 1fr); }
}
@media (max-width:760px){
  .menu-btn{ display:inline-flex; }
  .side, .sidebar{
    position:fixed; top:0; left:0; height:100%; width:266px; z-index:60;
    transform:translateX(-100%); transition:transform .25s ease;
    box-shadow:0 0 50px rgba(0,0,0,.35); overflow-y:auto;
  }
  body.nav-open .side, body.nav-open .sidebar{ transform:none; }
  .side-ov{
    display:block; position:fixed; inset:0;
    background:rgba(0,0,0,.5); opacity:0; visibility:hidden;
    transition:.25s; z-index:55;
  }
  body.nav-open .side-ov{ opacity:1; visibility:visible; }
  body.nav-open{ overflow:hidden; }
  .app__main, .conteudo{ margin-left:0; padding:20px; }
  .topbar .search{ display:none; }
  .metrics, .cards-dashboard, .grid-atalhos{ grid-template-columns:1fr; }
  .form-padrao{ grid-template-columns:1fr; }
  table, .list-table{ display:block; overflow-x:auto; -webkit-overflow-scrolling:touch; }
}
