/* Mise · admin back office. Every rule is scoped to .v-admin, except layers (modals, drawer) that live on <body>,
   which are scoped to html[data-layout="admin"]. Owned by the Admin agent. */

/* ---------- Page rhythm ---------- */
.v-admin { display: block; }
.v-admin .adm-head { margin-bottom: 22px; }
.v-admin .adm-head .lede { color: var(--muted); font-size: 15px; }
.v-admin .adm-sub { display: block; font-size: 12.5px; color: var(--muted); line-height: 1.4; font-weight: 400; }
.v-admin .adm-nowrap { white-space: nowrap; }
.v-admin .adm-sep { width: 3px; height: 3px; border-radius: 50%; background: var(--faint); flex: none; }
.v-admin .adm-card { padding: 20px; }
.v-admin .adm-card__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.v-admin .adm-card__head > div { display: grid; gap: 2px; min-width: 0; }
.v-admin .adm-card__head .link { font-size: 13.5px; white-space: nowrap; }
.v-admin .adm-section { margin-top: 32px; }
.v-admin .adm-section__head { display: flex; align-items: baseline; gap: 12px; margin-bottom: 12px; }
.v-admin .adm-tablecard { overflow: hidden; }
.v-admin .adm-tablecard .table-wrap { border-radius: 0; }
.v-admin .adm-tablecard .table th { background: var(--surface-2); }
.v-admin .adm-tabs { margin-bottom: 20px; }
.v-admin .adm-tabs__n { display: inline-grid; place-items: center; min-width: 20px; height: 20px; padding: 0 6px; margin-left: 4px; border-radius: 10px; background: var(--surface-3); color: var(--ink-2); font-size: 11.5px; }
.v-admin .adm-tabs [aria-selected="true"] .adm-tabs__n { background: var(--primary-soft); color: var(--primary); }
.v-admin .adm-tabpanel:focus-visible { box-shadow: var(--focus); }
.v-admin .adm-empty-row td { padding: 0; }
.v-admin .adm-empty-row:hover { background: transparent; }
.v-admin .adm-delta { display: inline-flex; align-items: center; gap: 2px; height: 22px; padding: 0 7px 0 4px; border-radius: var(--r-pill); font-size: 12px; font-weight: 600; background: var(--surface-3); color: var(--ink-2); }
.v-admin .adm-delta .icon { transform: rotate(90deg); }
.v-admin .adm-delta.is-up { background: var(--success-soft); color: var(--success); }
.v-admin .adm-delta.is-up .icon { transform: rotate(-90deg); }
.v-admin .adm-delta.is-flat .icon { transform: none; }
.v-admin .adm-ch { display: inline-flex; align-items: center; gap: 4px; font-size: 12.5px; font-weight: 600; color: var(--success); white-space: nowrap; }
.v-admin .adm-ch .icon { stroke-width: 2; }
.v-admin .adm-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 12px; margin-bottom: 14px; }
.v-admin .adm-search { position: relative; display: flex; align-items: center; flex: 1; min-width: 200px; max-width: 340px; }
.v-admin .adm-search .icon { position: absolute; left: 12px; color: var(--muted); pointer-events: none; }
.v-admin .adm-search .input { min-height: 36px; padding: 6px 12px 6px 36px; font-size: 14px; }
.v-admin .adm-filter-sel .select { min-height: 36px; padding-top: 6px; padding-bottom: 6px; font-size: 14px; width: auto; max-width: 100%; }
.v-admin .seg { max-width: 100%; overflow-x: auto; scrollbar-width: none; }
.v-admin .seg::-webkit-scrollbar { display: none; }

/* ---------- Overview ---------- */
.v-admin .adm-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-bottom: 24px; }
.v-admin .adm-kpi { position: relative; display: flex; flex-direction: column; gap: 6px; padding: 18px 18px 16px; overflow: hidden; }
.v-admin .adm-kpi__label { font-size: 13px; font-weight: 500; color: var(--muted); }
.v-admin .adm-kpi__value { display: flex; align-items: baseline; gap: 2px; }
.v-admin .adm-kpi__num { font-size: 34px; line-height: 1.1; letter-spacing: -.025em; }
.v-admin .adm-kpi__suffix { font-family: var(--font-display); font-size: 20px; font-weight: 600; color: var(--muted); }
.v-admin .adm-spark { width: 100%; height: 36px; margin: 2px 0 4px; overflow: visible; }
.v-admin .adm-spark__line { fill: none; stroke: var(--primary); stroke-width: 1.75; stroke-linejoin: round; stroke-linecap: round; vector-effect: non-scaling-stroke; stroke-dasharray: 1; stroke-dashoffset: 0; animation: adm-draw 700ms var(--ease-draw) 200ms both; }
.v-admin .adm-spark__area { fill: var(--primary); opacity: .08; }
.v-admin .adm-spark__dot { fill: var(--primary); }
@keyframes adm-draw { from { stroke-dashoffset: 1; } }
.v-admin .adm-kpi__delta { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; font-size: 12.5px; color: var(--muted); margin-top: auto; }
.v-admin .adm-kpi__foot { display: flex; gap: 16px; margin-top: auto; }
.v-admin .adm-kpi__foot div { display: grid; gap: 0; }
.v-admin .adm-kpi__foot dt { font-size: 11.5px; color: var(--muted); }
.v-admin .adm-kpi__foot dd { margin: 0; font-size: 14px; color: var(--ink); }

.v-admin .adm-ov { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 24px; align-items: start; }
.v-admin .adm-ov__main, .v-admin .adm-ov__rail { display: grid; gap: 20px; min-width: 0; }
.v-admin .adm-acts { display: grid; gap: 10px; }
.v-admin .adm-act { display: flex; align-items: center; gap: 14px; padding: 14px; border-radius: var(--r-card); border: 1px solid var(--line); background: var(--surface-2); }
.v-admin .adm-act__icon { width: 36px; height: 36px; flex: none; display: grid; place-items: center; border-radius: 50%; background: var(--warn-soft); color: var(--warn); }
.v-admin .adm-act--danger .adm-act__icon { background: var(--danger-soft); color: var(--danger); }
.v-admin .adm-act__txt { flex: 1; min-width: 0; display: grid; gap: 1px; font-size: 13.5px; color: var(--muted); }
.v-admin .adm-act__txt b { color: var(--ink); font-size: 14.5px; font-weight: 600; }
.v-admin .adm-reqmini { display: grid; }
.v-admin .adm-reqmini li + li { border-top: 1px solid var(--line); }
.v-admin .adm-reqmini__row { display: flex; align-items: center; gap: 12px; padding: 12px 6px; margin: 0 -6px; border-radius: var(--r-ctl); transition: background-color var(--d-fast) var(--ease-out); }
.v-admin .adm-reqmini__row:hover { background: var(--surface-2); }
.v-admin .adm-reqmini__txt { flex: 1; min-width: 0; display: grid; font-size: 13px; color: var(--muted); }
.v-admin .adm-reqmini__txt b { font-size: 14.5px; color: var(--ink); font-weight: 600; }
.v-admin .adm-reqmini__chev { color: var(--faint); }
.v-admin .adm-minis { display: grid; }
.v-admin .adm-mini { display: flex; align-items: center; gap: 10px; padding: 10px 0; }
.v-admin .adm-mini + .adm-mini { border-top: 1px solid var(--line); }
.v-admin .adm-mini__icon { width: 32px; height: 32px; flex: none; display: grid; place-items: center; border-radius: var(--r-ctl); background: var(--surface-3); color: var(--muted); }
.v-admin .adm-mini__txt { flex: 1; min-width: 0; display: grid; font-size: 12.5px; color: var(--muted); }
.v-admin .adm-mini__txt b { font-size: 13.5px; font-weight: 600; color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.v-admin .adm-lib__big { font-size: 14px; color: var(--muted); }
.v-admin .adm-lib__big .num { font-size: 30px; color: var(--ink); margin-right: 6px; }
.v-admin .adm-lib__list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 12px; }
.v-admin .adm-lib__list li { display: grid; gap: 0; padding: 10px 12px; border-radius: var(--r-ctl); background: var(--surface-2); border: 1px solid var(--line); font-size: 12px; color: var(--muted); }
.v-admin .adm-lib__list b { font-size: 18px; color: var(--ink); }

