:root { --verde: #1f4d2c; --verde-claro: #2e6b3e; }
body { background: #f4f6f3; }
.bg-verde { background: var(--verde) !important; }
.sidebar { width: 250px; flex: 0 0 250px; min-height: 100vh; }
@media (min-width: 992px) { .sidebar { position: sticky; top: 0; height: 100vh; overflow-y: auto; } }
.sidebar .nav-link { color: rgba(255,255,255,.82); border-radius: .4rem; padding: .4rem .6rem; font-size: .93rem; }
.sidebar .nav-link:hover { background: rgba(255,255,255,.08); color: #fff; }
.sidebar .nav-link.active { background: rgba(255,255,255,.16); color: #fff; font-weight: 600; }
.menu-titulo { text-transform: uppercase; font-size: .7rem; letter-spacing: .06em; opacity: .55; margin: .9rem 0 .25rem .6rem; }
.contenido { min-width: 0; }
.card { border: 0; box-shadow: 0 1px 2px rgba(0,0,0,.06); }
.kpi .valor { font-size: 1.7rem; font-weight: 700; line-height: 1.1; }
.kpi .etiqueta { font-size: .8rem; color: #6c757d; text-transform: uppercase; letter-spacing: .03em; }
.table-sm td, .table-sm th { vertical-align: middle; }
.table thead th { font-size: .78rem; text-transform: uppercase; letter-spacing: .03em; color: #555; white-space: nowrap; }
.form-label { font-size: .85rem; font-weight: 600; margin-bottom: .2rem; }
.seccion-form { font-size: .8rem; text-transform: uppercase; letter-spacing: .05em; color: var(--verde-claro); border-bottom: 1px solid #dfe5dc; padding-bottom: .2rem; margin-top: .6rem; }
.btn-verde { background: var(--verde-claro); border-color: var(--verde-claro); color: #fff; }
.btn-verde:hover { background: var(--verde); border-color: var(--verde); color: #fff; }
.login-fondo { min-height: 100vh; background: linear-gradient(135deg, #1f4d2c 0%, #4c7a3b 100%); }
