:root{
  --dark:#1f1f1f;
  --text:#1f1f1f;
  --muted:#77736b;
  --muted-2:#9b978e;
  --white:#fff;
  --page:#f7f7f4;
  --card:#fff;
  --line:#ebe8df;
  --line-dark:rgba(255,255,255,.10);
  --hover-dark:rgba(255,255,255,.08);
  --hover-light:#f3f2ed;
  --radius:0px;
  --danger:#b42318;
  --success:#167a3a;
}

*{box-sizing:border-box}
html,body{
  margin:0;
  min-height:100%;
  font-family:'Kanit',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  color:var(--text);
  background:var(--page);
  font-weight:300;
  -webkit-font-smoothing:antialiased;
  text-rendering:geometricPrecision;
}
a{text-decoration:none;color:inherit}
button,input,select,textarea{font-family:inherit}
button{font-weight:300}
img{max-width:100%;height:auto}

/* Reset visual quadrado */
.sidebar,
.side-head,
.brand-mark,
.side-close,
.nav-menu a,
.sidebar-footer,
.system-state,
.status-dot,
.topbar,
.top-icon,
.user-chip,
.avatar-mini,
.card,
.metric,
.icon-box,
.badge,
.btn-light,
.btn-primary,
.table-card,
.placeholder,
.login-card,
.login-card input,
.alert{
  border-radius:0!important;
  box-shadow:none!important;
}

.app-shell{
  display:flex;
  min-height:100vh;
  background:var(--page);
}

/* Sidebar no mesmo padrão seco do Dashboard */
.sidebar{
  width:278px;
  background:var(--dark);
  color:#fff;
  display:flex;
  flex-direction:column;
  position:fixed;
  left:0;
  top:0;
  bottom:0;
  z-index:30;
  border-right:1px solid var(--line-dark);
  transition:transform .24s ease;
}

.side-head{
  height:82px;
  min-height:82px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 22px;
  border-bottom:1px solid var(--line-dark);
  background:transparent;
}

.brand-mark{
  width:116px;
  height:40px;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  overflow:hidden;
  flex:0 0 auto;
}

.brand-mark img,
.brand-logo-img{
  width:96px!important;
  max-width:96px!important;
  height:auto!important;
  max-height:34px!important;
  object-fit:contain!important;
  object-position:left center!important;
  display:block!important;
}

