:root {
  color-scheme: light;
  --ink: #1d2622;
  --muted: #6b756f;
  --paper: #f5f1e8;
  --panel: rgba(255, 255, 255, 0.74);
  --line: rgba(43, 64, 54, 0.13);
  --green: #174f3b;
  --green-soft: #e0eee6;
  --gold: #a87425;
  --red: #a64035;
  --shadow: 0 20px 60px rgba(45, 57, 49, 0.08);
}

* { box-sizing: border-box; }

body {
  margin: 0;
  color: var(--ink);
  background:
    radial-gradient(circle at 9% 8%, rgba(195, 155, 78, 0.17), transparent 27rem),
    radial-gradient(circle at 92% 2%, rgba(41, 100, 76, 0.14), transparent 30rem),
    var(--paper);
  font-family: Inter, "PingFang SC", "Microsoft YaHei", sans-serif;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  opacity: 0.16;
  background-image: linear-gradient(rgba(30, 53, 42, 0.18) 1px, transparent 1px), linear-gradient(90deg, rgba(30, 53, 42, 0.18) 1px, transparent 1px);
  background-size: 48px 48px;
  mask-image: linear-gradient(to bottom, black, transparent 75%);
}

[hidden] { display: none !important; }
.auth-shell { min-height: 100vh; display: grid; place-items: center; padding: 32px; position: relative; }
.auth-card { width: min(980px, 100%); display: grid; grid-template-columns: 1.15fr .85fr; overflow: hidden; border: 1px solid var(--line); border-radius: 28px; background: rgba(255,255,255,.82); box-shadow: 0 28px 90px rgba(29,50,41,.16); backdrop-filter: blur(20px); }
.auth-brand { display: flex; flex-direction: column; justify-content: center; padding: clamp(32px, 6vw, 72px); background: linear-gradient(145deg, rgba(23,79,59,.96), rgba(29,64,50,.9)); color: white; }
.auth-brand .eyebrow { color: #d8ba7b; }
.auth-brand h1 { max-width: 520px; font-size: clamp(34px, 5vw, 56px); }
.auth-brand p, .auth-brand small { color: rgba(255,255,255,.7); }
.auth-boundary { margin-top: 28px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.18); display: grid; gap: 6px; }
.auth-boundary span { color: #d8ba7b; font-size: 11px; font-weight: 800; letter-spacing: .12em; }
.auth-boundary strong { font-size: 14px; }
.auth-form { display: grid; align-content: center; gap: 14px; padding: clamp(28px, 5vw, 58px); }
.auth-form label, .catalog-form label, .user-form label { display: grid; gap: 6px; color: var(--muted); font-size: 11px; font-weight: 700; }
.auth-form input, .catalog-form input, .user-form input, .user-form select, .catalog-item input, .catalog-item textarea { width: 100%; border: 1px solid var(--line); border-radius: 9px; padding: 10px 11px; color: var(--ink); background: rgba(255,255,255,.78); font: inherit; font-size: 12px; }
.capture-banner { margin-bottom: 12px; padding: 9px 13px; border: 1px solid rgba(168,116,37,.28); border-radius: 10px; color: #76531b; background: rgba(255,247,228,.9); font-size: 11px; font-weight: 800; letter-spacing: .05em; text-align: center; }
.module-nav { position: sticky; top: 8px; z-index: 10; display: flex; gap: 6px; overflow-x: auto; margin-bottom: 16px; padding: 8px; border: 1px solid var(--line); border-radius: 14px; background: rgba(245,241,232,.9); box-shadow: var(--shadow); backdrop-filter: blur(16px); }
.module-nav a { flex: 0 0 auto; padding: 7px 10px; border-radius: 8px; color: var(--green); font-size: 11px; font-weight: 800; text-decoration: none; }
.module-nav a:hover, .module-nav a:focus-visible { background: rgba(23,79,59,.08); }
.section-anchor { scroll-margin-top: 72px; }
.badge.green { color: var(--green); border-color: rgba(23,79,59,.32); }
button.compact { padding: 7px 10px; font-size: 11px; }

.shell { width: min(1440px, calc(100% - 48px)); margin: 0 auto; padding: 42px 0 80px; position: relative; }
.topbar { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; margin-bottom: 28px; }
.eyebrow, .section-label { color: var(--gold); font-size: 12px; font-weight: 800; letter-spacing: 0.16em; text-transform: uppercase; }
h1 { margin: 8px 0 4px; font-family: "Songti SC", STSong, serif; font-size: clamp(34px, 5vw, 58px); line-height: 1; letter-spacing: -0.04em; }
h2 { margin: 6px 0 0; font-size: 21px; }
h3 { margin: 12px 0 8px; font-size: 17px; }
p { color: var(--muted); line-height: 1.7; }
.topbar p { margin: 0; }
.status-stack { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.badge { border: 1px solid; border-radius: 999px; padding: 8px 12px; font-size: 12px; font-weight: 700; background: rgba(255,255,255,.5); }
.badge.amber { color: #805918; border-color: #c8a65d; }
.badge.red { color: var(--red); border-color: #c88b83; }
.summary-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 14px; }
.summary-card, .panel { border: 1px solid var(--line); background: var(--panel); box-shadow: var(--shadow); backdrop-filter: blur(14px); }
.summary-card { min-height: 132px; padding: 20px; border-radius: 18px; display: flex; flex-direction: column; }
.summary-card span { color: var(--muted); font-size: 13px; }
.summary-card strong { font-family: Georgia, serif; color: var(--green); font-size: 38px; margin: 8px 0 2px; }
.summary-card small { color: #87908b; }
.panel { border-radius: 22px; padding: 24px; }
.hero-panel { display: grid; grid-template-columns: 1.6fr .8fr; gap: 28px; align-items: center; margin-bottom: 14px; background: linear-gradient(115deg, rgba(255,255,255,.8), rgba(230,239,232,.82)); }
.hero-panel h2 { font-family: "Songti SC", STSong, serif; font-size: clamp(24px, 3vw, 38px); max-width: 760px; }
.boundary-card { border-left: 3px solid var(--green); padding: 10px 0 10px 20px; display: flex; flex-direction: column; gap: 5px; }
.boundary-card span, .boundary-card small { color: var(--muted); }
.boundary-card strong { color: var(--green); font-size: 21px; }
.governance-grid { display: grid; grid-template-columns: 1.12fr .88fr; gap: 14px; margin-bottom: 14px; }
.governance-metrics { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.governance-metrics article { padding: 13px 11px; border: 1px solid var(--line); border-radius: 13px; background: rgba(255,255,255,.44); min-width: 0; }
.governance-metrics span, .governance-metrics strong, .governance-metrics small { display: block; }
.governance-metrics span { min-height: 30px; color: var(--muted); font-size: 10px; line-height: 1.4; }
.governance-metrics strong { margin: 6px 0 4px; color: var(--green); font-family: Georgia, serif; font-size: clamp(19px, 2.1vw, 27px); overflow-wrap: anywhere; }
.governance-metrics small { color: var(--muted); font-size: 10px; line-height: 1.4; }
.rule-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 7px; margin-top: 12px; }
.rule-list article { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 8px; align-items: center; padding: 11px; border-radius: 12px; background: rgba(23,79,59,.045); }
.rule-list span { color: var(--gold); font-size: 9px; font-weight: 800; letter-spacing: .08em; }
.rule-list strong { grid-column: 1 / -1; font-size: 12px; line-height: 1.4; }
.rule-list a, .scan-findings a { color: var(--green); font-size: 10px; font-weight: 700; text-decoration-thickness: 1px; text-underline-offset: 2px; }
.rule-level { justify-self: end; border-radius: 999px; padding: 3px 6px; color: var(--muted); background: rgba(255,255,255,.65); font-size: 8px; font-style: normal; font-weight: 800; }
.rule-level.block { color: var(--red); background: rgba(166,64,53,.08); }
.rule-level.needs_evidence, .rule-level.manual_review { color: #805918; background: rgba(168,116,37,.1); }
.priority-list { counter-reset: priority; display: grid; gap: 7px; margin: 13px 0 0; padding: 0; list-style: none; }
.priority-list li { counter-increment: priority; display: flex; align-items: center; gap: 10px; padding: 9px 11px; border-radius: 11px; background: rgba(23,79,59,.045); font-size: 12px; font-weight: 700; }
.priority-list li::before { content: counter(priority, decimal-leading-zero); color: var(--gold); font: 700 10px Georgia, serif; }
.content-review-panel { margin-bottom: 14px; }
.content-review-panel[aria-busy="true"] .review-workspace { opacity: .62; }
.review-workspace { display: grid; grid-template-columns: minmax(300px, .8fr) minmax(0, 1.2fr); gap: 18px; align-items: start; }
.content-review-form, .content-decision-fields { display: grid; gap: 11px; }
.content-review-form label { display: grid; gap: 6px; color: var(--muted); font-size: 11px; font-weight: 700; }
.content-review-form input, .content-review-form select, .content-review-form textarea, .content-decision-fields input, .content-decision-fields textarea { width: 100%; border: 1px solid var(--line); border-radius: 10px; padding: 10px 11px; color: var(--ink); background: rgba(255,255,255,.7); font: inherit; font-size: 12px; }
.content-review-form textarea { min-height: 144px; resize: vertical; line-height: 1.6; }
.content-decision-fields textarea { min-height: 68px; resize: vertical; }
.review-flags { display: grid; gap: 7px; padding: 10px; border-radius: 10px; background: rgba(168,116,37,.055); }
.review-flags label { display: flex; grid-template-columns: none; align-items: flex-start; gap: 8px; font-weight: 500; line-height: 1.5; }
.review-flags input { width: auto; margin-top: 2px; }
.content-review-result { min-width: 0; }
.scan-summary { display: grid; grid-template-columns: 1.4fr repeat(3, .7fr); gap: 7px; margin-bottom: 10px; }
.scan-summary > div { padding: 11px; border-radius: 11px; background: rgba(23,79,59,.05); min-width: 0; }
.scan-summary span, .scan-summary strong { display: block; }
.scan-summary span { color: var(--muted); font-size: 9px; }
.scan-summary strong { margin-top: 5px; color: var(--green); font-size: 14px; overflow-wrap: anywhere; }
.scan-findings { display: grid; gap: 7px; }
.scan-findings article { border: 1px solid var(--line); border-left: 4px solid var(--gold); border-radius: 11px; padding: 11px 12px; background: rgba(255,255,255,.5); }
.scan-findings article.block { border-left-color: var(--red); }
.scan-findings article.manual_review { border-left-color: var(--green); }
.scan-findings article > div { display: flex; justify-content: space-between; gap: 10px; color: var(--muted); font-size: 9px; }
.scan-findings article em { color: var(--gold); font-style: normal; font-weight: 800; }
.scan-findings article.block em { color: var(--red); }
.scan-findings article strong { display: block; margin: 7px 0 3px; font-size: 12px; }
.scan-findings article p { margin: 0 0 6px; font-size: 11px; line-height: 1.55; }
.scan-findings article small { display: block; margin: 0 0 6px; color: var(--muted); }
.content-decision-fields { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line); }
.oms-panel { margin-bottom: 14px; background: linear-gradient(135deg, rgba(255,255,255,.8), rgba(239,233,215,.72)); }
.oms-summary { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; margin-bottom: 14px; }
.oms-summary article { padding: 13px 11px; border: 1px solid var(--line); border-radius: 13px; background: rgba(255,255,255,.5); }
.oms-summary span, .oms-summary strong { display: block; }
.oms-summary span { min-height: 28px; color: var(--muted); font-size: 10px; line-height: 1.4; }
.oms-summary strong { margin-top: 4px; color: var(--green); font: 700 25px Georgia, serif; }
.oms-workspace { display: grid; grid-template-columns: minmax(270px, .65fr) minmax(0, 1.35fr); gap: 16px; align-items: start; }
.oms-import-form { display: grid; gap: 10px; padding: 16px; border: 1px solid var(--line); border-radius: 15px; background: rgba(255,255,255,.52); }
.oms-import-form h3 { margin: 0; }
.oms-import-form > p { margin: 0 0 2px; font-size: 11px; line-height: 1.55; }
.oms-import-form label { display: grid; gap: 5px; color: var(--muted); font-size: 10px; font-weight: 700; }
.oms-import-form input, .oms-order-review input, .oms-order-review textarea { width: 100%; border: 1px solid var(--line); border-radius: 9px; padding: 9px 10px; color: var(--ink); background: rgba(255,255,255,.78); font: inherit; font-size: 11px; }
.oms-form-grid { display: grid; grid-template-columns: 1.5fr .65fr 1fr; gap: 8px; }
.oms-toolbar { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.oms-toolbar div { display: grid; gap: 3px; }
.oms-toolbar small { color: var(--muted); line-height: 1.45; }
.oms-orders { display: grid; gap: 9px; }
.oms-order { border: 1px solid var(--line); border-left: 4px solid var(--gold); border-radius: 14px; padding: 14px; background: rgba(255,255,255,.58); }
.oms-order.shipped, .oms-order.delivered, .oms-order.completed { border-left-color: var(--green); }
.oms-order.review_rejected, .oms-order.after_sales, .oms-order.cancelled { border-left-color: var(--red); }
.oms-order-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.oms-order-heading span { display: block; color: var(--muted); font-size: 9px; }
.oms-order-heading strong { display: block; margin-top: 4px; font-size: 13px; }
.oms-status { border-radius: 999px; padding: 5px 8px; color: #805918; background: rgba(168,116,37,.1); font-size: 9px; font-weight: 800; white-space: nowrap; }
.oms-order-meta { display: grid; grid-template-columns: repeat(4, 1fr); gap: 7px; margin: 11px 0; }
.oms-order-meta div { padding: 8px; border-radius: 9px; background: rgba(23,79,59,.045); }
.oms-order-meta span, .oms-order-meta strong { display: block; }
.oms-order-meta span { color: var(--muted); font-size: 8px; }
.oms-order-meta strong { margin-top: 3px; font-size: 10px; overflow-wrap: anywhere; }
.oms-history { display: flex; gap: 5px; overflow-x: auto; padding: 2px 0 8px; }
.oms-history span { flex: 0 0 auto; padding: 5px 7px; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); font-size: 8px; background: rgba(255,255,255,.6); }
.oms-order-review { display: grid; grid-template-columns: .65fr 1.25fr .9fr; gap: 7px; margin-top: 8px; }
.oms-order-review textarea { min-height: 54px; resize: vertical; }
.oms-order-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; grid-column: 1 / -1; }
.oms-order-actions button { padding: 7px 9px; font-size: 10px; }
.oms-order-actions button.danger { color: var(--red); background: rgba(166,64,53,.07); border: 1px solid rgba(166,64,53,.2); }
.oms-empty { padding: 24px; border: 1px dashed var(--line); border-radius: 13px; color: var(--muted); text-align: center; }
.catalog-panel, .access-panel { margin-bottom: 14px; }
.catalog-summary { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; margin-bottom: 15px; }
.catalog-summary article { padding: 12px; border: 1px solid var(--line); border-radius: 12px; background: rgba(23,79,59,.045); }
.catalog-summary span, .catalog-summary strong { display: block; }
.catalog-summary span { color: var(--muted); font-size: 9px; }
.catalog-summary strong { margin-top: 5px; color: var(--green); font: 700 23px Georgia, serif; }
.catalog-workspace, .access-workspace { display: grid; grid-template-columns: minmax(270px,.72fr) minmax(0,1.28fr); gap: 16px; align-items: start; }
.catalog-form, .user-form { display: grid; gap: 9px; padding: 15px; border: 1px solid var(--line); border-radius: 14px; background: rgba(255,255,255,.5); }
.catalog-form h3, .user-form h3 { margin-top: 0; }
.catalog-form p { margin: -2px 0 3px; font-size: 11px; }
.catalog-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.catalog-toolbar { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.catalog-toolbar div { display: grid; gap: 3px; }
.catalog-toolbar small { color: var(--muted); line-height: 1.45; }
.catalog-items, .user-list { display: grid; gap: 9px; }
.catalog-product-group { display: grid; gap: 7px; }
.catalog-product-actions { display: flex; align-items: center; justify-content: flex-end; gap: 6px; flex-wrap: wrap; color: var(--muted); font-size: 9px; }
.catalog-product-actions span { margin-right: auto; }
.catalog-product-actions button { padding: 6px 8px; font-size: 9px; }
.catalog-item, .user-item { border: 1px solid var(--line); border-left: 4px solid var(--green); border-radius: 13px; padding: 13px; background: rgba(255,255,255,.57); }
.catalog-item.low-stock { border-left-color: var(--red); }
.catalog-item-heading, .user-item-heading { display: flex; justify-content: space-between; gap: 12px; }
.catalog-item-heading span, .user-item-heading span { display: block; color: var(--muted); font-size: 9px; }
.catalog-item-heading strong, .user-item-heading strong { display: block; margin-top: 4px; font-size: 13px; }
.catalog-meta { display: grid; grid-template-columns: repeat(6,1fr); gap: 6px; margin: 10px 0; }
.catalog-meta div { padding: 7px; border-radius: 8px; background: rgba(23,79,59,.045); }
.catalog-meta span, .catalog-meta strong { display: block; }
.catalog-meta span { color: var(--muted); font-size: 8px; }
.catalog-meta strong { margin-top: 3px; font-size: 10px; overflow-wrap: anywhere; }
.catalog-actions { display: grid; grid-template-columns: .8fr 1fr 1.3fr auto; gap: 7px; align-items: end; }
.catalog-actions label { display: grid; gap: 4px; color: var(--muted); font-size: 8px; }
.role-matrix { display: grid; grid-template-columns: repeat(4,1fr); gap: 8px; margin-bottom: 15px; }
.role-card { padding: 12px; border: 1px solid var(--line); border-radius: 12px; background: rgba(23,79,59,.045); }
.role-card span, .role-card strong, .role-card small { display: block; }
.role-card span { color: var(--gold); font-size: 9px; font-weight: 800; }
.role-card strong { margin: 5px 0; font-size: 12px; }
.role-card small { color: var(--muted); line-height: 1.45; }
.user-item-meta { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 9px; }
.user-item-meta span { padding: 4px 7px; border-radius: 999px; color: var(--muted); background: rgba(23,79,59,.055); font-size: 9px; }
.user-admin-actions { display: grid; grid-template-columns: 1fr 1fr auto 1.2fr auto; gap: 7px; margin-top: 10px; }
.user-admin-actions input, .user-admin-actions select { min-width: 0; border: 1px solid var(--line); border-radius: 8px; padding: 8px; color: var(--ink); background: rgba(255,255,255,.75); font: inherit; font-size: 10px; }
.user-admin-actions button { padding: 7px 8px; font-size: 9px; }
.ingestion-panel { margin-bottom: 14px; background: linear-gradient(135deg, rgba(255,255,255,.82), rgba(228,239,232,.7)); }
.ingestion-workspace { display: grid; grid-template-columns: minmax(280px,.72fr) minmax(0,1.28fr); gap: 16px; align-items: start; }
.report-import-form { display: grid; gap: 10px; padding: 16px; border: 1px solid var(--line); border-radius: 15px; background: rgba(255,255,255,.54); }
.report-import-form h3 { margin: 0; }
.report-import-form > p { margin: 0 0 2px; font-size: 11px; line-height: 1.55; }
.report-import-form label { display: grid; gap: 6px; color: var(--muted); font-size: 10px; font-weight: 700; }
.report-import-form input { width: 100%; border: 1px solid var(--line); border-radius: 9px; padding: 9px 10px; color: var(--ink); background: rgba(255,255,255,.78); font: inherit; font-size: 11px; }
.report-import-form[aria-busy="true"] { opacity: .62; pointer-events: none; }
.ingestion-toolbar { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.ingestion-toolbar div { display: grid; gap: 4px; }
.ingestion-toolbar small { color: var(--muted); line-height: 1.5; }
.report-preflight-results, .import-batch-list { display: grid; gap: 8px; }
.report-preflight-results { margin-bottom: 12px; }
.preflight-card, .import-batch-card { border: 1px solid var(--line); border-left: 4px solid var(--gold); border-radius: 13px; padding: 12px; background: rgba(255,255,255,.58); }
.preflight-card.ready, .preflight-card.ready_with_redaction, .import-batch-card.validated, .import-batch-card.published { border-left-color: var(--green); }
.preflight-card.blocked, .import-batch-card.rejected, .import-batch-card.conflict { border-left-color: var(--red); }
.preflight-heading, .import-batch-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.preflight-heading span, .import-batch-heading span { color: var(--muted); font-size: 9px; }
.preflight-heading strong, .import-batch-heading strong { display: block; margin-top: 3px; font-size: 12px; }
.preflight-meta, .import-batch-meta { display: grid; grid-template-columns: repeat(4,1fr); gap: 6px; margin-top: 9px; }
.preflight-meta div, .import-batch-meta div { padding: 7px; border-radius: 8px; background: rgba(23,79,59,.045); min-width: 0; }
.preflight-meta span, .preflight-meta strong, .import-batch-meta span, .import-batch-meta strong { display: block; }
.preflight-meta span, .import-batch-meta span { color: var(--muted); font-size: 8px; }
.preflight-meta strong, .import-batch-meta strong { margin-top: 3px; font-size: 9px; overflow-wrap: anywhere; }
.import-withdraw-button { margin-top: 9px; }
.context-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 14px; margin-bottom: 14px; }
.quality-pill { border: 1px solid var(--line); border-radius: 999px; padding: 7px 10px; color: var(--muted); font-size: 11px; font-weight: 800; white-space: nowrap; }
.quality-pill.passed { color: var(--green); background: var(--green-soft); border-color: rgba(23,79,59,.2); }
.quality-pill.failed { color: var(--red); background: rgba(166,64,53,.08); border-color: rgba(166,64,53,.24); }
.quality-pill.neutral { color: #805918; background: rgba(168,116,37,.08); border-color: rgba(168,116,37,.24); }
.source-details { display: grid; grid-template-columns: 1fr 1.5fr; gap: 14px; }
.source-details > div { padding: 12px 0; border-bottom: 1px solid var(--line); min-width: 0; }
.source-details span, .source-details strong { display: block; }
.source-details span { color: var(--muted); font-size: 11px; margin-bottom: 5px; }
.source-details strong { font-size: 13px; overflow-wrap: anywhere; }
.quality-details { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-top: 16px; }
.quality-details > div { padding: 12px; border-radius: 12px; background: rgba(23,79,59,.055); }
.quality-details strong, .quality-details span { display: block; }
.quality-details strong { color: var(--green); font-family: Georgia, serif; font-size: 22px; }
.quality-details span { color: var(--muted); font-size: 11px; margin-top: 2px; }
.source-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
#snapshot-file { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.file-button, .button-link { display: inline-flex; align-items: center; justify-content: center; border-radius: 9px; padding: 9px 13px; font-size: 13px; font-weight: 700; cursor: pointer; text-decoration: none; }
.file-button { background: var(--green); color: white; }
.button-link.secondary { background: transparent; color: var(--ink); border: 1px solid var(--line); }
.file-button:focus-within, .button-link:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid rgba(168,116,37,.35); outline-offset: 2px; }
.source-note { font-size: 12px; margin: 12px 0 0; }
.import-message { min-height: 20px; margin-top: 10px; color: var(--muted); font-size: 12px; }
.import-message.success { color: var(--green); }
.import-message.error { color: var(--red); }
.import-errors { display: grid; gap: 4px; margin: 7px 0 0; padding: 0; list-style: none; }
.import-errors li { padding: 6px 8px; border-radius: 7px; color: var(--red); background: rgba(166,64,53,.06); font-size: 11px; overflow-wrap: anywhere; }
.blocked-details { margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--line); }
.blocked-details ul { display: grid; gap: 4px; margin: 8px 0 0; padding: 0; list-style: none; }
.blocked-details li { color: var(--muted); font-size: 11px; }
.source-actions.busy { opacity: .6; pointer-events: none; }
.audience-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.audience-metrics article { padding: 16px 12px; border: 1px solid var(--line); border-radius: 14px; background: rgba(255,255,255,.45); }
.audience-metrics span, .audience-metrics strong { display: block; }
.audience-metrics span { min-height: 32px; color: var(--muted); font-size: 11px; line-height: 1.45; }
.audience-metrics strong { color: var(--green); font-family: Georgia, serif; font-size: clamp(23px, 2.7vw, 34px); margin-top: 8px; }
.experiment-panel { margin-bottom: 14px; }
.experiments { display: grid; grid-template-columns: 7fr 3fr; gap: 12px; }
.experiment-card { border: 1px solid var(--line); border-top: 4px solid var(--green); border-radius: 16px; padding: 18px; background: rgba(255,255,255,.5); min-width: 0; }
.experiment-card:nth-child(2) { border-top-color: var(--gold); }
.experiment-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.experiment-heading span { color: var(--muted); font-size: 10px; letter-spacing: .08em; }
.experiment-heading h3 { margin-top: 5px; }
.experiment-heading > strong { color: var(--green); font-family: Georgia, serif; font-size: 32px; }
.experiment-card:nth-child(2) .experiment-heading > strong { color: var(--gold); }
.experiment-card > p { margin: 4px 0 14px; font-size: 13px; }
.stage-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.stage-list > div { padding: 12px; border-radius: 12px; background: rgba(23,79,59,.055); }
.stage-list span, .stage-list strong, .stage-list small { display: block; }
.stage-list span { color: var(--gold); font-size: 10px; font-weight: 800; }
.stage-list strong { margin: 5px 0; font-size: 12px; }
.stage-list small { color: var(--muted); line-height: 1.55; }
.experiment-meta { display: grid; grid-template-columns: repeat(2, 1fr); gap: 7px 18px; margin: 14px 0 0; }
.experiment-meta div { display: grid; grid-template-columns: 68px 1fr; gap: 7px; font-size: 11px; }
.experiment-meta dt { color: var(--muted); }
.experiment-meta dd { margin: 0; }
.experiment-footer { margin-top: 13px; padding-top: 12px; border-top: 1px solid var(--line); color: var(--muted); font-size: 11px; line-height: 1.55; }
.empty-state { padding: 22px; border: 1px dashed var(--line); border-radius: 14px; color: var(--muted); }
.content-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(340px, .75fr); gap: 14px; }
.panel-heading { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 18px; }
.muted { color: var(--muted); font-size: 13px; }
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; min-width: 680px; }
th { color: var(--muted); font-size: 12px; font-weight: 600; text-align: right; padding: 12px 10px; border-bottom: 1px solid var(--line); }
th:first-child, td:first-child { text-align: left; }
td { text-align: right; padding: 18px 10px; border-bottom: 1px solid var(--line); font-variant-numeric: tabular-nums; }
td strong, td small { display: block; }
td small { color: var(--muted); margin-top: 4px; }
.positive { color: #25714f; }
.negative { color: var(--red); }
.recommendations { display: grid; gap: 12px; }
.recommendation { border: 1px solid var(--line); border-left: 4px solid var(--gold); border-radius: 14px; padding: 16px; background: rgba(255,255,255,.55); }
.recommendation.high { border-left-color: var(--red); }
.recommendation.opportunity { border-left-color: var(--green); }
.recommendation-top { display: flex; justify-content: space-between; color: var(--muted); font-size: 12px; }
.recommendation p { margin: 0 0 10px; font-size: 13px; }
.state { font-weight: 700; }
.policy-note { background: rgba(25, 79, 59, 0.07); border-radius: 9px; padding: 9px 10px; color: var(--green); font-size: 12px; }
.evidence-chips { display: flex; gap: 5px; flex-wrap: wrap; margin: 10px 0; }
.evidence-chips span { padding: 5px 7px; background: rgba(168,116,37,.08); border: 1px solid rgba(168,116,37,.16); border-radius: 7px; color: #76531b; font-size: 10px; }
details { margin-top: 10px; }
summary { color: var(--green); font-size: 12px; font-weight: 700; cursor: pointer; }
details p { margin: 8px 0 0; font-size: 11px !important; }
.check-list { display: grid; gap: 5px; list-style: none; margin: 10px 0; padding: 0; }
.check-list li { display: grid; grid-template-columns: 62px 1fr; gap: 7px; color: var(--muted); font-size: 11px; line-height: 1.45; }
.check-list strong { color: var(--green); text-transform: uppercase; font-size: 9px; }
.check-list .blocked strong { color: var(--red); }
.review-fields { display: grid; gap: 7px; margin-top: 12px; }
.review-fields input, .review-fields textarea { width: 100%; border: 1px solid var(--line); border-radius: 9px; padding: 9px 10px; color: var(--ink); background: rgba(255,255,255,.65); font: inherit; font-size: 12px; }
.review-fields textarea { resize: vertical; min-height: 64px; }
.actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 13px; }
button { border: 0; border-radius: 9px; padding: 9px 13px; background: var(--green); color: white; font-weight: 700; cursor: pointer; }
button.secondary { background: transparent; color: var(--ink); border: 1px solid var(--line); }
button:disabled { opacity: .35; cursor: not-allowed; }
.decision-result { margin-top: 12px; color: var(--muted); font-size: 12px; }
.audit-panel { margin-top: 14px; }
.audit-log { display: grid; gap: 8px; }
.audit-log > div { display: grid; grid-template-columns: 190px 1fr 100px; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--line); font-size: 13px; }
.audit-log span, .audit-log em { color: var(--muted); font-style: normal; }

@media (max-width: 960px) {
  .summary-grid { grid-template-columns: repeat(2, 1fr); }
  .content-grid, .hero-panel, .context-grid, .experiments, .governance-grid, .review-workspace, .oms-workspace, .catalog-workspace, .access-workspace, .ingestion-workspace, .auth-card { grid-template-columns: 1fr; }
  .catalog-summary, .role-matrix { grid-template-columns: repeat(2,1fr); }
}

@media (max-width: 620px) {
  .shell { width: min(100% - 24px, 1440px); padding-top: 24px; }
  .topbar { flex-direction: column; }
  .status-stack { justify-content: flex-start; }
  .summary-grid { grid-template-columns: 1fr; }
  .panel, .summary-card { border-radius: 16px; }
  .auth-shell { padding: 12px; }
  .auth-brand, .auth-form { padding: 26px; }
  .source-details, .quality-details, .audience-metrics, .stage-list, .experiment-meta, .governance-metrics, .rule-list, .scan-summary, .oms-summary, .oms-form-grid, .oms-order-meta, .oms-order-review, .catalog-summary, .catalog-form-grid, .catalog-meta, .catalog-actions, .role-matrix, .user-admin-actions { grid-template-columns: 1fr; }
  .oms-order-actions { grid-column: auto; justify-content: flex-start; }
  .audit-log > div { grid-template-columns: 1fr; gap: 4px; }
}

