:root {
    --admin-bg: #f4f7fb;
    --admin-panel: #ffffff;
    --admin-border: #e2e8f0;
    --admin-muted: #64748b;
    --admin-ink: #0f172a;
    --admin-accent: #2563eb;
    --admin-accent-dark: #1d4ed8;
    --admin-success: #16a34a;
    --admin-danger: #dc2626;
}

body.admin-body {
    min-height: 100vh;
    background:
        radial-gradient(circle at top left, rgba(37, 99, 235, .12), transparent 34rem),
        linear-gradient(180deg, #f8fafc 0%, var(--admin-bg) 42%, #eef2f7 100%);
    color: var(--admin-ink);
}

.admin-shell {
    min-height: 100vh;
}

.admin-sidebar {
    background: linear-gradient(180deg, #0f172a 0%, #111827 55%, #172554 100%);
    color: #fff;
    box-shadow: 18px 0 45px rgba(15, 23, 42, .12);
}

.admin-brand-mark {
    display: grid;
    width: 42px;
    height: 42px;
    place-items: center;
    border-radius: 14px;
    background: linear-gradient(135deg, #60a5fa, #22c55e);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.32), 0 16px 32px rgba(37,99,235,.25);
}

.admin-nav-link {
    display: flex;
    align-items: center;
    gap: .75rem;
    border-radius: 14px;
    padding: .8rem .95rem;
    color: #cbd5e1;
    font-weight: 650;
    transition: background .18s ease, color .18s ease, transform .18s ease;
}

.admin-nav-link:hover,
.admin-nav-link.is-active {
    background: rgba(255,255,255,.12);
    color: #fff;
    transform: translateX(2px);
}

.admin-nav-link i {
    width: 1.1rem;
    color: #93c5fd;
    text-align: center;
}

.admin-main {
    width: 100%;
}

.admin-topbar,
.admin-card,
.admin-table-card,
.admin-panel {
    border: 1px solid var(--admin-border);
    background: rgba(255, 255, 255, .9);
    box-shadow: 0 18px 50px rgba(15, 23, 42, .07);
    backdrop-filter: blur(12px);
}

.admin-topbar {
    border-radius: 22px;
    padding: 1rem;
}

.admin-page-title {
    font-size: clamp(1.45rem, 2vw, 2rem);
    font-weight: 800;
    letter-spacing: 0;
}

.admin-page-subtitle {
    margin-top: .2rem;
    color: var(--admin-muted);
    font-size: .92rem;
}

.admin-button-primary,
.admin-button-secondary,
.admin-button-danger {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .55rem;
    min-height: 2.5rem;
    border-radius: 12px;
    padding: .62rem 1rem;
    font-size: .9rem;
    font-weight: 750;
    transition: transform .16s ease, box-shadow .16s ease, background .16s ease;
}

.admin-button-primary {
    background: linear-gradient(135deg, var(--admin-accent), var(--admin-accent-dark));
    color: #fff;
    box-shadow: 0 14px 28px rgba(37,99,235,.22);
}

.admin-button-secondary {
    border: 1px solid var(--admin-border);
    background: #fff;
    color: #334155;
}

.admin-button-danger {
    background: #fef2f2;
    color: var(--admin-danger);
}

.admin-button-primary:hover,
.admin-button-secondary:hover,
.admin-button-danger:hover {
    transform: translateY(-1px);
}

.admin-card {
    border-radius: 20px;
    padding: 1.25rem;
}

.admin-stat-icon {
    display: grid;
    width: 46px;
    height: 46px;
    place-items: center;
    border-radius: 15px;
    background: #eff6ff;
    color: var(--admin-accent);
}

.admin-table-card,
.admin-panel {
    border-radius: 22px;
    overflow: hidden;
}

.admin-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    font-size: .92rem;
}

.admin-table thead th {
    background: #f8fafc;
    color: #64748b;
    font-size: .74rem;
    font-weight: 800;
    letter-spacing: .04em;
    padding: .9rem 1rem;
    text-transform: uppercase;
}

.admin-table tbody td {
    border-top: 1px solid #edf2f7;
    padding: .95rem 1rem;
    vertical-align: middle;
}

.admin-table tbody tr:hover {
    background: #f8fafc;
}

.admin-badge {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: .28rem .65rem;
    font-size: .76rem;
    font-weight: 800;
}

.admin-badge-success {
    background: #dcfce7;
    color: #166534;
}

.admin-badge-muted {
    background: #f1f5f9;
    color: #475569;
}

.admin-badge-danger {
    background: #fee2e2;
    color: #991b1b;
}

.admin-form input[type="text"],
.admin-form input[type="email"],
.admin-form input[type="password"],
.admin-form input[type="number"],
.admin-form input[type="color"],
.admin-form input:not([type]),
.admin-form select,
.admin-form textarea {
    width: 100%;
    border: 1px solid var(--admin-border);
    border-radius: 14px;
    background: #fff;
    padding: .72rem .9rem;
    color: var(--admin-ink);
    transition: border-color .18s ease, box-shadow .18s ease;
}

.admin-form input:focus,
.admin-form select:focus,
.admin-form textarea:focus {
    border-color: var(--admin-accent);
    box-shadow: 0 0 0 4px rgba(37,99,235,.12);
    outline: none;
}

.admin-form label span {
    color: #334155;
}

.admin-login-card {
    border: 1px solid var(--admin-border);
    background: rgba(255,255,255,.92);
    box-shadow: 0 30px 80px rgba(15,23,42,.16);
    backdrop-filter: blur(14px);
}

@media (max-width: 767px) {
    .admin-sidebar {
        box-shadow: 0 18px 45px rgba(15,23,42,.12);
    }

    .admin-nav-link {
        padding: .7rem .8rem;
    }
}