/* ---------- Upload ---------- */
.v-admin .adm-up { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 24px; align-items: start; }
.v-admin .adm-up__rail { display: grid; gap: 16px; min-width: 0; }
.v-admin .adm-upcard { padding: 20px; }
.v-admin .adm-drop {
  position: relative; display: grid; justify-items: center; text-align: center; gap: 6px; padding: 44px 24px 40px; cursor: pointer;
  border: 1.5px dashed var(--line-strong); border-radius: var(--r-card); background: var(--surface-2);
  transition: border-color var(--d-base) var(--ease-out), background-color var(--d-base) var(--ease-out);
}
.v-admin .adm-drop:hover { border-color: var(--muted); }
.v-admin .adm-drop.is-over { border-color: var(--primary); border-style: solid; background: var(--primary-soft); }
.v-admin .adm-drop:focus-within { border-color: var(--primary); }
.v-admin .adm-drop__art { position: relative; display: grid; place-items: center; width: 64px; height: 64px; margin-bottom: 8px; color: var(--primary); }
.v-admin .adm-drop__art .ring { position: absolute; inset: 0; }
.v-admin .adm-drop.is-over .adm-drop__art .icon { animation: adm-bob 900ms var(--ease-in-out) infinite alternate; }
@keyframes adm-bob { to { transform: translateY(-3px); } }
.v-admin .adm-drop__title { font-family: var(--font-display); font-size: 20px; font-weight: 600; letter-spacing: -.02em; }
.v-admin .adm-drop__sub { color: var(--muted); font-size: 14px; }
.v-admin .adm-drop__hint { margin-top: 8px; font-size: 13px; color: var(--muted); padding: 6px 12px; border-radius: var(--r-pill); background: var(--surface); border: 1px solid var(--line); }
.v-admin .adm-drop__hint b { color: var(--ink-2); font-weight: 600; }
.v-admin .adm-up-err { margin-top: 12px; }
.v-admin .adm-samples { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; margin-top: 14px; }
.v-admin .adm-samples__k { font-size: 13px; color: var(--muted); margin-right: 2px; }
.v-admin .adm-sample { display: inline-flex; align-items: center; gap: 8px; min-height: 34px; padding: 6px 12px; border-radius: var(--r-ctl); border: 1px solid var(--line); background: var(--surface); font-size: 13px; color: var(--ink-2); text-align: left; transition: border-color var(--d-fast) var(--ease-out); }
.v-admin .adm-sample:hover { border-color: var(--line-strong); }
.v-admin .adm-sample .icon { color: var(--primary); }
.v-admin .adm-sample b { font-weight: 600; color: var(--ink); }
.v-admin .adm-sample--fail .icon { color: var(--muted); }

.v-admin .adm-job { display: grid; gap: 4px; }
.v-admin .adm-job__file { display: flex; align-items: center; gap: 12px; padding-bottom: 16px; border-bottom: 1px solid var(--line); }
.v-admin .adm-job__icon { width: 40px; height: 40px; flex: none; display: grid; place-items: center; border-radius: var(--r-ctl); background: var(--primary-soft); color: var(--primary); }
.v-admin .adm-job__name { flex: 1; min-width: 0; display: grid; font-size: 13px; color: var(--muted); }
.v-admin .adm-job__name b { font-size: 15px; font-weight: 600; color: var(--ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.v-admin .adm-phase { padding: 16px 0 6px; }
.v-admin .adm-phase + .adm-phase { border-top: 1px dashed var(--line-strong); }
.v-admin .adm-phase__head { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.v-admin .adm-phase__n { width: 22px; height: 22px; display: grid; place-items: center; border-radius: 50%; font-size: 12px; background: var(--ink); color: var(--surface); }
.v-admin .adm-phase__title { font-family: var(--font-display); font-size: 16px; font-weight: 600; letter-spacing: -.01em; }
.v-admin .adm-phase__head > :last-child:not(.adm-phase__title) { margin-left: auto; font-size: 13px; }
.v-admin .adm-phase__done { padding: 2px 0 8px 32px; }
.v-admin .adm-phase__done .tickline { color: var(--ink-2); font-size: 13.5px; }

.v-admin .adm-xfer { display: grid; gap: 14px; padding: 16px; border-radius: var(--r-card); border: 1px solid var(--line); background: var(--surface-2); }
.v-admin .adm-xfer__top { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.v-admin .adm-xfer__ring { position: relative; display: grid; place-items: center; width: 48px; height: 48px; color: var(--primary); flex: none; }
.v-admin .adm-xfer__ring .ring { position: absolute; inset: 0; }
.v-admin .adm-xfer__ring .ring__arc { transition: stroke-dasharray 120ms linear; }
.v-admin .adm-xfer__nums { display: grid; gap: 0; flex: 1; min-width: 140px; }
.v-admin .adm-xfer__pct { font-family: var(--font-display); font-weight: 600; line-height: 1; }
.v-admin .adm-xfer__pct .num { font-size: 34px; letter-spacing: -.03em; }
.v-admin .adm-xfer__unit { font-size: 18px; color: var(--muted); margin-left: 1px; }
.v-admin .adm-xfer__sent { font-size: 13.5px; color: var(--muted); }
.v-admin .adm-xfer__sent .num { color: var(--ink-2); font-family: var(--font-display); }
.v-admin .adm-xfer__acts { display: flex; gap: 6px; }
.v-admin .adm-bar { position: relative; height: 8px; border-radius: 4px; background: var(--surface-3); overflow: hidden; box-shadow: inset 0 0 0 1px var(--line); }
.v-admin .adm-bar > i { position: absolute; inset: 0; border-radius: inherit; background: var(--primary); transform-origin: left center; transition: transform 110ms linear; }
.v-admin .adm-bar > i::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--surface) 35%, transparent), transparent); background-size: 50% 100%; background-repeat: no-repeat; animation: adm-sheen 1.4s linear infinite; }
@keyframes adm-sheen { from { background-position: -60% 0; } to { background-position: 160% 0; } }
.v-admin .adm-xfer.is-paused .adm-bar > i { background: var(--muted); }
.v-admin .adm-xfer.is-paused .adm-bar > i::after { display: none; }
.v-admin .adm-xfer.is-paused .adm-xfer__ring { color: var(--muted); }
.v-admin .adm-xfer__chunk { display: flex; align-items: center; gap: 8px; margin-top: -6px; font-size: 12.5px; color: var(--muted); min-height: 18px; }
.v-admin .adm-xfer__chunk .num { color: var(--ink-2); }
.v-admin .adm-xfer__dot { width: 6px; height: 6px; border-radius: 50%; background: var(--primary); flex: none; animation: adm-pulse 1s var(--ease-in-out) infinite alternate; }
@keyframes adm-pulse { from { opacity: .35; } }
.v-admin .adm-xfer__chunk.is-retry { color: var(--warn-ink); font-weight: 500; }
.v-admin .adm-xfer__chunk.is-retry .icon { color: var(--warn); animation: spin 1.2s linear infinite; }
.v-admin .adm-xstats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.v-admin .adm-xstats div { display: grid; gap: 1px; padding-left: 12px; border-left: 1px solid var(--line); }
.v-admin .adm-xstats div:first-child { padding-left: 0; border-left: 0; }
.v-admin .adm-xstats dt { font-size: 12px; color: var(--muted); }
.v-admin .adm-xstats dd { margin: 0; font-size: 16px; color: var(--ink); white-space: nowrap; }

.v-admin .adm-pipe { position: relative; display: grid; gap: 0; }
.v-admin .adm-pipe.is-waiting { opacity: .6; }
.v-admin .adm-pipe__step { position: relative; display: grid; grid-template-columns: 24px minmax(0, 1fr) auto; gap: 4px 14px; padding: 0 0 16px; }
.v-admin .adm-pipe__step::before { content: ''; position: absolute; left: 11.25px; top: 28px; bottom: 4px; width: 1.5px; border-radius: 1px; background: var(--line); }
.v-admin .adm-pipe__step:last-child { padding-bottom: 4px; }
.v-admin .adm-pipe__step:last-child::before { display: none; }
.v-admin .adm-pipe__step.is-done::before { background: var(--primary); transform-origin: top; animation: adm-grow var(--d-slow) var(--ease-draw) both; }
@keyframes adm-grow { from { transform: scaleY(0); } }
.v-admin .adm-pipe__mark { display: grid; place-items: center; width: 24px; height: 24px; }
.v-admin .adm-pipe__spin { width: 20px; height: 20px; border-radius: 50%; border: 2px solid var(--primary-line); border-top-color: var(--primary); animation: spin 800ms linear infinite; }
.v-admin .adm-pipe__x { width: 22px; height: 22px; display: grid; place-items: center; border-radius: 50%; background: var(--danger); color: var(--on-fill); }
.v-admin .adm-pipe__x .icon { stroke-width: 2.25; }
.v-admin .adm-pipe__body { min-width: 0; padding-top: 1px; display: grid; gap: 2px; }
.v-admin .adm-pipe__label { font-size: 14.5px; font-weight: 600; color: var(--ink); line-height: 1.4; }
.v-admin .adm-pipe__step.is-pending .adm-pipe__label, .v-admin .adm-pipe__step.is-skipped .adm-pipe__label { color: var(--muted); font-weight: 500; }
.v-admin .adm-pipe__step.is-skipped .adm-pipe__label { text-decoration: line-through; text-decoration-color: var(--faint); }
.v-admin .adm-pipe__detail { font-size: 13px; color: var(--muted); }
.v-admin .adm-pipe__detail .tickline { font-size: 13px; color: var(--muted); align-items: flex-start; }
.v-admin .adm-pipe__detail .tickline__mark { display: none; }
.v-admin .adm-pipe__detail .tickline__line { left: 0; }
.v-admin .adm-pipe__working { position: relative; display: inline-block; overflow: hidden; color: var(--primary); font-weight: 500; }
.v-admin .adm-pipe__fail { color: var(--danger); font-weight: 600; }
.v-admin .adm-pipe__time { display: grid; justify-items: end; font-size: 12px; color: var(--muted); line-height: 1.35; padding-top: 2px; }
.v-admin .adm-pipe__time .num { font-size: 13px; color: var(--ink-2); }