.side-close{
  display:none;
  width:44px;
  height:44px;
  border:1px solid transparent;
  background:transparent;
  color:rgba(255,255,255,.70);
  align-items:center;
  justify-content:center;
  cursor:pointer;
  transition:.15s ease;
}
.side-close:hover{background:var(--hover-dark);color:#fff}
.side-close:focus{outline:none;box-shadow:none!important}
.side-close svg{width:19px!important;height:19px!important;stroke-width:1.6}

.nav-menu{
  padding:18px 14px;
  display:flex;
  flex-direction:column;
  gap:2px;
  flex:1;
}

.nav-menu a{
  height:48px;
  min-height:48px;
  display:flex;
  align-items:center;
  gap:12px;
  color:rgba(255,255,255,.68);
  padding:0 13px;
  border:1px solid transparent;
  background:transparent;
  font-size:15px;
  font-weight:300;
  line-height:1;
  transition:background .15s ease,color .15s ease,border-color .15s ease;
  position:relative;
}

.nav-menu a svg{
  width:17px!important;
  height:17px!important;
  min-width:17px;
  max-width:17px;
  stroke-width:1.55;
  opacity:.88;
}

.nav-menu a:hover,
.nav-menu a.active{
  background:var(--hover-dark);
  color:#fff;
  border-color:rgba(255,255,255,.02);
  font-weight:400;
}

.nav-menu a.active::before,
.nav-menu a.active::after{display:none!important;content:none!important}
.nav-menu a.active svg,.nav-menu a:hover svg{opacity:1}

.sidebar-footer{
  margin:0 14px 16px;
  border:1px solid var(--line-dark);
  background:rgba(255,255,255,.045);
}

.system-state{
  min-height:64px;
  display:flex;
  align-items:center;
  gap:12px;
  padding:13px 14px;
}
.system-state strong{
  display:block;
  color:#fff;
  font-size:14px;
  line-height:1.2;
  font-weight:400;
}
.system-state small{
  display:block;
  margin-top:4px;
  color:rgba(255,255,255,.50);
  font-size:12px;
  line-height:1.2;
  font-weight:300;
}
.status-dot{
  width:9px;
  height:9px;
  min-width:9px;
  background:#62d585;
}

.main{
  margin-left:278px;
  min-height:100vh;
  width:calc(100% - 278px);
  background:var(--page);
}

/* Header topo alinhado ao Dashboard */
.topbar{
  height:82px;
  min-height:82px;
  background:#fff;
  color:var(--text);
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 30px;
  position:sticky;
  top:0;
  z-index:20;
  border-bottom:1px solid var(--line);
}

.top-left{display:flex;align-items:center;gap:14px;min-width:0}
.top-title-wrap{min-width:0}
.eyebrow{display:none!important}
.topbar h1{
  margin:0;
  color:var(--text);
  font-size:24px;
  line-height:1.05;
  font-weight:400;
  letter-spacing:-.02em;
}

.top-actions{display:flex;align-items:center;gap:6px}
.top-icon{
  width:44px;
  height:44px;
  min-width:44px;
  border:1px solid transparent;
  background:transparent!important;
  color:var(--text);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  position:relative;
  cursor:pointer;
  transition:background .15s ease,border-color .15s ease,color .15s ease;
}
.top-icon:hover{background:var(--hover-light)!important;border-color:var(--line);transform:none!important}
.top-icon:focus,.top-icon:active{outline:none!important;box-shadow:none!important}
.top-icon svg{width:19px!important;height:19px!important;stroke-width:1.6}

.dot{
  position:absolute;
  top:10px;
  right:10px;
  width:7px;
  height:7px;
  background:var(--dark);
  border:2px solid #fff;
  border-radius:0!important;
}

.user-chip{
  height:44px;
  min-height:44px;
  display:flex;
  align-items:center;
  gap:10px;
  background:transparent;
  border:1px solid transparent;
  padding:0 10px;
  color:var(--text);
  font-size:14px;
  font-weight:300;
  line-height:1;
  transition:background .15s ease,border-color .15s ease;
}
.user-chip:hover{background:var(--hover-light);border-color:var(--line)}
.avatar-mini{
  width:30px;
  height:30px;
  min-width:30px;
  background:var(--dark);
  color:#fff;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:13px;
  font-weight:400;
}
.mobile-toggle{display:none}
.content{padding:30px;background:var(--page)}

/* Componentes globais antigos mantidos no padrão quadrado */
.grid{display:grid;gap:18px}
.grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.card{background:var(--card);border:1px solid var(--line);padding:22px;transition:.16s ease}
.card:hover{box-shadow:none!important}
.card.dark{background:var(--dark);color:#fff;border-color:var(--dark)}
.card h2,.card h3{margin:0 0 8px;font-weight:400;letter-spacing:-.01em}
.card p{margin:0;color:var(--muted);line-height:1.6;font-weight:300}
.card.dark p{color:rgba(255,255,255,.68)}
.metric{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.metric strong{font-size:31px;line-height:1;font-weight:400;letter-spacing:-.03em}
.metric .icon-box{width:43px;height:43px;background:#f4f4f1;color:var(--dark);display:flex;align-items:center;justify-content:center}
.metric .icon-box svg{width:19px;height:19px;stroke-width:1.55}
.section-title{display:flex;align-items:center;justify-content:space-between;margin:28px 0 14px;gap:14px}
.section-title h2{margin:0;font-size:21px;font-weight:400;letter-spacing:-.01em}
.btn-light,.btn-primary{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 17px;font-size:14px;font-weight:400;cursor:pointer;transition:.16s ease;
}
.btn-primary{width:100%;background:var(--dark);border:1px solid var(--dark);color:#fff}
.btn-primary:hover{background:#000;transform:none!important}
.btn-light{background:#fff;color:var(--dark);border:1px solid var(--line)}
.btn-light:hover{background:#f4f4f1}
.btn-light:focus,.btn-primary:focus{outline:none;box-shadow:none!important}
.table-card{overflow:hidden;padding:0}
.table{width:100%;border-collapse:collapse}
.table th,.table td{padding:15px 18px;text-align:left;border-bottom:1px solid var(--line);font-weight:300}
.table th{background:#fafaf8;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#777;font-weight:400}
.table tr:last-child td{border-bottom:0}
.badge{display:inline-flex;align-items:center;padding:5px 10px;background:#f1f1ef;font-size:13px;font-weight:300}
.badge.dark{background:var(--dark);color:#fff}
.placeholder{min-height:240px;border:1px dashed #d7d7d2;background:#fff;display:flex;align-items:center;justify-content:center;text-align:center;padding:28px;color:#777;font-weight:300}

/* Login e instalação */
.login-body{min-height:100vh;background:var(--dark);display:flex;align-items:center;justify-content:center;padding:24px}
.login-card{width:min(440px,100%);background:#fff;padding:34px;border:1px solid var(--line)}
.install-card{width:min(760px,100%)}
.login-logo{width:160px!important;max-width:160px!important;max-height:58px!important;object-fit:contain!important;margin-bottom:22px!important}
.login-card h1{margin:0 0 6px;font-size:27px;font-weight:400;letter-spacing:-.02em}
.login-card p{margin:0 0 20px;color:#666;font-weight:300}
.login-card label{display:block;margin:14px 0 8px;font-size:14px;font-weight:400}
.login-card input{width:100%;height:48px;border:1px solid #ddd8cf;padding:0 13px;font-size:15px;outline:none;background:#fff;color:var(--dark);font-weight:300}
.login-card input:focus{border-color:var(--dark);box-shadow:none!important}
.form-grid.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px}
.alert{padding:12px 14px;margin:12px 0;font-size:14px;font-weight:300}
.alert.error{background:#fff1f0;color:var(--danger);border:1px solid #ffd1cc}
.alert.success{background:#effaf3;color:var(--success);border:1px solid #ccebd6}
.overlay{display:none}

@media (max-width:1000px){
  .grid.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .grid.cols-3{grid-template-columns:1fr}
  .sidebar{transform:translateX(-105%)}
  .sidebar.open{transform:translateX(0)}
  .side-close{display:inline-flex}
  .main{margin-left:0;width:100%}
  .mobile-toggle{display:inline-flex}
  .overlay.show{display:block;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:25}
  .topbar{padding:0 18px;height:78px;min-height:78px}
  .side-head{height:78px;min-height:78px}
  .topbar h1{font-size:22px}
  .user-chip span:not(.avatar-mini){display:none}
}

@media (max-width:640px){
  .content{padding:18px}
  .grid.cols-4,.grid.cols-3{grid-template-columns:1fr}
  .form-grid.two{grid-template-columns:1fr}
  .login-card{padding:26px}
  .table{min-width:640px}
  .table-card{overflow:auto}
  .sidebar{width:86vw}
  .top-actions{gap:2px}
  .top-icon{width:40px;height:40px;min-width:40px}
  .nav-menu{padding-top:16px}
}

/* Menu oficial Locagestão - quadrado, limpo e agrupado */
.sidebar{width:292px!important}
.main{margin-left:292px!important}
.nav-menu{
  padding:14px 14px 18px!important;
  gap:0!important;
  overflow-y:auto;
  scrollbar-width:thin;
  scrollbar-color:rgba(255,255,255,.18) transparent;
}
.nav-menu::-webkit-scrollbar{width:6px}
.nav-menu::-webkit-scrollbar-thumb{background:rgba(255,255,255,.18)}
.nav-menu a,
.nav-main{
  height:42px!important;
  min-height:42px!important;
  padding:0 12px!important;
  border-radius:0!important;
  box-shadow:none!important;
  font-size:14px!important;
  font-weight:300!important;
}
.nav-menu a svg{
  width:19px!important;
  height:19px!important;
  min-width:19px!important;
  stroke-width:1.55!important;
}
.nav-main{margin-bottom:12px!important}
.nav-group{
  padding:12px 0 10px;
  border-top:1px solid rgba(255,255,255,.10);
}
.nav-group:first-of-type{border-top:1px solid rgba(255,255,255,.10)}
.nav-group-title{
  height:30px;
  display:flex;
  align-items:center;
  padding:0 12px;
  color:rgba(255,255,255,.96);
  font-size:13px;
  font-weight:400;
  letter-spacing:.02em;
}
.nav-group-title span{display:block;line-height:1}
.nav-submenu{
  display:flex;
  flex-direction:column;
  gap:1px;
  position:relative;
  padding-left:10px;
}
.nav-submenu::before{
  content:'';
  position:absolute;
  left:20px;
  top:6px;
  bottom:6px;
  width:1px;
  background:rgba(255,255,255,.10);
}
.nav-submenu a{
  position:relative;
  margin-left:10px;
  padding-left:22px!important;
  color:rgba(255,255,255,.62)!important;
}
.nav-submenu a::before{
  content:'';
  position:absolute;
  left:0;
  top:50%;
  width:12px;
  height:1px;
  background:rgba(255,255,255,.12);
  transform:translateY(-50%);
}
.nav-submenu a:hover,
.nav-submenu a.active,
.nav-menu .nav-main:hover,
.nav-menu .nav-main.active{
  background:rgba(255,255,255,.08)!important;
  color:#fff!important;
  border-color:transparent!important;
  font-weight:400!important;
}
.nav-submenu a.active::after,
.nav-submenu a:hover::after,
.nav-main.active::after,
.nav-main:hover::after{display:none!important;content:none!important}
.nav-submenu a.active::before,
.nav-submenu a:hover::before{background:rgba(255,255,255,.34)}
.nav-group.open .nav-group-title{color:#fff}
.sidebar-footer{margin:0 14px 14px!important}
@media(max-width:960px){
  .sidebar{width:292px!important;transform:translateX(-100%)}
  .main{margin-left:0!important}
  body.sidebar-open .sidebar{transform:translateX(0)}
}


/* Ajuste final do menu: grupos como título + links normais, sem árvore/linhas */
.nav-menu{
  padding:14px 14px 18px!important;
  display:flex!important;
  flex-direction:column!important;
  gap:4px!important;
  overflow-y:auto!important;
}

.nav-label{display:none!important}

.nav-menu a{
  height:42px!important;
  min-height:42px!important;
  padding:0 12px!important;
  margin:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  color:rgba(255,255,255,.72)!important;
  text-decoration:none!important;
  font-size:14px!important;
  font-weight:300!important;
  line-height:1!important;
  border:1px solid transparent!important;
  background:transparent!important;
  position:relative!important;
}

.nav-menu a svg{
  width:19px!important;
  height:19px!important;
  min-width:19px!important;
  stroke-width:1.55!important;
}

.nav-menu a:hover,
.nav-menu a.active{
  background:rgba(255,255,255,.08)!important;
  color:#fff!important;
  border-color:rgba(255,255,255,.08)!important;
  font-weight:300!important;
}

.nav-menu a::before,
.nav-menu a::after,
.nav-submenu::before,
.nav-submenu a::before,
.nav-submenu a::after{
  display:none!important;
  content:none!important;
}

.nav-group{
  margin-top:14px!important;
  padding:0!important;
  border:0!important;
  display:flex!important;
  flex-direction:column!important;
  gap:4px!important;
}

.nav-group-title{
  height:auto!important;
  min-height:0!important;
  padding:0 12px 6px!important;
  margin:0!important;
  color:rgba(255,255,255,.44)!important;
  font-size:11px!important;
  font-weight:400!important;
  line-height:1.2!important;
  letter-spacing:.08em!important;
  text-transform:uppercase!important;
}

.nav-submenu{
  padding:0!important;
  margin:0!important;
  display:flex!important;
  flex-direction:column!important;
  gap:4px!important;
}

.nav-submenu a{
  margin:0!important;
  padding:0 12px!important;
}


/* =========================================================
   CORREÇÃO FINAL - TODOS OS ÍCONES FEATHER EM 19PX
   Inclui especificamente header lateral/sidebar e topo.
   ========================================================= */
html body svg.feather,
html body .feather,
html body [data-feather],
html body i[data-feather],
html body .sidebar .nav-menu a svg,
html body .sidebar .nav-menu a .feather,
html body .sidebar svg,
html body .side-head svg,
html body .side-close svg,
html body .topbar svg,
html body .top-icon svg,
html body .mobile-toggle svg,
html body .content svg,
html body .card svg,
html body .metric svg,
html body .icon-box svg,
html body .dash-kit svg,
html body .dk-icon svg,
html body .dk-btn svg,
html body .btn-light svg {
  width: 19px !important;
  height: 19px !important;
  min-width: 19px !important;
  min-height: 19px !important;
  max-width: 19px !important;
  max-height: 19px !important;
  flex: 0 0 19px !important;
  stroke-width: 1.6 !important;
}

html body .sidebar .nav-menu a i[data-feather],
html body .topbar i[data-feather],
html body .top-icon i[data-feather],
html body .side-close i[data-feather] {
  width: 19px !important;
  height: 19px !important;
  min-width: 19px !important;
  min-height: 19px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}
