.toggle::after{content:"";position:absolute;width:19px;height:19px;border-radius:50%;background:#fff;left:3px;top:3px;box-shadow:0 2px 6px rgba(0,0,0,.18);transition:.16s}.toggle.active{background:var(--verde-claro)}.toggle.active::after{transform:translateX(19px)}
.chart-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px}
.chart-card{background:#fff;border:1px solid var(--cinza-200);border-radius:18px;box-shadow:var(--sombra-card);padding:15px;min-width:0}
.chart-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px}.chart-header h3{margin:0;font-size:15px}.chart-header p{margin:4px 0 0;color:var(--cinza-500);font-size:11.5px;line-height:1.35}.chart-legend{display:flex;gap:9px;flex-wrap:wrap;font-size:10.5px;color:var(--cinza-500);justify-content:flex-end}.legend-item{display:flex;align-items:center;gap:5px}.legend-dot{width:9px;height:9px;border-radius:3px}.chart-wrap{width:100%;min-height:280px;position:relative}.chart-wrap svg{width:100%;height:auto;display:block;overflow:visible}.chart-grid-line{stroke:var(--cinza-200);stroke-width:1}.chart-axis{fill:var(--cinza-500);font-size:10px}.chart-label{fill:var(--cinza-700);font-size:10px;font-weight:700}.chart-bar{transition:opacity .12s;cursor:pointer}.chart-bar:hover,.chart-point:hover{opacity:.78}.chart-line{fill:none;stroke-linecap:round;stroke-linejoin:round}.chart-point{cursor:pointer}.chart-empty{height:270px;display:grid;place-items:center;color:var(--cinza-500);font-size:13px;text-align:center;padding:25px}
#chart-tooltip{position:fixed;z-index:500;pointer-events:none;background:var(--cinza-900);color:#fff;border-radius:10px;padding:8px 10px;font-size:11px;line-height:1.35;box-shadow:0 10px 28px rgba(0,0,0,.24);max-width:240px;opacity:0;transform:translate(-50%,-110%);transition:opacity .1s}
#chart-tooltip.show{opacity:1}

