:root {
    --primary-green: #0B6623;
    --deep-green: #064E3B;
    --bright-green: #16A34A;
    --yellow: #FACC15;
    --gold-yellow: #EAB308;
    --orange: #F97316;
    --danger-orange: #EA580C;
    --white: #FFFFFF;
    --light-bg: #F8FAFC;
    --dark-text: #1F2937;
    --muted-text: #6B7280;
    --border-soft: #E5E7EB;
    --shadow-soft: 0 16px 45px rgba(15, 23, 42, .08);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body.nkc-app,
body.nkc-login {
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    background:
        radial-gradient(circle at top left, rgba(250, 204, 21, .10), transparent 30%),
        linear-gradient(135deg, #F8FAFC 0%, #F0FDF4 46%, #FFFFFF 100%);
    color: var(--dark-text);
}

/* Top navigation */
.nkc-topbar {
    background: rgba(255, 255, 255, .92) !important;
    backdrop-filter: blur(16px);
    border-bottom: 1px solid rgba(11, 102, 35, .10);
    box-shadow: 0 12px 35px rgba(15, 23, 42, .06);
    position: sticky;
    top: 0;
    z-index: 1020;
}
.nkc-brand-mark {
    width: 44px;
    height: 44px;
    border-radius: 16px;
    background: linear-gradient(135deg, var(--primary-green), var(--bright-green));
    border: 2px solid var(--yellow);
    color: var(--white);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 12px 30px rgba(11, 102, 35, .24);
}
.nkc-brand-title { color: var(--deep-green); font-weight: 900; letter-spacing: -.03em; }
.nkc-brand-title span { color: var(--bright-green); }
.nkc-page-title { color: var(--deep-green); font-weight: 900; letter-spacing: -.02em; }
.nkc-search {
    border: 1px solid rgba(11, 102, 35, .13) !important;
    border-radius: 999px !important;
    background: #F8FAFC !important;
    padding-left: 2.4rem !important;
}
.nkc-search-wrap { position: relative; }
.nkc-search-wrap i { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: var(--muted-text); }

/* Sidebar */
.nkc-sidebar-card {
    background: linear-gradient(180deg, #052E1B 0%, #064E3B 55%, #06351F 100%);
    color: var(--white);
    border-radius: 24px;
    padding: 16px;
    min-height: calc(100vh - 120px);
    box-shadow: 0 25px 65px rgba(6, 78, 59, .24);
    border: 1px solid rgba(250, 204, 21, .16);
    position: sticky;
    top: 92px;
}
.nkc-sidebar-logo { display:flex; align-items:center; gap:12px; padding:10px 10px 18px; border-bottom:1px solid rgba(255,255,255,.12); margin-bottom:14px; }
.nkc-role-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: .72rem;
    font-weight: 800;
    color: #072B16;
    background: linear-gradient(135deg, var(--yellow), #FFE45C);
    border-radius: 999px;
    padding: 5px 10px;
}
.nkc-menu .list-group-item,
.nkc-menu a {
    border: 0 !important;
    background: transparent !important;
    color: rgba(255,255,255,.82) !important;
    border-radius: 14px !important;
    margin-bottom: 5px;
    font-weight: 700;
    display:flex;
    align-items:center;
    gap: 10px;
    padding: 12px 13px !important;
    transition: all .2s ease;
    text-decoration:none;
}
.nkc-menu a:hover,
.nkc-menu .list-group-item:hover {
    background: rgba(22, 163, 74, .22) !important;
    color: var(--white) !important;
    transform: translateX(4px);
}
.nkc-menu .active,
.nkc-menu a.active {
    background: rgba(22, 163, 74, .30) !important;
    color: var(--white) !important;
    border-left: 4px solid var(--yellow) !important;
}
.nkc-menu i { color: var(--yellow); width: 22px; text-align:center; }
.nkc-sidebar-overlay { display:none; }

/* Cards and dashboards */
.nkc-main { padding: 1.5rem; }
.nkc-card,
.bg-white.rounded-2xl.shadow,
.bg-white.p-4.rounded-2xl.shadow,
.bg-white.p-5.rounded-2xl.shadow {
    background: rgba(255,255,255,.94) !important;
    border: 1px solid rgba(11, 102, 35, .10);
    box-shadow: var(--shadow-soft) !important;
    border-radius: 24px !important;
}
.nkc-metric {
    position: relative;
    overflow: hidden;
    min-height: 128px;
    transition: transform .22s ease, box-shadow .22s ease;
}
.nkc-metric:hover { transform: translateY(-4px); box-shadow: 0 25px 70px rgba(15, 23, 42, .12) !important; }
.nkc-metric::before {
    content:"";
    position:absolute;
    inset:0 auto 0 0;
    width:6px;
    background: linear-gradient(180deg, var(--bright-green), var(--yellow));
}
.nkc-icon-circle {
    width: 46px;
    height: 46px;
    border-radius: 16px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background: rgba(22, 163, 74, .12);
    color: var(--primary-green);
    font-size: 1.35rem;
}
.nkc-count { font-size: 2rem; font-weight: 900; color: #0F172A; letter-spacing:-.04em; }
.nkc-trend { font-size:.8rem; font-weight:800; color: var(--bright-green); }

/* Buttons */
.btn-success,
.nkc-btn-primary {
    background: linear-gradient(135deg, var(--primary-green), var(--bright-green)) !important;
    border-color: transparent !important;
    color: var(--white) !important;
    border-radius: 14px !important;
    font-weight: 800 !important;
    box-shadow: 0 12px 32px rgba(11, 102, 35, .22);
}
.btn-warning,
.nkc-btn-yellow {
    background: linear-gradient(135deg, var(--yellow), var(--gold-yellow)) !important;
    border-color: transparent !important;
    color: #052E1B !important;
    border-radius: 14px !important;
    font-weight: 800 !important;
}
.btn-danger,
.nkc-btn-orange {
    background: linear-gradient(135deg, var(--orange), var(--danger-orange)) !important;
    border-color: transparent !important;
    border-radius: 14px !important;
    font-weight: 800 !important;
}
.btn, .form-control, .form-select { min-height: 42px; }
.btn:hover { transform: translateY(-1px); }

/* Forms */
.form-control,
.form-select {
    border-radius: 14px !important;
    border: 1px solid rgba(11, 102, 35, .16) !important;
    background: #fff !important;
}
.form-control:focus,
.form-select:focus {
    border-color: var(--bright-green) !important;
    box-shadow: 0 0 0 .25rem rgba(22, 163, 74, .13) !important;
}
.form-label { font-weight: 800; color: var(--deep-green); }
textarea.form-control { min-height: 120px; }

/* Tables */
.table-responsive,
.overflow-x-auto { border-radius: 20px; }
.table { margin-bottom:0; }
.table thead th {
    background: #ECFDF5 !important;
    color: var(--deep-green) !important;
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    border-bottom: 1px solid rgba(11, 102, 35, .12) !important;
}
.table tbody tr:hover { background: rgba(250, 204, 21, .10); }
.table td, .table th { vertical-align: middle; }
.badge { border-radius: 999px; padding: .45rem .7rem; font-weight: 800; }
.bg-warning { background-color: var(--yellow) !important; }
.bg-success { background-color: var(--primary-green) !important; }
.bg-danger { background-color: var(--danger-orange) !important; }

/* AI and alert panels */
.nkc-ai-panel {
    background: linear-gradient(135deg, #052E1B, #064E3B 55%, #0B6623);
    color: white;
    border-radius: 28px;
    border: 1px solid rgba(250, 204, 21, .20);
    box-shadow: 0 25px 75px rgba(6, 78, 59, .28);
}
.nkc-alert-critical { border-left: 6px solid var(--danger-orange); }
.nkc-alert-high { border-left: 6px solid var(--orange); }
.nkc-alert-medium { border-left: 6px solid var(--yellow); }
.nkc-alert-low { border-left: 6px solid var(--bright-green); }

/* Mobile */
.nkc-mobile-toggle { display:none; }
@media (max-width: 991px) {
    .nkc-mobile-toggle { display:inline-flex; }
    .nkc-main { padding: 1rem; }
    .nkc-sidebar-wrap {
        position: fixed;
        inset: 0 auto 0 0;
        width: min(86vw, 320px);
        z-index: 1050;
        transform: translateX(-105%);
        transition: transform .25s ease;
        padding: 14px;
    }
    body.sidebar-open .nkc-sidebar-wrap { transform: translateX(0); }
    body.sidebar-open .nkc-sidebar-overlay {
        display:block;
        position:fixed;
        inset:0;
        background: rgba(15, 23, 42, .52);
        z-index:1040;
    }
    .nkc-sidebar-card { min-height: calc(100vh - 28px); top:0; position: relative; overflow-y:auto; }
    .nkc-page-title { font-size: 1.35rem; }
    .nkc-search-wrap { display:none; }
}
@media (max-width: 575px) {
    .nkc-main { padding:.75rem; }
    .nkc-card, .bg-white.rounded-2xl.shadow, .bg-white.p-4.rounded-2xl.shadow { border-radius: 18px !important; }
    .btn { width: 100%; margin-bottom: .35rem; }
    .nkc-count { font-size: 1.65rem; }
}

/* Login */
.nkc-login {
    min-height: 100vh;
    background:
        radial-gradient(circle at top left, rgba(250, 204, 21, .20), transparent 28%),
        linear-gradient(135deg, #052E1B, #064E3B 48%, #020617) !important;
}
.nkc-login-card {
    background: rgba(255,255,255,.96);
    border: 1px solid rgba(250, 204, 21, .20);
    border-radius: 30px;
    box-shadow: 0 40px 120px rgba(0,0,0,.32);
}
.nkc-yellow-line {
    height: 4px;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--yellow), var(--bright-green), var(--orange));
}
