/* ============================================================================
   Dr Perfect Report — Platform Admin console
   Loaded after dpr-theme.css. Reuses the .dpr-portal* shell and the .dpr-kpi /
   .dpr-status / .dpr-state building blocks; adds only what is admin-specific:
   the initial WASM loader, an indigo "platform" accent on the chrome, and the
   activity feed.
   ========================================================================== */

/* ── Initial WebAssembly load (index.html spinner) ───────────────────────── */
.loading-progress {
    position: relative;
    display: block;
    width: 7rem;
    height: 7rem;
    margin: 22vh auto 1rem auto;
}
.loading-progress circle {
    fill: none;
    stroke: #E2E8F0;
    stroke-width: 0.5rem;
    transform-origin: 50% 50%;
    transform: rotate(-90deg);
}
.loading-progress circle:last-child {
    stroke: #4F46E5;
    stroke-dasharray: calc(3.141 * var(--blazor-load-percentage, 0%) * 0.8), 500%;
    transition: stroke-dasharray 0.05s ease-in-out;
}
.loading-progress-text {
    position: absolute;
    text-align: center;
    font-weight: 600;
    color: #64748B;
    inset: calc(22vh + 3rem) 0 auto 0;
}
.loading-progress-text:after {
    content: var(--blazor-load-percentage-text, "Loading");
}

