:root {
    color-scheme: light;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --admin-navy: #111b2f;
    --admin-navy-light: #1a2842;
    --admin-blue: #356df3;
    --admin-text: #172033;
    --admin-muted: #6d788c;
    --admin-border: #e4e8ef;
    --admin-bg: #f5f7fb;
}

* { box-sizing: border-box; }
body { margin: 0; color: var(--admin-text); background: var(--admin-bg); }
a { color: inherit; text-decoration: none; }
button, input, select { font: inherit; }
button { cursor: pointer; }
h1, h2, p { margin-top: 0; }
h1 { margin-bottom: .45rem; font-size: clamp(1.8rem, 4vw, 2.45rem); letter-spacing: -.035em; }
h2 { margin-bottom: 0; font-size: 1.15rem; letter-spacing: -.015em; }

.admin-sidebar { position: fixed; z-index: 30; inset: 0 auto 0 0; display: flex; width: 16rem; flex-direction: column; padding: 1.5rem 1rem; background: var(--admin-navy); color: #fff; }
.admin-brand { display: grid; grid-template-columns: auto 1fr; gap: 0 .65rem; align-items: center; padding: .2rem .45rem 1.7rem; border-bottom: 1px solid rgb(255 255 255 / .1); }
.admin-brand > span { display: grid; grid-row: 1 / 3; width: 2.4rem; height: 2.4rem; place-items: center; border-radius: .65rem; background: var(--admin-blue); font-size: .72rem; font-weight: 900; }
.admin-brand strong { font-size: 1rem; }
.admin-brand small { color: #8190aa; font-size: .68rem; text-transform: uppercase; letter-spacing: .08em; }
.admin-nav { display: grid; gap: .35rem; margin-top: 1.2rem; }
.admin-nav p { margin: 1rem .65rem .3rem; color: #65748f; font-size: .62rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.admin-nav a { display: flex; gap: .75rem; align-items: center; padding: .72rem .75rem; border-radius: .55rem; color: #aeb9cc; font-size: .84rem; font-weight: 700; }
.admin-nav a span { width: 1.3rem; color: #70819e; font-size: .68rem; }
.admin-nav a:hover, .admin-nav a.active { background: var(--admin-navy-light); color: #fff; }
.admin-nav a.active span { color: #77a0ff; }
.admin-user { display: grid; grid-template-columns: auto 1fr; gap: .55rem; align-items: center; margin-top: auto; padding: 1rem .45rem 0; border-top: 1px solid rgb(255 255 255 / .1); }
.admin-user > span { display: grid; width: 2rem; height: 2rem; place-items: center; border-radius: 50%; background: #2f4468; font-size: .72rem; font-weight: 800; }
.admin-user strong, .admin-user small { display: block; }
.admin-user strong { font-size: .75rem; }
.admin-user small { margin-top: .15rem; color: #71809a; font-size: .63rem; }
.admin-user form { grid-column: 1 / -1; }
.admin-user button { width: 100%; border: 0; padding: .45rem; background: transparent; color: #8e9bb1; font-size: .72rem; text-align: left; }
.admin-user button:hover { color: #fff; }

.admin-shell { min-height: 100vh; margin-left: 16rem; }
.admin-topbar { position: sticky; z-index: 20; top: 0; display: flex; min-height: 4.5rem; align-items: center; justify-content: space-between; gap: 1rem; padding: .8rem 2rem; border-bottom: 1px solid var(--admin-border); background: rgb(255 255 255 / .94); backdrop-filter: blur(12px); }
.admin-topbar div span, .admin-topbar div small { display: block; }
.admin-topbar div span { font-size: .82rem; font-weight: 800; }
.admin-topbar div small { margin-top: .15rem; color: var(--admin-muted); font-size: .68rem; }
.environment-pill { padding: .38rem .65rem; border-radius: 2rem; background: #edf2ff; color: #345dcc; font-size: .68rem; font-weight: 800; }
.sidebar-toggle { display: none; border: 0; background: transparent; color: var(--admin-text); font-size: 1.2rem; }
.admin-content { width: min(100% - 3rem, 90rem); margin-inline: auto; padding-block: 2.3rem 4rem; }
.admin-alert { margin-bottom: 1rem; padding: .8rem 1rem; border: 1px solid #9edcbf; border-radius: .55rem; background: #eaf8f1; color: #176441; font-size: .82rem; font-weight: 700; }

.admin-page-heading { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 1.6rem; }
.admin-page-heading p:not(.admin-kicker) { margin-bottom: 0; color: var(--admin-muted); font-size: .9rem; }
.admin-kicker { margin-bottom: .35rem; color: var(--admin-blue); font-size: .65rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.admin-button { display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; border: 1px solid var(--admin-blue); border-radius: .5rem; padding: .7rem .9rem; background: var(--admin-blue); color: #fff; font-size: .78rem; font-weight: 800; }
.admin-button.secondary { border-color: #d4dae4; background: #fff; color: #334056; }
.record-count { color: var(--admin-muted); font-size: .78rem; font-weight: 700; }

.admin-metrics { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin-bottom: 1.4rem; }
.admin-metrics article { display: flex; gap: .9rem; align-items: flex-start; padding: 1.15rem; border: 1px solid var(--admin-border); border-radius: .7rem; background: #fff; box-shadow: 0 3px 12px rgb(30 45 75 / .035); }
.admin-metrics article div { display: grid; }
.admin-metrics small { color: var(--admin-muted); font-size: .72rem; font-weight: 700; }
.admin-metrics strong { margin-block: .25rem .1rem; font-size: 1.75rem; line-height: 1; }
.admin-metrics article p { margin-bottom: 0; color: #9aa3b1; font-size: .64rem; }
.metric-icon { display: grid; width: 2.25rem; height: 2.25rem; flex: 0 0 auto; place-items: center; border-radius: .55rem; font-size: .72rem; font-weight: 900; }
.metric-icon.blue { background: #edf2ff; color: #356df3; }
.metric-icon.violet { background: #f3efff; color: #7655d4; }
.metric-icon.amber { background: #fff4e3; color: #ba721b; }
.metric-icon.green { background: #e9f8f1; color: #21855d; }
.compact-metrics article { min-height: 6.5rem; align-items: center; }

.admin-dashboard-grid { display: grid; grid-template-columns: minmax(0, 1fr) 22rem; gap: 1.4rem; align-items: start; }
.admin-card { border: 1px solid var(--admin-border); border-radius: .7rem; background: #fff; box-shadow: 0 3px 12px rgb(30 45 75 / .035); }
.admin-card-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; padding: 1.1rem 1.2rem; border-bottom: 1px solid var(--admin-border); }
.admin-card-heading p { margin-bottom: .3rem; }
.admin-card-heading > a { color: var(--admin-blue); font-size: .72rem; font-weight: 800; }
.admin-card-heading > span { color: var(--admin-muted); font-size: .72rem; }
.admin-table-card { overflow: hidden; }
.admin-table-scroll { overflow-x: auto; }
.admin-table-scroll table { width: 100%; min-width: 46rem; border-collapse: collapse; }
.admin-table-scroll th { padding: .7rem 1rem; background: #fafbfc; color: #8993a3; font-size: .61rem; letter-spacing: .08em; text-align: left; text-transform: uppercase; }
.admin-table-scroll td { padding: .8rem 1rem; border-top: 1px solid #edf0f4; color: #465267; font-size: .75rem; vertical-align: middle; }
.admin-table-scroll tbody tr:hover { background: #fafcff; }
.admin-table-scroll td > strong { color: var(--admin-text); }
.vendor-identity { display: flex; gap: .65rem; align-items: center; min-width: 10rem; }
.vendor-identity > span { display: grid; width: 2.25rem; height: 2.25rem; flex: 0 0 auto; place-items: center; border-radius: .5rem; background: #edf2ff; color: var(--admin-blue); font-size: .66rem; font-weight: 900; }
.vendor-identity strong, .vendor-identity small, .cell-subtitle { display: block; }
.vendor-identity strong { color: var(--admin-text); }
.vendor-identity small, .cell-subtitle { margin-top: .15rem; color: #9099a8; font-size: .64rem; }
.row-link { color: var(--admin-blue); font-size: .7rem; font-weight: 800; white-space: nowrap; }
.admin-status { display: inline-flex; border-radius: 2rem; padding: .28rem .5rem; font-size: .61rem; font-weight: 800; text-transform: capitalize; }
.status-approved, .status-confirmed, .status-completed { background: #e9f8f1; color: #1c7b54; }
.status-pending { background: #fff4e3; color: #a96514; }
.status-suspended, .status-cancelled { background: #fdecec; color: #b93a3a; }
.status-featured { background: #edf2ff; color: #345fd1; }
.admin-empty { padding: 2rem !important; color: var(--admin-muted) !important; text-align: center; }

.activity-card { overflow: hidden; }
.activity-list { padding: .15rem 1.2rem; }
.activity-list > div { display: grid; grid-template-columns: auto 1fr; gap: .7rem; padding-block: .85rem; border-bottom: 1px solid #edf0f4; }
.activity-list > div:last-child { border-bottom: 0; }
.activity-dot { width: .55rem; height: .55rem; margin-top: .3rem; border-radius: 50%; }
.activity-dot.status-pending { background: #e49b3f; }
.activity-dot.status-confirmed { background: #356df3; }
.activity-dot.status-completed { background: #2b9a6b; }
.activity-dot.status-cancelled { background: #d55252; }
.activity-list strong { font-size: .76rem; }
.activity-list p { margin: .2rem 0; color: #637086; font-size: .68rem; line-height: 1.4; }
.activity-list a { color: var(--admin-blue); font-weight: 700; }
.activity-list small { color: #9aa3b1; font-size: .62rem; }
.admin-roadmap-panel { display: grid; grid-template-columns: 1fr 1.15fr; gap: 2rem; align-items: center; margin-top: 1.4rem; padding: 1.4rem; border-radius: .7rem; background: var(--admin-navy); color: #fff; }
.admin-roadmap-panel > div > p:last-child { margin: .5rem 0 0; color: #9eabc0; font-size: .75rem; line-height: 1.55; }
.roadmap-tags { display: grid; grid-template-columns: repeat(3, 1fr); gap: .55rem; }
.roadmap-tags span { padding: .7rem; border: 1px solid rgb(255 255 255 / .12); border-radius: .5rem; color: #9eabc0; font-size: .65rem; }
.roadmap-tags b { display: block; margin-bottom: .2rem; color: #7fa6ff; }

.admin-filters { display: grid; grid-template-columns: minmax(16rem, 1fr) 12rem auto auto; gap: .75rem; align-items: end; margin-bottom: 1rem; padding: .9rem; border: 1px solid var(--admin-border); border-radius: .7rem; background: #fff; }
.admin-filters label { display: block; margin-bottom: .35rem; color: #5f6b7f; font-size: .66rem; font-weight: 800; }
.admin-filters input, .admin-filters select { width: 100%; border: 1px solid #d8dde6; border-radius: .45rem; padding: .62rem .7rem; background: #fff; color: var(--admin-text); font-size: .75rem; outline: none; }
.admin-filters input:focus, .admin-filters select:focus { border-color: var(--admin-blue); box-shadow: 0 0 0 3px #e7edff; }
.admin-filters button { border: 0; border-radius: .45rem; padding: .67rem .85rem; background: var(--admin-blue); color: #fff; font-size: .73rem; font-weight: 800; }
.admin-filters > a { padding: .65rem .2rem; color: var(--admin-muted); font-size: .7rem; font-weight: 700; }
.admin-pagination { margin-top: 1rem; }
.admin-pagination nav > div:first-child { display: none; }
.admin-pagination nav > div:last-child { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.admin-pagination nav p { margin: 0; color: var(--admin-muted); font-size: .72rem; }
.admin-pagination nav span, .admin-pagination nav a { font-size: .72rem; }

.admin-back { display: inline-block; margin-bottom: 1.1rem; color: var(--admin-blue); font-size: .72rem; font-weight: 800; }
.vendor-profile-heading { display: grid; grid-template-columns: auto 1fr auto; gap: 1rem; align-items: center; margin-bottom: 1.4rem; }
.vendor-profile-logo { display: grid; width: 4.3rem; height: 4.3rem; place-items: center; border-radius: .8rem; background: var(--admin-navy); color: #fff; font-size: 1.15rem; font-weight: 900; }
.vendor-profile-heading h1 { margin: .35rem 0 .15rem; }
.vendor-profile-heading p { margin-bottom: 0; color: var(--admin-muted); font-size: .82rem; }
.heading-badges { display: flex; gap: .35rem; }
.vendor-admin-grid { display: grid; grid-template-columns: minmax(0, 1fr) 22rem; gap: 1.4rem; align-items: start; }
.vendor-admin-main, .vendor-admin-side { display: grid; gap: 1.4rem; }
.detail-section { overflow: hidden; }
.detail-section > .admin-kicker, .detail-section > h2 { margin-inline: 1.2rem; }
.detail-section > .admin-kicker { margin-top: 1.2rem; }
.detail-section > h2 { margin-bottom: 1rem; }
.detail-list article { display: flex; justify-content: space-between; gap: 1rem; padding: 1rem 1.2rem; border-top: 1px solid var(--admin-border); }
.detail-list article:first-child { border-top: 0; }
.detail-list article p { margin: .3rem 0; color: var(--admin-muted); font-size: .72rem; }
.detail-list article small { color: #949dab; font-size: .64rem; }
.detail-list article > div:last-child { display: grid; min-width: 7rem; gap: .45rem; align-content: center; justify-items: end; }
.detail-list article b { font-size: .8rem; }
.admin-definition-list { margin: 0; padding: 0 1.2rem 1.2rem; }
.admin-definition-list div { display: grid; grid-template-columns: 6.5rem 1fr; gap: .8rem; padding-block: .65rem; border-top: 1px solid var(--admin-border); }
.admin-definition-list dt { color: var(--admin-muted); font-size: .65rem; }
.admin-definition-list dd { margin: 0; overflow-wrap: anywhere; font-size: .72rem; font-weight: 700; text-align: right; }
.offer-admin-list { padding: 0 1.2rem .5rem; }
.offer-admin-list article { display: grid; grid-template-columns: auto 1fr auto; gap: .6rem; align-items: center; padding-block: .75rem; border-top: 1px solid var(--admin-border); }
.offer-admin-list article > strong { color: var(--admin-blue); font-size: .7rem; }
.offer-admin-list article b, .offer-admin-list article small { display: block; }
.offer-admin-list article b { font-size: .7rem; }
.offer-admin-list article small { margin-top: .15rem; color: var(--admin-muted); font-size: .62rem; }

@media (max-width: 1100px) {
    .admin-metrics { grid-template-columns: repeat(2, 1fr); }
    .admin-dashboard-grid, .vendor-admin-grid { grid-template-columns: 1fr; }
    .admin-roadmap-panel { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
    .admin-sidebar { transform: translateX(-100%); transition: transform .2s ease; }
    .sidebar-open .admin-sidebar { transform: translateX(0); }
    .admin-shell { margin-left: 0; }
    .sidebar-toggle { display: block; }
    .admin-topbar { justify-content: flex-start; padding-inline: 1rem; }
    .environment-pill { margin-left: auto; }
    .admin-content { width: min(100% - 1.5rem, 90rem); padding-top: 1.5rem; }
    .admin-page-heading, .vendor-profile-heading { align-items: stretch; grid-template-columns: 1fr; flex-direction: column; }
    .admin-page-heading { display: flex; }
    .vendor-profile-logo { width: 3.5rem; height: 3.5rem; }
    .admin-filters { grid-template-columns: 1fr; }
    .roadmap-tags { grid-template-columns: 1fr; }
}

@media (max-width: 480px) {
    .admin-metrics { grid-template-columns: 1fr; }
    .environment-pill { display: none; }
}

/* Dedicated administrator authentication */
.admin-login-body { min-height: 100vh; background: #0d1728; color: #fff; }
.admin-login-header { display: flex; align-items: center; justify-content: space-between; width: min(100% - 3rem, 82rem); margin-inline: auto; padding-block: 1.4rem; }
.admin-login-header > a:first-child { display: flex; gap: .65rem; align-items: center; }
.admin-login-header > a:first-child > span { display: grid; width: 2.4rem; height: 2.4rem; place-items: center; border-radius: .6rem; background: var(--admin-blue); font-size: .7rem; font-weight: 900; }
.admin-login-header strong, .admin-login-header small { display: block; }
.admin-login-header strong { font-size: .9rem; }
.admin-login-header small { margin-top: .12rem; color: #7786a0; font-size: .6rem; letter-spacing: .08em; text-transform: uppercase; }
.admin-login-header > a:last-child { color: #9caac0; font-size: .72rem; font-weight: 800; }
.admin-login-shell { display: grid; grid-template-columns: 1fr 25rem; gap: 6rem; align-items: center; width: min(100% - 3rem, 72rem); min-height: calc(100vh - 84px); margin-inline: auto; padding-block: 3rem 5rem; }
.admin-login-message { max-width: 41rem; }
.admin-login-label { display: inline-flex; margin-bottom: 1.2rem; padding: .4rem .7rem; border: 1px solid #30415d; border-radius: 2rem; color: #7fa7ff; font-size: .65rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.admin-login-message h1 { max-width: 42rem; margin-bottom: 1.2rem; color: #fff; font-size: clamp(2.8rem, 6vw, 5rem); line-height: .98; }
.admin-login-message > p { max-width: 36rem; color: #98a8be; font-size: .95rem; line-height: 1.7; }
.admin-login-features { display: grid; gap: .85rem; margin-top: 2rem; }
.admin-login-features > div { display: grid; grid-template-columns: auto 1fr; gap: .75rem; align-items: center; }
.admin-login-features b { color: #57749e; font-size: .65rem; }
.admin-login-features strong, .admin-login-features small { display: block; }
.admin-login-features strong { font-size: .76rem; }
.admin-login-features small { margin-top: .18rem; color: #77879f; font-size: .68rem; }
.admin-login-card { display: grid; gap: 1rem; padding: 1.7rem; border: 1px solid #dfe4ec; border-radius: .9rem; background: #fff; color: var(--admin-text); box-shadow: 0 24px 70px rgb(0 0 0 / .3); }
.admin-lock { display: grid; width: 3rem; height: 3rem; place-items: center; border-radius: .7rem; background: var(--admin-navy); color: #fff; font-weight: 900; }
.admin-login-card .admin-kicker, .admin-login-card h2, .admin-login-card .admin-form-copy { margin: 0; }
.admin-login-card .admin-kicker { margin-top: .2rem; }
.admin-login-card h2 { font-size: 1.55rem; }
.admin-form-copy { color: var(--admin-muted); font-size: .75rem; }
.admin-login-field { display: grid; gap: .4rem; }
.admin-login-field label { color: #4f5c70; font-size: .7rem; font-weight: 800; }
.admin-login-field input { width: 100%; border: 1px solid #d3d9e3; border-radius: .5rem; padding: .7rem .75rem; background: #fff; color: var(--admin-text); outline: none; }
.admin-login-field input:focus { border-color: var(--admin-blue); box-shadow: 0 0 0 3px #e7edff; }
.admin-login-field p { margin: 0; color: #c13737; font-size: .7rem; }
.admin-remember { display: flex; gap: .5rem; color: var(--admin-muted); font-size: .7rem; }
.admin-login-card > button { border: 0; border-radius: .5rem; padding: .75rem; background: var(--admin-blue); color: #fff; font-weight: 800; }
.admin-demo { display: grid; gap: .2rem; padding: .7rem; border-radius: .45rem; background: #f4f6f9; color: #667489; font-size: .66rem; }
.admin-demo strong { color: #364257; }
.admin-switch { color: var(--admin-blue); font-size: .7rem; font-weight: 800; text-align: center; }
.vendor-review-control { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 1rem; padding: 1.1rem; }
.vendor-review-control h2, .vendor-review-control p { margin-bottom: .2rem; }.vendor-review-control > div > p:last-child { color: var(--admin-muted); font-size: .72rem; }
.vendor-review-control form { display: flex; align-items: end; gap: .6rem; }.vendor-review-control label { display: none; }.vendor-review-control select { border: 1px solid var(--admin-border); border-radius: .45rem; padding: .65rem; background: #fff; }

@media (max-width: 850px) {
    .admin-login-shell { grid-template-columns: 1fr; gap: 2.5rem; }
    .admin-login-card { width: min(100%, 28rem); }
    .vendor-review-control { align-items: stretch; flex-direction: column; }
}

@media (max-width: 520px) {
    .admin-login-header { width: min(100% - 1.5rem, 82rem); }
    .admin-login-shell { width: min(100% - 1.5rem, 72rem); padding-top: 2rem; }
    .admin-login-message h1 { font-size: 2.7rem; }
}
