:root {
  color-scheme: light;
  --brand-900: #0b4f4a;
  --brand-800: #0f625b;
  --brand-700: #0f766e;
  --brand-600: #0d9488;
  --brand-300: #5eead4;
  --brand-100: #ccfbf1;
  --brand-50: #f0fdfa;
  --ink-950: #172322;
  --ink-800: #263a38;
  --ink-700: #38504e;
  --ink-600: #58706d;
  --ink-500: #728784;
  --ink-300: #b8c6c4;
  --ink-200: #d8e1df;
  --ink-100: #e9efee;
  --ink-50: #f6f8f8;
  --line: var(--ink-100);
  --surface-soft: var(--ink-50);
  --text-500: var(--ink-500);
  --text-700: var(--ink-700);
  --text-900: var(--ink-950);
  --paper: #ffffff;
  --canvas: #f4f7f6;
  --blue: #2563eb;
  --blue-50: #eff6ff;
  --amber: #b45309;
  --amber-50: #fffbeb;
  --red: #b42318;
  --red-50: #fff1f0;
  --green: #15803d;
  --green-50: #f0fdf4;
  --violet: #7c3aed;
  --shadow-sm: 0 1px 2px rgba(14, 37, 34, .06), 0 1px 4px rgba(14, 37, 34, .04);
  --shadow-md: 0 12px 32px rgba(14, 37, 34, .12);
  --radius-sm: 8px;
  --radius: 12px;
  --radius-lg: 18px;
  --sidebar: 248px;
  --topbar: 68px;
  font-family: Inter, "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", system-ui, sans-serif;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { min-width: 320px; background: var(--canvas); }
body { margin: 0; color: var(--ink-950); background: var(--canvas); font-size: 14px; line-height: 1.55; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid rgba(13, 148, 136, .18); outline-offset: 1px; }
h1, h2, h3, p { margin-top: 0; }
h1 { margin-bottom: 8px; font-size: 28px; line-height: 1.24; letter-spacing: -.02em; }
h2 { margin-bottom: 4px; font-size: 18px; line-height: 1.35; }
h3 { margin-bottom: 4px; font-size: 15px; }
p { margin-bottom: 0; }
.is-hidden { display: none !important; }
.muted, small { color: var(--ink-600); }
.eyebrow { margin-bottom: 7px; color: var(--brand-700); font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }

.prototype-note { position: fixed; z-index: 100; right: 18px; bottom: 16px; display: flex; gap: 8px; align-items: center; padding: 8px 10px; border: 1px solid #d4dfdd; border-radius: 9px; color: var(--ink-700); background: rgba(255, 255, 255, .94); box-shadow: var(--shadow-sm); font-size: 11px; backdrop-filter: blur(8px); }
.prototype-note span { padding: 2px 6px; border-radius: 5px; color: var(--brand-800); background: var(--brand-50); font-weight: 800; }

.brand-mark { display: inline-grid; width: 38px; height: 38px; place-items: center; border-radius: 11px; color: #fff; background: var(--brand-700); font-size: 14px; font-weight: 900; letter-spacing: -.03em; box-shadow: inset 0 0 0 1px rgba(255,255,255,.18); }
.brand-mark-large { width: 58px; height: 58px; border-radius: 16px; color: var(--brand-900); background: #fff; font-size: 20px; }

/* Session bootstrap */
.session-restore-screen { min-height: 100vh; display: grid; place-items: center; padding: 28px; background: radial-gradient(circle at 50% 35%, #fffef3 0, #f8f5df 34%, var(--canvas) 72%); }
.session-restore-card { width: min(430px, 100%); padding: 42px; border: 1px solid #e5dfb7; border-radius: 22px; background: rgba(255, 255, 255, .96); box-shadow: var(--shadow-md); text-align: center; }
.session-restore-mark { width: 52px; height: 52px; margin-bottom: 20px; color: #231815; background: #f4cd1e; font-size: 18px; }
.session-restore-card .eyebrow { margin-bottom: 8px; color: var(--brand-700); }
.session-restore-card h1 { margin-bottom: 10px; font-size: 25px; }
.session-restore-card > p:last-of-type { color: var(--ink-600); }
.session-restore-progress { height: 4px; overflow: hidden; margin-top: 28px; border-radius: 999px; background: var(--ink-100); }
.session-restore-progress i { display: block; width: 42%; height: 100%; border-radius: inherit; background: var(--brand-600); animation: session-restore-progress 1.15s ease-in-out infinite alternate; }
@keyframes session-restore-progress { from { transform: translateX(-12%); } to { transform: translateX(150%); } }

/* Login */
.login-screen { min-height: 100vh; display: grid; grid-template-columns: minmax(420px, 1fr) minmax(420px, .88fr); }
.login-brand { position: relative; display: flex; flex-direction: column; justify-content: center; overflow: hidden; padding: 8vw; color: #fff; background: var(--brand-900); }
.login-brand::before { content: ""; position: absolute; width: 520px; height: 520px; right: -210px; top: -160px; border: 1px solid rgba(255,255,255,.13); border-radius: 50%; box-shadow: 0 0 0 82px rgba(255,255,255,.035), 0 0 0 164px rgba(255,255,255,.022); }
.login-brand > * { position: relative; z-index: 1; max-width: 620px; }
.login-brand .eyebrow { margin-top: 40px; color: #a8efe4; }
.login-brand h1 { margin-bottom: 24px; font-size: clamp(38px, 4.2vw, 66px); line-height: 1.13; letter-spacing: -.04em; }
.login-lead { max-width: 570px; color: #d7ebe8; font-size: 17px; }
.login-flow { display: flex; align-items: center; gap: 11px; margin-top: 54px; color: #d8eeeb; font-size: 13px; }
.login-flow span { padding: 8px 11px; border: 1px solid rgba(255,255,255,.2); border-radius: 8px; background: rgba(255,255,255,.06); }
.login-flow i { width: 22px; height: 1px; background: rgba(255,255,255,.36); }
.login-footnote { position: absolute; bottom: 36px; color: #a9c9c5; font-size: 12px; }
.login-panel { display: grid; place-items: center; padding: 40px; background: #f8fbfa; }
.login-card { width: min(410px, 100%); padding: 40px; border: 1px solid var(--ink-200); border-radius: 20px; background: var(--paper); box-shadow: var(--shadow-md); }
.login-card h2 { margin-bottom: 5px; font-size: 27px; }
.login-card > .muted { margin-bottom: 28px; }
.mobile-brand { display: none; align-items: center; gap: 12px; margin-bottom: 28px; }
.field { display: flex; flex-direction: column; gap: 7px; margin-bottom: 17px; }
.field > span { color: var(--ink-800); font-size: 13px; font-weight: 700; }
.field input, .field select, .field textarea, .small-search input, .global-search input { width: 100%; border: 1px solid var(--ink-200); border-radius: 9px; background: #fff; transition: border-color .15s, box-shadow .15s; }
.field input, .field select { height: 42px; padding: 0 12px; }
.field textarea { resize: vertical; padding: 10px 12px; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--brand-600); box-shadow: 0 0 0 3px rgba(13,148,136,.1); outline: none; }
.field small { margin-top: -2px; font-size: 11px; }
.login-options { display: flex; justify-content: space-between; align-items: center; margin: 4px 0 22px; }
.check { display: flex; align-items: center; gap: 8px; color: var(--ink-700); }
.check input { width: 16px; height: 16px; accent-color: var(--brand-700); }
.form-note { margin-top: 12px; color: var(--ink-600); text-align: center; font-size: 11px; }

/* Buttons */
.button { display: inline-flex; min-height: 38px; align-items: center; justify-content: center; gap: 7px; padding: 8px 14px; border: 1px solid transparent; border-radius: 9px; font-weight: 800; transition: transform .12s, box-shadow .12s, background .12s; }
.button:hover { transform: translateY(-1px); }
.button.primary { color: #fff; background: var(--brand-700); box-shadow: 0 3px 10px rgba(15,118,110,.18); }
.button.primary:hover { background: var(--brand-800); }
.button.secondary { border-color: var(--ink-200); background: #fff; box-shadow: var(--shadow-sm); }
.button.secondary:hover { border-color: var(--ink-300); background: var(--ink-50); }
.button.tertiary { border-color: var(--brand-100); color: var(--brand-800); background: var(--brand-50); }
.button.large { width: 100%; min-height: 44px; }
.button.full { width: 100%; }
.text-button { padding: 2px; border: 0; color: var(--brand-700); background: transparent; font-weight: 800; }
.text-button:hover { color: var(--brand-900); text-decoration: underline; }
.icon-button { display: inline-grid; width: 36px; height: 36px; place-items: center; border: 1px solid transparent; border-radius: 9px; color: var(--ink-700); background: transparent; }
.icon-button:hover { border-color: var(--ink-200); background: var(--ink-50); }
.filter-button { min-height: 35px; padding: 7px 11px; border: 1px solid var(--ink-200); border-radius: 8px; background: #fff; font-size: 12px; font-weight: 700; }

/* Application shell */
.app-shell { min-height: 100vh; display: grid; grid-template-columns: var(--sidebar) 1fr; }
.sidebar { position: fixed; z-index: 30; inset: 0 auto 0 0; width: var(--sidebar); display: flex; flex-direction: column; padding: 18px 14px; color: #d9e9e7; background: #113e3b; }
.sidebar-brand { display: flex; align-items: center; gap: 11px; padding: 4px 8px 22px; border-bottom: 1px solid rgba(255,255,255,.1); }
.sidebar-brand .brand-mark { color: var(--brand-900); background: #d8f7f2; }
.sidebar-brand strong, .sidebar-brand span { display: block; }
.sidebar-brand strong { color: #fff; font-size: 14px; }
.sidebar-brand span { margin-top: 1px; color: #9fc1bd; font-size: 10px; }
.main-nav { flex: 1; overflow-y: auto; padding-top: 14px; }
.nav-label { margin: 14px 10px 7px; color: #78a39f; font-size: 10px; font-weight: 800; letter-spacing: .1em; }
.nav-item { width: 100%; min-height: 42px; display: flex; align-items: center; gap: 10px; margin-bottom: 3px; padding: 7px 10px; border: 0; border-radius: 9px; color: #c6dcda; background: transparent; text-align: left; }
.nav-item:hover { color: #fff; background: rgba(255,255,255,.07); }
.nav-item.is-active { color: #fff; background: var(--brand-700); box-shadow: inset 3px 0 0 #78e4d6; }
.nav-icon { display: inline-grid; width: 25px; height: 25px; place-items: center; border: 1px solid rgba(255,255,255,.16); border-radius: 7px; font-size: 10px; font-weight: 900; }
.nav-item > span:nth-child(2) { flex: 1; font-weight: 700; }
.nav-badge { min-width: 20px; height: 20px; display: inline-grid; place-items: center; padding: 0 5px; border-radius: 9px; color: #d7fffa; background: rgba(255,255,255,.13); font-size: 10px; }
.nav-badge.warning { color: #fff2c7; background: rgba(245,158,11,.22); }
.nav-item em { padding: 2px 5px; border-radius: 4px; color: #9fc1bd; background: rgba(255,255,255,.07); font-size: 9px; font-style: normal; }
.ielts-entry-nav { border: 1px solid rgba(67, 209, 203, .18); background: rgba(67, 209, 203, .06); }
.ielts-entry-nav .nav-icon { color: #8ce7e1; border-color: rgba(67, 209, 203, .28); }
.ielts-entry-button { color: #fff; border: 1px solid #214985; background: #102449; }
.ielts-entry-button:hover { background: #183461; }
.privacy-card { display: flex; gap: 9px; align-items: center; margin-top: 12px; padding: 11px; border: 1px solid rgba(255,255,255,.1); border-radius: 10px; background: rgba(255,255,255,.045); }
.privacy-card strong, .privacy-card small { display: block; }
.privacy-card strong { color: #e8f5f3; font-size: 11px; }
.privacy-card small { color: #8cb3af; font-size: 9px; }
.privacy-dot { width: 9px; height: 9px; border-radius: 50%; background: #5eead4; box-shadow: 0 0 0 4px rgba(94,234,212,.1); }
.app-main { grid-column: 2; min-width: 0; }
.topbar { position: sticky; z-index: 20; top: 0; height: var(--topbar); display: flex; align-items: center; gap: 16px; padding: 0 28px; border-bottom: 1px solid var(--ink-200); background: rgba(255,255,255,.95); backdrop-filter: blur(10px); }
.menu-button { display: none; }
.breadcrumb { display: flex; gap: 8px; align-items: center; color: var(--ink-600); font-size: 12px; }
.breadcrumb b { color: var(--ink-300); }
.breadcrumb strong { color: var(--ink-800); }
.runtime-badge { min-height: 24px; display: inline-flex; align-items: center; padding: 3px 8px; border: 1px solid var(--ink-200); border-radius: 7px; color: var(--ink-600); background: var(--ink-50); font-size: 9px; font-weight: 800; white-space: nowrap; }
.runtime-badge.is-api { border-color: #99f6e4; color: var(--brand-800); background: var(--brand-50); }
.runtime-badge.is-error { border-color: #fecaca; color: var(--red); background: var(--red-50); }
.global-search { width: min(340px, 35vw); display: flex; align-items: center; gap: 6px; margin-left: auto; padding: 0 10px; border: 1px solid var(--ink-200); border-radius: 9px; background: var(--ink-50); }
.global-search span { color: var(--ink-500); font-size: 18px; }
.global-search input { height: 36px; padding: 0; border: 0; background: transparent; outline: 0; }
.notification-button { position: relative; border-color: var(--ink-200); }
.notification-button span { position: absolute; top: -5px; right: -5px; min-width: 18px; height: 18px; display: grid; place-items: center; border: 2px solid #fff; border-radius: 50%; color: #fff; background: var(--red); font-size: 9px; }
.user-chip { display: flex; align-items: center; gap: 9px; padding: 4px 6px; border: 0; border-radius: 10px; background: transparent; text-align: left; }
.user-chip:hover { background: var(--ink-50); }
.user-chip strong, .user-chip small { display: block; }
.user-chip strong { font-size: 12px; }
.user-chip small { font-size: 9px; }
.avatar { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 9px; color: var(--brand-900); background: var(--brand-100); font-weight: 900; }
.page-host { padding: 28px; }
.page { display: none; max-width: 1540px; margin: 0 auto; }
.page.is-active { display: block; animation: page-in .18s ease-out; }
@keyframes page-in { from { opacity: .3; transform: translateY(3px); } to { opacity: 1; transform: none; } }
.page-heading { display: flex; justify-content: space-between; gap: 24px; align-items: flex-end; margin-bottom: 22px; }
.page-heading p:last-child { color: var(--ink-600); }
.heading-actions { display: flex; gap: 8px; }
.panel { border: 1px solid var(--ink-200); border-radius: var(--radius); background: var(--paper); box-shadow: var(--shadow-sm); }
.panel-heading { display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; padding: 18px 20px; border-bottom: 1px solid var(--ink-100); }
.panel-heading h2 { margin: 0; }
.panel-heading p { color: var(--ink-600); font-size: 11px; }

/* Dashboard */
.metric-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 14px; margin-bottom: 16px; }
.metric-card { padding: 17px 18px; border: 1px solid var(--ink-200); border-radius: var(--radius); background: var(--paper); box-shadow: var(--shadow-sm); }
.metric-card > strong { display: block; margin-top: 13px; font-size: 28px; line-height: 1; }
.metric-card > p { margin-top: 5px; color: var(--ink-600); font-size: 12px; }
.metric-top { display: flex; justify-content: space-between; align-items: center; }
.metric-icon { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 9px; font-size: 11px; font-weight: 900; }
.metric-icon.teal { color: var(--brand-800); background: var(--brand-100); }
.metric-icon.blue { color: var(--blue); background: var(--blue-50); }
.metric-icon.amber { color: var(--amber); background: var(--amber-50); }
.metric-icon.green { color: var(--green); background: var(--green-50); }
.trend { color: var(--ink-600); font-size: 9px; }
.trend.up { color: var(--green); }
.warning-text { color: var(--amber); }
.dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(300px, .72fr); gap: 16px; margin-bottom: 16px; }
.workflow-panel { min-width: 0; }
.workflow-summary { display: grid; grid-template-columns: auto 1fr auto 1fr auto 1fr auto; align-items: center; padding: 22px 20px; }
.workflow-summary > div { min-width: 74px; text-align: center; }
.workflow-summary strong, .workflow-summary b, .workflow-summary small { display: block; }
.workflow-summary strong { margin-top: 7px; font-size: 11px; }
.workflow-summary b { margin-top: 3px; font-size: 19px; }
.workflow-summary small { font-size: 9px; }
.stage-dot { width: 25px; height: 25px; display: inline-grid; place-items: center; border: 2px solid var(--ink-200); border-radius: 50%; color: var(--ink-500); background: #fff; font-size: 10px; font-weight: 900; }
.stage-dot.done { border-color: var(--brand-700); color: #fff; background: var(--brand-700); }
.stage-dot.active { border-color: var(--brand-600); color: var(--brand-800); background: var(--brand-100); box-shadow: 0 0 0 5px var(--brand-50); }
.connector { height: 2px; background: var(--ink-200); }
.connector.done { background: var(--brand-600); }
.task-row { display: grid; align-items: center; gap: 12px; }
.task-row.compact { grid-template-columns: auto minmax(140px, .7fr) minmax(180px, 1fr) auto; padding: 13px 20px; border-top: 1px solid var(--ink-100); }
.task-row strong, .task-row small { display: block; }
.task-row small { font-size: 9px; }
.student-avatar { flex: 0 0 auto; width: 34px; height: 34px; display: inline-grid; place-items: center; margin-right: 9px; border-radius: 10px; font-weight: 900; vertical-align: middle; }
.student-avatar.rose { color: #9f1239; background: #ffe4e6; }
.student-avatar.sky { color: #075985; background: #e0f2fe; }
.student-avatar.violet { color: #6d28d9; background: #ede9fe; }
.student-avatar.amber { color: #92400e; background: #fef3c7; }
.student-avatar.large { width: 46px; height: 46px; font-size: 16px; }
.progress-track, .table-progress { overflow: hidden; border-radius: 99px; background: var(--ink-100); }
.progress-track { height: 6px; }
.progress-track i, .table-progress i { display: block; height: 100%; border-radius: inherit; background: var(--brand-600); }
.progress-track.blue i { background: var(--blue); }
.progress-track.amber i { background: #d97706; }
.table-progress { width: 110px; height: 5px; margin-bottom: 4px; }
.table-progress.danger i { background: var(--red); }
.progress-cell small { margin-top: 4px; }
.status { display: inline-flex; align-items: center; justify-content: center; min-height: 24px; padding: 3px 8px; border-radius: 6px; font-size: 10px; font-weight: 800; white-space: nowrap; }
.status.processing { color: #075985; background: #e0f2fe; }
.status.review { color: #92400e; background: #fef3c7; }
.status.published { color: #166534; background: #dcfce7; }
.status.failed { color: #991b1b; background: #fee2e2; }
.status.neutral { color: var(--ink-600); background: var(--ink-100); }
.attention-item { width: 100%; display: grid; grid-template-columns: auto 1fr auto; gap: 10px; align-items: center; padding: 14px 18px; border: 0; border-bottom: 1px solid var(--ink-100); background: #fff; text-align: left; }
.attention-item:last-child { border-radius: 0 0 var(--radius) var(--radius); border-bottom: 0; }
.attention-item:hover { background: var(--ink-50); }
.attention-item strong, .attention-item small { display: block; }
.attention-item small { font-size: 9px; }
.attention-item b { color: var(--brand-700); font-size: 10px; }
.alert-symbol { width: 27px; height: 27px; display: grid; place-items: center; border-radius: 8px; font-weight: 900; }
.alert-symbol.warning { color: var(--amber); background: var(--amber-50); }
.alert-symbol.danger { color: var(--red); background: var(--red-50); }
.alert-symbol.success { color: var(--green); background: var(--green-50); }
.class-overview .panel-heading { border-bottom: 0; }
.overview-bars { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; padding: 0 20px 20px; }
.overview-bars > div { padding: 15px; border-radius: 10px; background: var(--ink-50); }
.overview-bars span, .overview-bars strong { display: block; }
.overview-bars > div > span { color: var(--ink-600); font-size: 10px; }
.overview-bars strong { margin: 4px 0 9px; }
.tag-row { display: flex; flex-wrap: wrap; gap: 6px; }
.tag-row span { display: inline-block; padding: 4px 7px; border-radius: 5px; color: var(--brand-800); background: var(--brand-50); font-size: 9px; }

/* Students */
.student-layout { display: grid; grid-template-columns: 220px minmax(520px,1fr) 280px; gap: 14px; align-items: start; }
.directory-panel, .student-detail { padding: 17px; }
.directory-panel h2 { margin-bottom: 12px; }
.small-search { display: flex; align-items: center; gap: 5px; padding: 0 8px; border: 1px solid var(--ink-200); border-radius: 8px; background: var(--ink-50); }
.small-search span { color: var(--ink-500); }
.small-search input { height: 34px; padding: 0; border: 0; background: transparent; outline: 0; }
.tree { margin-top: 14px; }
.tree button { width: 100%; min-height: 36px; display: grid; grid-template-columns: 18px 1fr auto; align-items: center; padding: 6px 7px; border: 0; border-radius: 7px; background: transparent; text-align: left; }
.tree button:hover { background: var(--ink-50); }
.tree button em { color: var(--ink-500); font-size: 9px; font-style: normal; }
.tree-child { padding-left: 19px !important; }
.tree-leaf { padding-left: 38px !important; color: var(--ink-700); }
.tree-leaf.is-active { color: var(--brand-900); background: var(--brand-50); font-weight: 800; }
.directory-note { margin-top: 18px; padding: 11px; border-radius: 8px; background: var(--ink-50); }
.directory-note strong { font-size: 10px; }
.directory-note p { color: var(--ink-600); font-size: 9px; }
.student-table-panel { min-width: 0; }
.table-scroll { overflow-x: auto; }
.data-table { width: 100%; border-collapse: collapse; }
.data-table th { padding: 11px 14px; border-bottom: 1px solid var(--ink-200); color: var(--ink-600); background: var(--ink-50); font-size: 10px; text-align: left; white-space: nowrap; }
.data-table td { padding: 12px 14px; border-bottom: 1px solid var(--ink-100); color: var(--ink-700); font-size: 11px; vertical-align: middle; }
.data-table tbody tr:last-child td { border-bottom: 0; }
.data-table tbody tr:hover, .data-table tbody tr.is-selected { background: #fbfefd; }
.data-table tbody tr.is-selected td:first-child { box-shadow: inset 3px 0 0 var(--brand-600); }
.data-table .empty-row td { padding: 34px 18px; color: var(--ink-600); text-align: center; }
.data-table td > span:not(.status) { display: inline-block; vertical-align: middle; }
.data-table td strong, .data-table td small { display: block; }
.data-table td small { font-size: 9px; }
.detail-person { display: grid; grid-template-columns: auto 1fr auto; gap: 10px; align-items: center; }
.detail-person h2, .detail-person p { margin: 0; }
.detail-person p { color: var(--ink-600); font-size: 10px; }
.consent-ok { display: flex; gap: 8px; align-items: center; margin: 16px 0; padding: 10px; border: 1px solid #bbf7d0; border-radius: 8px; color: #166534; background: var(--green-50); }
.consent-ok > span { width: 23px; height: 23px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: var(--green); font-weight: 900; }
.consent-ok strong, .consent-ok small { display: block; }
.consent-ok strong { font-size: 10px; }
.consent-ok small { color: #398454; font-size: 8px; }
.detail-list { margin: 0 0 19px; }
.detail-list div { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; border-bottom: 1px solid var(--ink-100); }
.detail-list dt { color: var(--ink-600); font-size: 10px; }
.detail-list dd { margin: 0; font-size: 10px; font-weight: 800; text-align: right; }
.student-detail h3 { margin-bottom: 10px; }
.timeline > div { display: grid; grid-template-columns: 12px 1fr; gap: 8px; padding-bottom: 12px; }
.timeline i { position: relative; width: 8px; height: 8px; margin-top: 5px; border: 2px solid var(--brand-600); border-radius: 50%; }
.timeline i::after { content: ""; position: absolute; left: 1px; top: 8px; width: 1px; height: 35px; background: var(--ink-200); }
.timeline > div:last-child i::after { display: none; }
.timeline strong, .timeline small { display: block; }
.timeline strong { font-size: 10px; }
.timeline small { font-size: 8px; }

/* Upload */
.stepper { max-width: 840px; display: grid; grid-template-columns: auto 1fr auto 1fr auto 1fr auto; align-items: center; margin: 0 auto 22px; }
.stepper > div { display: flex; align-items: center; gap: 8px; color: var(--ink-500); }
.stepper > div span { width: 28px; height: 28px; display: grid; place-items: center; border: 2px solid var(--ink-200); border-radius: 50%; background: #fff; font-size: 10px; font-weight: 900; }
.stepper > div b { font-size: 10px; white-space: nowrap; }
.stepper > div.is-current { color: var(--brand-800); }
.stepper > div.is-current span { border-color: var(--brand-700); color: #fff; background: var(--brand-700); }
.stepper > i { height: 2px; margin: 0 10px; background: var(--ink-200); }
.upload-layout { display: grid; grid-template-columns: minmax(0,1fr) 320px; gap: 16px; align-items: start; }
.upload-form-panel { padding: 22px; }
.section-heading { display: flex; gap: 11px; align-items: flex-start; margin-bottom: 17px; }
.section-heading:not(:first-child) { margin-top: 12px; padding-top: 22px; border-top: 1px solid var(--ink-100); }
.section-heading > span { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 8px; color: var(--brand-800); background: var(--brand-50); font-size: 10px; font-weight: 900; }
.section-heading h2 { margin: 0; }
.section-heading p { color: var(--ink-600); font-size: 10px; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 14px; padding-left: 39px; }
.form-grid .full { grid-column: 1 / -1; }
.drop-zone { min-height: 160px; display: grid; place-items: center; align-content: center; gap: 6px; margin: 0 0 14px 39px; padding: 22px; border: 2px dashed var(--ink-300); border-radius: 12px; background: var(--ink-50); text-align: center; transition: border-color .15s, background .15s; }
.drop-zone:hover, .drop-zone.is-dragging { border-color: var(--brand-600); background: var(--brand-50); }
.drop-zone input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.drop-zone small { display: block; max-width: 520px; font-size: 9px; }
.upload-symbol { width: 38px; height: 38px; display: grid; place-items: center; margin-bottom: 3px; border-radius: 10px; color: var(--brand-800); background: var(--brand-100); font-size: 24px; font-weight: 500; }
.file-list { margin-left: 39px; }
.file-item { display: grid; grid-template-columns: auto 1fr auto auto; gap: 10px; align-items: center; padding: 11px; border: 1px solid var(--ink-200); border-radius: 9px; background: #fff; }
.file-type { width: 34px; height: 40px; display: grid; place-items: center; border-radius: 6px; color: #991b1b; background: #fee2e2; font-size: 8px; font-weight: 900; }
.file-item strong, .file-item small { display: block; }
.file-item strong { font-size: 10px; }
.file-item small { font-size: 8px; }
.upload-summary { position: sticky; top: calc(var(--topbar) + 18px); padding: 22px; }
.summary-list { margin: 14px 0; }
.summary-list div { display: grid; grid-template-columns: 78px 1fr; gap: 9px; padding: 8px 0; border-bottom: 1px solid var(--ink-100); }
.summary-list dt { color: var(--ink-600); font-size: 10px; }
.summary-list dd { margin: 0; font-size: 10px; font-weight: 800; text-align: right; }
.check-list { padding: 11px; border-radius: 9px; background: var(--green-50); }
.check-list p { display: flex; gap: 7px; margin: 5px 0; color: #166534; font-size: 9px; }
.check-list span { font-weight: 900; }
.info-callout { margin: 15px 0; padding: 11px; border-left: 3px solid var(--brand-600); color: var(--brand-900); background: var(--brand-50); }
.info-callout strong { font-size: 10px; }
.info-callout p { margin-top: 3px; font-size: 9px; }

/* Progress */
.queue-stats { display: flex; align-items: stretch; margin-bottom: 16px; border: 1px solid var(--ink-200); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow-sm); }
.queue-stats > div { min-width: 120px; display: flex; align-items: baseline; gap: 8px; padding: 15px 20px; border-right: 1px solid var(--ink-100); }
.queue-stats strong { font-size: 21px; }
.queue-stats span { color: var(--ink-600); font-size: 10px; }
.queue-stats .queue-health { min-width: 220px; align-items: center; margin-left: auto; border-right: 0; }
.queue-health strong, .queue-health small { display: block; }
.queue-health strong { font-size: 10px; }
.queue-health small { font-size: 8px; }
.pulse { width: 9px; height: 9px; border-radius: 50%; background: #22c55e; box-shadow: 0 0 0 5px #dcfce7; }
.toolbar { display: flex; justify-content: space-between; gap: 16px; align-items: center; padding: 13px 16px; border-bottom: 1px solid var(--ink-100); }
.tab-group { display: flex; gap: 4px; }
.tab-group button { min-height: 32px; padding: 6px 10px; border: 0; border-radius: 7px; color: var(--ink-600); background: transparent; font-size: 10px; font-weight: 800; }
.tab-group button.is-active { color: var(--brand-900); background: var(--brand-50); }
.tab-group b { display: inline-grid; min-width: 17px; height: 17px; place-items: center; margin-left: 3px; border-radius: 7px; background: rgba(0,0,0,.06); font-size: 8px; }
.toolbar .small-search { width: 210px; }
.task-table td:first-child strong { color: var(--ink-950); font-size: 10px; }
.task-queue-summary { margin: 0; padding: 10px 16px; color: var(--ink-600); font-size: 10px; border-bottom: 1px solid var(--ink-100); }
.task-detail-card { margin-top: 16px; }
.pipeline { display: grid; grid-template-columns: auto 1fr auto 1fr auto 1fr auto 1fr auto; align-items: start; padding: 24px; }
.pipeline > div { min-width: 95px; color: var(--ink-500); text-align: center; }
.pipeline > div span { width: 27px; height: 27px; display: inline-grid; place-items: center; border: 2px solid var(--ink-200); border-radius: 50%; background: #fff; font-size: 9px; font-weight: 900; }
.pipeline > div b, .pipeline > div small { display: block; }
.pipeline > div b { margin-top: 7px; color: var(--ink-700); font-size: 9px; }
.pipeline > div small { margin-top: 2px; font-size: 7px; }
.pipeline > div.done span { border-color: var(--brand-700); color: #fff; background: var(--brand-700); }
.pipeline > div.current span { border-color: var(--brand-600); color: var(--brand-800); background: var(--brand-100); box-shadow: 0 0 0 5px var(--brand-50); }
.pipeline > i { height: 2px; margin-top: 13px; background: var(--ink-200); }
.pipeline > i.done { background: var(--brand-600); }

/* Review */
.review-banner { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 14px; padding: 13px 17px; border: 1px solid #fde68a; border-radius: 10px; background: var(--amber-50); }
.review-banner > div:first-child { display: flex; align-items: center; gap: 10px; }
.review-count { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 9px; color: #fff; background: var(--amber); font-size: 17px; font-weight: 900; }
.review-banner strong, .review-banner small { display: block; }
.review-banner small { color: #9a6509; font-size: 9px; }
.review-filterbar { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(0,.8fr) minmax(0,1fr) minmax(0,1.15fr); gap: 12px; align-items: start; margin: 0 0 14px; padding: 12px 15px; border: 1px solid var(--ink-200); border-radius: 10px; background: #fff; }
.review-filterbar label, .review-summary-field, .review-batch-action { min-width: 0; display: grid; grid-template-rows: 14px 38px; gap: 6px; }
.review-filterbar label > span, .review-summary-field > span, .review-batch-action > span { color: var(--ink-600); font-size: 9px; font-weight: 800; }
.review-filterbar select { width: 100%; min-height: 38px; padding: 0 10px; border: 1px solid var(--ink-200); border-radius: 8px; color: var(--ink-950); background: #fff; font: inherit; font-size: 10px; }
.review-filterbar p { min-height: 38px; display: flex; align-items: center; margin: 0; padding: 0 12px; border: 1px solid #bbebce; border-radius: 8px; color: var(--green-800); background: var(--green-50); font-size: 9px; font-weight: 800; }
.review-batch-action { grid-template-rows: 14px 38px auto; }
.review-batch-action .button { width: 100%; min-width: 0; min-height: 38px; padding: 6px 8px; font-size: 9px; line-height: 1.25; white-space: normal; }
.review-batch-action small { min-width: 0; overflow-wrap: anywhere; color: var(--ink-600); font-size: 8px; line-height: 1.35; }
.score-strip { display: flex; gap: 18px; align-items: center; color: #7c560e; font-size: 9px; }
.score-strip > strong { padding-left: 16px; border-left: 1px solid #f2d176; font-size: 12px; }
.review-layout { display: grid; grid-template-columns: 230px minmax(480px,1fr) 300px; gap: 12px; align-items: start; }
.question-list { overflow: hidden; }
.question-item { width: 100%; display: grid; grid-template-columns: auto 1fr auto; gap: 9px; align-items: center; padding: 12px 14px; border: 0; border-bottom: 1px solid var(--ink-100); background: #fff; text-align: left; }
.question-item:hover { background: var(--ink-50); }
.question-item.is-active { background: var(--brand-50); box-shadow: inset 3px 0 0 var(--brand-600); }
.question-item > span { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 8px; background: var(--ink-100); font-weight: 900; }
.question-item strong, .question-item small { display: block; }
.question-item strong { font-size: 10px; }
.question-item small { font-size: 8px; }
.risk { padding: 3px 5px; border-radius: 5px; font-size: 8px; font-style: normal; font-weight: 800; }
.risk.medium { color: var(--amber); background: #fef3c7; }
.risk.high { color: var(--red); background: #fee2e2; }
.reviewed-block { display: flex; gap: 9px; align-items: center; margin: 13px; padding: 10px; border-radius: 8px; color: #166534; background: var(--green-50); }
.reviewed-block > span { font-weight: 900; }
.reviewed-block strong, .reviewed-block small { display: block; }
.reviewed-block strong { font-size: 9px; }
.reviewed-block small { color: #408859; font-size: 7px; }
.question-list > .button { margin: 0 13px 13px; width: calc(100% - 26px); }
.evidence-panel { min-width: 0; }
.zoom-controls { display: flex; align-items: center; border: 1px solid var(--ink-200); border-radius: 7px; }
.zoom-controls button { width: 28px; height: 27px; border: 0; background: transparent; }
.zoom-controls span { padding: 0 7px; color: var(--ink-600); font-size: 9px; }
.paper-preview { position: relative; min-height: 420px; margin: 20px; padding: 28px; border: 1px solid #ddd7c9; color: #202323; background: #fffdf8; box-shadow: 0 7px 18px rgba(65,55,35,.1); font-family: Georgia, "Times New Roman", serif; }
.paper-head { display: flex; justify-content: space-between; padding-bottom: 8px; border-bottom: 1px solid #c9c3b6; color: #5c625f; font-family: inherit; font-size: 9px; }
.paper-preview > p { margin: 50px 0 24px; font-size: 14px; font-weight: 700; }
.mock-question { display: grid; grid-template-columns: repeat(3,1fr); gap: 17px; padding: 25px 14px; border: 1px solid #d7d1c4; }
.mock-question strong { grid-column: 1 / -1; font-size: 17px; }
.mock-question mark { padding: 1px 7px; border-radius: 50%; color: #212121; background: rgba(15,118,110,.18); }
.mock-question span { font-size: 13px; }
.mock-writing { min-height: 170px; padding: 20px; border: 1px solid #d7d1c4; font-size: 15px; line-height: 2; }
.mock-writing strong, .mock-writing p { display: block; }
.mock-writing p { margin-top: 14px; border-bottom: 1px solid #bdb5a4; }
.focus-box { position: absolute; width: 69px; height: 42px; left: 29px; top: 170px; border: 2px solid var(--brand-600); border-radius: 5px; box-shadow: 0 0 0 4px rgba(13,148,136,.12); }
.paper-preview > small { position: absolute; right: 18px; bottom: 14px; font-family: Inter, sans-serif; font-size: 8px; }
.evidence-meta { display: grid; grid-template-columns: repeat(3,1fr); padding: 0 20px 20px; }
.evidence-meta span { padding: 8px 10px; border-right: 1px solid var(--ink-100); color: var(--ink-600); font-size: 8px; }
.evidence-meta span:last-child { border-right: 0; }
.evidence-meta b { display: block; color: var(--ink-800); }
.grading-panel { position: sticky; top: calc(var(--topbar) + 18px); padding: 20px; }
.grading-row { display: grid; grid-template-columns: 1fr auto auto; gap: 8px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--ink-100); }
.grading-row span { color: var(--ink-600); font-size: 10px; }
.grading-row strong { font-size: 17px; }
.grading-row em { font-size: 8px; font-style: normal; }
.confidence.medium { color: var(--amber); }
.locked { padding: 2px 5px; border-radius: 4px; color: var(--ink-600); background: var(--ink-100); }
.answer-picker { display: grid; grid-template-columns: repeat(4,1fr); gap: 6px; margin: 15px 0; }
.answer-picker input { position: absolute; opacity: 0; }
.answer-picker span { display: grid; min-height: 36px; place-items: center; border: 1px solid var(--ink-200); border-radius: 8px; background: #fff; font-weight: 900; }
.answer-picker input:checked + span { border-color: var(--brand-700); color: var(--brand-800); background: var(--brand-50); box-shadow: inset 0 0 0 1px var(--brand-700); }
.score-input { display: flex; align-items: center; border: 1px solid var(--ink-200); border-radius: 9px; overflow: hidden; }
.score-input input { width: 100%; border: 0; }
.score-input b { padding-right: 10px; color: var(--ink-600); font-size: 10px; white-space: nowrap; }
.audit-note { padding: 10px; border-radius: 8px; color: #674c11; background: var(--amber-50); }
.audit-note strong { font-size: 9px; }
.audit-note p { font-size: 8px; }
.grading-actions { display: grid; grid-template-columns: .7fr 1.3fr; gap: 7px; margin-top: 15px; }
.api-question-placeholder { padding: 34px 18px; color: var(--ink-600); text-align: center; }
.api-question-placeholder strong, .api-question-placeholder small { display: block; }
.api-question-placeholder small { margin-top: 4px; font-size: 9px; }

/* Reports */
.report-stats { display: flex; align-items: stretch; gap: 0; margin-bottom: 16px; border: 1px solid var(--ink-200); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow-sm); }
.report-stats > div { min-width: 150px; display: flex; align-items: center; gap: 10px; padding: 14px 18px; border-right: 1px solid var(--ink-100); }
.report-stats strong, .report-stats small { display: block; }
.report-stats strong { font-size: 20px; }
.report-stats small { font-size: 8px; }
.report-stats .report-policy { flex: 1; justify-content: flex-end; border-right: 0; color: #7c560e; background: var(--amber-50); }
.report-policy > span { width: 24px; height: 24px; display: grid; place-items: center; border: 1px solid #e7c765; border-radius: 50%; font-family: serif; font-weight: 900; }
.report-policy strong { font-size: 10px; }
.toolbar-actions { display: flex; gap: 8px; }
.report-table td:first-child { min-width: 230px; }
.report-table td:first-child > span:last-child { vertical-align: middle; }

/* Report dialog */
.report-dialog { width: min(1040px, calc(100vw - 40px)); max-height: calc(100vh - 40px); padding: 0; border: 0; border-radius: 16px; background: #fff; box-shadow: 0 28px 90px rgba(5,28,25,.32); }
.report-dialog::backdrop { background: rgba(8,29,27,.62); backdrop-filter: blur(3px); }
.dialog-head { display: flex; justify-content: space-between; gap: 18px; align-items: center; padding: 18px 22px; border-bottom: 1px solid var(--ink-100); }
.dialog-head h2 { margin: 0; }
.dialog-body { display: grid; grid-template-columns: minmax(0,1fr) 270px; max-height: calc(100vh - 140px); overflow: auto; }
.report-preview-card { margin: 22px; padding: 26px; border: 1px solid var(--ink-200); color: var(--ink-950); background: #fff; box-shadow: 0 8px 24px rgba(14,37,34,.08); }
.report-brand { display: flex; align-items: center; gap: 10px; padding-bottom: 18px; border-bottom: 2px solid var(--brand-700); }
.report-brand strong, .report-brand small { display: block; }
.report-brand small { font-size: 9px; }
.report-brand em { margin-left: auto; padding: 4px 8px; border-radius: 5px; color: var(--amber); background: var(--amber-50); font-size: 9px; font-style: normal; font-weight: 800; }
.report-student { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 16px; padding: 27px 0; }
.report-student h3 { font-size: 22px; }
.report-student p { color: var(--brand-700); font-weight: 800; }
.score-circle { width: 86px; height: 86px; display: grid; place-items: center; align-content: center; border: 7px solid var(--brand-100); border-radius: 50%; color: var(--brand-900); }
.score-circle strong { font-size: 30px; line-height: 1; }
.score-circle span { margin-top: 3px; font-size: 8px; }
.report-skills { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 22px; padding: 18px; border-radius: 10px; background: var(--ink-50); }
.report-skills > div { display: grid; grid-template-columns: 68px 1fr 36px; gap: 8px; align-items: center; font-size: 9px; }
.report-skills b { text-align: right; }
.report-insight { margin-top: 20px; padding: 16px; border-left: 4px solid var(--brand-600); background: var(--brand-50); }
.report-insight p { margin: 5px 0 10px; color: var(--ink-700); font-size: 10px; }
.publish-panel { padding: 24px; border-left: 1px solid var(--ink-100); background: var(--ink-50); }
.publish-panel h3 { margin-bottom: 14px; }
.publish-panel .check { margin: 11px 0; font-size: 10px; }
.warning-callout { margin: 20px 0; padding: 11px; border-radius: 8px; color: #7c560e; background: var(--amber-50); }
.warning-callout strong { font-size: 9px; }
.warning-callout p { font-size: 8px; }
.publish-panel .button { margin-bottom: 8px; }

/* Toast */
.toast { position: fixed; z-index: 200; right: 24px; top: 86px; min-width: 280px; display: flex; gap: 10px; align-items: center; padding: 12px 14px; border: 1px solid #bbf7d0; border-radius: 10px; color: #166534; background: #f0fdf4; box-shadow: var(--shadow-md); opacity: 0; transform: translateY(-10px); pointer-events: none; transition: opacity .18s, transform .18s; }
.toast.is-visible { opacity: 1; transform: none; }
.toast.is-warning { border-color: #fde68a; color: #7c560e; background: var(--amber-50); }
.toast.is-warning > span { background: var(--amber); }
.toast > span { width: 24px; height: 24px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: var(--green); font-weight: 900; }
.toast p { font-size: 11px; font-weight: 700; }

/* Responsive */
@media (max-width: 1400px) {
  .student-layout { grid-template-columns: 210px 1fr; }
  .student-detail { grid-column: 2; }
  .review-layout { grid-template-columns: 210px minmax(420px,1fr); }
  .grading-panel { position: static; grid-column: 2; }
  .review-banner { align-items: flex-start; }
  .score-strip { flex-wrap: wrap; justify-content: flex-end; }
}

@media (max-width: 1000px) {
  :root { --sidebar: 220px; }
  .page-host { padding: 22px; }
  .metric-grid { grid-template-columns: 1fr 1fr; }
  .dashboard-grid { grid-template-columns: 1fr; }
  .upload-layout { grid-template-columns: 1fr; }
  .upload-summary { position: static; }
  .queue-stats { flex-wrap: wrap; }
  .queue-stats > div { flex: 1; min-width: 140px; }
  .queue-stats .queue-health { flex: 2; }
  .review-layout { grid-template-columns: 1fr; }
  .question-list, .evidence-panel, .grading-panel { grid-column: 1; }
  .question-list { display: grid; grid-template-columns: 1fr 1fr; }
  .question-list .panel-heading, .question-list .reviewed-block, .question-list > .button { grid-column: 1 / -1; }
  .grading-panel { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
  .grading-panel > .eyebrow, .grading-panel > .answer-picker, .grading-panel > .audit-note, .grading-panel > .grading-actions { grid-column: 1 / -1; }
  .report-stats { flex-wrap: wrap; }
  .report-stats > div { flex: 1; }
  .report-stats .report-policy { min-width: 100%; }
}

@media (max-width: 760px) {
  .prototype-note { left: 12px; right: 12px; justify-content: center; }
  .login-screen { grid-template-columns: 1fr; }
  .login-brand { display: none; }
  .login-panel { min-height: 100vh; padding: 20px; }
  .mobile-brand { display: flex; }
  .login-card { padding: 28px; }
  .app-shell { display: block; }
  .sidebar { transform: translateX(-102%); box-shadow: var(--shadow-md); transition: transform .2s; }
  .sidebar.is-open { transform: none; }
  .app-main { width: 100%; }
  .menu-button { display: grid; }
  .topbar { padding: 0 14px; gap: 9px; }
  .breadcrumb span, .global-search, .user-chip > span, .user-chip > b { display: none; }
  .user-chip { margin-left: auto; }
  .page-host { padding: 18px 14px 90px; }
  .page-heading { align-items: flex-start; flex-direction: column; }
  .page-heading > .button, .heading-actions { width: 100%; }
  .heading-actions .button { flex: 1; }
  h1 { font-size: 24px; }
  .metric-grid { grid-template-columns: 1fr 1fr; gap: 9px; }
  .metric-card { padding: 14px; }
  .workflow-summary { grid-template-columns: repeat(4,1fr); gap: 4px; }
  .workflow-summary .connector { display: none; }
  .task-row.compact { grid-template-columns: auto 1fr auto; }
  .task-row.compact .progress-cell { grid-column: 2 / -1; }
  .overview-bars { grid-template-columns: 1fr; }
  .student-layout { grid-template-columns: 1fr; }
  .student-detail { grid-column: 1; }
  .directory-panel { order: 1; }
  .student-table-panel { order: 2; }
  .student-detail { order: 3; }
  .stepper b { display: none; }
  .stepper { grid-template-columns: auto 1fr auto 1fr auto 1fr auto; }
  .form-grid { grid-template-columns: 1fr; padding-left: 0; }
  .form-grid .full { grid-column: 1; }
  .drop-zone, .file-list { margin-left: 0; }
  .file-item { grid-template-columns: auto 1fr auto; }
  .file-item .status { display: none; }
  .toolbar { align-items: stretch; flex-direction: column; }
  .tab-group { overflow-x: auto; }
  .toolbar .small-search { width: 100%; }
  .queue-stats > div { min-width: 50%; margin: 0; }
  .queue-stats .queue-health { min-width: 100%; }
  .pipeline { grid-template-columns: repeat(5,1fr); gap: 4px; }
  .pipeline > i { display: none; }
  .pipeline > div { min-width: 0; }
  .pipeline > div small { display: none; }
  .review-banner { align-items: flex-start; flex-direction: column; }
  .review-filterbar { grid-template-columns: 1fr; }
  .score-strip { justify-content: flex-start; }
  .score-strip > strong { width: 100%; padding: 7px 0 0; border-top: 1px solid #f2d176; border-left: 0; }
  .question-list { grid-template-columns: 1fr; }
  .question-list .panel-heading, .question-list .reviewed-block, .question-list > .button { grid-column: 1; }
  .grading-panel { display: block; }
  .paper-preview { min-height: 360px; margin: 12px; padding: 18px; }
  .mock-question { grid-template-columns: 1fr; }
  .focus-box { left: 18px; top: 159px; }
  .evidence-meta { grid-template-columns: 1fr; }
  .evidence-meta span { border-right: 0; border-bottom: 1px solid var(--ink-100); }
  .report-stats > div { min-width: 50%; }
  .toolbar-actions { flex-direction: column; }
  .dialog-body { grid-template-columns: 1fr; }
  .publish-panel { border-top: 1px solid var(--ink-100); border-left: 0; }
  .report-skills { grid-template-columns: 1fr; }
}

@media (max-width: 460px) {
  .metric-grid { grid-template-columns: 1fr; }
  .dashboard-heading .button { width: 100%; }
  .workflow-summary { grid-template-columns: 1fr 1fr; row-gap: 18px; }
  .task-row.compact { grid-template-columns: auto 1fr; }
  .task-row.compact .status { grid-column: 2; justify-self: start; }
  .queue-stats > div { min-width: 100%; }
  .report-stats > div { min-width: 100%; }
  .report-student { grid-template-columns: 1fr; }
  .score-circle { width: 75px; height: 75px; }
}

/* Sprint 1.3 operations console, retained in Sprint 1.4 */
.operations-page { max-width: 1500px; }

.operations-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  margin-bottom: 20px;
}

.operations-metrics article {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: end;
  gap: 4px 16px;
  padding: 22px 24px;
}

.operations-metrics span,
.operations-metrics small { color: var(--text-500); }
.operations-metrics strong { grid-row: 1 / span 2; grid-column: 2; font-size: 34px; color: var(--brand-900); }
.operations-section { margin-bottom: 22px; padding: 26px; }

.operations-form,
.permission-editor {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, .7fr) minmax(0, 1.4fr) minmax(130px, auto);
  gap: 16px;
  align-items: end;
  margin: 22px 0;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--surface-soft);
}

.operations-form.compact { grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr) minmax(110px, .55fr) minmax(110px, auto); }
.operations-form .wide,
.permission-editor .wide { min-width: 0; }
.operations-form > .field,
.permission-editor > .field,
.paper-create-form > .field { min-width: 0; margin-bottom: 0; }
.operations-form > .button,
.permission-editor > .button,
.paper-create-form > .button { min-width: 0; min-height: 42px; padding-inline: 12px; white-space: normal; }
.operations-form select[multiple],
.permission-editor select[multiple] { min-height: 108px; padding: 8px; }
.operations-table td strong { display: block; }
.operations-table td small { color: var(--text-500); }

.row-actions { display: flex; flex-wrap: wrap; gap: 8px 12px; }
.text-button.danger { color: #b42318; }
.text-button:disabled { opacity: .45; cursor: not-allowed; }

.credential-output {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin: 16px 0;
  padding: 18px 20px;
  border: 1px solid #e8c45a;
  border-radius: 14px;
  background: #fff8dc;
}
.credential-output[hidden] { display: none; }
.credential-output p { margin: 6px 0; font-family: Consolas, monospace; font-weight: 800; word-break: break-all; }
.credential-output small { color: #765b12; }

.batch-import-grid {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(240px, .7fr);
  gap: 22px;
  margin-top: 20px;
}
.batch-import-grid textarea { min-height: 210px; font-family: Consolas, monospace; line-height: 1.6; }
.batch-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 14px; }
.batch-policy { padding: 20px; border-radius: 16px; color: #3f360e; background: #fff8dc; }
.batch-policy ul { margin: 12px 0 0; padding-left: 20px; line-height: 1.9; }
.batch-summary { margin: 18px 0 12px; padding: 13px 16px; border-radius: 10px; color: var(--text-700); background: var(--surface-soft); }

@media (max-width: 1180px) {
  .operations-form,
  .operations-form.compact,
  .permission-editor { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .operations-form .button,
  .permission-editor .button { justify-self: start; }
}

@media (max-width: 760px) {
  .operations-metrics,
  .operations-form,
  .operations-form.compact,
  .permission-editor,
  .batch-import-grid { grid-template-columns: 1fr; }
  .operations-section { padding: 18px; }
  .credential-output { align-items: stretch; flex-direction: column; }
}

/* Sprint 1.4 admin overview and paper version governance */
.admin-overview-page,
.paper-versions-page { max-width: 1500px; }
.page-heading-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.admin-overview-grid,
.admin-todo-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}
.admin-overview-metrics { margin-bottom: 20px; }
.status-distribution {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
  gap: 12px;
  margin-top: 18px;
}
.status-distribution div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 15px 16px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--surface-soft);
}
.status-distribution span { color: var(--text-500); font-size: 13px; }
.status-distribution strong { color: var(--brand-900); font-size: 24px; }
.empty-inline { margin: 0; color: var(--text-500); }

.paper-version-metrics { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.paper-create-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr) minmax(90px, .65fr) minmax(80px, .55fr) minmax(90px, .65fr);
  gap: 16px;
  align-items: end;
  margin-top: 22px;
}
.paper-create-form .wide { grid-column: span 2; }
.paper-audio-check { min-height: 46px; align-items: center; }
.paper-management-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(360px, .75fr);
  gap: 20px;
  align-items: start;
}
.paper-management-grid > *,
.admin-overview-grid > *,
.admin-todo-grid > * { min-width: 0; }
.paper-version-table td strong,
.paper-version-table td small { display: block; }
.paper-version-table td small { margin-top: 4px; color: var(--text-500); }
.missing-assets { color: #b54708; font-weight: 750; }
.complete-assets { color: #147d64; font-weight: 750; }
.paper-detail-panel { position: sticky; top: 88px; padding: 24px; }
.paper-detail-empty { padding: 80px 24px; text-align: center; color: var(--text-500); }
.paper-detail-empty strong { display: block; margin-bottom: 8px; color: var(--text-900); font-size: 20px; }
.paper-detail-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.paper-detail-head h2 { margin: 2px 0 6px; font-size: 22px; }
.paper-detail-head p { margin: 0; color: var(--text-500); }
.paper-edit-form,
.paper-asset-form {
  display: grid;
  gap: 14px;
  margin: 20px 0;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--surface-soft);
}
.paper-edit-form textarea { resize: vertical; }
.paper-detail-section { margin-top: 24px; }
.paper-detail-section h3 { margin: 0 0 12px; }
.asset-list { display: grid; gap: 10px; }
.asset-card { display: flex; gap: 12px; padding: 13px; border: 1px solid var(--line); border-radius: 12px; }
.asset-card > span { display: grid; place-items: center; flex: 0 0 28px; height: 28px; border-radius: 50%; font-weight: 900; }
.asset-card.is-complete > span { color: #147d64; background: #dcf8ef; }
.asset-card.is-missing > span { color: #b54708; background: #fff0cf; }
.asset-card strong,
.asset-card small,
.asset-card code { display: block; }
.asset-card small { margin-top: 3px; color: var(--text-500); }
.asset-card code { margin-top: 5px; color: var(--text-500); font-size: 11px; }
.paper-asset-form > small { color: #765b12; line-height: 1.5; }
.paper-actions { display: flex; flex-wrap: wrap; gap: 10px; margin: 22px 0; }
.danger-button { color: #b42318; border-color: #f3b7b2; background: #fff5f4; }
.locked-note { margin: 0; color: var(--text-500); line-height: 1.6; }
.paper-history { display: grid; gap: 8px; margin: 12px 0 0; padding: 0; list-style: none; }
.paper-history li { padding: 11px 13px; border-left: 3px solid var(--brand-300); background: var(--surface-soft); }
.paper-history strong,
.paper-history span { display: block; }
.paper-history span { margin-top: 3px; color: var(--text-500); font-size: 12px; }

@media (max-width: 1180px) {
  .paper-version-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .paper-create-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .paper-create-form .wide { grid-column: span 1; }
  .paper-management-grid { grid-template-columns: 1fr; }
  .paper-detail-panel { position: static; }
}

@media (max-width: 760px) {
  .page-heading-actions,
  .page-heading-actions .button { width: 100%; }
  .admin-overview-grid,
  .admin-todo-grid,
  .paper-version-metrics,
  .paper-create-form { grid-template-columns: 1fr; }
  .panel-heading { flex-wrap: wrap; }
  .panel-heading > .button { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* 首页视觉升级：借用超级蜜多多的温暖、圆润与高对比组件语言，保留龙游品牌身份。 */
.honey-home {
  --honey-yellow: #f4cd1e;
  --honey-yellow-soft: #fff4ad;
  --honey-cream: #fffdf5;
  --honey-ink: #231815;
  --honey-ink-soft: #65544f;
  position: relative;
  background:
    radial-gradient(circle at 84% 8%, rgba(244, 205, 30, .2), transparent 25%),
    var(--honey-cream);
}

.honey-home .login-brand {
  isolation: isolate;
  padding: clamp(56px, 7vw, 112px);
  color: var(--honey-ink);
  background:
    linear-gradient(145deg, rgba(255, 255, 255, .72), rgba(255, 255, 255, .12)),
    var(--honey-yellow);
}

.honey-home .login-brand::before {
  width: 460px;
  height: 460px;
  right: -150px;
  top: -138px;
  border: 2px solid rgba(35, 24, 21, .08);
  border-radius: 38% 62% 56% 44%;
  box-shadow: 0 0 0 72px rgba(255, 255, 255, .14), 0 0 0 144px rgba(255, 255, 255, .08);
  transform: rotate(18deg);
}

.honey-home .login-brand::after {
  content: "";
  position: absolute;
  z-index: 0;
  left: -92px;
  bottom: -110px;
  width: 300px;
  height: 300px;
  border-radius: 42% 58% 64% 36%;
  background: rgba(255, 255, 255, .18);
  transform: rotate(-24deg);
}

.honey-orbit {
  position: absolute;
  z-index: 0;
  border: 1px solid rgba(35, 24, 21, .1);
  background: rgba(255, 255, 255, .16);
  transform: rotate(30deg);
}

.honey-orbit-one { right: 14%; bottom: 17%; width: 66px; height: 76px; border-radius: 22px; }
.honey-orbit-two { right: 6%; bottom: 29%; width: 38px; height: 44px; border-radius: 14px; }

.corner-midodo {
  position: absolute;
  z-index: 1;
  top: 38px;
  right: 34px;
  width: clamp(150px, 14vw, 220px);
  height: auto;
  object-fit: contain;
  pointer-events: none;
  user-select: none;
}

.honey-home .brand-mark-large {
  width: 66px;
  height: 66px;
  border: 2px solid var(--honey-ink);
  border-radius: 21px 21px 21px 8px;
  color: var(--honey-yellow);
  background: var(--honey-ink);
  font-size: 22px;
  box-shadow: 8px 8px 0 rgba(255, 255, 255, .72);
}

.honey-home .login-brand .eyebrow {
  margin-top: 46px;
  color: var(--honey-ink);
  letter-spacing: .16em;
}

.honey-home .login-brand h1 {
  max-width: 700px;
  margin: 14px 0 24px;
  color: var(--honey-ink);
  font-size: clamp(42px, 4.5vw, 72px);
  line-height: 1.1;
  letter-spacing: -.045em;
}

.honey-home .login-lead {
  max-width: 650px;
  color: rgba(35, 24, 21, .78);
  font-size: 16px;
  line-height: 1.85;
}

.login-promises {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 28px;
}

.login-promises span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 8px 12px;
  border: 1px solid rgba(35, 24, 21, .12);
  border-radius: 999px;
  color: var(--honey-ink);
  background: rgba(255, 255, 255, .48);
  font-size: 12px;
  font-weight: 800;
}

.login-promises b {
  display: grid;
  width: 18px;
  height: 18px;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: var(--honey-ink);
  font-size: 10px;
}

.honey-home .login-flow {
  gap: 8px;
  margin-top: 42px;
  color: var(--honey-ink-soft);
}

.honey-home .login-flow span {
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  border: 1px solid rgba(35, 24, 21, .14);
  border-radius: 12px;
  color: var(--honey-ink);
  background: rgba(255, 255, 255, .7);
  font-weight: 800;
  box-shadow: 0 4px 0 rgba(35, 24, 21, .06);
}

.honey-home .login-flow i { background: rgba(35, 24, 21, .32); }
.honey-home .login-footnote { color: rgba(35, 24, 21, .62); }

.honey-home .login-panel {
  padding: clamp(28px, 5vw, 72px);
  background:
    linear-gradient(rgba(35, 24, 21, .035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(35, 24, 21, .035) 1px, transparent 1px),
    var(--honey-cream);
  background-size: 32px 32px;
}

.honey-home .login-card {
  width: min(430px, 100%);
  padding: 44px;
  border: 1px solid rgba(35, 24, 21, .13);
  border-radius: 28px 28px 28px 12px;
  box-shadow: 0 22px 60px rgba(35, 24, 21, .12), 8px 8px 0 var(--honey-yellow-soft);
}

.login-card-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.login-card-heading .eyebrow { margin: 0; color: var(--honey-ink); }

.secure-entry {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 6px 9px;
  border-radius: 999px;
  color: var(--honey-ink-soft);
  background: #f6f1e5;
  font-size: 10px;
  font-weight: 800;
}

.secure-entry i { width: 7px; height: 7px; border-radius: 50%; background: #15803d; box-shadow: 0 0 0 3px rgba(21, 128, 61, .12); }
.honey-home .login-card h2 { margin-top: 12px; color: var(--honey-ink); font-size: 32px; }

.honey-home .field > span { color: var(--honey-ink); }
.honey-home .field input {
  height: 48px;
  border-color: rgba(35, 24, 21, .18);
  border-radius: 12px;
  color: var(--honey-ink);
  background: #fffefa;
}

.honey-home .field input:focus {
  border-color: var(--honey-ink);
  box-shadow: 0 0 0 4px rgba(244, 205, 30, .34);
}

.honey-home .button.primary {
  min-height: 48px;
  border: 2px solid var(--honey-ink);
  border-radius: 12px;
  color: #fff;
  background: var(--honey-ink);
  box-shadow: 0 6px 0 var(--honey-yellow);
}

.honey-home .button.primary:hover { color: var(--honey-ink); background: var(--honey-yellow); box-shadow: 0 4px 0 var(--honey-ink); }
.honey-home .text-button { color: var(--honey-ink); }
.honey-home .form-note { color: var(--honey-ink-soft); line-height: 1.65; }

.honey-home + .app-shell,
.honey-home ~ .toast,
.honey-home ~ .dialog-backdrop { --brand-900: #0b4f4a; }

@media (max-width: 1000px) {
  .honey-home .login-brand { padding: 64px 52px; }
  .honey-home .login-flow { flex-wrap: wrap; }
  .honey-home .login-flow i { display: none; }
  .corner-midodo { top: 28px; right: 20px; width: 148px; }
}

@media (max-width: 760px) {
  .honey-home .login-panel { min-height: 100vh; padding: 72px 20px 96px; }
  .honey-home .login-card { padding: 30px 26px; border-radius: 24px 24px 24px 10px; }
  .honey-home .mobile-brand .brand-mark { color: var(--honey-yellow); background: var(--honey-ink); }
  .honey-home .prototype-note { max-width: calc(100vw - 24px); }
}

@media (max-width: 460px) {
  .login-card-heading { align-items: flex-start; flex-direction: column; }
  .honey-home .login-card h2 { font-size: 28px; }
}

/* App-wide Super Midodo visual language — Longyou brand remains primary */
.honey-home + .app-shell,
.honey-home ~ .report-dialog {
  --brand-900: #231815;
  --brand-800: #3b2b27;
  --brand-700: #231815;
  --brand-600: #9b7400;
  --brand-300: #f4cd1e;
  --brand-100: #fff0a0;
  --brand-50: #fff9d8;
  --ink-950: #231815;
  --ink-800: #3f302c;
  --ink-700: #594844;
  --ink-600: #71605b;
  --ink-500: #897873;
  --ink-300: #c8bbb5;
  --ink-200: #ded4cd;
  --ink-100: #eee7df;
  --ink-50: #faf6ef;
  --paper: #fffefa;
  --canvas: #fffaf0;
  --shadow-sm: 0 2px 5px rgba(35, 24, 21, .07);
  --shadow-md: 0 18px 46px rgba(35, 24, 21, .14);
  --radius-sm: 10px;
  --radius: 16px;
  --radius-lg: 22px;
}

.honey-home + .app-shell {
  color: var(--ink-950);
  background:
    linear-gradient(rgba(35, 24, 21, .028) 1px, transparent 1px),
    linear-gradient(90deg, rgba(35, 24, 21, .028) 1px, transparent 1px),
    var(--canvas);
  background-size: 32px 32px;
}

.honey-home + .app-shell button:focus-visible,
.honey-home + .app-shell input:focus-visible,
.honey-home + .app-shell select:focus-visible,
.honey-home + .app-shell textarea:focus-visible {
  outline-color: rgba(244, 205, 30, .55);
}

.honey-home + .app-shell .sidebar {
  color: #f4ede8;
  background:
    radial-gradient(circle at 90% 4%, rgba(244, 205, 30, .18), transparent 24%),
    #231815;
  box-shadow: 8px 0 28px rgba(35, 24, 21, .10);
}

.honey-home + .app-shell .sidebar-brand { border-bottom-color: rgba(244, 205, 30, .24); }
.honey-home + .app-shell .sidebar-brand .brand-mark {
  color: #231815;
  background: #f4cd1e;
  box-shadow: 4px 4px 0 rgba(255, 255, 255, .14);
}
.honey-home + .app-shell .sidebar-brand strong { color: #fff; }
.honey-home + .app-shell .sidebar-brand span,
.honey-home + .app-shell .nav-label { color: #c8b8af; }
.honey-home + .app-shell .nav-item { color: #eee4de; border-radius: 12px; }
.honey-home + .app-shell .nav-item:hover { color: #fff; background: rgba(244, 205, 30, .12); }
.honey-home + .app-shell .nav-item.is-active {
  color: #231815;
  background: #f4cd1e;
  box-shadow: 0 4px 0 rgba(255, 255, 255, .12);
}
.honey-home + .app-shell .nav-item.is-active .nav-icon { border-color: rgba(35, 24, 21, .22); background: rgba(255,255,255,.35); }
.honey-home + .app-shell .nav-item.is-active .nav-badge,
.honey-home + .app-shell .nav-item.is-active em { color: #231815; background: rgba(255,255,255,.48); }
.honey-home + .app-shell .nav-badge { color: #231815; background: #fff0a0; }
.honey-home + .app-shell .nav-item em { color: #ffe76b; background: rgba(244,205,30,.1); }
.honey-home + .app-shell .privacy-card { border-color: rgba(244,205,30,.2); background: rgba(255,255,255,.06); }
.honey-home + .app-shell .privacy-card strong { color: #fff; }
.honey-home + .app-shell .privacy-card small { color: #c8b8af; }
.honey-home + .app-shell .privacy-dot { background: #f4cd1e; box-shadow: 0 0 0 4px rgba(244,205,30,.14); }

.honey-home + .app-shell .topbar {
  border-bottom: 1px solid rgba(35,24,21,.12);
  background: rgba(255, 254, 250, .94);
  box-shadow: 0 4px 0 rgba(244, 205, 30, .18);
}
.honey-home + .app-shell .runtime-badge.is-api { border-color: #e3c63b; color: #665000; background: #fff9d8; }
.honey-home + .app-shell .global-search { border-color: #ded4cd; background: #fffaf0; }
.honey-home + .app-shell .avatar { color: #231815; background: #f4cd1e; }
.honey-home + .app-shell .user-chip:hover,
.honey-home + .app-shell .icon-button:hover { background: #fff9d8; }

.honey-home + .app-shell .page-host { padding-top: 32px; }
.honey-home + .app-shell .page-heading { align-items: center; }
.honey-home + .app-shell .page-heading h1 { color: #231815; font-size: clamp(26px, 2.4vw, 34px); }
.honey-home + .app-shell .eyebrow { color: #6f5500; letter-spacing: .1em; }
.honey-home + .app-shell .page-heading .eyebrow::before,
.honey-home + .app-shell .panel-heading .eyebrow::before,
.honey-home ~ .report-dialog .eyebrow::before {
  content: "";
  display: inline-block;
  width: 18px;
  height: 6px;
  margin-right: 7px;
  border-radius: 99px;
  background: #f4cd1e;
  vertical-align: 1px;
}

.honey-home + .app-shell .panel,
.honey-home + .app-shell .metric-card {
  border-color: rgba(35,24,21,.14);
  background: #fffefa;
  box-shadow: 0 4px 0 rgba(35,24,21,.04), var(--shadow-sm);
}
.honey-home + .app-shell .panel { overflow: clip; }
.honey-home + .app-shell .panel-heading { border-bottom-color: #eee7df; background: linear-gradient(90deg, #fff9d8, #fffefa 58%); }
.honey-home + .app-shell .metric-card { position: relative; overflow: hidden; transition: transform .15s, box-shadow .15s; }
.honey-home + .app-shell .metric-card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 5px;
  background: #f4cd1e;
}
.honey-home + .app-shell .metric-card:hover { transform: translateY(-2px); box-shadow: 0 7px 0 rgba(244,205,30,.25), var(--shadow-sm); }
.honey-home + .app-shell .metric-icon.teal { color: #231815; background: #fff0a0; }

.honey-home + .app-shell .button { border-radius: 11px; }
.honey-home + .app-shell .button.primary {
  border: 2px solid #231815;
  color: #fff;
  background: #231815;
  box-shadow: 0 5px 0 #f4cd1e;
}
.honey-home + .app-shell .button.primary:hover { color: #231815; background: #f4cd1e; box-shadow: 0 3px 0 #231815; }
.honey-home + .app-shell .button.secondary,
.honey-home + .app-shell .filter-button { border-color: #ded4cd; background: #fffefa; }
.honey-home + .app-shell .button.secondary:hover,
.honey-home + .app-shell .filter-button:hover { border-color: #c4a900; background: #fff9d8; }
.honey-home + .app-shell .button.tertiary { border-color: #ead054; color: #4c3b00; background: #fff9d8; }
.honey-home + .app-shell .text-button { color: #594400; }

.honey-home + .app-shell .field input,
.honey-home + .app-shell .field select,
.honey-home + .app-shell .field textarea,
.honey-home + .app-shell .small-search input {
  border-color: #ded4cd;
  border-radius: 11px;
  background: #fffefa;
}
.honey-home + .app-shell .field input:focus,
.honey-home + .app-shell .field select:focus,
.honey-home + .app-shell .field textarea:focus {
  border-color: #231815;
  box-shadow: 0 0 0 4px rgba(244,205,30,.34);
}
.honey-home + .app-shell .check input { accent-color: #231815; }

.honey-home + .app-shell .data-table th { color: #594844; background: #faf6ef; }
.honey-home + .app-shell .data-table tbody tr:hover,
.honey-home + .app-shell .data-table tbody tr.is-selected { background: #fff9d8; }
.honey-home + .app-shell .data-table tbody tr.is-selected td:first-child { box-shadow: inset 4px 0 0 #f4cd1e; }
.honey-home + .app-shell .progress-track,
.honey-home + .app-shell .table-progress { background: #eee7df; }
.honey-home + .app-shell .progress-track i,
.honey-home + .app-shell .table-progress i { background: #c49a00; }

.honey-home + .app-shell .operations-metrics article,
.honey-home + .app-shell .paper-version-metrics article { border-top: 5px solid #f4cd1e; }
.honey-home + .app-shell .drop-zone { border-color: #d8c45e; background: #fffdf0; }
.honey-home + .app-shell .drop-zone:hover { border-color: #231815; background: #fff9d8; }

.honey-home ~ .report-dialog {
  border: 1px solid rgba(35,24,21,.16);
  border-radius: 24px 24px 24px 12px;
  background: #fffefa;
  box-shadow: 0 28px 90px rgba(35,24,21,.28), 8px 8px 0 #fff0a0;
}
.honey-home ~ .report-dialog::backdrop { background: rgba(35,24,21,.58); }
.honey-home ~ .report-dialog .dialog-head { border-bottom-color: #eee7df; background: #fff9d8; }
.honey-home ~ .report-dialog .publish-panel { border-left-color: #eee7df; background: #faf6ef; }

@media (max-width: 760px) {
  .honey-home + .app-shell .topbar { box-shadow: 0 3px 0 rgba(244,205,30,.2); }
  .honey-home + .app-shell .page-host { padding: 22px 16px 76px; }
  .honey-home + .app-shell .page-heading { align-items: flex-start; }
  .honey-home + .app-shell .panel-heading { padding: 16px; }
  .honey-home ~ .report-dialog .publish-panel { border-top-color: #eee7df; border-left: 0; }
}

/* Account password form; no credentials are rendered into status messages. */
.password-entry { white-space: nowrap; flex-shrink: 0; }
.password-dialog { width: min(480px, calc(100vw - 32px)); }
.password-form { display: grid; gap: 16px; padding: 22px; overflow-y: auto; }
.password-form > p { margin: 0; }
.password-help { color: var(--ink-500); font-size: 13px; line-height: 1.6; }
.password-error { color: #a93622; min-height: 1.4em; font-size: 14px; }
.password-actions { display: flex; gap: 12px; justify-content: flex-end; flex-wrap: wrap; }
.quota-confirm-row { display: flex; align-items: flex-start; gap: 10px; font-size: 14px; line-height: 1.6; }
.quota-confirm-row input { flex: 0 0 auto; margin-top: 5px; }
#quota-dialog { width: min(650px, calc(100vw - 32px)); }
#quota-models { overflow-wrap: anywhere; }
@media (max-width: 600px) { .password-entry { font-size: 12px; } .password-form { padding: 16px; } }
