/*
 * EduFin layout tweaks
 *
 * Brand colors sudah di-compile ke core.css via Vuexy gulp build
 * (lihat docs/vuexy-html/.../scss/_custom-variables/_bootstrap-extended.scss).
 *
 * File ini hanya berisi layout/positioning tweaks yang tidak bisa di-handle
 * via SCSS variables — terutama centering logo.
 */

.app-brand-logo {
    display: flex;
    justify-content: center;
    width: 100%;
}

.app-brand-logo img {
    max-height: 36px;
    width: auto;
}

.authentication-wrapper .app-brand-logo img {
    max-height: 56px;
}

/* Horizontal navbar: logo on the left */
.layout-horizontal #layout-navbar .navbar-brand.app-brand {
    margin-right: 1.5rem;
}

/* Center logo in vertical sidebar header */
.layout-menu .app-brand {
    justify-content: center;
}

.layout-menu .app-brand-link {
    flex-grow: 0;
}

/* Swap logo variants by theme */
.brand-logo-dark { display: none; }
[data-bs-theme="dark"] .brand-logo-light { display: none; }
[data-bs-theme="dark"] .brand-logo-dark { display: inline-block; }

/* Swap full vs collapsed logo based on sidebar state */
.brand-logo-collapsed { display: none; }
.layout-menu-collapsed .brand-logo-full { display: none !important; }
.layout-menu-collapsed .brand-logo-collapsed { display: inline-block; }

/* When hovering a collapsed sidebar (Vuexy hover-expand), show full logo per theme */
.layout-menu-collapsed.layout-menu-hover .brand-logo-collapsed { display: none; }
.layout-menu-collapsed.layout-menu-hover .brand-logo-light { display: inline-block !important; }
[data-bs-theme="dark"].layout-menu-collapsed.layout-menu-hover .brand-logo-light { display: none !important; }
[data-bs-theme="dark"].layout-menu-collapsed.layout-menu-hover .brand-logo-dark { display: inline-block !important; }

/* Theme toggle button icon swap */
.theme-icon-dark { display: none; }
[data-bs-theme="dark"] .theme-icon-light { display: none; }
[data-bs-theme="dark"] .theme-icon-dark { display: inline-block; }

/* Flat skin — no shadows on focus, hover, click ripple, or validation states */
.form-control:focus,
.form-select:focus,
.form-check-input:focus,
.form-control-color:focus,
.was-validated .form-control:valid:focus,
.was-validated .form-control:invalid:focus,
.form-control.is-valid:focus,
.form-control.is-invalid:focus,
.was-validated .form-select:valid:focus,
.was-validated .form-select:invalid:focus,
.form-select.is-valid:focus,
.form-select.is-invalid:focus,
.was-validated .form-check-input:valid:focus,
.was-validated .form-check-input:invalid:focus,
.form-check-input.is-valid:focus,
.form-check-input.is-invalid:focus {
    box-shadow: none !important;
}

.btn:hover,
.btn:focus,
.btn:active,
.btn.active,
.btn.show {
    box-shadow: none !important;
}

.waves-effect .waves-ripple,
.waves-float:active {
    box-shadow: none !important;
}

.dropdown-menu {
    box-shadow: 0 0 0 1px var(--bs-border-color) !important;
}

/* Form check (radio/checkbox/switch) — no static or checked shadow */
.form-check-input,
.form-check-input:checked,
.form-check-input[type="checkbox"]:indeterminate {
    box-shadow: none !important;
}

/* Sidebar & horizontal menu — unify active item style:
   primary gradient bg + white text (Vuexy's vertical active style applied to both layouts). */
.menu-item.active > .menu-link:not(.menu-toggle),
.menu.menu-horizontal .menu-inner > .menu-item.active > .menu-link,
.menu.menu-horizontal .menu-inner > .menu-item.active > .menu-link.menu-toggle {
    background: linear-gradient(270deg, rgba(var(--bs-primary-rgb), 0.7) 0%, var(--bs-primary) 100%) !important;
    color: #fff !important;
    box-shadow: none !important;
}

/* Keep icon color consistent with text */
.menu-item.active > .menu-link:not(.menu-toggle) .menu-icon,
.menu.menu-horizontal .menu-inner > .menu-item.active > .menu-link .menu-icon {
    color: #fff !important;
}

/* Select2 — dropdown panel and focus/open state */
.select2-dropdown,
.select2-container--default.select2-container--focus .select2-selection,
.select2-container--default.select2-container--open .select2-selection {
    box-shadow: none !important;
}

/* Input-group merge (e.g. amount Rp prefix, password reveal toggle) — kill focus glow */
.input-group-merge .form-control:focus,
.input-group-merge .form-control:focus ~ .input-group-text,
.input-group-merge .input-group-text {
    box-shadow: none !important;
}

/* Input-group focus: keep 1px primary ring as visible border (matches .form-control:focus),
   but remove the glow drop-shadow from the ::before pseudo */
.input-group:focus-within::before,
.input-group:focus::before {
    box-shadow: none !important;
}

/* Restore btn-outline-* color inside tables (Vuexy default forces gray on .table .btn-icon) */
.table .btn-icon.btn-outline-primary { color: var(--bs-primary); }
.table .btn-icon.btn-outline-secondary { color: var(--bs-secondary); }
.table .btn-icon.btn-outline-success { color: var(--bs-success); }
.table .btn-icon.btn-outline-info { color: var(--bs-info); }
.table .btn-icon.btn-outline-warning { color: var(--bs-warning); }
.table .btn-icon.btn-outline-danger { color: var(--bs-danger); }
