:root { --brand: #0d7a6f; --brand-dark: #0a5c54; --side: #102a2f; }
body { background: #f3f6f8; font-size: .92rem; }
.sidebar { width: 240px; min-height: 100vh; background: var(--side); color: #cfe3e0; position: sticky; top: 0; height: 100vh; z-index: 1030; }
.sidebar .brand { display: block; padding: 18px 20px; font-size: 1.25rem; font-weight: 700; color: #fff; text-decoration: none; border-bottom: 1px solid rgba(255,255,255,.08); }
.sidebar .brand i { color: #3fd1bf; }
.sidebar .nav-section { padding: 14px 20px 4px; font-size: .7rem; text-transform: uppercase; letter-spacing: .08em; color: #7fa3a0; }
.sidebar .nav-item { display: block; padding: 8px 20px; color: #cfe3e0; text-decoration: none; border-left: 3px solid transparent; }
.sidebar .nav-item i { width: 22px; display: inline-block; }
.sidebar .nav-item:hover { background: rgba(255,255,255,.05); color: #fff; }
.sidebar .nav-item.active { background: rgba(63,209,191,.12); color: #fff; border-left-color: #3fd1bf; }
@media (max-width: 991px) { .sidebar { position: fixed; left: 0; top: 0; } }
.topbar { background: #fff; padding: 12px 24px; border-bottom: 1px solid #e3e8ec; position: sticky; top: 0; z-index: 1020; }
.content { padding: 24px; }
.card { border: 1px solid #e3e8ec; box-shadow: 0 1px 2px rgba(16,42,47,.04); }
.stat-card .icon { width: 46px; height: 46px; border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 1.35rem; }
.stat-card .value { font-size: 1.5rem; font-weight: 700; line-height: 1.1; }
.table > :not(caption) > * > * { vertical-align: middle; }
.table thead th { font-size: .75rem; text-transform: uppercase; letter-spacing: .04em; color: #5b6b73; background: #f8fafb; }
.thumb { width: 48px; height: 48px; object-fit: cover; border-radius: 8px; cursor: zoom-in; border: 1px solid #dde3e7; }
.thumb-lg { width: 100%; max-width: 280px; border-radius: 10px; cursor: zoom-in; }
.btn-brand { background: var(--brand); color: #fff; } .btn-brand:hover { background: var(--brand-dark); color: #fff; }
.login-wrap { min-height: 100vh; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, #0d7a6f, #102a2f); }
.map-box { height: 520px; border-radius: 10px; }
.filter-bar .form-control, .filter-bar .form-select { min-width: 140px; }
