/* iVamp admin console theme.
   Matches the IvampWeb admin (console.css): dark shell, left sidebar, IvampRegular font.
   Layered on top of Bootstrap 5.3 (data-bs-theme="dark") so existing Bootstrap markup in the
   admin views keeps working - this file only re-skins Bootstrap's variables and components. */

@font-face {
    font-family: 'IvampRegular';
    src: url("../fonts/Ivamp-Regular.ttf");
}

/* ── Palette (same values as IvampWeb console.css) ─────────────── */
[data-bs-theme=dark].admin-console {
    --ivamp-bg: #0f1115;
    --ivamp-panel: #1a1d24;
    --ivamp-border: #2a2e37;
    --ivamp-text: #e6e6e6;
    --ivamp-muted: #999;
    --ivamp-accent: #0892d0;
    --ivamp-link: #8ecae6;
    --ivamp-btn: #3a6ea5;
    --ivamp-btn-hover: #4a7eb5;
    --ivamp-danger: #a53a3a;
    --ivamp-danger-hover: #c24a4a;

    --bs-body-font-family: IvampRegular, "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
    --bs-body-bg: var(--ivamp-bg);
    --bs-body-bg-rgb: 15, 17, 21;
    --bs-body-color: var(--ivamp-text);
    --bs-emphasis-color: #fff;
    --bs-heading-color: var(--ivamp-text);
    --bs-secondary-color: var(--ivamp-muted);
    --bs-secondary-bg: var(--ivamp-panel);
    --bs-tertiary-bg: var(--ivamp-panel);
    --bs-border-color: var(--ivamp-border);
    --bs-link-color: var(--ivamp-link);
    --bs-link-color-rgb: 142, 202, 230;
    --bs-link-hover-color: #b5dff0;
    --bs-link-hover-color-rgb: 181, 223, 240;
    --bs-primary: var(--ivamp-btn);
    --bs-primary-rgb: 58, 110, 165;
    --bs-danger: var(--ivamp-danger);
    --bs-danger-rgb: 165, 58, 58;
    --bs-code-color: var(--ivamp-link);
}

body.admin-console {
    margin: 0;
    min-height: 100vh;
    display: flex;
    background: var(--ivamp-bg);
    color: var(--ivamp-text);
}

/* ── Layout shell ─────────────────────────────────────────────── */
.app-sidebar {
    width: 220px;
    flex-shrink: 0;
    background: var(--ivamp-panel);
    border-right: 1px solid var(--ivamp-border);
    padding: 1.5rem 1rem;
}
.app-sidebar h3 { color: var(--ivamp-accent); margin: 0 0 0.75rem; font-size: 1.35rem; font-weight: 700; }
.app-sidebar h3 a { color: inherit; text-decoration: none; }
.app-sidebar nav a,
.app-sidebar .sidebar-foot a {
    display: block;
    color: var(--ivamp-text);
    text-decoration: none;
    font-weight: 600;
    padding: 0.5rem 0.25rem;
    border-bottom: 1px solid var(--ivamp-border);
}
.app-sidebar nav a:hover,
.app-sidebar .sidebar-foot a:hover { color: var(--ivamp-link); }
.app-sidebar nav a.active { color: var(--ivamp-link); border-left: 3px solid var(--ivamp-accent); padding-left: 0.5rem; }
.app-sidebar .sidebar-foot { margin-top: 1.5rem; }
.app-sidebar .sidebar-foot a { font-weight: 400; font-size: 0.85rem; color: var(--ivamp-muted); border-bottom: 0; }

.app-content { flex: 1; min-width: 0; display: flex; flex-direction: column; }

.app-header {
    background: var(--ivamp-panel);
    padding: 1rem 1.5rem;
    border-bottom: 1px solid var(--ivamp-border);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
}
.app-header .page-title { color: var(--ivamp-text); text-decoration: none; font-weight: 700; }
.app-header .user-box { display: flex; gap: 0.75rem; align-items: center; }
.app-header .user-box a { color: var(--ivamp-muted); text-decoration: none; font-size: 0.85rem; }
.app-header .user-box a:hover { color: var(--ivamp-link); }

.app-main { width: 100%; max-width: 1200px; margin: 0 auto; padding: 1.5rem; }

/* Signed-out pages (login, forgot password...) have no sidebar */
body.admin-console.no-sidebar .app-main { max-width: 1000px; }

/* ── Cards ────────────────────────────────────────────────────── */
.admin-console .card {
    --bs-card-bg: var(--ivamp-panel);
    --bs-card-border-color: var(--ivamp-border);
    --bs-card-border-radius: 8px;
    --bs-card-inner-border-radius: 7px;
    --bs-card-cap-bg: rgba(255, 255, 255, 0.02);
    margin-bottom: 1.25rem;
}
.admin-console .row > [class*="col"] > .card { margin-bottom: 0; }
.admin-console .shadow-sm { box-shadow: none !important; }

/* ── Tables ───────────────────────────────────────────────────── */
.admin-console .table {
    --bs-table-bg: transparent;
    --bs-table-color: var(--ivamp-text);
    --bs-table-border-color: var(--ivamp-border);
    --bs-table-striped-bg: rgba(255, 255, 255, 0.025);
    --bs-table-striped-color: var(--ivamp-text);
    --bs-table-hover-bg: rgba(142, 202, 230, 0.06);
    --bs-table-hover-color: var(--ivamp-text);
    font-size: 0.9rem;
}
.admin-console .table > thead th { color: var(--ivamp-muted); font-weight: 600; border-bottom-color: var(--ivamp-border); }