.v-admin .adm-result { margin-top: 10px; padding: 18px; border-radius: var(--r-card); border: 1px solid var(--primary-line); background: color-mix(in srgb, var(--primary-soft) 55%, var(--surface)); display: grid; gap: 14px; animation: adm-rise var(--d-slow) var(--ease-out) both; }
@keyframes adm-rise { from { opacity: 0; transform: translateY(6px); } }
.v-admin .adm-result--fail { border-color: color-mix(in srgb, var(--danger) 30%, transparent); background: var(--danger-soft); }
.v-admin .adm-result__head { display: flex; gap: 12px; align-items: flex-start; }
.v-admin .adm-result__head > .icon { color: var(--danger); margin-top: 2px; }
.v-admin .adm-result__head p { font-size: 14px; color: var(--ink-2); margin-top: 2px; }
.v-admin .adm-result__why { padding-left: 32px; }
.v-admin .adm-result__acts { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; }
.v-admin .adm-result__note { margin-left: auto; }
.v-admin .adm-causes { border-top: 1px solid color-mix(in srgb, var(--danger) 22%, transparent); padding-top: 10px; }
.v-admin .adm-causes summary { list-style: none; display: inline-flex; align-items: center; gap: 6px; cursor: pointer; font-size: 13.5px; font-weight: 600; color: var(--ink-2); border-radius: 6px; }
.v-admin .adm-causes summary::-webkit-details-marker { display: none; }
.v-admin .adm-causes__chev { transition: transform var(--d-base) var(--ease-out); color: var(--muted); }
.v-admin .adm-causes[open] .adm-causes__chev { transform: rotate(180deg); }
.v-admin .adm-causes ul { display: grid; gap: 8px; margin-top: 10px; padding-left: 22px; list-style: disc; font-size: 13px; color: var(--ink-2); }
.v-admin .adm-causes b { font-weight: 600; color: var(--ink); }
.v-admin .adm-issues { display: grid; gap: 8px; }
.v-admin .adm-issue { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: var(--r-ctl); background: var(--surface); border: 1px solid var(--line); border-left: 3px solid var(--warn); }
.v-admin .adm-issue--danger { border-left-color: var(--danger); }
.v-admin .adm-issue.is-resolved { border-left-color: var(--primary); }
.v-admin .adm-issue__icon { flex: none; display: grid; place-items: center; color: var(--warn); }
.v-admin .adm-issue--danger .adm-issue__icon { color: var(--danger); }
.v-admin .adm-issue__txt { flex: 1; min-width: 0; display: grid; gap: 1px; font-size: 13px; color: var(--muted); }
.v-admin .adm-issue__txt b { font-size: 14px; color: var(--ink); font-weight: 600; }
.v-admin .adm-issue.is-resolved .adm-issue__txt b { color: var(--muted); font-weight: 500; text-decoration: line-through; text-decoration-color: var(--faint); }

.v-admin .adm-format { padding: 0; overflow: hidden; }
.v-admin .adm-format__sum { list-style: none; display: flex; align-items: flex-start; gap: 12px; padding: 16px 18px; cursor: pointer; border-radius: var(--r-card); }
.v-admin .adm-format__sum::-webkit-details-marker { display: none; }
.v-admin .adm-format__sum:hover { background: var(--surface-2); }
.v-admin .adm-format__icon { width: 34px; height: 34px; flex: none; display: grid; place-items: center; border-radius: 50%; background: var(--primary-soft); color: var(--primary); }
.v-admin .adm-format__txt { flex: 1; display: grid; gap: 2px; font-size: 13px; color: var(--muted); }
.v-admin .adm-format__txt b { font-size: 15px; color: var(--ink); font-weight: 600; font-family: var(--font-display); letter-spacing: -.01em; }
.v-admin .adm-format__chev { color: var(--muted); margin-top: 8px; transition: transform var(--d-base) var(--ease-out); }
.v-admin .adm-format[open] .adm-format__chev { transform: rotate(180deg); }
.v-admin .adm-format__list { display: grid; gap: 14px; padding: 4px 18px 16px; border-top: 1px solid var(--line); padding-top: 16px; counter-reset: none; }
.v-admin .adm-format__list li { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 10px; }
.v-admin .adm-format__n { width: 22px; height: 22px; display: grid; place-items: center; border-radius: 50%; border: 1.5px solid var(--primary-line); color: var(--primary); font-size: 12px; }
.v-admin .adm-format__list b { font-size: 14px; font-weight: 600; }
.v-admin .adm-format__list p { font-size: 13px; color: var(--muted); margin-top: 1px; }
.v-admin .adm-format__foot { display: flex; gap: 8px; margin: 0 18px 18px; padding: 10px 12px; border-radius: var(--r-ctl); background: var(--surface-2); border: 1px solid var(--line); font-size: 12.5px; color: var(--muted); }
.v-admin .adm-format__foot .icon { flex: none; margin-top: 1px; }
.v-admin .adm-limits__list { display: grid; gap: 12px; margin-top: 12px; }
.v-admin .adm-limits__list li { display: flex; gap: 10px; font-size: 13px; color: var(--ink-2); }
.v-admin .adm-limits__list .icon { flex: none; color: var(--primary); margin-top: 2px; }
.v-admin .adm-file { display: inline-flex; align-items: center; gap: 8px; min-width: 0; }
.v-admin .adm-file .icon { color: var(--muted); flex: none; }
.v-admin .adm-file b { font-weight: 600; overflow-wrap: anywhere; }
.v-admin .adm-uploads .adm-sub { padding-left: 24px; }
.v-admin .adm-uploads td:nth-child(4) .adm-sub { padding-left: 0; }
.v-admin .adm-td-act { text-align: right; width: 1%; white-space: nowrap; }
.v-admin .adm-proc { display: grid; gap: 6px; width: 128px; }
.v-admin .adm-proc .meter-bar > i { background: var(--warn); }

/* ---------- Library ---------- */
.v-admin .adm-cover { position: relative; display: block; flex: none; width: 56px; height: 40px; border-radius: 6px; overflow: hidden; background: var(--surface-3); box-shadow: inset 0 0 0 1px var(--line); }
.v-admin .adm-cover .media { position: absolute; inset: 0; }
.v-admin .adm-cover--sm { width: 44px; height: 32px; }
.v-admin .adm-cover--lg { width: 88px; height: 64px; border-radius: 10px; }
.v-admin .adm-cover__none { position: absolute; inset: 0; display: grid; place-items: center; color: var(--faint); border: 1px dashed var(--line-strong); border-radius: inherit; }
.v-admin .adm-topic { display: flex; align-items: center; gap: 12px; min-width: 0; border-radius: var(--r-ctl); }
.v-admin .adm-topic__txt { display: grid; min-width: 0; }
.v-admin .adm-topic b { font-weight: 600; color: var(--ink); line-height: 1.35; }
.v-admin .adm-topic:hover b { color: var(--primary); }
.v-admin .adm-td-check { width: 44px; padding-right: 0 !important; }
.v-admin .adm-check { width: 18px; height: 18px; margin: 0; display: block; }
.v-admin .adm-checkzone { display: grid; place-items: center; width: 28px; height: 28px; margin: -5px; cursor: pointer; border-radius: 6px; }
.v-admin .adm-row-chev { display: none; color: var(--faint); margin-left: auto; flex: none; }
.v-admin .adm-libtable tbody tr[data-slug] { cursor: pointer; }
.v-admin .adm-crit__menu { display: none !important; }
.v-admin .adm-libtable tr.is-selected { background: color-mix(in srgb, var(--primary-soft) 55%, transparent); }
.v-admin .adm-access { gap: 8px; }
.v-admin .adm-access__txt { font-size: 13px; font-weight: 600; color: var(--ink-2); min-width: 58px; }
.v-admin .adm-bulk { position: sticky; top: calc(var(--topbar-h) + 8px); z-index: 5; box-shadow: var(--shadow-lift); display: flex; align-items: center; gap: 10px; padding: 8px 8px 8px 14px; margin-bottom: 12px; border-radius: var(--r-card); background: var(--ink); color: var(--surface); font-size: 14px; animation: adm-rise var(--d-base) var(--ease-out) both; }
.v-admin .adm-bulk > span { margin-right: auto; }
.v-admin .adm-bulk .btn--quiet { color: var(--surface); }
.v-admin .adm-bulk .btn--quiet:hover { background: color-mix(in srgb, var(--surface) 14%, transparent); color: var(--surface); }
.v-admin .adm-pathway { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 20px; align-items: start; }
.v-admin .adm-pathway__note { display: grid; gap: 8px; color: var(--ink-2); }
.v-admin .adm-order { display: grid; gap: 6px; }
.v-admin .adm-order__item { position: relative; display: flex; align-items: center; gap: 12px; padding: 8px 8px 8px 6px; border-radius: var(--r-ctl); border: 1px solid var(--line); background: var(--surface); }
.v-admin .adm-order__item.is-dragging { z-index: 2; border-color: var(--primary); box-shadow: var(--shadow-lift); }
.v-admin .adm-order.is-sorting { user-select: none; }
.v-admin .adm-order__grip { display: grid; place-items: center; width: 28px; height: 36px; color: var(--faint); cursor: grab; touch-action: none; border-radius: 6px; }
.v-admin .adm-order__grip:hover { color: var(--ink-2); background: var(--surface-3); }
.v-admin .adm-order__item.is-dragging .adm-order__grip { cursor: grabbing; color: var(--primary); }
.v-admin .adm-order__n { width: 24px; font-size: 13px; color: var(--muted); }
.v-admin .adm-order__txt { flex: 1; min-width: 0; display: grid; }
.v-admin .adm-order__txt b { font-weight: 600; font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.v-admin .adm-order__btns { display: flex; gap: 0; }
.v-admin .adm-order__btns .icon-btn { width: 34px; height: 34px; }
.v-admin .adm-order__btns .icon-btn[disabled] { opacity: .3; pointer-events: none; }
.v-admin .adm-order__help { display: flex; align-items: center; gap: 6px; margin-top: 12px; }

/* ---------- Topic detail ---------- */
.v-admin .adm-back { margin-bottom: 14px; font-size: 13.5px; }
.v-admin .adm-dhead__main { display: flex !important; align-items: center; gap: 16px; }
.v-admin .adm-dhead__main > div { display: grid; gap: 4px; min-width: 0; }
.v-admin .adm-dhead .h1 { font-size: 28px; }
.v-admin .adm-dmeta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; font-size: 13px; color: var(--muted); margin-top: 4px; }
.v-admin .adm-dmeta .num { color: var(--ink-2); }
.v-admin .adm-dbanner { margin-bottom: 20px; }
.v-admin .adm-detail__cols { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 24px; align-items: start; }
.v-admin .adm-detail__main { min-width: 0; }
.v-admin .adm-detail__rail { position: sticky; top: calc(var(--topbar-h) + 16px); display: grid; gap: 16px; min-width: 0; }