.chart-header-main{min-width:0;flex:1}.chart-header-actions{display:flex;flex-direction:column;align-items:flex-end;gap:8px;max-width:58%}.chart-type-control{display:flex;align-items:center;gap:7px;background:var(--cinza-050);border:1px solid var(--cinza-200);border-radius:10px;padding:4px 5px 4px 9px}.chart-type-control span{font-size:10px;font-weight:800;color:var(--cinza-500);text-transform:uppercase;letter-spacing:.035em;white-space:nowrap}.chart-type-select{border:0;background:#fff;border-radius:7px;min-height:30px;padding:4px 27px 4px 8px;font-size:11.5px;font-weight:800;color:var(--verde-escuro);outline:0}.chart-type-select:focus{box-shadow:0 0 0 3px rgba(134,189,0,.14)}
.chart-area{pointer-events:none}.chart-stem{stroke-linecap:round}.chart-value{fill:var(--cinza-700);font-size:10px;font-weight:800}


/* Modal, toast */
.modal-layer{position:fixed;inset:0;z-index:300;display:grid;place-items:center;padding:18px;background:rgba(23,43,54,.52);backdrop-filter:blur(3px)}
.modal{width:min(520px,100%);max-height:min(760px,90vh);overflow:auto;background:#fff;border-radius:20px;padding:20px;box-shadow:var(--sombra-flutuante)}
.modal h3{margin:0;font-size:19px}.modal p{color:var(--cinza-500);line-height:1.45;font-size:13px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}
#toast-layer{position:fixed;z-index:600;left:50%;bottom:24px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:7px;pointer-events:none;width:min(92vw,520px)}
.toast{background:var(--cinza-900);color:#fff;border-radius:99px;padding:10px 15px;font-size:12.5px;font-weight:700;box-shadow:0 10px 28px rgba(0,0,0,.25);opacity:0;transform:translateY(8px);transition:.2s}.toast.show{opacity:1;transform:translateY(0)}.toast.success{background:var(--conforme)}.toast.error{background:var(--nao-conforme)}.toast.warning{background:var(--faltando)}
.loading{min-height:100vh;display:grid;place-items:center;background:var(--verde-escuro-2);color:#fff}.spinner{width:38px;height:38px;border-radius:50%;border:3px solid rgba(255,255,255,.24);border-top-color:#fff;animation:spin .75s linear infinite;margin:0 auto 12px}@keyframes spin{to{transform:rotate(360deg)}}

/* Responsive */

@media(min-width:1600px) and (min-height:900px){
  :root{--sidebar:276px;--header-h:76px}
  .sidebar{padding:22px 17px}.sidebar-logo{min-height:62px;margin-bottom:22px}.sidebar-logo img{width:146px;height:40px}.nav-link{padding:13px 14px;font-size:15px}.nav-link svg{width:22px;height:22px;flex-basis:22px}
  .app-header{padding:10px 32px}.header-copy h1{font-size:26px}.header-copy p{font-size:13px}
  .page-content{max-width:1800px;padding:28px 34px 46px}
  .card{padding:21px}.card-header h2,.card-header h3{font-size:18px}.section-title h2{font-size:23px}
  .kpi-grid{gap:17px}.kpi-card{min-height:142px;padding:20px}.kpi-value{font-size:30px}.kpi-icon{width:42px;height:42px}.kpi-icon svg{width:22px;height:22px}
  .quick-grid{gap:17px}.quick-card{min-height:112px;padding:20px}.quick-icon{width:50px;height:50px}
  .dashboard-toolbar{gap:13px}.chart-grid{gap:18px;margin-top:18px}.chart-card{padding:19px;border-radius:20px}.chart-header h3{font-size:17px}.chart-header p{font-size:12.5px}.chart-wrap{min-height:342px}.chart-wrap svg{max-height:410px}
  .data-table-wrap{border-radius:16px}th{padding:13px 14px}td{padding:12px 14px}
  .detail-grid{gap:13px}.detail-cell{padding:14px}.input,.select,.textarea{min-height:48px;font-size:15px}.btn{min-height:47px;font-size:14.5px}
  .login-card{max-width:450px;padding:32px}.login-panel{padding:38px}.login-hero{padding:84px}.login-logo-card{width:290px}
}
@media(min-width:1200px){.app-header>div:first-child{display:none}.app-header{grid-template-columns:minmax(0,1fr) auto}}
@media(max-width:1199px){
  :root{--header-h:64px}
  .app-shell{display:block}
  .sidebar{position:fixed;left:0;top:0;width:280px;transform:translateX(-102%);transition:transform .2s ease;box-shadow:var(--sombra-flutuante)}
  .sidebar.open{transform:translateX(0)}
  .drawer-overlay{display:block;position:fixed;inset:0;background:rgba(23,43,54,.42);z-index:55;opacity:0;pointer-events:none;transition:.2s}.drawer-overlay.show{opacity:1;pointer-events:auto}
  .mobile-menu-btn{display:inline-flex}
  .page-content{padding:20px 22px 32px}
  .kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dashboard-toolbar .field{grid-column:span 3}.dashboard-toolbar .field.period-main{grid-column:span 4}.dashboard-toolbar .compare-toggle{grid-column:span 3}
}
@media(max-width:899px){
  .data-table-wrap{display:none}.mobile-cards{display:flex;flex-direction:column;gap:9px}
  .filters .field{grid-column:span 6}.filters .filter-actions{grid-column:span 12;justify-content:flex-start}
  .chart-grid{grid-template-columns:1fr}
  .dashboard-toolbar .field{grid-column:span 4}.dashboard-toolbar .field.period-main{grid-column:span 6}.dashboard-toolbar .compare-toggle{grid-column:span 6}
  .login-page{grid-template-columns:1fr}.login-hero{min-height:320px;padding:38px}.login-hero h1{font-size:38px}.login-panel{padding:24px}
}
