@font-face {
    font-family: "TBC Contractica";
    src: url("/fonts/fitme/TBCContractica-Regular.ttf") format("truetype");
    font-style: normal;
    font-weight: 400;
    font-display: swap;
}

@font-face {
    font-family: "TBC Contractica";
    src: url("/fonts/fitme/TBCContractica-Bold.ttf") format("truetype");
    font-style: normal;
    font-weight: 700;
    font-display: swap;
}

/* FitMe admin foundation — loaded after the legacy Hope UI theme. */
:root {
    --fitme-primary: #4a3aff;
    --fitme-primary-deep: #3b2be6;
    --fitme-primary-soft: #eae6ff;
    --fitme-primary-pale: #f5f3ff;
    --fitme-violet: #9400da;
    --fitme-pink: #ff2e9f;
    --fitme-ink: #171338;
    --fitme-muted: #6d6889;
    --fitme-line: #e4dfff;
    --fitme-paper: #f8f7ff;

    --bs-primary: var(--fitme-primary) !important;
    --bs-primary-rgb: 74, 58, 255 !important;
    --primary: var(--fitme-primary) !important;
    --primary-rgb: 74, 58, 255 !important;
    --bs-link-color: var(--fitme-primary) !important;
    --bs-link-hover-color: var(--fitme-primary-deep) !important;
    --bs-body-color: var(--fitme-ink) !important;
    --bs-body-bg: var(--fitme-paper) !important;
    --bs-primary-tint-20: #6e62ff;
    --bs-primary-tint-40: #9188ff;
    --bs-primary-tint-60: #b6b0ff;
    --bs-primary-tint-80: #dcd9ff;
    --bs-primary-shade-20: #3b2be6;
    --bs-primary-shade-40: #3022c7;
}

body {
    color: var(--fitme-ink);
    background: var(--fitme-paper);
    font-family: "TBC Contractica", "Noto Sans Georgian", "Inter", sans-serif;
}

a { color: var(--fitme-primary); }
a:hover { color: var(--fitme-primary-deep); }

.fitme-admin-wordmark {
    width: auto !important;
    height: 31px !important;
    max-width: 124px;
    object-fit: contain;
}

.fitme-admin-icon {
    width: 32px !important;
    height: 32px !important;
    border-radius: 9px;
    object-fit: cover;
}

.sidebar.sidebar-default {
    background: #fff !important;
    border-right: 1px solid var(--fitme-line);
    box-shadow: none !important;
}

.sidebar .sidebar-header {
    min-height: 74px;
    margin: 0 !important;
    padding: 0 4px;
    border-bottom: 1px solid var(--fitme-line) !important;
}

.sidebar .navbar-brand {
    padding: 1rem !important;
}

.sidebar-default .sidebar-body {
    padding: .75rem .75rem 1rem 0 !important;
}

.sidebar-default .navbar-nav .nav-item .nav-link {
    margin: 2px 0;
    border-radius: 10px;
}

.sidebar-default .navbar-nav .nav-item .nav-link:not(.disabled) {
    color: var(--fitme-muted) !important;
}

.sidebar-default .navbar-nav .nav-item .nav-link:not(.disabled).active,
.sidebar-default .navbar-nav .nav-item .nav-link:not(.disabled)[aria-expanded=true],
.sidebar .nav-item .nav-link.active,
.iq-sidebar-menu .li-active > a,
.active-menu > a {
    color: #fff !important;
    background: var(--fitme-primary) !important;
    box-shadow: none !important;
}

.sidebar-default .navbar-nav .nav-item .nav-link:not(.disabled):hover:not(.active):not([aria-expanded=true]) {
    color: var(--fitme-primary-deep) !important;
    background: var(--fitme-primary-soft) !important;
}

.sidebar .sidebar-toggle {
    color: #fff !important;
    background: var(--fitme-primary) !important;
    box-shadow: none !important;
}

.sidebar .sidebar-toggle:hover { background: var(--fitme-primary-deep) !important; }

.iq-navbar,
.iq-navbar.nav-glass,
.iq-navbar.navbar-expand-lg.navs-transparent {
    background: #fff !important;
    border-bottom: 1px solid var(--fitme-line) !important;
    box-shadow: none !important;
}