/* ── Buttons ──────────────────────────────────────────────────── */
.admin-console .btn { font-weight: 600; border-radius: 4px; }
.admin-console .btn-primary {
    --bs-btn-bg: var(--ivamp-btn); --bs-btn-border-color: var(--ivamp-btn);
    --bs-btn-hover-bg: var(--ivamp-btn-hover); --bs-btn-hover-border-color: var(--ivamp-btn-hover);
    --bs-btn-active-bg: var(--ivamp-btn-hover); --bs-btn-active-border-color: var(--ivamp-btn-hover);
    --bs-btn-disabled-bg: var(--ivamp-btn); --bs-btn-disabled-border-color: var(--ivamp-btn);
}
.admin-console .btn-danger {
    --bs-btn-bg: var(--ivamp-danger); --bs-btn-border-color: var(--ivamp-danger);
    --bs-btn-hover-bg: var(--ivamp-danger-hover); --bs-btn-hover-border-color: var(--ivamp-danger-hover);
    --bs-btn-active-bg: var(--ivamp-danger-hover); --bs-btn-active-border-color: var(--ivamp-danger-hover);
}
.admin-console .btn-outline-primary {
    --bs-btn-color: var(--ivamp-link); --bs-btn-border-color: var(--ivamp-btn);
    --bs-btn-hover-bg: var(--ivamp-btn); --bs-btn-hover-border-color: var(--ivamp-btn); --bs-btn-hover-color: #fff;
    --bs-btn-active-bg: var(--ivamp-btn); --bs-btn-active-border-color: var(--ivamp-btn);
}
.admin-console .btn-outline-secondary {
    --bs-btn-color: var(--ivamp-text); --bs-btn-border-color: var(--ivamp-border);
    --bs-btn-hover-bg: var(--ivamp-border); --bs-btn-hover-border-color: var(--ivamp-border); --bs-btn-hover-color: #fff;
}
.admin-console .btn-outline-danger {
    --bs-btn-color: #f08080; --bs-btn-border-color: var(--ivamp-danger);
    --bs-btn-hover-bg: var(--ivamp-danger); --bs-btn-hover-border-color: var(--ivamp-danger); --bs-btn-hover-color: #fff;
}
.admin-console .btn-outline-light {
    --bs-btn-color: var(--ivamp-text); --bs-btn-border-color: var(--ivamp-border);
    --bs-btn-hover-bg: var(--ivamp-border); --bs-btn-hover-border-color: var(--ivamp-border); --bs-btn-hover-color: #fff;
}

/* ── Forms ────────────────────────────────────────────────────── */
.admin-console .form-control,
.admin-console .form-select {
    background-color: var(--ivamp-bg);
    border-color: var(--ivamp-border);
    color: var(--ivamp-text);
    border-radius: 4px;
}
.admin-console .form-control:focus,
.admin-console .form-select:focus {
    border-color: var(--ivamp-btn);
    box-shadow: 0 0 0 0.2rem rgba(58, 110, 165, 0.3);
}
.admin-console textarea.form-control { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 0.8rem; }
.admin-console .form-label,
.admin-console .col-form-label { font-size: 0.85rem; color: #aaa; }
.admin-console .form-check-input { background-color: var(--ivamp-bg); border-color: var(--ivamp-border); }
.admin-console .form-check-input:checked { background-color: var(--ivamp-btn); border-color: var(--ivamp-btn); }
.admin-console .text-danger,
.admin-console .field-validation-error,
.admin-console .validation-summary-errors { color: #f08080 !important; }

/* ── Alerts ───────────────────────────────────────────────────── */
.admin-console .alert { border: 0; border-radius: 6px; word-break: break-word; }
.admin-console .alert-info    { --bs-alert-bg: #1f3a4d; --bs-alert-color: #8ecae6; --bs-alert-link-color: #b5dff0; }
.admin-console .alert-success { --bs-alert-bg: #1f4d2c; --bs-alert-color: #7ee2a0; --bs-alert-link-color: #a8f0c0; }
.admin-console .alert-warning { --bs-alert-bg: #4d3e1f; --bs-alert-color: #f0c75e; --bs-alert-link-color: #f6da92; }
.admin-console .alert-danger  { --bs-alert-bg: #4d1f1f; --bs-alert-color: #f08080; --bs-alert-link-color: #f6a8a8; }

/* ── Badges, code, misc ───────────────────────────────────────── */
.admin-console .badge { border-radius: 4px; font-weight: 600; }
.admin-console code { background: var(--ivamp-bg); padding: 0.1rem 0.3rem; border-radius: 3px; }
.admin-console .text-muted { color: #888 !important; }
.admin-console h1, .admin-console .h1,
.admin-console h2, .admin-console .h2,
.admin-console h3, .admin-console .h3 { color: var(--ivamp-text); }
.admin-console .nav-tabs { --bs-nav-tabs-border-color: var(--ivamp-border); --bs-nav-tabs-link-active-bg: var(--ivamp-panel); --bs-nav-tabs-link-active-border-color: var(--ivamp-border) var(--ivamp-border) var(--ivamp-panel); }
.admin-console .page-link { --bs-pagination-bg: var(--ivamp-panel); --bs-pagination-border-color: var(--ivamp-border); }

/* ── Small screens: sidebar stacks on top ─────────────────────── */
@media (max-width: 767.98px) {
    body.admin-console { flex-direction: column; }
    .app-sidebar { width: 100%; border-right: 0; border-bottom: 1px solid var(--ivamp-border); padding: 1rem; }
    .app-sidebar nav { display: flex; flex-wrap: wrap; gap: 0 1rem; }
    .app-sidebar nav a { border-bottom: 0; padding: 0.3rem 0; }
    .app-sidebar nav a.active { border-left: 0; padding-left: 0; }
    .app-sidebar .sidebar-foot { margin-top: 0.5rem; }
    .app-main { padding: 1rem; }
}