/* ── Platform accent on the shared portal shell (indigo, not clinical teal) ─ */
.dpr-admin__tag {
    color: #4F46E5;
    background: rgba(79, 70, 229, .10);
}
.dpr-admin .dpr-portal__link:hover {
    background: rgba(79, 70, 229, .08);
    color: #4F46E5;
}
.dpr-admin .dpr-portal__link.active {
    background: linear-gradient(120deg, #4338CA 0%, #6366F1 100%);
    box-shadow: 0 2px 8px rgba(79, 70, 229, .28);
    color: #fff;
}
.dpr-admin__avatar {
    background: linear-gradient(120deg, #4338CA 0%, #6366F1 100%) !important;
}
:root[data-bs-theme=dark] .dpr-admin .dpr-portal__link:hover { color: #A5B4FC; }

/* ── Activity feed ───────────────────────────────────────────────────────── */
.dpr-feed {
    list-style: none;
    margin: 0;
    padding: 0;
}
.dpr-feed__item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 12px 0;
    border-bottom: 1px solid #EEF2F6;
}
.dpr-feed__item:last-child { border-bottom: 0; }
.dpr-feed__item:first-child { padding-top: 0; }

.dpr-feed__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    border-radius: 10px;
    font-size: 17px;
}
.dpr-feed__body { min-width: 0; }
.dpr-feed__text {
    font-size: 13.5px;
    color: #1E293B;
    line-height: 1.4;
}
.dpr-feed__meta { font-size: 12px; }

:root[data-bs-theme=dark] .dpr-feed__item { border-bottom-color: rgba(255, 255, 255, .07); }
:root[data-bs-theme=dark] .dpr-feed__text { color: #E2E8F0; }

/* ── Login: platform badge over the shared .dpr-auth layout ──────────────── */
.dpr-admin-auth__badge {
    display: inline-block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: #C7D2FE;
    background: rgba(255, 255, 255, .12);
    padding: 4px 12px;
    border-radius: 999px;
    margin-bottom: 16px;
}

/* ── 2026 platform workspace ─────────────────────────────────────────────── */
:root {
    --admin-ink: #172033;
    --admin-muted: #697386;
    --admin-line: #E7EAF0;
    --admin-canvas: #F5F7FB;
    --admin-indigo: #4F46E5;
    --admin-indigo-dark: #3730A3;
}

.dpr-admin-shell { min-height: 100vh; min-height: 100dvh; display: flex; background: var(--admin-canvas); color: var(--admin-ink); }
.dpr-admin-sidebar {
    position: fixed; inset: 0 auto 0 0; z-index: 40; width: 268px; height: 100vh; height: 100dvh; display: flex; flex-direction: column;
    color: #D8DDF0; background: linear-gradient(180deg, #171A2D 0%, #111425 100%);
    border-right: 1px solid rgba(255,255,255,.05); box-shadow: 12px 0 36px rgba(22, 25, 45, .08);
}
.dpr-admin-sidebar__brand { min-height: 76px; padding: 18px 20px; display: flex; align-items: center; gap: 12px; border-bottom: 1px solid rgba(255,255,255,.08); }
.dpr-admin-sidebar__brand .dpr-brand { flex: 0 0 auto; }
.dpr-admin-sidebar__brand > div { min-width: 0; display: flex; flex-direction: column; }
.dpr-admin-sidebar__brand strong { color: #fff; font-size: 14px; line-height: 1.3; }
.dpr-admin-sidebar__brand span { color: #8F98B8; font-size: 11px; letter-spacing: .04em; text-transform: uppercase; }
.dpr-admin-sidebar__close, .dpr-admin-menu { display: none; border: 0; background: transparent; color: inherit; font-size: 22px; }
.dpr-admin-sidebar__nav { flex: 1; min-height: 0; overflow-x: hidden; overflow-y: auto; padding: 18px 14px; scrollbar-color: rgba(165,180,252,.35) transparent; scrollbar-width: thin; }
.dpr-admin-sidebar__nav::-webkit-scrollbar { width: 5px; }
.dpr-admin-sidebar__nav::-webkit-scrollbar-thumb { border-radius: 999px; background: rgba(165,180,252,.35); }
.dpr-admin-sidebar__nav p { margin: 18px 10px 7px; color: #737C9D; font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.dpr-admin-sidebar__nav p:first-child { margin-top: 0; }
.dpr-admin-sidebar__nav a { position: relative; display: flex; align-items: center; gap: 12px; min-height: 42px; margin-bottom: 3px; padding: 9px 12px; border-radius: 10px; color: #B8C0DA; font-size: 13.5px; font-weight: 500; text-decoration: none; transition: .18s ease; }
.dpr-admin-sidebar__nav a i { width: 20px; color: #838DAF; font-size: 19px; text-align: center; }
.dpr-admin-sidebar__nav a:hover { color: #fff; background: rgba(255,255,255,.06); }
.dpr-admin-sidebar__nav a.active { color: #fff; background: linear-gradient(135deg, rgba(99,102,241,.95), rgba(79,70,229,.88)); box-shadow: 0 8px 20px rgba(52, 46, 156, .28); }
.dpr-admin-sidebar__nav a.active::before { position: absolute; top: 11px; bottom: 11px; left: -8px; width: 3px; border-radius: 999px; background: #C7D2FE; content: ""; }
.dpr-admin-sidebar__nav a.active i { color: #fff; }
/* Unread count on a nav link (Support: new messages from labs). */
.dpr-admin-navbadge { margin-left: auto; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 10px; display: inline-flex; align-items: center; justify-content: center; font-style: normal; font-size: 11px; font-weight: 700; color: #fff; background: #EF4444; }
.dpr-admin-sidebar__nav a:focus-visible,
.dpr-admin-sidebar__close:focus-visible,
.dpr-admin-menu:focus-visible,
.dpr-admin-signout:focus-visible { outline: 2px solid #A5B4FC; outline-offset: 2px; }
.dpr-admin-sidebar__footer { padding: 15px; border-top: 1px solid rgba(255,255,255,.08); }
.dpr-admin-user { display: flex; align-items: center; gap: 10px; padding: 4px; }
.dpr-admin-user > div { min-width: 0; display: flex; flex: 1; flex-direction: column; }
.dpr-admin-user strong { overflow: hidden; color: #fff; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.dpr-admin-user span:not(.dpr-portal__avatar) { color: #8790AE; font-size: 11px; }
.dpr-admin-signout { width: 100%; margin-top: 10px; padding: 8px 10px; border: 1px solid rgba(255,255,255,.08); border-radius: 9px; color: #AAB2CC; background: rgba(255,255,255,.03); font-size: 12px; text-align: left; }
.dpr-admin-signout i { margin-right: 9px; }
.dpr-admin-signout:hover { color: #fff; background: rgba(255,255,255,.08); }

.dpr-admin-workspace { width: calc(100% - 268px); min-width: 0; margin-left: 268px; }
.dpr-admin-topbar { position: sticky; top: 0; z-index: 30; height: 76px; display: flex; align-items: center; justify-content: space-between; padding: 0 32px; background: rgba(255,255,255,.94); border-bottom: 1px solid var(--admin-line); backdrop-filter: blur(14px); }
.dpr-admin-topbar__label { display: block; color: #8A93A5; font-size: 10px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.dpr-admin-topbar strong { display: block; margin-top: 2px; color: var(--admin-ink); font-size: 15px; }
.dpr-admin-topbar__actions { display: flex; align-items: center; gap: 12px; }
.dpr-admin-live { display: inline-flex; align-items: center; gap: 7px; color: #667085; font-size: 12px; font-weight: 600; }
.dpr-admin-live i { width: 7px; height: 7px; border-radius: 50%; background: #16A34A; box-shadow: 0 0 0 4px rgba(22,163,74,.10); }
.dpr-admin-topbar__avatar { width: 34px !important; height: 34px !important; font-size: 12px !important; }
.dpr-admin-content { width: 100%; max-width: 1500px; margin: 0 auto; padding: 30px 32px 48px; }
.dpr-admin-overlay { display: none; }

.dpr-admin-page-head { align-items: flex-end; margin-bottom: 24px; }
.dpr-admin-page-head h4 { color: var(--admin-ink); font-size: 24px; letter-spacing: -.02em; }
.dpr-admin-eyebrow { display: block; margin-bottom: 5px; color: var(--admin-indigo); font-size: 10px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.dpr-admin-alert { border: 0; border-radius: 11px; box-shadow: 0 8px 24px rgba(30,41,59,.06); }
.dpr-admin-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.dpr-admin-filter, .dpr-admin-table-card { border: 1px solid var(--admin-line); border-radius: 14px; box-shadow: 0 4px 18px rgba(20,31,55,.04); }
.dpr-admin-table-card { overflow: hidden; }

.dpr-admin-metric { height: 100%; display: flex; align-items: center; gap: 13px; padding: 17px 18px; border: 1px solid var(--admin-line); border-radius: 14px; background: #fff; box-shadow: 0 4px 18px rgba(20,31,55,.035); }
.dpr-admin-metric__icon { width: 42px; height: 42px; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; border-radius: 12px; font-size: 20px; }
.dpr-admin-metric__icon.indigo { color: #4F46E5; background: #EEEDFF; }
.dpr-admin-metric__icon.green { color: #059669; background: #E8F8F1; }
.dpr-admin-metric__icon.blue { color: #0284C7; background: #E8F5FC; }
.dpr-admin-metric__icon.amber { color: #B45309; background: #FEF3E2; }
.dpr-admin-metric__icon.red { color: #DC2626; background: #FDECEC; }
.dpr-admin-metric > div { display: flex; flex-direction: column; }
.dpr-admin-metric small { color: var(--admin-muted); font-size: 11.5px; }
.dpr-admin-metric strong { color: var(--admin-ink); font-size: 21px; line-height: 1.25; }

.dpr-admin-loading, .dpr-admin-empty { min-height: 260px; display: flex; align-items: center; justify-content: center; flex-direction: column; padding: 40px; text-align: center; }
.dpr-admin-loading p, .dpr-admin-empty p { max-width: 420px; margin: 12px 0 18px; color: var(--admin-muted); font-size: 13px; }
.dpr-admin-empty > span { width: 52px; height: 52px; display: inline-flex; align-items: center; justify-content: center; margin-bottom: 14px; border-radius: 15px; color: var(--admin-indigo); background: #EEEDFF; font-size: 24px; }

/* Plan catalog + editor */
.dpr-plan-card { height: 100%; display: flex; flex-direction: column; padding: 22px; border: 1px solid var(--admin-line); border-radius: 16px; background: #fff; box-shadow: 0 5px 20px rgba(20,31,55,.045); transition: transform .18s, box-shadow .18s; }
.dpr-plan-card:hover { transform: translateY(-2px); box-shadow: 0 12px 30px rgba(20,31,55,.08); }
.dpr-plan-card.is-muted { opacity: .68; }
.dpr-plan-card__top { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; min-height: 112px; }
.dpr-plan-card__top h5 { color: var(--admin-ink); font-size: 18px; }
.dpr-plan-code { display: inline-flex; align-items: center; padding: 4px 8px; border-radius: 6px; color: #4F46E5; background: #EEEDFF; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10px; font-weight: 800; letter-spacing: .06em; }
.dpr-plan-price { display: flex; align-items: baseline; gap: 5px; margin: 18px 0; }
.dpr-plan-price strong { color: var(--admin-ink); font-size: 28px; letter-spacing: -.03em; }
.dpr-plan-price span { color: var(--admin-muted); font-size: 12px; }
.dpr-plan-card__facts { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; margin-bottom: 17px; }
.dpr-plan-card__facts span { color: #4A5568; font-size: 11.5px; }
.dpr-plan-card__facts i { width: 17px; margin-right: 4px; color: #8B92A5; }
.dpr-plan-card__features { min-height: 62px; display: flex; align-content: flex-start; flex-wrap: wrap; gap: 6px; padding-top: 15px; border-top: 1px solid #EEF0F4; }
.dpr-plan-card__features > span:not(.text-muted) { padding: 4px 7px; border-radius: 6px; color: #596174; background: #F3F5F8; font-size: 10.5px; }
.dpr-plan-card__footer { display: flex; justify-content: space-between; gap: 10px; margin: 17px -22px -22px; padding: 13px 22px; border-radius: 0 0 16px 16px; color: var(--admin-muted); background: #FAFBFC; font-size: 11.5px; }

.dpr-admin-modal { background: rgba(15, 20, 38, .58); backdrop-filter: blur(3px); }
.dpr-admin-modal .modal-content { overflow: hidden; border: 0; border-radius: 17px; box-shadow: 0 30px 80px rgba(15,20,38,.25); }
.dpr-admin-modal__head { padding: 18px 22px; border-color: var(--admin-line); }
.dpr-plan-editor { display: grid; grid-template-columns: 270px minmax(0, 1fr); }
.dpr-plan-editor__summary { padding: 28px; color: #DDE2F5; background: linear-gradient(155deg, #1E2440, #15192D); }
.dpr-plan-editor__summary h4 { margin: 15px 0 6px; color: #fff; }
.dpr-plan-editor__summary .dpr-plan-price strong { color: #fff; }
.dpr-plan-editor__summary p { color: #99A3C1; font-size: 12.5px; line-height: 1.65; }
.dpr-plan-editor__check { display: flex; align-items: center; gap: 8px; margin-top: 12px; color: #C3CBE1; font-size: 12px; }
.dpr-plan-editor__check i { color: #8B8DF8; }
.dpr-plan-editor__form { padding: 26px 28px; }
.dpr-editor-section { margin-bottom: 30px; padding-bottom: 28px; border-bottom: 1px solid var(--admin-line); }
.dpr-editor-section__title { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 17px; }
.dpr-editor-section__title > span { width: 29px; height: 29px; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; border-radius: 8px; color: var(--admin-indigo); background: #EEEDFF; font-size: 10px; font-weight: 800; }
.dpr-editor-section__title h6 { margin: 0 0 2px; color: var(--admin-ink); }
.dpr-editor-section__title p { margin: 0; color: var(--admin-muted); font-size: 12px; }
.dpr-feature-group > p { margin: 15px 0 7px; color: #7C8495; font-size: 10px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.dpr-feature-option { height: 100%; display: flex; align-items: flex-start; gap: 10px; padding: 11px; border: 1px solid var(--admin-line); border-radius: 10px; background: #fff; cursor: pointer; transition: .15s; }
.dpr-feature-option:hover, .dpr-feature-option.is-selected { border-color: #A5A3F5; background: #F8F7FF; }
.dpr-feature-option > input { margin-top: 4px; accent-color: var(--admin-indigo); }
.dpr-feature-option__icon { width: 31px; height: 31px; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; border-radius: 8px; color: var(--admin-indigo); background: #EEEDFF; }
.dpr-feature-option > span:last-child { min-width: 0; display: flex; flex-direction: column; }
.dpr-feature-option strong { color: #30384A; font-size: 12px; }
.dpr-feature-option small { margin-top: 2px; color: #7A8496; font-size: 10.5px; line-height: 1.35; }
.dpr-switch-row { display: flex; align-items: center; gap: 10px; min-width: 210px; cursor: pointer; }
.dpr-switch-row input { width: 35px; height: 19px; accent-color: var(--admin-indigo); }
.dpr-switch-row > span { display: flex; flex-direction: column; }
.dpr-switch-row strong { color: #343B4C; font-size: 12.5px; }
.dpr-switch-row small { color: var(--admin-muted); font-size: 10.5px; }
.dpr-switch-row.compact { min-width: 0; padding: 9px; border: 1px solid var(--admin-line); border-radius: 9px; }

/* Tenant contract */
.dpr-subscription-panel { overflow: hidden; border: 1px solid var(--admin-line); border-radius: 16px; box-shadow: 0 5px 22px rgba(20,31,55,.045); }
.dpr-subscription-panel__head { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 19px 22px; background: #fff; }
.dpr-subscription-empty { display: grid; grid-template-columns: 1fr minmax(300px, 420px); align-items: center; gap: 40px; padding: 34px; background: linear-gradient(135deg, #FAFAFF, #F5F7FB); }
.dpr-subscription-empty__icon { width: 58px; height: 58px; display: inline-flex; align-items: center; justify-content: center; margin-bottom: 15px; border-radius: 17px; color: var(--admin-indigo); background: #E9E8FF; font-size: 26px; }
.dpr-subscription-empty p { max-width: 580px; color: var(--admin-muted); font-size: 13px; }
.dpr-subscribe-form { padding: 20px; border: 1px solid #E3E4F2; border-radius: 13px; background: #fff; box-shadow: 0 8px 30px rgba(40,42,76,.05); }
.dpr-subscription-hero { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 23px 25px; border-radius: 14px; color: #DDE2F5; background: linear-gradient(135deg, #202643, #343A68); }
.dpr-subscription-hero h3 { margin: 0 0 4px; color: #fff; }
.dpr-subscription-hero p { margin: 0; color: #AEB7D2; font-size: 12px; }
.dpr-subscription-hero__price { display: flex; align-items: baseline; gap: 6px; white-space: nowrap; }
.dpr-subscription-hero__price strong { color: #fff; font-size: 30px; }
.dpr-subscription-hero__price span { color: #AEB7D2; font-size: 12px; }
.dpr-contract-stat { height: 100%; display: flex; flex-direction: column; padding: 15px; border: 1px solid var(--admin-line); border-radius: 11px; background: #fff; }
.dpr-contract-stat i { align-self: flex-end; margin-bottom: -15px; color: #A6ABBA; font-size: 18px; }
.dpr-contract-stat small { color: var(--admin-muted); }
.dpr-contract-stat strong { color: var(--admin-ink); font-size: 19px; }
.dpr-contract-stat span { color: #9097A7; font-size: 10.5px; }
.dpr-contract-features { display: grid; grid-template-columns: 220px 1fr; align-items: center; gap: 20px; margin-top: 18px; padding: 18px; border-radius: 12px; background: #F8F9FB; }
.dpr-contract-features h6, .dpr-contract-features p { margin: 0; }
.dpr-contract-features p { color: var(--admin-muted); font-size: 11px; }
.dpr-entitlement { display: inline-flex; align-items: center; gap: 5px; padding: 5px 8px; border: 1px solid #DCDDF3; border-radius: 7px; color: #4843A9; background: #fff; font-size: 11px; }
.dpr-contract-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--admin-line); }
.dpr-subscription-invoices { padding: 20px 22px; border-top: 1px solid var(--admin-line); background: #FBFCFD; }
.dpr-inline-empty { padding: 20px; border: 1px dashed #D8DCE5; border-radius: 10px; color: var(--admin-muted); text-align: center; font-size: 12px; }
.dpr-inline-empty i { margin-right: 7px; }

@media (max-width: 991.98px) {
    .dpr-admin-sidebar { width: min(292px, calc(100vw - 32px)); transform: translateX(-102%); transition: transform .2s ease; }
    .dpr-admin-sidebar.is-open { transform: translateX(0); }
    .dpr-admin-sidebar__close, .dpr-admin-menu { display: inline-flex; }
    .dpr-admin-sidebar__close { margin-left: auto; }
    .dpr-admin-overlay { position: fixed; inset: 0; z-index: 35; display: block; border: 0; background: rgba(15,20,38,.48); }
    .dpr-admin-workspace { width: 100%; margin-left: 0; }
    .dpr-admin-topbar { height: 68px; padding: 0 20px; }
    .dpr-admin-content { padding: 22px 20px 40px; }
    .dpr-plan-editor { grid-template-columns: 1fr; }
    .dpr-plan-editor__summary { display: none; }
}

@media (max-width: 767.98px) {
    .dpr-admin-topbar__actions .btn, .dpr-admin-live { display: none; }
    .dpr-admin-content { padding: 18px 14px 34px; }
    .dpr-admin-page-head, .dpr-admin-toolbar, .dpr-subscription-panel__head { align-items: flex-start; flex-direction: column; }
    .dpr-subscription-empty { grid-template-columns: 1fr; padding: 24px; }
    .dpr-subscription-hero { align-items: flex-start; flex-direction: column; }
    .dpr-contract-features { grid-template-columns: 1fr; }
    .dpr-plan-card__footer { flex-direction: column; }
    .dpr-plan-editor__form { padding: 20px 16px; }
}