.iq-navbar .navbar-nav .nav-item .nav-link,
.iq-navbar .navbar-nav .caption .caption-title,
.iq-navbar.nav-glass .navbar-nav .nav-item .nav-link,
.iq-navbar.nav-glass .navbar-nav .caption .caption-title {
    color: var(--fitme-ink) !important;
}

.iq-navbar .navbar-nav .nav-item .nav-link:hover { color: var(--fitme-primary) !important; }

.iq-navbar-header {
    background: var(--fitme-paper) !important;
}

.content-inner {
    min-height: calc(100vh - 134px);
    padding-bottom: 2rem;
}

.card,
.modal-content,
.dropdown-menu,
.offcanvas,
.list-group-item {
    border-color: var(--fitme-line) !important;
    box-shadow: none !important;
}

.card {
    border-radius: 16px;
    background: #fff;
}

.card-header {
    border-bottom-color: var(--fitme-line) !important;
    background: transparent;
}

.content-inner .card-slide .rounded.p-3 {
    background: var(--fitme-primary-soft) !important;
}

.content-inner [fill="#EC7E4A"],
.content-inner [fill="#ec7e4a"] {
    fill: var(--fitme-primary) !important;
}

.content-inner [stroke="#EC7E4A"],
.content-inner [stroke="#ec7e4a"] {
    stroke: var(--fitme-primary) !important;
}