/* preview */
.v-admin .adm-prev-tools { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 14px; }
.v-admin .adm-pager { display: flex; align-items: center; gap: 4px; }
.v-admin .adm-pager .icon-btn { width: 34px; height: 34px; }
.v-admin .adm-pager .icon-btn[disabled] { opacity: .35; pointer-events: none; }
.v-admin .adm-pager__txt { font-size: 13px; color: var(--muted); min-width: 0; text-align: center; }
.v-admin .adm-stage { display: grid; place-items: center; padding: 28px 20px; border-radius: var(--r-card); border: 1px solid var(--line); background: var(--surface-3); background-image: radial-gradient(var(--ring-pattern) 1px, transparent 1px); background-size: 16px 16px; }
.v-admin .adm-stage__note { display: flex; align-items: center; gap: 6px; margin-top: 10px; }
.v-admin .adm-device { width: 100%; background: var(--surface); box-shadow: var(--shadow-lift); overflow: hidden; display: flex; flex-direction: column; transition: max-width var(--d-slow) var(--ease-out); }
.v-admin .adm-device--desktop { max-width: 760px; border-radius: 10px; border: 1px solid var(--line); }
.v-admin .adm-device--phone { max-width: 300px; border-radius: 34px; border: 9px solid var(--ink-panel); position: relative; }
.v-admin .adm-device__chrome { display: flex; align-items: center; gap: 6px; height: 34px; padding: 0 12px; border-bottom: 1px solid var(--line); background: var(--surface-2); }
.v-admin .adm-device__chrome i { width: 9px; height: 9px; border-radius: 50%; background: var(--line-strong); }
.v-admin .adm-device__chrome span { flex: 1; margin: 0 40px 0 14px; text-align: center; font-size: 11.5px; color: var(--muted); background: var(--surface); border: 1px solid var(--line); border-radius: 6px; padding: 2px 8px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.v-admin .adm-device__notch { position: absolute; top: 6px; left: 50%; width: 76px; height: 20px; margin-left: -38px; border-radius: 12px; background: var(--ink-panel); z-index: 2; }
.v-admin .adm-device__screen { flex: 1; min-height: 0; }
.v-admin .adm-device--desktop .adm-device__screen { height: 470px; }
.v-admin .adm-device--phone .adm-device__screen { height: 560px; padding-top: 30px; }

.v-admin .adm-lp { height: 100%; display: flex; flex-direction: column; background: var(--bg); color: var(--ink); }
.v-admin .adm-lp__bar { display: flex; align-items: center; gap: 10px; padding: 10px 16px; border-bottom: 1px solid var(--line); background: var(--surface); font-size: 12.5px; }
.v-admin .adm-lp__exit { display: inline-flex; align-items: center; gap: 4px; color: var(--muted); font-weight: 500; }
.v-admin .adm-lp__title { flex: 1; min-width: 0; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.v-admin .adm-lp__bar .steps { gap: 3px; }
.v-admin .adm-lp__bar .steps__dot { width: 7px; height: 7px; }
.v-admin .adm-lp__bar .steps__dot.is-active::after { inset: 2px; }
.v-admin .adm-lp__body { flex: 1; min-height: 0; overflow: auto; padding: 22px 28px; display: grid; align-content: start; gap: 10px; max-width: 600px; width: 100%; margin: 0 auto; }
.v-admin .adm-device--phone .adm-lp__body { padding: 16px; }
.v-admin .adm-lp__img { height: 150px; border-radius: 10px; overflow: hidden; }
.v-admin .adm-lp__img .media { height: 100%; }
.v-admin .adm-device--phone .adm-lp__img { height: 120px; }
.v-admin .adm-lp__eyebrow { font-size: 11px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.v-admin .adm-lp__h { font-family: var(--font-display); font-size: 21px; line-height: 1.25; font-weight: 600; letter-spacing: -.02em; }
.v-admin .adm-device--phone .adm-lp__h { font-size: 18px; }
.v-admin .adm-lp__p { font-size: 14px; color: var(--ink-2); }
.v-admin .adm-lp__list { display: grid; gap: 8px; margin-top: 4px; }
.v-admin .adm-lp__list li { display: flex; gap: 8px; align-items: flex-start; font-size: 13.5px; color: var(--ink-2); }
.v-admin .adm-lp__list .ring { margin-top: 2px; }
.v-admin .adm-lp__opts { display: grid; gap: 8px; margin-top: 4px; }
.v-admin .adm-lp__opt { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: var(--r-ctl); border: 1px solid var(--line-strong); background: var(--surface); font-size: 13.5px; text-align: left; transition: border-color var(--d-fast) var(--ease-out), background-color var(--d-fast) var(--ease-out); }
.v-admin .adm-lp__opt:hover { border-color: var(--muted); }
.v-admin .adm-lp__opt[aria-pressed="true"] { border-color: var(--primary); box-shadow: 0 0 0 1px var(--primary); }
.v-admin .adm-lp__opt.is-right { border-color: var(--success); background: var(--success-soft); box-shadow: none; }
.v-admin .adm-lp__opt.is-wrong { border-color: var(--danger); background: var(--danger-soft); box-shadow: none; }
.v-admin .adm-lp__key { width: 22px; height: 22px; flex: none; display: grid; place-items: center; border-radius: 6px; background: var(--surface-3); font-size: 11.5px; font-weight: 600; color: var(--muted); }
.v-admin .adm-lp__fb { font-size: 13px; padding: 8px 10px; border-radius: var(--r-ctl); background: var(--surface-3); color: var(--ink-2); }
.v-admin .adm-lp__fb.is-right { background: var(--success-soft); color: var(--success); }
.v-admin .adm-lp__fb.is-wrong { background: var(--danger-soft); color: var(--danger); }
.v-admin .adm-lp__ta { min-height: 110px; padding: 10px 12px; border-radius: var(--r-ctl); border: 1px solid var(--line-strong); background: var(--surface); color: var(--faint); font-size: 13.5px; }
.v-admin .adm-lp__note { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--muted); }
.v-admin .adm-lp__foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 16px; border-top: 1px solid var(--line); background: var(--surface); }
.v-admin .adm-lp__back { display: inline-flex; align-items: center; gap: 4px; font-size: 13px; color: var(--muted); }
.v-admin .adm-lp__cta { min-height: 34px; padding: 0 14px; border-radius: var(--r-ctl); background: var(--primary); color: var(--on-primary); font-size: 13px; font-weight: 600; }

/* questions */
.v-admin .adm-qhead { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.v-admin .adm-qbanner { margin-bottom: 12px; flex-wrap: wrap; }
.v-admin .adm-qs { display: grid; border: 1px solid var(--line); border-radius: var(--r-card); background: var(--surface); overflow: hidden; }
.v-admin .adm-q { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto auto; align-items: center; gap: 14px; padding: 12px 14px; }
.v-admin .adm-q + .adm-q { border-top: 1px solid var(--line); }
.v-admin .adm-q.is-bad { background: color-mix(in srgb, var(--danger-soft) 55%, var(--surface)); box-shadow: inset 3px 0 0 var(--danger); }
.v-admin .adm-q__n { font-size: 13px; color: var(--muted); }
.v-admin .adm-q__main { min-width: 0; display: grid; gap: 3px; }
.v-admin .adm-q__top { display: flex; align-items: center; gap: 8px; min-width: 0; }
.v-admin .adm-q__title { font-weight: 600; font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.v-admin .adm-q__text { font-size: 13px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.v-admin .adm-q__ans { display: flex; justify-content: flex-end; max-width: 210px; min-width: 0; }
.v-admin .adm-ans { display: inline-flex; align-items: center; gap: 5px; font-size: 12.5px; color: var(--ink-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 210px; }
.v-admin .adm-ans__t { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.v-admin .adm-ans .icon { color: var(--success); flex: none; stroke-width: 2; }
.v-admin .adm-qtype, html[data-layout="admin"] .layer .adm-qtype { display: inline-flex; align-items: center; height: 20px; padding: 0 7px; border-radius: 5px; font-size: 11px; font-weight: 600; letter-spacing: .01em; white-space: nowrap; flex: none; background: var(--surface-3); color: var(--ink-2); box-shadow: inset 0 0 0 1px var(--line); }
.v-admin .adm-qtype--open, html[data-layout="admin"] .layer .adm-qtype--open { background: var(--primary-soft); color: var(--primary); box-shadow: inset 0 0 0 1px var(--primary-line); }
.v-admin .adm-qtype--multi, html[data-layout="admin"] .layer .adm-qtype--multi { background: var(--surface); }

/* rubric */
.v-admin .adm-rubric { display: grid; gap: 16px; }
.v-admin .adm-rhead { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; }
.v-admin .adm-rhead__status { margin-left: auto; }
.v-admin .adm-rq { margin: 0; padding: 12px 16px; border-left: 3px solid var(--primary); background: var(--surface); border-radius: 0 var(--r-ctl) var(--r-ctl) 0; font-size: 15px; line-height: 1.5; color: var(--ink); box-shadow: inset 0 0 0 1px var(--line); }
.v-admin .adm-rq__k { display: block; font-size: 11.5px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); margin-bottom: 2px; }
.v-admin .adm-crits-wrap { border: 0; padding: 0; margin: 0; min-width: 0; }
.v-admin .adm-crits-wrap[disabled] { opacity: .7; }
.v-admin .adm-crits { display: grid; gap: 8px; }
.v-admin .adm-crits > li, .v-admin .adm-rubric > *, .v-admin .adm-rside > *, .v-admin .adm-tabpanel > *, .v-admin .adm-qs > li, .v-admin .adm-reqs > *, .v-admin .adm-report > *, .v-admin .adm-charts2 > * { min-width: 0; }
.v-admin .adm-crit { border: 1px solid var(--line); border-radius: var(--r-card); background: var(--surface-2); padding: 10px 10px 10px 12px; transition: border-color var(--d-base) var(--ease-out); }
.v-admin .adm-crit.is-open { background: var(--surface); border-color: var(--line-strong); }
.v-admin .adm-crit__row { display: grid; grid-template-columns: 22px minmax(0, 1fr) auto auto; align-items: center; gap: 10px; }
.v-admin .adm-crit__n { width: 22px; height: 22px; display: grid; place-items: center; border-radius: 50%; background: var(--surface-3); font-size: 12px; color: var(--ink-2); }
.v-admin .adm-crit__name .input { min-height: 38px; font-weight: 600; font-size: 14.5px; }
.v-admin .adm-crit__pts { display: flex; align-items: center; gap: 2px; }
.v-admin .adm-crit__pts .icon-btn { width: 30px; height: 30px; }
.v-admin .adm-crit__pts .icon-btn[disabled] { opacity: .3; }
.v-admin .adm-crit__pts .input { width: 46px; min-height: 36px; padding: 6px 4px; text-align: center; font-size: 16px; -moz-appearance: textfield; appearance: textfield; }
.v-admin .adm-crit__pts .input::-webkit-outer-spin-button, .v-admin .adm-crit__pts .input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.v-admin .adm-crit__ptsk { font-size: 12px; color: var(--muted); margin-left: 2px; }
.v-admin .adm-crit__tools { display: flex; }
.v-admin .adm-crit__tools .icon-btn { width: 32px; height: 32px; color: var(--muted); }
.v-admin .adm-crit__tools .icon-btn:hover { color: var(--ink); }
.v-admin .adm-crit__tools .icon-btn[disabled] { opacity: .3; pointer-events: none; }
.v-admin .adm-crit__tools [aria-expanded="true"] { background: var(--primary-soft); color: var(--primary); }
.v-admin .adm-crit__del:hover { color: var(--danger) !important; background: var(--danger-soft); }
.v-admin .adm-crit__peek { display: flex; align-items: center; gap: 8px; margin: 6px 0 0 32px; font-size: 12.5px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.v-admin .adm-crit__more { display: grid; gap: 12px; margin: 12px 0 2px 32px; padding-top: 12px; border-top: 1px dashed var(--line-strong); }
.v-admin .adm-crit__desc { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.v-admin .adm-crit__desc .textarea { min-height: 76px; font-size: 13.5px; padding: 8px 10px; }
.v-admin .adm-crit__more .input { font-size: 13.5px; min-height: 38px; }
.v-admin .adm-desc-k { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; }
.v-admin .adm-dot { width: 8px; height: 8px; border-radius: 50%; flex: none; background: var(--success); }
.v-admin .adm-dot--partly { background: var(--warn); }
.v-admin .adm-dot--notyet { background: var(--danger); }
.v-admin .adm-rfoot { display: grid; gap: 10px; margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--line); }
.v-admin .adm-total { display: flex; align-items: center; gap: 14px; }
.v-admin .adm-total__nums { display: flex; align-items: baseline; gap: 6px; flex: none; }
.v-admin .adm-total__k { font-size: 13px; color: var(--muted); font-weight: 500; }
.v-admin .adm-total__v { font-size: 26px; line-height: 1; }
.v-admin .adm-total__of { font-family: var(--font-display); font-size: 15px; color: var(--muted); font-weight: 600; }
.v-admin .adm-total.is-bad .adm-total__v { color: var(--danger); }
.v-admin .adm-total__bar { position: relative; flex: 1; height: 6px; border-radius: 3px; background: var(--surface-3); overflow: hidden; }
.v-admin .adm-total__bar > i { position: absolute; inset: 0; transform-origin: left; background: var(--primary); border-radius: inherit; transition: transform var(--d-base) var(--ease-out), background-color var(--d-base) var(--ease-out); }
.v-admin .adm-total.is-bad .adm-total__bar > i { background: var(--danger); }
.v-admin .adm-rprobs { display: grid; gap: 4px; }
.v-admin .adm-rprobs:empty { display: none; }
.v-admin .adm-rok .tickline { color: var(--ink-2); }
.v-admin .adm-rfoot__acts { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.v-admin .adm-rsend-why { text-align: right; }
.v-admin .is-nudge { animation: adm-nudge 360ms var(--ease-out); }
@keyframes adm-nudge { 25% { transform: translateX(-3px); } 75% { transform: translateX(3px); } }
.v-admin .adm-rside { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: 16px; align-items: start; }
.v-admin .adm-rside__note { display: flex; gap: 6px; margin-top: 12px; }
.v-admin .adm-rside__note .icon { flex: none; margin-top: 2px; }
.v-admin .adm-vers { display: grid; }
.v-admin .adm-ver { position: relative; display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; gap: 10px; padding: 10px 0; align-items: start; }
.v-admin .adm-ver + .adm-ver { border-top: 1px solid var(--line); }
.v-admin .adm-ver__v { display: grid; place-items: center; height: 24px; border-radius: 6px; background: var(--surface-3); font-size: 12.5px; color: var(--ink-2); }
.v-admin .adm-ver.is-approved .adm-ver__v { background: var(--primary-soft); color: var(--primary); }
.v-admin .adm-ver.is-pending .adm-ver__v { background: var(--warn-soft); color: var(--warn-ink); }
.v-admin .adm-ver.is-draft .adm-ver__v { background: transparent; box-shadow: inset 0 0 0 1px var(--line-strong); }
.v-admin .adm-ver__txt { display: grid; gap: 1px; font-size: 12.5px; color: var(--muted); min-width: 0; }
.v-admin .adm-ver__txt b { font-size: 13.5px; color: var(--ink); font-weight: 600; }
.v-admin .adm-ver__txt p { color: var(--ink-2); margin-top: 3px; }
.v-admin .adm-test__fills { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.v-admin .adm-fill, html[data-layout="admin"] .layer .adm-fill { cursor: pointer; white-space: normal; text-align: left; transition: border-color var(--d-fast) var(--ease-out); }
.v-admin .adm-fill:hover, html[data-layout="admin"] .layer .adm-fill:hover { border-color: var(--line-strong); color: var(--ink); }
.v-admin .adm-test__acts { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-top: 12px; }
.v-admin .adm-test__out:not(:empty) { margin-top: 14px; }
.v-admin .adm-tres { display: grid; gap: 10px; padding-top: 14px; border-top: 1px solid var(--line); }
.v-admin .adm-tres__score { display: flex; align-items: center; gap: 12px; }
.v-admin .adm-tres__score > div { display: grid; }
.v-admin .adm-tres__score .ring__arc { transition: stroke-dasharray 520ms var(--ease-out); }
.v-admin .adm-tres__num { font-size: 26px; line-height: 1.05; }
.v-admin .adm-tres__of { font-size: 15px; color: var(--muted); }
.v-admin .adm-tres__score.is-landed .adm-tres__num { animation: adm-land 320ms var(--ease-out); }
@keyframes adm-land { from { opacity: 0; transform: translateY(4px); } }
.v-admin .adm-tres__list { display: grid; gap: 0; }
.v-admin .adm-tres__row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 10px; padding: 8px 0; border-top: 1px solid var(--line); }
.v-admin .adm-tres__name { font-size: 13px; font-weight: 600; }
.v-admin .adm-tres__res { display: flex; align-items: center; gap: 8px; }
.v-admin .adm-tres__pts { font-size: 14px; min-width: 32px; text-align: right; }
.v-admin .adm-tres__pts span { color: var(--muted); font-size: 12px; }
.v-admin .adm-tres__why { grid-column: 1 / -1; font-size: 12px; color: var(--muted); }
.v-admin .adm-tres__why { display: grid; gap: 2px; }
.v-admin .adm-tres__quote { quotes: '“' '”'; color: var(--ink-2); font-style: normal; padding-left: 8px; border-left: 2px solid var(--line-strong); }
.v-admin .adm-tres__none { color: var(--faint); }
.v-admin .adm-tres__diff { display: flex; gap: 8px; padding: 10px 12px; border-radius: var(--r-ctl); background: var(--warn-soft); color: var(--warn-ink); font-size: 13px; }
.v-admin .adm-tres__diff .icon { flex: none; margin-top: 2px; color: var(--warn); }
.v-admin .adm-tres__diff b { font-weight: 600; }
.v-admin .adm-tres__model { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--muted); }
.v-admin .adm-tres__wait { font-size: 12px; color: var(--muted); font-style: normal; }
.v-admin .adm-tres__row.is-pending .pill, .v-admin .adm-tres__row.is-pending .adm-tres__pts, .v-admin .adm-tres__row.is-pending .adm-tres__why { display: none; }
.v-admin .adm-tres__row.is-in .adm-tres__wait { display: none; }
.v-admin .adm-tres__row.is-in .pill { animation: adm-land 260ms var(--ease-out); }

/* checklist */
.v-admin .adm-check-list { display: grid; gap: 2px; margin: 0 -6px 14px; }
.v-admin .adm-ci { display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 9px 6px; border-radius: var(--r-ctl); }
.v-admin .adm-ci.is-bad { background: var(--danger-soft); }
.v-admin .adm-ci__x { width: 22px; height: 22px; display: grid; place-items: center; border-radius: 50%; background: var(--danger); color: var(--on-fill); }
.v-admin .adm-ci__x .icon { stroke-width: 2.25; }
.v-admin .adm-ci__txt { display: grid; gap: 0; font-size: 12.5px; color: var(--muted); min-width: 0; }
.v-admin .adm-ci__txt b { font-size: 13.5px; color: var(--ink); font-weight: 600; }
.v-admin .adm-ci__fix { font-size: 13px; }
.v-admin .adm-ci__fix .adm-access__txt { display: none; }
.v-admin .adm-check__why { margin-top: 8px; text-align: center; }
.v-admin .adm-live { padding: 10px 12px; border-radius: var(--r-ctl); background: var(--primary-soft); }
.v-admin .adm-live .tickline { color: var(--primary); font-weight: 600; }

/* ---------- Groups ---------- */
.v-admin .adm-reqs { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 380px), 1fr)); gap: 16px; align-items: start; }
.v-admin .adm-req { display: grid; gap: 14px; padding: 18px; transition: border-color var(--d-base) var(--ease-out); }
.v-admin .adm-req.is-approved { border-color: var(--primary-line); }
.v-admin .adm-req.is-rejected { background: var(--surface-2); }
.v-admin .adm-req.is-rejected .adm-req__head, .v-admin .adm-req.is-rejected .adm-req__facts { opacity: .6; }
.v-admin .adm-req__head { display: flex; align-items: center; gap: 12px; }
.v-admin .adm-req__who { flex: 1; min-width: 0; display: grid; gap: 1px; }
.v-admin .adm-req__when { white-space: nowrap; align-self: flex-start; }
.v-admin .adm-req__facts { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 16px; padding: 12px 14px; border-radius: var(--r-ctl); background: var(--surface-2); border: 1px solid var(--line); }
.v-admin .adm-req__facts div { display: grid; gap: 1px; min-width: 0; }
.v-admin .adm-req__facts dt { font-size: 12px; color: var(--muted); }
.v-admin .adm-req__facts dd { margin: 0; font-size: 14px; font-weight: 500; overflow-wrap: anywhere; }
.v-admin .adm-req__facts dd > .num { font-size: 18px; }
.v-admin .adm-req__wide { grid-column: 1 / -1; }
.v-admin .adm-req__note, .v-admin .adm-req__flag { display: flex; gap: 8px; font-size: 13px; color: var(--ink-2); }
.v-admin .adm-req__note .icon, .v-admin .adm-req__flag .icon { flex: none; margin-top: 3px; color: var(--muted); }
.v-admin .adm-req__flag { padding: 8px 10px; border-radius: var(--r-ctl); background: var(--warn-soft); color: var(--warn-ink); }
.v-admin .adm-req__flag .icon { color: var(--warn); }
.v-admin .adm-req__acts { display: flex; flex-wrap: wrap; gap: 8px; padding-top: 12px; border-top: 1px solid var(--line); }
.v-admin .adm-req__reject { margin-left: auto; color: var(--danger); }
.v-admin .adm-req__reject:hover { color: var(--danger); background: var(--danger-soft); }
.v-admin .adm-req__res { display: flex; align-items: flex-start; gap: 8px; padding: 10px 12px; border-radius: var(--r-ctl); font-size: 13.5px; }
.v-admin .adm-req__res > span, .v-admin .adm-req__res > .tickline { flex: 1; min-width: 0; }
.v-admin .adm-req__res .link { font-size: 13px; flex: none; }
.v-admin .adm-req__res--ok { background: var(--primary-soft); }
.v-admin .adm-req__res--ok .tickline { color: var(--ink); font-size: 13.5px; }
.v-admin .adm-req__res--no { background: var(--danger-soft); color: var(--ink-2); }
.v-admin .adm-req__res--no > .icon { color: var(--danger); margin-top: 2px; flex: none; }
.v-admin .adm-req__res--wait { background: var(--surface-3); color: var(--ink-2); }
.v-admin .adm-req__res--wait > .icon { color: var(--muted); margin-top: 2px; flex: none; }
.v-admin .adm-seats { display: grid; gap: 5px; width: 110px; }
.v-admin .adm-gtable tr.is-new { background: color-mix(in srgb, var(--primary-soft) 60%, transparent); }

/* ---------- Reports ---------- */
.v-admin .adm-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 18px; }
.v-admin .adm-report { display: grid; gap: 20px; }
.v-admin .adm-charts2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.v-admin .adm-chart__kpi { display: flex; align-items: center; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.v-admin .adm-chart__kpi > .num { font-size: 26px; line-height: 1; }
.v-admin .adm-chart__host { position: relative; min-height: 120px; }
.v-admin .adm-chart__host svg { display: block; overflow: visible; }
.v-admin .adm-grid { stroke: var(--line); stroke-width: 1; }
.v-admin .adm-axis { fill: var(--muted); font-family: var(--font-ui); font-size: 11.5px; font-variant-numeric: tabular-nums; }
.v-admin .adm-line { fill: none; stroke: var(--primary); stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; }
.v-admin .adm-area { fill: var(--primary); opacity: .08; }
.v-admin .adm-hit { fill: transparent; }
.v-admin .adm-cross { stroke: var(--line-strong); stroke-width: 1; stroke-dasharray: 3 3; opacity: 0; }
.v-admin .adm-pt__dot { fill: var(--surface); stroke: var(--primary); stroke-width: 2; opacity: 0; }
.v-admin .adm-pt.is-hot .adm-cross, .v-admin .adm-pt.is-hot .adm-pt__dot { opacity: 1; }
.v-admin .adm-now { fill: var(--copper); stroke: var(--surface); stroke-width: 2; }
.v-admin .adm-now__lbl { fill: var(--ink); font-family: var(--font-display); font-weight: 600; font-size: 13px; font-variant-numeric: tabular-nums; }
.v-admin .adm-blabel { fill: var(--ink-2); font-family: var(--font-ui); font-size: 12.5px; }
.v-admin .adm-bval { fill: var(--ink); font-family: var(--font-display); font-weight: 600; font-size: 12.5px; font-variant-numeric: tabular-nums; }
.v-admin .adm-track { fill: var(--surface-3); }
.v-admin .adm-bar-fill { fill: var(--primary); transition: opacity var(--d-fast) var(--ease-out); }
.v-admin .adm-bar-muted { fill: var(--line-strong); }
.v-admin .adm-barrow.is-hot .adm-track { fill: var(--line); }
.v-admin .adm-hbar.is-hot .adm-bar-fill, .v-admin .adm-hbar.is-hot .adm-bar-muted { opacity: .78; }
.v-admin .adm-pass { stroke: var(--ink-2); stroke-width: 1; stroke-dasharray: 4 3; }
.v-admin .adm-pass__lbl { fill: var(--ink-2); font-family: var(--font-ui); font-size: 11.5px; font-weight: 600; }
.v-admin .adm-tip { position: absolute; z-index: 3; pointer-events: none; padding: 7px 10px; border-radius: var(--r-ctl); background: var(--toast-bg); color: var(--on-ink); font-size: 12.5px; line-height: 1.35; white-space: nowrap; box-shadow: var(--shadow-pop); opacity: 0; transform: translateY(2px); transition: opacity var(--d-fast) var(--ease-out), transform var(--d-fast) var(--ease-out); }
.v-admin .adm-tip.is-on { opacity: 1; transform: none; }
.v-admin .adm-tip b { font-family: var(--font-display); font-variant-numeric: tabular-nums; font-size: 14px; }
.v-admin .adm-tip span { color: var(--on-ink-muted); }
.v-admin .adm-ai__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 24px; align-items: start; }
.v-admin .adm-ai__stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.v-admin .adm-ai__stats > div { display: grid; gap: 2px; align-content: start; padding: 12px 14px; border-radius: var(--r-ctl); background: var(--surface-2); border: 1px solid var(--line); }
.v-admin .adm-ai__stats dt { font-size: 12px; color: var(--muted); }
.v-admin .adm-ai__stats dd { margin: 0; font-size: 26px; line-height: 1.15; }
.v-admin .adm-unit { font-family: var(--font-display); font-size: 15px; color: var(--muted); font-weight: 600; margin-left: 1px; }
.v-admin .adm-ai__k { font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); margin-bottom: 8px; }
.v-admin .adm-ai__list ol { display: grid; gap: 12px; }
.v-admin .adm-ai__row { display: flex; align-items: flex-end; justify-content: space-between; gap: 10px; margin-bottom: 5px; font-size: 13.5px; }
.v-admin .adm-ai__row b { font-weight: 600; }
.v-admin .adm-ai__row > .num { font-size: 16px; }
.v-admin .meter-bar { display: block; }
.v-admin .adm-ai__list .meter-bar > i { background: var(--ink-2); }
.v-admin .adm-ai__tip { display: flex; gap: 6px; margin-top: 14px; }
.v-admin .adm-ai__tip .icon { flex: none; margin-top: 2px; }

/* ---------- Users ---------- */
.v-admin .adm-ucount { margin-left: auto; }
.v-admin .adm-person { display: flex; align-items: center; gap: 10px; min-width: 0; }
.v-admin .adm-person > span:last-child { display: grid; min-width: 0; }
.v-admin .adm-person b { font-weight: 600; }
.v-admin .adm-person .adm-sub { overflow-wrap: anywhere; }
.v-admin .adm-you { display: inline-block; margin-left: 4px; padding: 0 6px; border-radius: var(--r-pill); background: var(--copper-soft); color: var(--copper-ink); font-size: 11px; font-weight: 600; vertical-align: 1px; }
.v-admin .adm-td-menu { width: 1%; text-align: right; }
.v-admin .adm-td-menu .icon-btn { width: 34px; height: 34px; }
.v-admin .adm-utable tr.is-muted .adm-person { opacity: .6; }
.v-admin .adm-menu { position: fixed; z-index: 70; min-width: 236px; padding: 6px; border-radius: var(--r-card); background: var(--surface); box-shadow: var(--shadow-pop); animation: pop-in var(--d-base) var(--ease-out); }
.v-admin .adm-menu__item { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 38px; padding: 8px 10px; border-radius: var(--r-ctl); font-size: 14px; color: var(--ink-2); text-align: left; }
.v-admin .adm-menu__item .icon { color: var(--muted); }
.v-admin .adm-menu__item:hover, .v-admin .adm-menu__item:focus-visible { background: var(--surface-2); color: var(--ink); box-shadow: none; }
.v-admin .adm-menu__item.is-danger { color: var(--danger); }
.v-admin .adm-menu__item.is-danger .icon { color: var(--danger); }

/* ---------- Layers opened from the back office (they live on <body>) ---------- */
html[data-layout="admin"] .layer .adm-modal-body { display: grid; gap: 14px; }
html[data-layout="admin"] .layer .adm-blocked { padding: 10px 12px; border-radius: var(--r-ctl); background: var(--warn-soft); }
html[data-layout="admin"] .layer .adm-blocked ul { display: grid; gap: 6px; margin-top: 6px; }
html[data-layout="admin"] .layer .adm-blocked li { display: grid; gap: 0; }
html[data-layout="admin"] .layer .adm-failmodal { display: grid; gap: 12px; }
html[data-layout="admin"] .layer .adm-file { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; color: var(--muted); }
html[data-layout="admin"] .layer .adm-file b { color: var(--ink); }
html[data-layout="admin"] .layer .adm-seat-input { display: flex; align-items: center; gap: 10px; }
html[data-layout="admin"] .layer .adm-seat-input .input { width: 110px; font-size: 18px; }
html[data-layout="admin"] .layer .adm-plans, html[data-layout="admin"] .layer .adm-roles { display: grid; gap: 8px; border: 0; padding: 0; margin: 0; min-width: 0; }
html[data-layout="admin"] .layer .adm-plans legend { margin-bottom: 6px; }
html[data-layout="admin"] .layer .radio-card > span { display: grid; gap: 2px; }
html[data-layout="admin"] .layer .radio-card b { font-weight: 600; font-size: 14.5px; }
html[data-layout="admin"] .layer .adm-presets { display: flex; flex-wrap: wrap; gap: 6px; }
html[data-layout="admin"] .layer .adm-covers { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 10px; margin-bottom: 10px; }
html[data-layout="admin"] .layer .adm-covers__opt { position: relative; aspect-ratio: 16 / 10; border-radius: 10px; overflow: hidden; box-shadow: inset 0 0 0 1px var(--line); }
html[data-layout="admin"] .layer .adm-covers__opt .media { position: absolute; inset: 0; }
html[data-layout="admin"] .layer .adm-covers__opt[aria-checked="true"] { box-shadow: 0 0 0 3px var(--primary); }
html[data-layout="admin"] .layer .adm-covers__tick { position: absolute; top: 6px; right: 6px; opacity: 0; transition: opacity var(--d-fast) var(--ease-out); }
html[data-layout="admin"] .layer .adm-covers__opt[aria-checked="true"] .adm-covers__tick { opacity: 1; }
html[data-layout="admin"] .layer .adm-qform { display: grid; gap: 16px; }
html[data-layout="admin"] .layer .adm-qform__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
html[data-layout="admin"] .layer .adm-qform__opts { display: grid; gap: 8px; border: 0; padding: 0; margin: 0; min-width: 0; }
html[data-layout="admin"] .layer .adm-qform__opts legend { margin-bottom: 2px; }
html[data-layout="admin"] .layer .adm-qform__rubric { display: grid; gap: 6px; justify-items: start; padding: 12px 14px; border-radius: var(--r-ctl); background: var(--surface-2); border: 1px solid var(--line); }
html[data-layout="admin"] .layer .adm-opt { display: grid; grid-template-columns: 28px 22px minmax(0, 1fr); align-items: center; gap: 8px; padding: 6px 8px 6px 6px; border-radius: var(--r-ctl); border: 1px solid var(--line); background: var(--surface); transition: border-color var(--d-fast) var(--ease-out), background-color var(--d-fast) var(--ease-out); }
html[data-layout="admin"] .layer .adm-opt.is-correct { border-color: var(--success); background: var(--success-soft); }
html[data-layout="admin"] .layer .adm-opt__pick { display: grid; place-items: center; width: 28px; height: 28px; cursor: pointer; }
html[data-layout="admin"] .layer .adm-opt__pick input { width: 18px; height: 18px; margin: 0; accent-color: var(--success); }
html[data-layout="admin"] .layer .adm-opt__key { font-size: 12px; font-weight: 600; color: var(--muted); text-align: center; }
html[data-layout="admin"] .layer .adm-opt .input { min-height: 36px; padding: 6px 10px; font-size: 14px; }
html[data-layout="admin"] .layer .adm-opt .error { grid-column: 3; }
@media (min-width: 861px) {
  html[data-layout="admin"] .layer--admin-drawer { place-items: stretch end; padding: 0; }
  html[data-layout="admin"] .layer--admin-drawer .layer__panel { width: min(560px, 100%); height: 100vh; max-height: 100vh; border-radius: 16px 0 0 16px; transform: translateX(28px); }
  html[data-layout="admin"] .layer--admin-drawer.is-in .layer__panel { transform: none; }
  html[data-layout="admin"] .layer--admin-drawer .layer__body { flex: 1; }
}

/* ---------- Responsive ---------- */
@media (max-width: 1240px) {
  .v-admin .adm-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .v-admin .adm-up { grid-template-columns: minmax(0, 1fr) 320px; }
  .v-admin .adm-rside { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 1100px) {
  .v-admin .adm-ov, .v-admin .adm-up, .v-admin .adm-detail__cols, .v-admin .adm-pathway { grid-template-columns: minmax(0, 1fr); }
  .v-admin .adm-detail__rail { position: static; order: -1; }
  .v-admin .adm-ov__rail { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
  .v-admin .adm-charts2, .v-admin .adm-ai__grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 860px) {
  .v-admin .adm-head { margin-bottom: 16px; }
  .v-admin .adm-ov__rail { grid-template-columns: minmax(0, 1fr); }
  .v-admin .adm-card, .v-admin .adm-upcard { padding: 16px; }
  .v-admin .adm-kpis { gap: 10px; }
  .v-admin .adm-kpi { padding: 14px; }
  .v-admin .adm-kpi__num { font-size: 26px; }
  .v-admin .adm-kpi__foot { flex-direction: column; gap: 4px; }
  .v-admin .adm-kpi__foot div { display: flex; justify-content: space-between; gap: 8px; }
  .v-admin .adm-act { display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 10px 12px; align-items: start; }
  .v-admin .adm-act .btn { grid-column: 2; justify-self: start; }
  .v-admin .adm-reqmini .adm-ch { display: none; }
  .v-admin .adm-drop { padding: 28px 16px; }
  .v-admin .adm-drop__title { font-size: 18px; }
  .v-admin .adm-sample { width: 100%; }
  .v-admin .adm-xfer { padding: 14px; }
  .v-admin .adm-xfer__acts { width: 100%; }
  .v-admin .adm-xfer__acts .btn { flex: 1; }
  .v-admin .adm-pipe__step { grid-template-columns: 24px minmax(0, 1fr); }
  .v-admin .adm-pipe__time { grid-column: 2; justify-items: start; display: flex; gap: 8px; padding-top: 0; }
  .v-admin .adm-result__note { margin-left: 0; width: 100%; }
  .v-admin .adm-result__acts .btn { flex: 1 1 auto; }
  .v-admin .adm-issue { flex-wrap: wrap; }
  .v-admin .adm-issue .btn { margin-left: 30px; }
  .v-admin .adm-search { max-width: none; flex-basis: 100%; }
  .v-admin .adm-ucount { margin-left: 0; }

  /* stacked tables: tidy list rows */
  .v-admin .adm-table .table tr { padding: 12px 14px; display: grid !important; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 12px; align-items: center; }
  .v-admin .adm-table .table td { padding: 0 !important; font-size: 13.5px; }
  .v-admin .adm-table .table td[data-label] { grid-column: 1 / -1; display: flex !important; align-items: center; gap: 8px; color: var(--ink-2); }
  .v-admin .adm-table .table td[data-label]::before { content: attr(data-label); min-width: 92px; font-size: 12.5px; color: var(--muted); }
  .v-admin .adm-table .table td.num { text-align: left; }
  .v-admin .adm-table .adm-td-act, .v-admin .adm-table .adm-td-menu { grid-column: 2; grid-row: 1; width: auto; }
  .v-admin .adm-table .adm-td-act:empty { display: none !important; }
  .v-admin .adm-uploads .table td:first-child { grid-column: 1; grid-row: 1; margin-bottom: 4px; }
  .v-admin .adm-uploads .adm-sub { padding-left: 24px; }
  .v-admin .adm-libtable .table tr { grid-template-columns: 32px minmax(0, 1fr) minmax(0, 1fr); }
  .v-admin .adm-libtable .adm-td-check { grid-column: 1; grid-row: 1; width: auto; align-self: start; }
  .v-admin .adm-libtable .adm-checkzone { width: 44px; height: 44px; margin: -8px 0 0 -12px; }
  .v-admin .adm-row-chev { display: block; }
  .v-admin .adm-libtable .adm-topic { padding-right: 0; }
  .v-admin .adm-libtable .adm-td-topic { grid-column: 2 / 4; grid-row: 1; margin-bottom: 6px; }
  .v-admin .adm-libtable .table td[data-label] { grid-column: 2 / 4; }
  .v-admin .adm-libtable .table td[data-label="Questions"] { grid-column: 2; }
  .v-admin .adm-libtable .table td[data-label="Version"] { grid-column: 3; grid-row: 4; }
  .v-admin .adm-libtable .table td[data-label="Questions"]::before, .v-admin .adm-libtable .table td[data-label="Version"]::before { min-width: 0; }
  .v-admin .adm-libtable .table td[data-label="Last import"] { display: none !important; }
  .v-admin .adm-gtable .table td:first-child { grid-column: 1 / -1; margin-bottom: 4px; }
  .v-admin .adm-utable .adm-td-person { grid-column: 1; grid-row: 1; margin-bottom: 6px; }
  .v-admin .adm-empty-row { display: block !important; padding: 0 !important; }
  .v-admin .adm-empty-row td { grid-column: 1 / -1; }

  .v-admin .adm-dhead__main { align-items: flex-start; }
  .v-admin .adm-dhead .adm-cover--lg { width: 64px; height: 48px; }
  .v-admin .adm-dhead .h1 { font-size: 23px; }
  .v-admin .adm-stage { padding: 16px 10px; }
  .v-admin .adm-device--desktop .adm-device__screen { height: 420px; }
  .v-admin .adm-device__chrome span { margin-right: 0; }
  .v-admin .adm-lp__body { padding: 16px; }
  .v-admin .adm-q { grid-template-columns: 34px minmax(0, 1fr) auto; gap: 6px 10px; }
  .v-admin .adm-q__ans { grid-column: 2; grid-row: 2; justify-content: flex-start; max-width: none; }
  .v-admin .adm-q__edit { grid-column: 3; grid-row: 1 / span 2; padding: 0 9px; }
  .v-admin .adm-q__edit span { display: none; }
  .v-admin .adm-q__text { white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
  .v-admin .adm-crit { padding: 10px; }
  .v-admin .adm-crit__row { grid-template-columns: 22px auto minmax(0, 1fr); }
  .v-admin .adm-crit__name { grid-column: 2 / 4; }
  .v-admin .adm-crit__pts { grid-column: 2; grid-row: 2; }
  .v-admin .adm-crit__tools { grid-column: 3; grid-row: 2; justify-content: flex-end; }
  .v-admin .adm-crit__row { row-gap: 6px; }
  .v-admin .adm-crit__peek, .v-admin .adm-crit__more { margin-left: 0; }
  .v-admin .adm-crit__peek { white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; align-items: flex-start; }
  .v-admin .adm-crit__peek .adm-dot { display: none; }
  .v-admin .adm-crit__tools [data-cmove], .v-admin .adm-crit__tools [data-cdel] { display: none; }
  .v-admin .adm-crit__menu { display: inline-grid !important; }
  .v-admin .adm-crit__tools .icon-btn, .v-admin .adm-crit__pts .icon-btn { width: 40px; height: 40px; }
  .v-admin .adm-crit__pts .input { min-height: 40px; }
  .v-admin .adm-crit__desc { grid-template-columns: minmax(0, 1fr); }
  .v-admin .adm-rsend-why { text-align: left; }
  .v-admin .adm-rfoot__acts .btn--primary { flex: 1; }
  .v-admin .adm-req__facts { grid-template-columns: 1fr 1fr; }
  .v-admin .adm-req__head { flex-wrap: wrap; }
  .v-admin .adm-req__when { order: 3; width: 100%; padding-left: 52px; margin-top: -10px; }
  .v-admin .adm-detail__rail { order: 1; }
  .v-admin .adm-req__acts .btn { flex: 1 1 auto; }
  .v-admin .adm-req__reject { margin-left: 0; }
  .v-admin .adm-filters .adm-filter-sel { flex: 1 1 100%; min-width: 0; order: 2; }
  .v-admin .adm-filters .spacer { display: none; }
  .v-admin .adm-filters [data-action="csv"] { margin-left: auto; }
  .v-admin .adm-filters .adm-filter-sel .select { width: 100%; }
  .v-admin .adm-ai__stats { grid-template-columns: minmax(0, 1fr); }
  .v-admin .adm-ai__stats > div { grid-template-columns: minmax(0, 1fr) auto; align-items: baseline; }
  .v-admin .adm-ai__stats > div p { grid-column: 1 / -1; }
  .v-admin .adm-chart__kpi { justify-content: flex-start; }
  .v-admin .adm-chart .adm-card__head { flex-direction: column; }
  .v-admin .adm-order__item { gap: 8px; }
  .v-admin .adm-order__item .adm-cover { display: none; }
  .v-admin .adm-order__txt b { white-space: normal; }
}
@media (max-width: 420px) {
  .v-admin .adm-kpis { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .v-admin .adm-kpi__label { font-size: 12px; line-height: 1.3; min-height: 2.6em; }
  .v-admin .adm-xstats dd { font-size: 14px; }
  .v-admin .adm-lib__list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* Admin tab bar on very small phones: the two least-used tabs go icon-only (labels stay for screen readers). */
@media (max-width: 360px) {
  html[data-layout="admin"] .tabbar__item[data-nav="admin-upload"] span,
  html[data-layout="admin"] .tabbar__item[data-nav="admin-users"] span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}

/* ---------- Reduced motion ---------- */
html[data-motion="reduced"] .v-admin .adm-bar > i, html[data-motion="reduced"] .v-admin .adm-order__item { transition: none !important; }
html[data-motion="reduced"] .v-admin .adm-bar > i::after { display: none; }
@media (prefers-reduced-motion: reduce) {
  .v-admin .adm-bar > i::after { display: none; }
}
