@font-face {
    font-family: "Product Sans";
    src: url("webfonts/ProductSans-Regular.woff2") format("woff2");
    font-weight: 400;
    font-display: swap;
}

@font-face {
    font-family: "Product Sans";
    src: url("webfonts/ProductSans-Bold.woff2") format("woff2");
    font-weight: 700;
    font-display: swap;
}

:root {
    --admin-primary: #5356fb;
    --admin-primary-dark: #3f42e7;
    --admin-secondary: #7a5af8;
    --admin-sidebar: #1f1e2c;
    --admin-sidebar-muted: #aaa9bb;
    --admin-text: #374557;
    --admin-muted: #878f9e;
    --admin-border: #e9edf3;
    --admin-surface: #ffffff;
    --admin-background: #f6f7fb;
    --admin-success: #27ae60;
    --admin-danger: #ef5da8;
    --admin-radius: 18px;
    --admin-shadow: 0 12px 35px rgba(55, 69, 87, .07);
}

body.admin-theme {
    min-height: 100vh;
    background: var(--admin-background) url("img/body-bg.svg") top right / 720px auto no-repeat fixed;
    color: var(--admin-text);
    font-family: "Product Sans", Arial, sans-serif;
}

.admin-theme .admin-topbar {
    min-height: 82px;
    padding: 14px 0;
    background: rgba(255,255,255,.94);
    border-bottom: 1px solid var(--admin-border);
    backdrop-filter: blur(14px);
    position: sticky;
    top: 0;
    z-index: 1030;
}

.admin-theme .admin-brand {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: var(--admin-text);
    text-decoration: none;
    font-size: 20px;
    font-weight: 700;
    letter-spacing: -.4px;
}

