/* P21-CHALLENGE-UI-004 达标评审：沿 DESIGN.md 与挑战页 .ach- 视觉（浅色画布、白面板、#dce3ea 细边线、单一蓝色、8/12px 圆角），作用域 .asm-。 */
.asm-root { display: grid; gap: 12px; min-width: 0; }
.asm-panel { display: grid; gap: 10px; padding: 18px 20px; border: 1px solid var(--line, #dce3ea); border-radius: 12px; background: var(--panel, #fff); min-width: 0; color: var(--ink, #18202a); }
.ach-card .asm-panel { margin-top: 12px; }
.asm-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.asm-head h4 { margin: 0; font-size: 15px; }
.asm-panel h5 { margin: 0 0 6px; font-size: 14px; }
.asm-sub { margin: 0; color: var(--muted, #6c7683); font-size: 12px; line-height: 1.6; }
.asm-mono { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 12px; overflow-wrap: anywhere; }
.asm-num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.asm-statusline { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.asm-pill { display: inline-flex; align-items: center; gap: 6px; padding: 2px 10px; border: 1px solid; border-radius: 999px; font-size: 12px; font-weight: 600; white-space: nowrap; }
.asm-pill::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.asm-pill.wait { border-color: #cbd9f2; background: #eef3fc; color: #23457f; }
.asm-pill.ok { border-color: #bfdccb; background: #e9f5ee; color: #1f5a3f; }
.asm-pill.warn { border-color: #efd3ad; background: #fbf1e3; color: #6f420f; }
.asm-pill.bad { border-color: #efc2c0; background: #fbeceb; color: #7c2626; }
.asm-pill.muted { border-color: var(--line, #dce3ea); background: #f1f4f7; color: #465160; }
.asm-notice { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; padding: 10px 14px; border: 1px solid; border-radius: 10px; font-size: 13px; }
.asm-notice.info { border-color: #cbd9f2; background: #eef3fc; color: #23457f; }
.asm-notice.ok { border-color: #bfdccb; background: #e9f5ee; color: #1f5a3f; }
.asm-notice.bad { border-color: #efc2c0; background: #fbeceb; color: #7c2626; }
.asm-notice.warn { border-color: #efd3ad; background: #fbf1e3; color: #6f420f; }
.asm-error { margin: 0; padding: 8px 12px; border: 1px solid #efc2c0; border-radius: 8px; background: #fbeceb; color: #7c2626; font-size: 13px; }
.asm-errtext { margin: 0; color: #7c2626; font-size: 12px; }
.asm-return, .asm-issue { margin: 0; padding: 8px 12px; border-left: 3px solid #efd3ad; background: #fffaf2; color: #6f420f; font-size: 13px; }
.asm-mode { margin: 0; padding: 6px 10px; border-radius: 8px; background: #f6f8fa; color: var(--muted-strong, #465160); font-size: 12px; }
.asm-facts { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 8px 16px; margin: 0; }
.asm-facts dt { color: var(--muted, #6c7683); font-size: 12px; }
.asm-facts dd { margin: 2px 0 0; font-size: 13px; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.asm-facts dd small { color: var(--muted, #6c7683); }
.asm-reasons { grid-template-columns: 1fr; margin-top: 10px; }
.asm-registered { margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--line-soft, #e8edf2); }
.asm-history { display: grid; gap: 8px; margin: 12px 0 0; padding: 10px 0 0; list-style: none; border-top: 1px solid var(--line-soft, #e8edf2); font-size: 13px; }
.asm-history li { display: grid; grid-template-columns: 130px auto 1fr; gap: 2px 12px; }
.asm-history li > span { color: var(--muted, #6c7683); }
.asm-history p { grid-column: 2 / -1; margin: 0; color: var(--muted-strong, #465160); white-space: pre-wrap; overflow-wrap: anywhere; }
.asm-cols { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, 400px); gap: 16px; align-items: start; }
.asm-act { position: sticky; top: 16px; }
.asm-form { display: grid; gap: 8px; padding: 12px 14px; border: 1px solid var(--line, #dce3ea); border-radius: 10px; background: #fafbfc; }
.asm-field { display: grid; gap: 4px; font-size: 13px; color: var(--muted-strong, #465160); }
.asm-field em { font-style: normal; color: var(--muted, #6c7683); font-size: 12px; }
.asm-req { color: #b43d3d; font-style: normal; }
.asm-field textarea, .asm-field input[type="text"] { width: 100%; box-sizing: border-box; padding: 7px 10px; border: 1px solid var(--line, #dce3ea); border-radius: 8px; background: #fff; font: inherit; font-size: 13px; color: var(--ink, #18202a); }
.asm-field textarea { min-height: 60px; resize: vertical; }
.asm-field textarea:focus-visible, .asm-field input:focus-visible { outline: none; border-color: var(--blue, #2f64c8); box-shadow: var(--focus, 0 0 0 3px rgba(47, 100, 200, 0.2)); }
.asm-field :disabled, .asm-check-ok input:disabled { background: #f1f4f7; color: #8f99a5; }
.asm-checks { display: grid; gap: 10px; margin: 0; padding: 10px 12px; border: 1px solid var(--line, #dce3ea); border-radius: 10px; background: #fff; }
.asm-checks legend { padding: 0 4px; font-size: 13px; font-weight: 600; }
.asm-check { display: grid; gap: 6px; padding-bottom: 10px; border-bottom: 1px solid var(--line-soft, #e8edf2); }
.asm-check:last-child { border-bottom: 0; padding-bottom: 0; }
.asm-check-ok { display: flex; gap: 8px; align-items: flex-start; cursor: pointer; font-size: 13px; }
.asm-check-ok input { margin-top: 3px; width: 16px; height: 16px; accent-color: var(--blue, #2f64c8); }
.asm-check-ok small { display: block; color: var(--muted, #6c7683); font-size: 12px; }
.asm-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.asm-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 36px; padding: 0 14px; border: 1px solid var(--line, #dce3ea); border-radius: 8px; background: #fff; color: var(--ink, #18202a); font: inherit; font-size: 14px; font-weight: 500; white-space: nowrap; cursor: pointer; }
.asm-btn:hover { border-color: #c6d0da; background: var(--panel-muted, #f7f9fb); }
.asm-btn.primary { border-color: var(--blue, #2f64c8); background: var(--blue, #2f64c8); color: #fff; font-weight: 600; }
.asm-btn.primary:hover { background: #244f9f; }
.asm-btn.danger { border-color: #efc2c0; color: #7c2626; }
.asm-btn:disabled { cursor: not-allowed; border-color: var(--line, #dce3ea); background: #e9edf2; color: #8f99a5; }
.asm-link { padding: 0; border: 0; background: none; color: var(--blue, #2f64c8); font: inherit; font-size: 13px; cursor: pointer; }
.asm-btn:focus-visible, .asm-link:focus-visible, .asm-tabs button:focus-visible { outline: none; box-shadow: var(--focus, 0 0 0 3px rgba(47, 100, 200, 0.2)); }
.asm-tabs { display: inline-flex; flex-wrap: wrap; gap: 4px; padding: 3px; border: 1px solid var(--line, #dce3ea); border-radius: 10px; background: #f6f8fa; justify-self: start; }
.asm-tabs button { padding: 6px 12px; border: 0; border-radius: 8px; background: none; color: var(--muted-strong, #465160); font: inherit; font-size: 13px; cursor: pointer; white-space: nowrap; }
.asm-tabs button[aria-selected="true"] { background: #fff; color: var(--ink, #18202a); font-weight: 600; box-shadow: 0 0 0 1px var(--line, #dce3ea); }
.asm-table-wrap { overflow-x: auto; border: 1px solid var(--line, #dce3ea); border-radius: 12px; background: #fff; }
.asm-root table.asm-table { width: 100%; min-width: 0; border-collapse: collapse; font-size: 13px; }
.asm-table th, .asm-table td { padding: 10px 12px; border-bottom: 1px solid var(--line-soft, #e8edf2); text-align: left; vertical-align: middle; }
.asm-table th { background: #f6f8fa; color: var(--muted, #6c7683); font-weight: 600; white-space: nowrap; }
.asm-table th.asm-num { text-align: right; }
.asm-table tbody tr:last-child td { border-bottom: 0; }
.asm-empty { color: var(--muted, #6c7683); text-align: center !important; padding: 24px !important; }
.asm-pager { display: flex; align-items: center; justify-content: flex-end; gap: 10px; color: var(--muted, #6c7683); font-size: 13px; }
.asm-radios { display: grid; gap: 8px; }
.asm-radio { display: flex; gap: 8px; align-items: flex-start; padding: 10px 12px; border: 1px solid var(--line, #dce3ea); border-radius: 10px; background: #fff; cursor: pointer; font-size: 13px; }
.asm-radio small { display: block; color: var(--muted, #6c7683); font-size: 12px; }
.asm-radio.is-on { border-color: var(--blue, #2f64c8); background: #eef3fc; }
@media (max-width: 1180px) {
  .asm-cols { grid-template-columns: minmax(0, 1fr); }
  .asm-act { position: static; }
}