.btn-primary,
.bg-primary,
.badge.bg-primary,
.page-item.active .page-link,
.nav-pills .nav-link.active,
.nav-pills .show > .nav-link,
.dropdown-item.active,
.dropdown-item:active,
.progress-bar {
    color: #fff !important;
    background-color: var(--fitme-primary) !important;
    border-color: var(--fitme-primary) !important;
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.btn-primary.active,
.show > .btn-primary.dropdown-toggle {
    color: #fff !important;
    background-color: var(--fitme-primary-deep) !important;
    border-color: var(--fitme-primary-deep) !important;
    box-shadow: none !important;
}

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

.btn-outline-primary:hover,
.btn-outline-primary:focus {
    color: #fff !important;
    background-color: var(--fitme-primary) !important;
    border-color: var(--fitme-primary) !important;
    box-shadow: none !important;
}

.text-primary { color: var(--fitme-primary) !important; }
.bg-soft-primary { background-color: var(--fitme-primary-soft) !important; }

.form-control,
.form-select,
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple {
    border-color: #dcd6fa !important;
}

.form-control:focus,
.form-select:focus,
.form-check-input:focus {
    border-color: var(--fitme-primary) !important;
    outline: 3px solid rgba(74, 58, 255, .12);
    outline-offset: 0;
    box-shadow: none !important;
}

.form-check-input:checked,
.custom-control-input:checked ~ .custom-control-label::before {
    background-color: var(--fitme-primary) !important;
    border-color: var(--fitme-primary) !important;
}

.table {
    --bs-table-striped-bg: #faf9ff;
    --bs-table-hover-bg: #f3f1ff;
}

.table > :not(caption) > * > * { border-bottom-color: var(--fitme-line); }
.dashboard_table_list { border-top-color: var(--fitme-line) !important; }

.pagination .page-link {
    color: var(--fitme-primary);
    border-color: var(--fitme-line);
}

.pagination .page-link:hover {
    color: var(--fitme-primary-deep);
    background: var(--fitme-primary-soft);
}

.login-content .bg-primary { background-color: var(--fitme-primary) !important; }
.login-content .bg-soft-warning { background: var(--fitme-primary-pale) !important; }
.login-content .fitme-auth-photo {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.auth-logo .fitme-admin-wordmark { height: 36px !important; max-width: 142px; }

body.dark {
    color: #f3f1ff;
    background: #17122e;
}

.dark .sidebar.sidebar-default,
.dark .iq-navbar,
.dark .iq-navbar.nav-glass,
.dark .iq-navbar.navbar-expand-lg.navs-transparent,
.dark .card,
.dark .modal-content,
.dark .dropdown-menu,
.dark .offcanvas {
    color: #f3f1ff !important;
    background: #211a43 !important;
    border-color: #3b3268 !important;
}

.dark .sidebar .sidebar-header { border-bottom-color: #3b3268 !important; }
.dark .fitme-admin-wordmark {
    box-sizing: content-box;
    padding: 4px 7px;
    border-radius: 7px;
    background: #fff;
}
.dark .sidebar-default .navbar-nav .nav-item .nav-link:not(.disabled),
.dark .iq-navbar .navbar-nav .nav-item .nav-link,
.dark .iq-navbar .navbar-nav .caption .caption-title { color: #c9c3ee !important; }
.dark .sidebar-default .navbar-nav .nav-item .nav-link:not(.disabled):hover:not(.active):not([aria-expanded=true]) { color: #fff !important; background: #33286b !important; }
.dark .content-inner,
.dark .iq-navbar-header { background: #17122e !important; }
.dark .card-header,
.dark .list-group-item { color: inherit; background: transparent; border-color: #3b3268 !important; }

@media (max-width: 1199.98px) {
    .iq-navbar .fitme-admin-wordmark { height: 28px !important; }
}

/* Platform-wide Business administration. */
.fitme-business-admin {
    width: min(100%, 1540px);
    margin: 0 auto;
    padding: 24px 18px 48px;
    color: var(--fitme-ink);
    font-size: 14px;
}

.fitme-business-admin *,
.fitme-business-admin *::before,
.fitme-business-admin *::after {
    box-shadow: none !important;
}

.fitme-admin-page-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 22px;
}

.fitme-admin-page-head h1 {
    margin: 4px 0 5px;
    color: var(--fitme-ink);
    font-size: clamp(24px, 2.4vw, 32px);
    font-weight: 700;
    line-height: 1.18;
}

.fitme-admin-page-head p,
.fitme-admin-section-head p {
    margin: 0;
    color: var(--fitme-muted);
    font-size: 13px;
}

.fitme-admin-eyebrow {
    color: var(--fitme-primary);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .12em;
}

.fitme-admin-back {
    display: inline-flex;
    margin-bottom: 6px;
    color: var(--fitme-muted);
    font-size: 13px;
    text-decoration: none;
}

.fitme-admin-back:hover { color: var(--fitme-primary); }

.fitme-admin-head-actions,
.fitme-admin-row-actions,
.fitme-admin-form-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

.fitme-admin-head-actions form,
.fitme-admin-row-actions form { margin: 0; }

.fitme-admin-kpis {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 14px;
}

.fitme-admin-kpis-wide { grid-template-columns: repeat(6, minmax(0, 1fr)); }

.fitme-admin-kpi {
    min-height: 92px;
    padding: 17px 18px;
    border: 1px solid var(--fitme-line);
    border-radius: 7px;
    background: #fff;
}

.fitme-admin-kpi span {
    display: block;
    margin-bottom: 8px;
    color: var(--fitme-muted);
    font-size: 12px;
}

.fitme-admin-kpi strong {
    color: var(--fitme-ink);
    font-size: 25px;
    line-height: 1;
}

.fitme-admin-filters {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) 220px auto auto;
    gap: 8px;
    margin-bottom: 14px;
    padding: 12px;
    border: 1px solid var(--fitme-line);
    border-radius: 7px;
    background: #fff;
}

.fitme-admin-section {
    margin-bottom: 14px;
    padding: 20px;
    border: 1px solid var(--fitme-line);
    border-radius: 7px;
    background: #fff;
}

.fitme-admin-section-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 16px;
}

.fitme-admin-section-head-padded {
    margin: 0;
    padding: 18px 20px;
    border-bottom: 1px solid var(--fitme-line);
}

.fitme-admin-section-head h2,
.fitme-admin-workspace-note h2 {
    margin: 0 0 4px;
    color: var(--fitme-ink);
    font-size: 17px;
    font-weight: 700;
}

.fitme-admin-table { font-size: 13px; }
.fitme-admin-table > :not(caption) > * > * { padding: 13px 14px; }
.fitme-admin-table thead th {
    color: var(--fitme-muted);
    background: #faf9ff;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .03em;
    text-transform: uppercase;
    white-space: nowrap;
}

.fitme-admin-table tbody tr:last-child td { border-bottom: 0; }

.fitme-admin-entity {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--fitme-ink);
    text-decoration: none;
}

.fitme-admin-entity:hover { color: var(--fitme-primary); }
.fitme-admin-entity > span:last-child { display: grid; gap: 2px; }
.fitme-admin-entity small { color: var(--fitme-muted); font-size: 11px; }

.fitme-admin-entity-mark {
    display: inline-grid;
    width: 36px;
    height: 36px;
    flex: 0 0 36px;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: var(--fitme-primary);
    font-size: 13px;
    font-weight: 700;
}

.fitme-admin-status,
.fitme-admin-verified {
    display: inline-flex;
    align-items: center;
    min-height: 25px;
    padding: 3px 8px;
    border: 1px solid #dcd6fa;
    border-radius: 999px;
    color: #5f587b;
    background: #f8f7ff;
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
}

.fitme-admin-status.status-active,
.fitme-admin-verified { color: #11734b; border-color: #bce5d2; background: #effaf5; }
.fitme-admin-status.status-suspended,
.fitme-admin-status.status-terminated,
.fitme-admin-status.status-archived { color: #a63d4b; border-color: #f0c5ca; background: #fff5f6; }
.fitme-admin-status.status-under_review,
.fitme-admin-status.status-invited { color: #7b5b00; border-color: #ead89c; background: #fffbea; }
.fitme-admin-status.status-requested_changes,
.fitme-admin-status.status-past_due { color: #a15300; border-color: #f3cea2; background: #fff7ed; }

.fitme-admin-empty {
    padding: 28px !important;
    color: var(--fitme-muted);
    text-align: center;
}

.fitme-admin-two-columns {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(320px, .75fr);
    gap: 14px;
}

.fitme-admin-details {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 24px;
    margin: 0;
}

.fitme-admin-details > div {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
    padding: 11px 0;
    border-bottom: 1px solid #eeeafe;
}

.fitme-admin-details dt { color: var(--fitme-muted); font-size: 12px; font-weight: 400; }
.fitme-admin-details dd { margin: 0; text-align: right; font-weight: 700; }
.fitme-admin-details code { color: var(--fitme-primary-deep); font-size: 10px; }

.fitme-admin-workspace-note {
    background: var(--fitme-primary-pale);
    border-color: #d9d3ff;
}

.fitme-admin-workspace-note p { color: var(--fitme-muted); line-height: 1.65; }

.fitme-admin-simple-list > div,
.fitme-admin-audit-list > div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 13px 18px;
    border-bottom: 1px solid #eeeafe;
}

.fitme-admin-simple-list > div:last-child,
.fitme-admin-audit-list > div:last-child { border-bottom: 0; }
.fitme-admin-simple-list span,
.fitme-admin-audit-list span:nth-child(2) { display: grid; gap: 2px; }
.fitme-admin-simple-list small,
.fitme-admin-audit-list small { color: var(--fitme-muted); font-size: 11px; }
.fitme-admin-audit-list > div { justify-content: flex-start; }
.fitme-admin-audit-dot { width: 8px; height: 8px; flex: 0 0 8px; border-radius: 50%; background: var(--fitme-primary); }

.fitme-admin-form-page { max-width: 1120px; }
.fitme-admin-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.fitme-admin-field {
    display: grid;
    gap: 7px;
    margin: 0;
    color: var(--fitme-ink);
    font-size: 12px;
    font-weight: 700;
}

.fitme-admin-field small { color: var(--fitme-muted); font-size: 11px; font-weight: 400; }
.fitme-admin-field.span-2,
.fitme-admin-check.span-2,
.fitme-admin-readonly.span-2 { grid-column: span 2; }

.fitme-business-admin .form-control,
.fitme-business-admin .form-select {
    min-height: 42px;
    border-radius: 5px;
    color: var(--fitme-ink);
    font-size: 13px;
}

.fitme-business-admin textarea.form-control { min-height: 96px; }

.fitme-admin-check,
.fitme-admin-scope-options label,
.fitme-admin-branch-checks label {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 0;
    padding: 12px;
    border: 1px solid var(--fitme-line);
    border-radius: 6px;
    cursor: pointer;
}

.fitme-admin-check span,
.fitme-admin-scope-options span,
.fitme-admin-branch-checks span { display: grid; gap: 2px; }
.fitme-admin-check small,
.fitme-admin-scope-options small,
.fitme-admin-branch-checks small { color: var(--fitme-muted); font-size: 11px; }

.fitme-admin-readonly {
    display: grid;
    gap: 2px;
    padding: 13px 14px;
    border: 1px solid var(--fitme-line);
    border-radius: 6px;
    background: #faf9ff;
}

.fitme-admin-readonly > span,
.fitme-admin-readonly small { color: var(--fitme-muted); font-size: 11px; }

.fitme-admin-scope-options,
.fitme-admin-branch-checks {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.fitme-admin-branch-checks { margin-top: 12px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.fitme-admin-branch-checks.is-disabled { opacity: .48; }

.fitme-admin-permission-legend { display: flex; gap: 16px; margin-bottom: 10px; color: var(--fitme-muted); font-size: 11px; }
.fitme-admin-permission-legend .allow::before,
.fitme-admin-permission-legend .deny::before { content: ""; display: inline-block; width: 8px; height: 8px; margin-right: 5px; border-radius: 50%; }
.fitme-admin-permission-legend .allow::before { background: #29a06d; }
.fitme-admin-permission-legend .deny::before { background: #dd5264; }

.fitme-admin-permission-groups { display: grid; gap: 8px; }
.fitme-admin-permission-groups details { border: 1px solid var(--fitme-line); border-radius: 6px; }
.fitme-admin-permission-groups summary { padding: 12px 14px; cursor: pointer; font-weight: 700; }
.fitme-admin-permission-groups summary small { margin-left: 6px; color: var(--fitme-muted); font-weight: 400; }
.fitme-admin-permission-list { border-top: 1px solid var(--fitme-line); }

.fitme-admin-permission-row {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) 110px 110px;
    align-items: center;
    gap: 12px;
    padding: 10px 14px;
    border-bottom: 1px solid #eeeafe;
}

.fitme-admin-permission-row:last-child { border-bottom: 0; }
.fitme-admin-permission-row > span { display: grid; gap: 2px; }
.fitme-admin-permission-row small { color: var(--fitme-muted); font-size: 10px; }
.fitme-admin-permission-row label { margin: 0; font-size: 11px; }
.fitme-admin-permission-row label.allow { color: #11734b; }
.fitme-admin-permission-row label.deny { color: #a63d4b; }

.fitme-admin-form-actions { justify-content: flex-end; margin-top: 18px; }
.fitme-admin-row-actions { justify-content: flex-end; flex-wrap: nowrap; }
.fitme-admin-terminate { position: relative; }
.fitme-admin-terminate summary { color: #a63d4b; cursor: pointer; font-size: 11px; white-space: nowrap; }
.fitme-admin-terminate form {
    position: absolute;
    z-index: 5;
    top: calc(100% + 7px);
    right: 0;
    display: grid;
    width: 230px;
    gap: 7px;
    padding: 10px;
    border: 1px solid #f0c5ca;
    border-radius: 6px;
    background: #fff;
}

@media (max-width: 1199.98px) {
    .fitme-admin-kpis-wide { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .fitme-admin-branch-checks { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 767.98px) {
    .fitme-business-admin { padding: 18px 10px 36px; }
    .fitme-admin-page-head { align-items: flex-start; flex-direction: column; }
    .fitme-admin-head-actions { width: 100%; }
    .fitme-admin-kpis,
    .fitme-admin-kpis-wide { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .fitme-admin-filters,
    .fitme-admin-two-columns,
    .fitme-admin-form-grid,
    .fitme-admin-scope-options,
    .fitme-admin-branch-checks { grid-template-columns: 1fr; }
    .fitme-admin-field.span-2,
    .fitme-admin-check.span-2,
    .fitme-admin-readonly.span-2 { grid-column: span 1; }
    .fitme-admin-details { grid-template-columns: 1fr; }
    .fitme-admin-permission-row { grid-template-columns: 1fr 1fr; }
    .fitme-admin-permission-row > span { grid-column: 1 / -1; }
}
