/* 食事求是 · application identity and reading rhythm */
:root {
  --bg: #f6f6f3;
  --surface: #ffffff;
  --ink: #24344a;
  --muted: #647083;
  --faint: #eff1f3;
  --line: #e0e2e4;
  --primary: #0b3768;
  --primary-hover: #082a50;
  --primary-soft: #edf2f8;
  --brand-gold: #d6a638;
  --green: #38765e;
  --green-soft: #eaf1eb;
  --blue: #527b96;
  --amber: #956c2f;
  --amber-soft: #faf3e6;
  --red: #a65348;
  --red-soft: #faeeea;
  --nav: #102d4d;
  --radius: 10px;
  --shadow: 0 3px 12px #1925360b;
  --font: "Shishi Sans", "Noto Sans SC", "PingFang SC", "Microsoft YaHei UI", sans-serif;
}
body { font-family: var(--font); font-size: 14px; line-height: 1.65; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
button, input, select { font-family: var(--font); }
button, a, input, select, summary { -webkit-tap-highlight-color: transparent; }
button, a, select, input { transition: color .14s ease, background-color .14s ease, border-color .14s ease, box-shadow .14s ease; }
button:focus-visible, a:focus-visible, select:focus-visible, input:focus-visible, summary:focus-visible { outline: 2px solid #5079a4; outline-offset: 3px; }
::selection { background: #dde2e8; color: #082a50; }

/* A quiet navigation rail, with a single clear active state. */
.sidebar { padding-top: 28px; background: var(--nav); }
.brand { gap: 11px; padding: 0 10px; font-size: 23px; font-weight: 600; letter-spacing: .015em; }
.brand-mark { width: 41px; height: 41px; flex: 0 0 41px; }
.brand-mark img, .brand-logo-mark { display: block; width: 41px; height: 41px; border-radius: 0; }
.brand-mark { background: #ffffff; border-radius: 9px; }
.brand-wordmark { display: block; line-height: 1.5; white-space: nowrap; }
.brand>span:last-child { line-height: 1.5; white-space: nowrap; }
.brand.brand-text-only { display: block; padding: 0 12px; font-size: 26px; font-weight: 600; letter-spacing: .06em; line-height: 1.45; }
.brand.brand-text-only small { margin-top: 7px; font-size: 11px; font-weight: 400; letter-spacing: .08em; line-height: 1.7; color: #b9bec4; }
.brand small { display: block; margin-top: 3px; font-family: var(--font); font-size: 10px; font-weight: 400; letter-spacing: .12em; line-height: 1.7; color: #bcc1c7; }
.workspace-label { margin: 30px 14px 16px; font-size: 11px; letter-spacing: .035em; color: #acb2ba; }
.navigation { gap: 5px; }
.navigation a { min-height: 45px; padding: 10px 13px; border: 1px solid transparent; border-radius: 7px; font-size: 14px; color: #c8ccd1; }
.navigation a:hover { background: #ffffff09; color: #f4f6f8; }
.navigation a.active { border-color: #ffffff12; background: #ffffff0e; box-shadow: inset 3px 0 0 #cfb16f; color: #f5f7f9; font-weight: 550; }
.navigation a.active [data-icon] { color: #d4dce7; opacity: 1; }
.navigation a [data-icon] svg { width: 18px; height: 18px; stroke-width: 1.55; }
.nav-divider { padding-top: 27px; font-family: var(--font); font-size: 11px; letter-spacing: .08em; color: #9fa6af; }
.nav-label { border-color: #ffffff20; color: #bdc4cd; font-size: 10px; }
.sidebar-bottom { padding-top: 25px; }
.sidebar-bottom strong, .sidebar-help { font-size: 11px; }
.sidebar-bottom p { font-size: 11px; line-height: 1.9; color: #acb2ba; }
.sidebar-help { border-top-color: #ffffff18; }
.data-dot { width: 5px; height: 5px; background: #afbac9; }

/* The page leads with its question and date range, rather than an illustration. */
.topbar { height: 65px; border-bottom-color: var(--line); background: #ffffff; }
.breadcrumb { font-size: 12px; color: #6d7683; }
.breadcrumb b { font-weight: 500; color: #293d58; }
.local-badge { font-size: 11px; color: #6d7683; }
main { padding-top: 30px; }
.page-heading, body:not([data-page="overview"]) .page-heading { min-height: 0; margin: 0 0 24px; gap: 24px; align-items: center; }
.page-heading-copy { max-width: 100%; min-width: 0; }
.campus-illustration { display: none; }
.page-heading h1, .page-heading-copy h1 { margin: 0; padding: 0; border: 0; font-size: 29px; font-weight: 600; line-height: 1.45; letter-spacing: -.035em; }
.page-heading-copy .eyebrow { margin-bottom: 7px; font-family: var(--font); font-size: 11px; font-weight: 500; line-height: 1.6; letter-spacing: .06em; color: #69727e; }
.page-heading-copy p, .page-heading p { max-width: 100%; margin-top: 7px; font-size: 13px; line-height: 1.8; color: #646c78; }
.heading-stamp { margin: 0; padding: 0 0 0 22px; border-left: 1px solid #dadce0; border-radius: 0; background: none; align-self: center; }
.heading-stamp span { font-size: 11px; letter-spacing: .04em; }
.heading-stamp strong { font-size: 12px; font-weight: 500; color: #2a3e5a; }
.section-kicker { font-family: var(--font); font-size: 11px; font-weight: 500; letter-spacing: .055em; color: #666e7a; margin: 26px 0 11px; }

/* Controls use the same sizing and states throughout the application. */
.button { min-height: 40px; border-radius: 6px; font-size: 12px; font-weight: 500; }
.button.secondary { border-color: #d7dade; background: #fff; color: #2c405c; }
.button.secondary:hover { border-color: #a7adb6; background: #f5f7f9; }
.button.small { min-height: 35px; font-size: 12px; }
.icon-button { border-radius: 6px; }
.filter-panel { border-radius: 9px; box-shadow: none; margin-bottom: 22px; }
.filter-top { padding: 13px 17px; }
.filter-bottom { padding: 14px 18px; }
.meal-switch { gap: 3px; }
.filter-top .meal-switch button { min-height: 36px; border-radius: 5px; padding: 7px 16px; font-size: 13px; }
.meal-switch button.active { font-weight: 500; }
.meal-switch button:not(.active):hover { color: var(--primary); background: #eef0f3; }
.quick-ranges button { min-height: 34px; font-size: 11px; padding: 6px 10px; border-radius: 5px; }
.field label { font-size: 12px; }
.field select, .field input, .input, .chart-select { border-color: #d7dadf; border-radius: 5px; font-size: 12px; min-height: 36px; }
.field select:hover, .field input:hover, .input:hover, .chart-select:hover, .date-select:hover { border-color: #a8afb8; }
.date-select { border-color: #d7dadf; border-radius: 5px; }
.date-select select { min-width: 91px; }
.filter-status { font-size: 11px; }
.chart-select { max-width: 270px; min-height: 32px; padding: 4px 8px; }
.tabs { gap: 25px; }
.tabs button { font-size: 13px; min-height: 44px; }
.tabs button.active { font-weight: 550; }

/* Numbers, labels and explanation form distinct but closely spaced levels. */
.kpi-grid { gap: 15px; margin-bottom: 22px; }
.kpi { border-radius: 9px; padding: 18px; min-height: 144px; box-shadow: none; }
.kpi.featured { background: #fff; border: 1px solid #d1d4d9; box-shadow: inset 0 3px 0 var(--primary); }
.kpi-label, .kpi.featured .kpi-label { font-size: 12px; font-weight: 450; color: #5e6671; gap: 5px; }
.kpi-icon, .kpi.featured .kpi-icon { width: 24px; height: 24px; flex-shrink: 0; border-radius: 0; background: transparent; color: #6c7582; }
.kpi-icon svg { width: 18px; height: 18px; }
.kpi-value, .kpi.featured .kpi-value { margin: 9px 0 6px; font-family: var(--font); font-size: 31px; font-weight: 550; font-variant-numeric: tabular-nums; letter-spacing: -.05em; line-height: 1.4; color: #1f2e43; }
.kpi.featured .kpi-value { color: var(--primary); }
.kpi-value small { font-size: 11px; font-weight: 400; color: #717b88; }
.kpi-caption, .kpi.featured .kpi-caption { font-size: 11px; line-height: 1.8; color: #6e7784; }
.panel { padding: 21px; border-radius: 9px; border-color: #dde0e4; box-shadow: none; }
.panel-head { margin-bottom: 16px; gap: 15px; }
.panel-head h2 { font-size: 15px; font-weight: 550; line-height: 1.7; letter-spacing: -.01em; color: #24364e; }
.panel-head p, .panel-note, .chart-legend-note { font-size: 12px; line-height: 1.8; color: #67707c; }
.chart-legend-note { border-top-color: #e2e5e9; }
.panel-actions { gap: 8px; }
.link-button { font-size: 12px; }
.grid { gap: 20px; }
.floor-card { border-radius: 9px; padding: 17px; border-color: #dde0e4; }
.floor-card:hover { border-color: #b3bac3; box-shadow: none; }
.floor-card .floor-name { font-size: 13px; font-weight: 550; }
.floor-card strong { margin-top: 10px; font-family: var(--font); font-size: 27px; font-weight: 550; letter-spacing: -.04em; }
.floor-card p { font-size: 11px; line-height: 1.8; }
.floor-card .chart { margin-top: 8px; }
.split-stat strong, .value-list strong, .case-numbers strong, .signal-meta strong, .signal-rate { font-family: var(--font); font-variant-numeric: tabular-nums; font-weight: 550; letter-spacing: -.035em; }
.split-stat span { font-size: 12px; }
.value-list { gap: 13px; }
.value-list>div { gap: 16px; font-size: 12px; }
.value-list>div>span { min-width: 0; }
.value-list strong { font-size: 14px; flex-shrink: 0; }
.tag { padding: 3px 7px; font-size: 11px; border-radius: 4px; font-weight: 450; }
.window-summary-strip .tag { padding: 5px 8px; }

/* Tables stay compact, with enough contrast to read for extended periods. */
.table-wrap { border-radius: 6px; scrollbar-width: thin; scrollbar-color: #c3c8cf #f2f4f6; }
.data-table { font-size: 12px; line-height: 1.65; }
.data-table th { padding: 12px; font-size: 11px; font-weight: 500; color: #515862; background: #eff1f4; border-bottom-color: #d5dae1; }
.data-table td { padding: 12px; border-bottom-color: #e6e8ec; }
.data-table th button[data-sort]:hover { color: #233349; }
.data-table tbody tr:hover { background: #f5f7f9; }
.data-table .window-name { font-weight: 500; }
.data-table .table-sub { margin-top: 3px; font-size: 11px; line-height: 1.7; color: #757f8c; }
.score { font-family: var(--font); font-size: 16px; font-weight: 600; letter-spacing: -.025em; }
.rank-number { width: 24px; height: 24px; border-radius: 5px; font-size: 12px; }
.rank-number.top { background: #e9edf2; color: #2f4564; }
.table-foot, .metric-count { font-size: 11px; line-height: 1.8; }
.table-tools .input { font-size: 12px; }

/* Signals carry semantic emphasis only where it helps a decision. */
.notice { border-radius: 6px; font-size: 12px; line-height: 1.85; background: #faf5e9; border-color: #eadfc6; color: #88652e; }
.notice.info { background: #eff4f5; border-color: #dce6e7; color: #537074; }
.scope-notes { border-radius: 7px; background: #f7f9fb; }
.scope-notes summary { font-size: 11px; padding: 10px 13px; }
.scope-notes p { font-size: 12px; line-height: 1.85; }
.signal-card, .case-card { border-radius: 9px; padding: 21px; border-color: #dde0e4; }
.signal-card h3 { font-size: 17px; font-weight: 550; }
.signal-card p, .case-card p { font-size: 12px; line-height: 1.9; color: #656d78; }
.signal-rate { font-size: 36px; }
.signal-rate small { font-family: var(--font); font-size: 12px; color: #6c7582; line-height: 1.9; letter-spacing: 0; }
.signal-meta { gap: 10px; border-color: #dde2e8; }
.signal-meta strong { font-size: 21px; }
.signal-meta span { font-size: 11px; line-height: 1.8; }
.case-card h3 { font-size: 15px; font-weight: 550; }
.case-numbers strong { font-size: 25px; }
.case-numbers span { font-size: 11px; }
.method-row { gap: 14px; padding: 21px 0; border-bottom-color: #dee2e8; }
.method-number, .definition-card .definition-number { font-family: var(--font); font-weight: 450; color: #848c99; }
.method-row h3 { font-size: 14px; font-weight: 550; }
.method-row p { font-size: 12px; line-height: 1.95; color: #646c78; }
.definition-card { padding: 17px; border-color: #dadfe6; border-radius: 7px; }
.definition-card h3 { font-size: 14px; font-weight: 550; }
.definition-card p { font-size: 12px; line-height: 1.9; color: #666e7a; }
.definition-card .definition-number { font-size: 24px; }

/* Metric navigation and detailed help share the same quiet surface. */
.family-list { border-radius: 8px; border-color: #dde0e4; }
.family-list button { padding: 9px; font-size: 11px; line-height: 1.75; border-radius: 4px; }
.family-list small { font-family: var(--font); color: #8a929e; font-size: 10px; }
.metric-summary { border-radius: 6px; background: #eef1f5; font-size: 12px; line-height: 1.9; }
.metric-summary strong { font-weight: 550; color: #2f4563; }
.metric-summary details { margin-top: 8px; }
.metric-summary summary { cursor: pointer; color: #646e7d; font-size: 11px; }
.metric-inventory { gap: 9px; }
.metric-inventory button[data-pick-field] { padding: 13px; border-radius: 6px; border-color: #dadee6; font-size: 12px; line-height: 1.8; }
.metric-inventory button[data-pick-field]:hover { background: #f4f6f9; border-color: #afb8c4; }
.metric-inventory strong { font-weight: 550; color: #2d4260; }
.metric-inventory small { font-size: 11px; }
.metric-inventory-item>button[data-pick-field] { padding-right: 42px; }
.metric-inventory-item>.metric-help-button { right: 5px; top: 6px; }
.download-link { border-color: #dcdfe4; border-radius: 6px; font-size: 12px; }
.download-link:hover { border-color: #a2adbc; background: #f8f9fb; }
.status-line { font-size: 12px; line-height: 1.9; color: #6c7582; }
.plain-details { border-radius: 6px; background: #f5f7fa; border-color: #dadfe6; font-size: 12px; }
.plain-details>summary { font-weight: 500; }
.plain-definition-list dd { font-size: 12px; line-height: 1.85; }
.plain-details .panel-note { font-size: 12px; }
.app-footer { margin-top: 30px; font-size: 11px; color: #79828f; letter-spacing: 0; }
.app-footer span { letter-spacing: 0; }
.app-footer a { color: #707986; }
.empty-illustration { display: none; }
.empty-state { min-height: 230px; color: #747d8a; }
.empty-state::before { content: ""; display: block; width: 36px; height: 30px; margin: 0 0 14px; border: 1.5px solid #aeb5c0; border-radius: 5px; background: linear-gradient(#aeb5c0,#aeb5c0) 8px 9px/18px 1px no-repeat, linear-gradient(#aeb5c0,#aeb5c0) 8px 16px/13px 1px no-repeat; }
.empty-state h2 { font-size: 16px; font-weight: 500; color: #364f72; }
.empty-state p { font-size: 12px; line-height: 1.9; }
.toast { border-radius: 7px; background: #263750; font-size: 12px; }

/* Explanation controls retain a clear focus ring and a generous touch area. */
.metric-help-button, .data-table th button.metric-help-button { color: #77808d; }
.metric-help-button:hover, .metric-help-button[aria-expanded=true], .data-table th button.metric-help-button:hover, .data-table th button.metric-help-button[aria-expanded=true] { color: #2d4361; background: #e6ebf1; }
.kpi.featured .metric-help-button { color: #77808d; }
.kpi.featured .metric-help-button:hover, .kpi.featured .metric-help-button[aria-expanded=true] { color: #2d4361; background: #e6ebf1; }
.metric-help-popover { border-radius: 10px; border-color: #c2c9d3; box-shadow: 0 10px 36px #202f4424; font-family: var(--font); }
.metric-help-head { padding: 17px 18px 12px; background: #f0f3f7; border-color: #dbe0e8; }
.metric-help-head>div>span { font-size: 11px; color: #757f8d; letter-spacing: .06em; }
.metric-help-head h2 { font-size: 16px; font-weight: 550; color: #293d58; }
.metric-help-close { border-color: #d5dbe3; border-radius: 5px; }
.metric-help-text h3 { font-size: 12px; font-weight: 600; color: #395378; }
.metric-help-text p { font-size: 13px; line-height: 1.9; color: #395378; }
.metric-help-caution { border-left-color: #bd9b58; background: #fbf5e8; color: #8e6c31!important; }
.metric-help-technical { font-size: 11px; border-top-color: #dae0e6; }
.metric-help-technical p { font-size: 11px; }
.metric-help-footer { background: #f5f7fa; border-color: #dce1e8; font-size: 11px; color: #7e8793; }
.metric-chart-help { gap: 5px 9px; padding-top: 9px; border-color: #e0e4ec; }
.metric-help-row-label { color: #88909c; font-size: 11px; }
.metric-help-chip { color: #6c7684; font-size: 11px; }
.breadcrumb, .local-badge, .kpi-value small,
.kpi-caption, .kpi.featured .kpi-caption, .data-table .table-sub,
.status-line, .app-footer, .app-footer a, .metric-help-footer,
.metric-help-row-label { color: #646c78; }
.metric-help-head>div>span { color: #5e6672; }

@media (min-width: 1650px) {
  .page-heading h1 { font-size: 31px; }
  .kpi-value { font-size: 34px; }
}
@media (max-width: 1200px) {
  .brand { padding: 0 5px; gap: 9px; font-size: 21px; }
  .brand.brand-text-only { padding: 0 10px; font-size: 24px; }
  .brand-mark, .brand-mark img, .brand-logo-mark { width: 36px; height: 36px; flex-basis: 36px; }
  .brand small { font-size: 9px; letter-spacing: .08em; }
  .navigation a { padding-left: 12px; padding-right: 10px; font-size: 13px; }
  .panel { padding: 19px; }
  .kpi { padding: 16px; }
  .kpi-value { font-size: 29px; }
  .page-heading h1 { font-size: 27px; }
}
@media (max-width: 950px) {
  .sidebar { width: 224px; padding: 26px 16px; }
  .brand { font-size: 23px; padding: 0 10px; }
  .brand.brand-text-only { padding: 0 12px; font-size: 26px; }
  .brand-mark, .brand-mark img, .brand-logo-mark { width: 41px; height: 41px; flex-basis: 41px; }
  .brand small { font-size: 10px; }
  .navigation a { font-size: 14px; }
  .heading-stamp { display: none; }
}
@media (max-width: 700px) {
  .topbar { height: 62px; padding: 0 16px; }
  .breadcrumb { font-size: 11px; }
  .topbar-right .button { font-size: 11px; min-height: 38px; padding: 6px 9px; }
  main { padding: 23px 16px 19px; }
  .page-heading, body:not([data-page="overview"]) .page-heading { margin-bottom: 21px; }
  .page-heading h1, .page-heading-copy h1 { font-size: 25px; line-height: 1.45; }
  .page-heading-copy .eyebrow { font-size: 10px; }
  .page-heading-copy p, .page-heading p { max-width: 100%; font-size: 12px; line-height: 1.85; }
  .filter-panel { margin-bottom: 19px; }
  .filter-top { padding: 11px 12px; }
  .filter-bottom { padding: 12px; gap: 11px; }
  .filter-top .meal-switch button { min-height: 39px; padding: 7px 14px; font-size: 12px; }
  .quick-ranges button { min-height: 35px; padding: 6px 11px; }
  .field label { font-size: 11px; }
  .field select, .field input, .input { font-size: 12px; min-height: 40px; }
  .kpi-grid { gap: 10px; }
  .kpi { padding: 14px; min-height: 140px; }
  .kpi-label, .kpi.featured .kpi-label { font-size: 11px; line-height: 1.8; gap: 3px; }
  .kpi-value, .kpi.featured .kpi-value { font-size: 27px; }
  .kpi-value small { display: block; margin: 3px 0 0; font-size: 10px; line-height: 1.8; }
  .kpi-icon { display: none; }
  .kpi-caption, .kpi.featured .kpi-caption { font-size: 10px; line-height: 1.85; }
  .panel { padding: 17px; }
  .panel-head { gap: 10px; flex-wrap: wrap; }
  .panel-head h2 { font-size: 14px; }
  .panel-head p, .panel-note, .chart-legend-note { font-size: 11px; line-height: 1.85; }
  .chart-select { max-width: 190px; font-size: 11px; }
  .section-kicker { font-size: 10px; margin-top: 22px; }
  .floor-card { padding: 13px; }
  .floor-card .floor-name { font-size: 12px; }
  .floor-card strong { font-size: 25px; }
  .floor-card p { font-size: 10px; }
  .data-table th, .data-table td { padding: 10px; }
  .data-table .table-sub { font-size: 10px; }
  .notice { font-size: 11px; padding: 10px 11px; }
  .scope-notes summary { font-size: 10px; }
  .scope-notes p { font-size: 11px; }
  .tabs { gap: 23px; }
  .tabs button { font-size: 12px; }
  .signal-card, .case-card { padding: 18px; }
  .signal-card h3 { font-size: 16px; }
  .signal-card p, .case-card p { font-size: 12px; }
  .signal-meta span { font-size: 10px; }
  .signal-meta strong { font-size: 20px; }
  .value-list>div { gap: 10px; font-size: 11px; }
  .value-list strong { font-size: 13px; }
  .method-row p, .definition-card p, .status-line { font-size: 12px; }
  .method-row h3, .definition-card h3 { font-size: 13px; }
  .family-list button { font-size: 11px; }
  .metric-inventory button[data-pick-field] { font-size: 12px; }
  .metric-inventory-item>button[data-pick-field] { padding-right: 48px; }
  .metric-inventory-item>.metric-help-button { right: 1px; top: 1px; }
  .app-footer { font-size: 10px; }
  .metric-help-head h2 { font-size: 15px; }
  .metric-help-head { padding: 14px 14px 10px; }
  .metric-help-text p { font-size: 13px; }
  .metric-help-footer { font-size: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  button, a, input, select { transition: none; }
}
@media print {
  body { background: white; color: black; }
  .metric-help-button, .metric-chart-help { display: none!important; }
  .panel, .kpi { border-color: #ddd; box-shadow: none; }
}

/* Keep the active data scope within reach while reading a long dashboard. */
html { scroll-padding-top: var(--filter-scroll-offset, 90px); }
.filter-panel {
  position: sticky;
  top: 12px;
  z-index: 30;
  max-height: var(--filter-viewport-limit, none);
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: #b6bdc7 transparent;
  transition: box-shadow .16s ease, border-color .16s ease;
}
.filter-panel.is-stuck {
  border-color: #c8cdd4;
  box-shadow: 0 5px 18px #1f2e4215, 0 1px 3px #1f2e4209;
}
.filter-sticky-sentinel { display: block; width: 1px; height: 1px; margin-bottom: -1px; pointer-events: none; }
.filter-panel :is(button, select, input) { scroll-margin: 8px; }
@media (max-width: 700px) {
  .filter-panel { top: 8px; }
  .filter-panel .filter-top { gap: 4px; padding: 7px 10px; }
  .filter-panel .meal-switch { gap: 2px; }
  .filter-panel .meal-switch button { min-height: 44px; padding: 6px 13px; }
  .filter-panel .quick-ranges { gap: 3px; }
  .filter-panel .quick-ranges button { min-height: 44px; padding: 5px 10px; }
  .filter-panel .filter-bottom { gap: 8px 12px; padding: 9px 10px; }
  .filter-panel .field { gap: 5px; }
  .filter-panel .field select, .filter-panel .field input { min-height: 44px; }
  .filter-panel .range-field label, .filter-panel .window-field label { width: 52px; }
  .filter-panel .filter-status { font-size: 10px; line-height: 1.6; }
}
@media (pointer: coarse) {
  .filter-panel .meal-switch button, .filter-panel .quick-ranges button,
  .filter-panel .field select, .filter-panel .field input { min-height: 44px; }
}
@media (prefers-reduced-motion: reduce) {
  .filter-panel { transition: none; }
}
@media print {
  .filter-panel, .filter-sticky-sentinel { display: none!important; }
  html { scroll-padding-top: 0; }
}

/* Selection is a brand state; green remains available for positive data states. */
.quick-ranges button.active,.family-list button.active{background:var(--primary-soft);color:var(--primary)}
