:root {
    --primary: #0f766e;
    --primary-dark: #115e59;
    --primary-soft: #e7f7f4;
    --accent: #f59e0b;
    --ink: #17212b;
    --muted: #64748b;
    --line: #e5e7eb;
}

* { box-sizing: border-box; }

body {
    min-height: 100vh;
    background:
        radial-gradient(circle at top left, rgba(15, 118, 110, .14), transparent 34%),
        radial-gradient(circle at bottom right, rgba(245, 158, 11, .12), transparent 32%),
        linear-gradient(135deg, #f6fffd 0%, #ffffff 48%, #f8fbff 100%);
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    color: var(--ink);
}

.glass-nav {
    backdrop-filter: blur(14px);
    background-color: rgba(255, 255, 255, .92) !important;
}

.navbar-brand strong { color: var(--primary-dark); }

.brand-logo,
.brand-logo-placeholder {
    width: 44px;
    height: 44px;
    border-radius: 14px;
    object-fit: contain;
    background: #fff;
    border: 1px solid var(--line);
    box-shadow: 0 10px 22px rgba(15, 118, 110, .12);
}

.brand-logo-placeholder,
.login-logo-placeholder {
    display: inline-grid;
    place-items: center;
    background: linear-gradient(135deg, var(--primary), #22c55e);
    color: white;
    font-weight: 900;
}

.hero-card, .form-card, .admin-card {
    border: 1px solid rgba(15, 118, 110, .08);
    border-radius: 24px;
    box-shadow: 0 20px 50px rgba(15, 118, 110, 0.11);
    overflow: hidden;
}

.hero-badge {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    padding: .5rem .85rem;
    border-radius: 999px;
    background: var(--primary-soft);
    color: var(--primary-dark);
    font-weight: 800;
    font-size: .9rem;
}

.institution-card {
    border: 1px dashed rgba(15, 118, 110, .28);
    background: rgba(255, 255, 255, .74);
    border-radius: 18px;
    padding: 1rem;
    color: var(--ink);
}

.btn-primary {
    background: var(--primary);
    border-color: var(--primary);
}

.btn-primary:hover,
.btn-primary:focus {
    background: var(--primary-dark);
    border-color: var(--primary-dark);
}

.btn-outline-primary {
    color: var(--primary);
    border-color: var(--primary);
}

.btn-outline-primary:hover,
.btn-outline-primary:focus {
    background: var(--primary);
    border-color: var(--primary);
}

.form-control, .form-select {
    border-radius: 14px;
    padding: .78rem .95rem;
    border-color: #dbe3ea;
}

.form-control:focus, .form-select:focus {
    border-color: rgba(15, 118, 110, .55);
    box-shadow: 0 0 0 .25rem rgba(15, 118, 110, .12);
}

.form-label {
    font-weight: 800;
    color: #1f2937;
}

.help-text { color: var(--muted); font-size: .9rem; }

.footer-note { color: #60717b; font-size: .9rem; }

.table thead th {
    white-space: nowrap;
    background: #effaf7;
    color: #134e4a;
    font-size: .92rem;
}

.admin-table td,
.admin-table th { vertical-align: middle; }

.login-wrapper {
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: 1.25rem;
}

.login-card { width: min(100%, 460px); }

.login-logo,
.login-logo-placeholder {
    width: 82px;
    height: 82px;
    border-radius: 22px;
    object-fit: contain;
    border: 1px solid var(--line);
    box-shadow: 0 16px 32px rgba(15, 118, 110, .12);
}

.status-pill {
    display: inline-block;
    border-radius: 999px;
    padding: .28rem .7rem;
    background: var(--primary-soft);
    color: var(--primary-dark);
    font-weight: 800;
    white-space: nowrap;
}

.stat-card {
    min-height: 122px;
}

.success-icon {
    width: 68px;
    height: 68px;
    margin-inline: auto;
    border-radius: 999px;
    display: grid;
    place-items: center;
    background: #dcfce7;
    color: #15803d;
    font-size: 2.4rem;
    font-weight: 900;
}

.code-box {
    background: #ffffff;
    padding: .25rem .65rem;
    border-radius: 10px;
    border: 1px solid rgba(21, 128, 61, .2);
    letter-spacing: .08em;
}

.success-summary {
    border-radius: 18px;
}

.settings-logo-preview {
    max-width: 100px;
    max-height: 100px;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: #fff;
    padding: .4rem;
    object-fit: contain;
}

.detail-table th {
    background: #f8fafc;
}

.kk-preview {
    min-height: 240px;
    display: grid;
    place-items: center;
}

@media (max-width: 576px) {
    .navbar .container,
    .navbar .container-fluid {
        gap: .75rem;
    }

    .navbar-brand small {
        font-size: .72rem;
    }

    .display-6 {
        font-size: 2rem;
    }

    .card-body.p-4,
    .card-body.p-md-5 {
        padding: 1.25rem !important;
    }
}

/* ============================================================
   Perbaikan ukuran logo + AdminLTE Dashboard
   ============================================================ */
.navbar-brand img,
.brand-logo,
.brand-logo-placeholder {
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    max-width: 44px !important;
    max-height: 44px !important;
    object-fit: contain !important;
}

.login-logo,
.login-logo-placeholder {
    width: 74px !important;
    height: 74px !important;
    max-width: 74px !important;
    max-height: 74px !important;
    object-fit: contain !important;
}

.settings-logo-preview {
    width: 96px !important;
    height: 96px !important;
    max-width: 96px !important;
    max-height: 96px !important;
    object-fit: contain !important;
}

.adminlte-layout {
    background: #f4f6f9 !important;
}

.adminlte-layout .content-wrapper {
    background: #f4f6f9;
}

.adminlte-layout .main-header,
.adminlte-layout .main-footer {
    background: #ffffff;
}

.sidebar-dark-teal {
    background: linear-gradient(180deg, #0f3f3a 0%, #0f766e 100%) !important;
}

.sidebar-dark-teal .nav-sidebar > .nav-item > .nav-link.active {
    background-color: rgba(255, 255, 255, .18) !important;
    color: #fff !important;
    box-shadow: none;
}

.admin-brand-logo {
    width: 34px !important;
    height: 34px !important;
    max-width: 34px !important;
    max-height: 34px !important;
    min-width: 34px !important;
    object-fit: contain !important;
    background: #ffffff;
    border-radius: 9px !important;
    opacity: 1 !important;
    padding: 3px;
}

.admin-brand-placeholder,
.admin-user-avatar {
    width: 34px;
    height: 34px;
    border-radius: 9px;
    display: inline-grid;
    place-items: center;
    background: rgba(255, 255, 255, .18);
    color: #fff;
    font-weight: 900;
}

.admin-user-avatar {
    border-radius: 50%;
    background: rgba(255, 255, 255, .14);
}

.adminlte-layout .brand-link {
    min-height: 57px;
    overflow: hidden;
}

.adminlte-layout .brand-text {
    max-width: 185px;
    line-height: 1.1;
}

.adminlte-layout .small-box {
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 10px 26px rgba(15, 23, 42, .08);
}

.adminlte-layout .small-box .icon { top: 8px; }

.adminlte-layout .card {
    border-radius: 16px;
    border: 0;
    box-shadow: 0 12px 28px rgba(15, 23, 42, .08);
}

.adminlte-layout .card-header {
    border-top-left-radius: 16px;
    border-top-right-radius: 16px;
}

.adminlte-layout .btn { border-radius: 10px; }

.adminlte-layout .form-control,
.adminlte-layout .custom-select,
.adminlte-layout .form-select {
    border-radius: 10px;
}

.adminlte-layout .table thead th {
    background: #f1f8f6;
    color: #134e4a;
    border-bottom: 1px solid #d9ebe7;
}

.adminlte-layout .badge-nik {
    background: #e6fffb;
    color: #0f766e;
    border: 1px solid #a7f3d0;
    border-radius: 999px;
    padding: .35rem .55rem;
    font-weight: 800;
}

.adminlte-layout .kk-thumb {
    max-height: 460px;
    width: 100%;
    object-fit: contain;
    background: #f8fafc;
}

.adminlte-login-page {
    background:
        radial-gradient(circle at top left, rgba(15, 118, 110, .18), transparent 36%),
        radial-gradient(circle at bottom right, rgba(245, 158, 11, .14), transparent 34%),
        linear-gradient(135deg, #f6fffd 0%, #ffffff 55%, #f8fbff 100%) !important;
}

.adminlte-login-page .login-box {
    width: min(92vw, 430px);
}

.adminlte-login-page .login-card-body {
    border-radius: 18px;
    box-shadow: 0 24px 60px rgba(15, 118, 110, .16);
}

@media (max-width: 576px) {
    .navbar-brand span strong {
        font-size: .95rem;
    }
    .navbar-brand span small {
        font-size: .74rem;
    }
    .brand-logo,
    .brand-logo-placeholder,
    .navbar-brand img {
        width: 38px !important;
        height: 38px !important;
        max-width: 38px !important;
        max-height: 38px !important;
        min-width: 38px !important;
    }
}


.access-code-box {
    display: inline-block;
    padding: 6px 10px;
    border-radius: 8px;
    background: #ecfdf5;
    color: #065f46;
    border: 1px dashed #10b981;
    font-size: 15px;
    letter-spacing: 2px;
    font-weight: 800;
}

.access-code-large {
    padding: 14px 16px;
    border-radius: 12px;
    background: #ecfdf5;
    border: 1px dashed #10b981;
    color: #065f46;
    text-align: center;
    font-size: 28px;
    letter-spacing: 4px;
    font-weight: 900;
}


/* V4 Mobile App Style */
@media (max-width:768px){
.main-sidebar{display:none!important;}
.content-wrapper,.main-footer,.main-header{margin-left:0!important;}
.mobile-bottom-nav{position:fixed;bottom:0;left:0;right:0;height:60px;background:#fff;display:flex;justify-content:space-around;align-items:center;z-index:9999;border-top:1px solid #ddd;}
.mobile-bottom-nav a{text-align:center;font-size:12px;color:#555}
.content-wrapper{padding-bottom:75px;}
}
@media (min-width:769px){.mobile-bottom-nav{display:none!important;}}

@media (max-width:768px){
.main-sidebar{display:none!important}
.content-wrapper,.main-footer,.main-header{margin-left:0!important}
.mobile-bottom-nav{position:fixed;bottom:0;left:0;right:0;height:60px;background:#fff;display:flex;justify-content:space-around;align-items:center;z-index:9999;border-top:1px solid #ddd}
.mobile-bottom-nav a{text-decoration:none;color:#0f766e;font-size:12px;display:flex;flex-direction:column;align-items:center}
.content-wrapper{padding-bottom:80px}
.table{display:block;overflow-x:auto}
}
@media (min-width:769px){.mobile-bottom-nav{display:none}}
