:root{
  --brand-green:#1cb218;
  --brand-dark-green:#226921;
  --brand-grey:#414042;
  --brand-black:#000000;
  --primary-color:var(--brand-green);
  --primary-hover:var(--brand-dark-green);
  --primary-light:rgba(28,178,24,.12);
  --primary-soft:rgba(28,178,24,.08);
  --focus-ring:0 0 0 3px rgba(28,178,24,.25);
}

.brand-title span{letter-spacing:-.02em;font-weight:800}
.brand-logo{width:26px;height:26px;display:inline-block}

.card.card-surface{background:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--border-radius-md);box-shadow:var(--shadow-sm)}
.card-header.card-header-custom{background:var(--surface-color);border-bottom:1px solid var(--border-color)}
.section-title{font-weight:800;letter-spacing:-.015em}

.btn-ghost{background:transparent;border:1px solid transparent;color:var(--neutral-800)}
.btn-ghost:hover{background:rgba(15,23,42,.04);border-color:rgba(15,23,42,.06)}
.btn-ghost:focus-visible{outline:2px solid rgba(28,178,24,.35);outline-offset:2px}
.btn-ghost-primary{color:var(--primary-color)}
.btn-ghost-primary:hover{background:var(--primary-soft);border-color:rgba(28,178,24,.2)}
.btn-ghost-danger{color:var(--danger-color)}
.btn-ghost-danger:hover{background:var(--danger-bg);border-color:rgba(220,38,38,.18)}
.btn-ghost-secondary{color:var(--neutral-600)}
.btn-ghost-secondary:hover{background:rgba(15,23,42,.03);border-color:rgba(15,23,42,.06)}

.btn-icon{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;padding:0;border-radius:var(--border-radius-sm)}

.badge{font-variant-numeric:tabular-nums}
.badge-soft-primary,.badge-soft-success,.badge-soft-danger,.badge-soft-warning,.badge-soft-info,.badge-soft-neutral,.badge-soft-secondary,.badge-soft-muted{display:inline-flex;align-items:center;gap:6px;border:1px solid transparent;border-radius:999px;padding:.28rem .55rem;font-weight:800;font-size:var(--fs-xs);line-height:1.1}
.badge-soft-primary{background:rgba(28,178,24,.10);border-color:rgba(28,178,24,.18);color:var(--brand-dark-green)}
.badge-soft-success{background:rgba(22,163,74,.10);border-color:rgba(22,163,74,.18);color:var(--success-color)}
.badge-soft-danger{background:rgba(220,38,38,.10);border-color:rgba(220,38,38,.18);color:var(--danger-color)}
.badge-soft-warning{background:rgba(245,158,11,.12);border-color:rgba(245,158,11,.18);color:#92400e}
.badge-soft-info{background:rgba(37,99,235,.10);border-color:rgba(37,99,235,.18);color:var(--info-color)}
.badge-soft-neutral{background:rgba(100,116,139,.10);border-color:rgba(100,116,139,.18);color:var(--neutral-600)}
.badge-soft-secondary{background:rgba(15,23,42,.06);border-color:rgba(15,23,42,.12);color:var(--neutral-800)}
.badge-soft-muted{background:rgba(148,163,184,.14);border-color:rgba(148,163,184,.22);color:var(--neutral-600)}

.dashboard-stat-card,.stat-card,.chart-card{border:1px solid var(--border-color);border-radius:var(--border-radius-md);box-shadow:var(--shadow-sm)}
.stat-icon-wrapper{border-radius:var(--border-radius-md)}

.main-content{
  min-height:100dvh;
  display:flex;
  flex-direction:column;
}
.page-content{
  flex:1 0 auto;
}
.footer.footer-app{
  background:var(--surface-color);
  border-top:1px solid var(--border-color);
  margin-top:auto;
  flex-shrink:0;
}
.footer.footer-app .footer-inner{
  width:100%;
  max-width:none;
  margin:0;
  padding-inline:32px;
}

.login-card .auth-brand{display:flex;align-items:center;gap:10px;justify-content:center}
.login-card .auth-wordmark{font-weight:900;letter-spacing:-.02em;color:var(--neutral-900)}
.login-card .auth-subtitle{color:var(--neutral-600);font-size:var(--fs-sm)}

a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid rgba(28,178,24,.35);outline-offset:2px}

.page-title{font-weight:900;letter-spacing:-.02em;color:var(--neutral-900);font-size:var(--fs-h2);line-height:var(--line-tight)}
.muted-meta{color:var(--neutral-600);font-size:var(--fs-sm)}

.btn.btn-sm{min-height:36px}
.btn-group-sm .btn{min-height:36px}
.btn.btn-icon{min-height:32px}

form[data-bl-filter-form] .form-label{font-weight:700;font-size:.8rem;letter-spacing:0;color:var(--neutral-600)}
form[data-bl-filter-form] .form-label.fw-bold{font-weight:700 !important}
form[data-bl-filter-form] .input-group-text{background:var(--neutral-100);border-color:var(--border-color);color:var(--neutral-600)}
form[data-bl-filter-form] .form-control,form[data-bl-filter-form] .form-select{border-color:var(--border-color)}
form[data-bl-filter-form] .form-control:focus,form[data-bl-filter-form] .form-select:focus{box-shadow:var(--focus-ring);border-color:rgba(28,178,24,.35)}

.bl-filter-row{gap:12px}
.bl-filter-actions{gap:8px}

.dashboard-promo-card{min-height:200px}
.dashboard-promo-body{position:relative}
.dashboard-promo-icon{position:absolute;right:-14px;bottom:-22px;opacity:.12;font-size:clamp(4.5rem,11vw,9rem);pointer-events:none;line-height:1;z-index:0}
.dashboard-promo-body>:not(.dashboard-promo-icon){position:relative;z-index:1}

@media (max-width: 576px){
  .dashboard-promo-card{min-height:170px}
  .dashboard-promo-icon{right:-10px;bottom:-18px;font-size:clamp(4rem,18vw,7rem)}
}

.sidebar-menu .nav-link{text-decoration:none}
.sidebar .btn-link{text-decoration:none}
.sidebar-menu .nav-link:focus-visible{outline:2px solid rgba(28,178,24,.35);outline-offset:2px}
.sidebar-menu .nav-link.active{box-shadow:inset 0 0 0 1px rgba(28,178,24,.18)}

@media (max-width: 768px){
  .sidebar.show{transform:translateX(0)}
  .sidebar-overlay.show{opacity:1;visibility:visible}
  .topbar{padding:0 16px}
  .topbar h4{font-size:1.05rem}
  .footer.footer-app .footer-inner{padding-inline:16px}
}