.admin-brand-mark {
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    color: #fff;
    border-radius: 14px;
    background: linear-gradient(135deg, var(--admin-primary), #9b63f8);
    box-shadow: 0 9px 22px rgba(83, 86, 251, .3);
    font-size: 18px;
}

.admin-topbar-tools { display: flex; align-items: center; gap: 12px; }
.admin-user { display: flex; align-items: center; gap: 11px; padding: 7px 12px 7px 7px; border: 1px solid var(--admin-border); border-radius: 14px; background: #fff; }
.admin-user-avatar { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 12px; color: #fff; font-weight: 700; background: linear-gradient(135deg, #ff9f67, #ef5da8); }
.admin-user-name { font-weight: 700; line-height: 1.1; }
.admin-user-role { color: var(--admin-muted); font-size: 12px; }

.admin-theme .page-shell { padding-top: 32px; padding-bottom: 55px; }
.admin-theme h1, .admin-theme h2, .admin-theme h3, .admin-theme h4, .admin-theme h5 { color: var(--admin-text); font-weight: 700; letter-spacing: -.25px; }
.admin-theme .text-muted { color: var(--admin-muted) !important; }

.admin-theme .admin-sidebar-card {
    overflow: hidden;
    padding: 0;
    color: #fff;
    border: 0;
    border-radius: 22px;
    background: var(--admin-sidebar);
    box-shadow: 0 18px 40px rgba(31,30,44,.17);
    position: sticky;
    top: 114px;
}

.admin-sidebar-head { padding: 24px 22px 17px; border-bottom: 1px solid rgba(255,255,255,.08); }
.admin-sidebar-eyebrow { color: #858498; font-size: 11px; text-transform: uppercase; letter-spacing: 1.4px; }
.admin-sidebar-title { color: #fff !important; font-size: 18px; margin: 3px 0 0; }
.admin-sidebar-nav { padding: 16px 14px; }

.admin-theme .admin-menu-link {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 47px;
    margin-bottom: 5px;
    padding: 10px 12px;
    color: var(--admin-sidebar-muted);
    border: 0;
    border-radius: 12px;
    text-decoration: none;
    transition: .18s ease;
}

.admin-theme .admin-menu-link:hover { color: #fff; background: rgba(255,255,255,.07); transform: translateX(2px); }
.admin-theme .admin-menu-link.active { color: #fff; background: linear-gradient(135deg, var(--admin-primary), var(--admin-secondary)); box-shadow: 0 10px 24px rgba(83,86,251,.26); }
.admin-menu-icon { width: 28px; height: 28px; flex: 0 0 28px; display: grid; place-items: center; border-radius: 9px; color: inherit; background: rgba(255,255,255,.08); font-size: 13px; font-weight: 700; }
.admin-menu-link.active .admin-menu-icon { background: rgba(255,255,255,.18); }
.admin-sidebar-actions { padding: 4px 14px 18px; }
.admin-sidebar-actions .btn { border-radius: 12px; padding: 10px 12px; }

.admin-theme .card {
    border: 1px solid rgba(233,237,243,.9);
    border-radius: var(--admin-radius);
    background: var(--admin-surface);
    box-shadow: var(--admin-shadow) !important;
}

.admin-theme .card-header { padding: 18px 22px; background: transparent; border-bottom-color: var(--admin-border); }
.admin-theme .card-body { padding: 22px; }
.admin-theme .dashboard-stats .card { position: relative; overflow: hidden; }
.admin-theme .dashboard-stats .card::after { content: ""; width: 70px; height: 70px; position: absolute; right: -22px; top: -22px; border-radius: 50%; background: linear-gradient(135deg, rgba(83,86,251,.19), rgba(155,99,248,.04)); }
.admin-theme .dashboard-stats .fs-2 { color: var(--admin-primary); }

.admin-theme .btn { border-radius: 10px; font-weight: 700; padding: .55rem .9rem; }
.admin-theme .btn-primary, .admin-theme .btn-success { border-color: transparent; background: linear-gradient(135deg, var(--admin-primary), var(--admin-secondary)); }
.admin-theme .btn-primary:hover, .admin-theme .btn-success:hover { border-color: transparent; background: linear-gradient(135deg, var(--admin-primary-dark), #7547ee); transform: translateY(-1px); }
.admin-theme .btn-outline-primary { color: var(--admin-primary); border-color: rgba(83,86,251,.35); }
.admin-theme .btn-outline-primary:hover { color: #fff; border-color: var(--admin-primary); background: var(--admin-primary); }
.admin-theme .btn-outline-danger { color: #dc4c83; border-color: rgba(239,93,168,.35); }

.admin-theme .form-control, .admin-theme .form-select {
    min-height: 45px;
    border-color: var(--admin-border);
    border-radius: 11px;
    background-color: #fbfcfe;
}
.admin-theme textarea.form-control { min-height: 105px; }
.admin-theme .form-control:focus, .admin-theme .form-select:focus { border-color: rgba(83,86,251,.55); box-shadow: 0 0 0 .22rem rgba(83,86,251,.1); background: #fff; }
.admin-theme .form-label { color: #566273; font-size: 14px; font-weight: 700; }

.admin-theme .table { --bs-table-bg: transparent; margin-bottom: 0; color: var(--admin-text); }
.admin-theme .table > :not(caption) > * > * { padding: 14px 13px; border-bottom-color: var(--admin-border); vertical-align: middle; }
.admin-theme .table thead th { color: #8490a2; background: #fafbfe; border-bottom-width: 1px; font-size: 12px; text-transform: uppercase; letter-spacing: .45px; }
.admin-theme .table-responsive { border-radius: 13px; }
.admin-theme .badge { padding: .52em .72em; border-radius: 8px; font-weight: 700; }

.admin-theme .alert { border: 0; border-radius: 13px; box-shadow: var(--admin-shadow); }
.admin-theme .pagination .page-link { color: var(--admin-primary); border-color: var(--admin-border); }
.admin-theme .pagination .active .page-link { color: #fff; border-color: var(--admin-primary); background: var(--admin-primary); }

.admin-mobile-menu { display: none; }

@media (max-width: 1199.98px) {
    .admin-theme .admin-sidebar-card { position: static; }
}

@media (max-width: 767.98px) {
    .admin-theme .admin-topbar { min-height: 70px; }
    .admin-brand-text, .admin-user-copy { display: none; }
    .admin-theme .page-shell { padding-top: 20px; }
    .admin-theme .card-body { padding: 17px; }
}
