.assist-warning { border-left: 5px solid #b45309; background: #fff7ed; padding: 14px 16px; margin: 0 0 24px; line-height: 1.7; }
.assist-favorites { background: #f5f8fb; border: 1px solid #d7e0e8; border-radius: 6px; padding: 16px; margin-bottom: 26px; }
.assist-favorites h2, .assist-references h2 { margin-top: 0; }
.assist-muted { color: #667784; }
.is-hidden { display: none !important; }
.favorite-list { display: flex; flex-wrap: wrap; gap: 8px; }
.favorite-link, .score-index a { display: inline-block; border: 1px solid #8aa6bd; border-radius: 18px; padding: 6px 12px; background: #fff; color: #225a82; }
.disease-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 14px 0 28px; }
.disease-card { text-align: left; border: 1px solid #b7c8d6; border-radius: 7px; background: #fff; padding: 16px; color: #18384f; transition: border-color .15s, box-shadow .15s; }
.disease-card:hover, .disease-card:focus, .disease-card.is-active { border-color: #17699a; box-shadow: 0 2px 8px rgba(23,105,154,.18); outline: none; }
.disease-card strong, .disease-card span, .disease-card small { display: block; }
.disease-card strong { font-size: 18px; margin-bottom: 4px; }
.disease-card small { color: #657988; margin-top: 7px; }
.score-index { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 24px; }
.disease-panel { display: none; border-top: 4px solid #2876a5; background: #f8fafc; padding: 20px; margin: 25px 0; }
.disease-panel.is-active { display: block; }
.disease-panel > h2 { margin-top: 0; }
.assist-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 18px; margin: 18px 0; }
.assist-form-grid label { font-weight: 600; }
.assist-form-grid input[type="number"], .assist-form-grid select { display: block; width: 100%; height: 38px; margin-top: 5px; padding: 7px 9px; border: 1px solid #9aabb8; border-radius: 4px; background: #fff; }
.assist-check { padding: 8px 0; font-weight: 500 !important; }
.assist-check input { margin-right: 7px; }
.assist-reset { margin-left: 6px; }
.result-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 20px; }
.result-grid-three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.score-result { background: #fff; border: 1px solid #ced8df; border-radius: 6px; padding: 15px; min-height: 145px; }
.score-result h3 { display: flex; justify-content: space-between; align-items: center; margin: 0 0 12px; padding-bottom: 8px; border-bottom: 1px solid #e2e8ed; }
.favorite-toggle { border: 0; background: transparent; color: #9a6a00; font-size: 24px; line-height: 1; padding: 2px 4px; }
.favorite-toggle.is-favorite { color: #e0a000; }
.result-class { font-size: 20px; font-weight: 700; color: #174f73; margin-bottom: 8px; }
.result-detail { color: #465b69; line-height: 1.55; }
.result-source { margin: 10px 0 0; padding-top: 9px; border-top: 1px solid #e3e9ed; font-size: 13px; }
.assist-message { display: none; background: #fef2f2; border-left: 4px solid #b91c1c; color: #7f1d1d; padding: 10px 12px; margin: 14px 0; }
.assist-message.is-visible { display: block; }
.cytogenetic-help { background: #fff; border: 1px solid #b9c9d5; border-radius: 6px; padding: 12px 14px; margin: 16px 0 22px; }
.cytogenetic-help summary { color: #174f73; cursor: pointer; font-size: 17px; font-weight: 700; }
.cytogenetic-help[open] summary { margin-bottom: 12px; }
.cytogenetic-help caption { color: #263f50; font-size: 15px; font-weight: 700; padding: 10px 0 6px; }
.cytogenetic-help th { background: #eaf1f6; }
.cytogenetic-caution { border-left: 4px solid #b45309; background: #fff7ed; padding: 10px 13px; }
.cytogenetic-caution ul { margin-bottom: 0; }
.ipssm-section { border-top: 2px solid #8aa6bd; margin-top: 28px; padding-top: 22px; }
.ipssm-section > h3 { display: flex; align-items: center; justify-content: space-between; color: #174f73; }
.ipssm-import { border: 1px solid #9fb9ca; border-radius: 6px; background: #f7fbfd; margin: 10px 0 14px; padding: 9px 11px; }
.ipssm-import summary { color: #17699a; cursor: pointer; font-weight: 700; }
.ipssm-import[open] summary { margin-bottom: 9px; }
.ipssm-import textarea { width: 100%; border: 1px solid #b7c8d3; border-radius: 4px; padding: 8px; resize: vertical; }
.ipssm-import-actions { display: flex; gap: 7px; margin-top: 7px; }
.ipssm-parse-preview { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 9px; }
.parse-chip { border-radius: 14px; padding: 4px 9px; font-size: 12px; font-weight: 700; }
.parse-chip.mutated { background: #fff0f0; color: #982d2d; }
.parse-chip.negative { background: #e8f2f8; color: #245e81; }
.parse-chip.review { background: #fff7df; color: #8a5a00; }
.parse-empty { color: #6d7e89; font-size: 13px; }
.ipssm-warning { margin: 14px 0; }
.ipssm-step { display: flex; align-items: flex-start; gap: 11px; margin: 24px 0 12px; }
.ipssm-step-number { flex: 0 0 30px; height: 30px; border-radius: 50%; background: #17699a; color: #fff; font-size: 17px; font-weight: 700; line-height: 30px; text-align: center; }
.ipssm-step h4 { margin: 2px 0 3px; color: #174f73; font-size: 17px; }
.ipssm-step p { margin: 0; color: #657988; }
.coverage-options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; margin-bottom: 18px; }
.coverage-card { border: 1px solid #b8c8d3; border-radius: 6px; background: #fff; cursor: pointer; padding: 11px; font-weight: 400 !important; }
.coverage-card:focus-within { border-color: #17699a; box-shadow: 0 0 0 2px rgba(23,105,154,.12); }
.coverage-card input { margin-right: 5px; }
.coverage-card strong, .coverage-card small { display: block; margin-left: 20px; }
.coverage-card strong { color: #24485f; }
.coverage-card small { margin-top: 4px; color: #71818c; }
.mutation-entry { display: flex; gap: 8px; margin-bottom: 10px; }
.mutation-entry .form-control { flex: 1; }
.mutation-summary { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; min-height: 38px; border: 1px solid #d4dee5; border-radius: 5px; background: #fff; padding: 7px 9px; }
.mutation-summary-label { color: #516673; font-weight: 600; }
.mutation-tag { border: 1px solid #b54b4b; border-radius: 15px; background: #fff0f0; color: #8f2222; padding: 3px 9px; font-weight: 700; }
.gene-detail-editor { border: 1px solid #d4dee5; border-radius: 5px; background: #fff; padding: 10px 12px; margin: 12px 0 20px; }
.gene-detail-editor summary { cursor: pointer; color: #225a82; font-weight: 700; }
.gene-bulk-actions { display: flex; justify-content: space-between; gap: 10px; margin: 10px 0 -4px; }
.gene-sort-actions, .gene-set-actions { display: flex; gap: 7px; }
.gene-bulk-actions button { border: 1px solid #9eb2c0; border-radius: 14px; background: #fff; color: #315e7b; padding: 4px 10px; font-size: 12px; }
.gene-sort-actions button[aria-pressed="true"] { border-color: #17699a; background: #17699a; color: #fff; font-weight: 700; }
.gene-state-legend { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0 5px; }
.gene-state-legend span { border-radius: 13px; padding: 3px 9px; font-size: 12px; }
.legend-unknown { background: #edf1f4; color: #5c6b75; }
.legend-negative { background: #e8f2f8; color: #245e81; }
.legend-mutated { background: #fff0f0; color: #982d2d; }
.ipssm-gene-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; margin: 12px 0 6px; }
.gene-slider { display: grid; grid-template-columns: minmax(72px, .65fr) minmax(178px, 1.35fr); align-items: center; gap: 8px; }
.gene-slider-name { color: #344f60; font-size: 13px; overflow-wrap: anywhere; }
.gene-slider-track { display: grid; grid-template-columns: repeat(3, 1fr); position: relative; border: 1px solid #b7c5cf; border-radius: 16px; background: #edf1f4; overflow: hidden; }
.gene-slider-track button { position: relative; z-index: 1; border: 0; border-right: 1px solid rgba(84,105,119,.15); background: transparent; color: #61727d; padding: 5px 3px; font-size: 11px; line-height: 1.2; }
.gene-slider-track button:last-child { border-right: 0; }
.gene-slider-track button[aria-pressed="true"] { color: #fff; font-weight: 700; }
.gene-slider.state-unknown .gene-slider-track button[data-gene-state="unknown"] { background: #687985; }
.gene-slider.state-negative .gene-slider-track { border-color: #4e87aa; background: #e8f2f8; }
.gene-slider.state-negative .gene-slider-track button[data-gene-state="negative"] { background: #397ba3; }
.gene-slider.state-mutated .gene-slider-track { border-color: #b54b4b; background: #fff0f0; }
.gene-slider.state-mutated .gene-slider-track button[data-gene-state="mutated"] { background: #a73535; }
.gene-slider-track button:focus { z-index: 2; outline: 2px solid #f0a63a; outline-offset: -2px; }
.tp53-detail.is-hidden { display: none; }
.ipssm-progress { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 18px 0 14px; }
.ipssm-progress > div { display: flex; justify-content: space-between; border: 1px solid #ced8df; border-radius: 5px; background: #fff; padding: 8px 10px; }
.ipssm-progress span { color: #657988; }
.ipssm-progress strong { color: #174f73; }
.ipssm-result { margin-top: 20px; }
.ipssm-result .result-class { color: #174f73; font-size: 27px; line-height: 1.25; margin-bottom: 10px; }
.ipssm-result .result-detail { font-size: 16px; line-height: 1.7; }
.ipssm-result-actions { display: flex; align-items: center; gap: 9px; margin: 10px 0 16px; }
.ipssm-result-actions span { color: #516673; font-size: 13px; }
.ipssm-risk-visual { position: relative; margin: 38px 5px 30px; padding-bottom: 20px; }
.risk-bar { display: grid; grid-template-columns: 21.43fr 14.28fr 7.15fr 7.14fr 14.29fr 35.71fr; height: 50px; border: 1px solid #52636e; border-radius: 4px; overflow: hidden; }
.risk-bar > div { display: flex; align-items: center; justify-content: center; color: #fff; font-size: 16px; letter-spacing: -.2px; text-shadow: 0 1px 1px rgba(0,0,0,.25); }
.risk-vl { background: #07814d; }
.risk-l { background: #0876b5; }
.risk-ml { background: #b77fba; }
.risk-mh { background: #62439e; }
.risk-h { background: #f58b12; }
.risk-vh { background: #df3822; }
.risk-marker { position: absolute; z-index: 2; top: -32px; width: 0; height: 32px; transform: translateX(-1px); }
.risk-marker::after { position: absolute; left: -8px; top: 22px; width: 0; height: 0; border-left: 8px solid transparent; border-right: 8px solid transparent; border-top: 10px solid var(--marker-color); content: ""; }
.risk-marker span { position: absolute; top: 0; left: 0; color: var(--marker-color); font-size: 14px; font-weight: 700; line-height: 1; white-space: nowrap; transform: translateX(-50%); }
.risk-boundaries { position: relative; height: 20px; color: #52636e; font-size: 11px; }
.risk-boundaries span { position: absolute; top: 4px; transform: translateX(-50%); }
.ipssm-reclassification { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 10px; border: 1px solid #bfd0db; border-radius: 6px; background: #f7fafc; margin: 0 0 13px; padding: 11px; text-align: center; }
.ipssm-reclassification strong { display: block; color: #174f73; font-size: 16px; }
.reclass-arrow { color: #17699a; font-size: 24px; font-weight: 700; }
.reclass-note { grid-column: 1 / -1; color: #596d79; font-size: 12px; }
.ipssm-missing-impact { border-left: 4px solid #c48217; background: #fffaf0; margin: 12px 0; padding: 9px 11px; }
.ipssm-missing-impact strong { color: #714d0b; }
.impact-genes { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 7px; }
.impact-genes span { border-radius: 12px; background: #fff0cb; color: #714d0b; padding: 3px 8px; font-size: 12px; font-weight: 700; }
.ipssm-official-links { margin-top: 12px; font-size: 13px; }
.ipssmevo-prototype { border: 2px solid #7d67a8; border-radius: 8px; background: #fbf9ff; margin-top: 30px; padding: 20px; }
.ipssmevo-prototype > h3 { color: #513c7a; font-size: 24px; margin: 3px 0 5px; }
.prototype-badge { display: inline-block; border-radius: 14px; background: #67508f; color: #fff; padding: 4px 10px; font-size: 12px; font-weight: 700; }
.ipssmevo-lead { color: #536472; margin: 8px 0 2px; }
.ipssmevo-inherited { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 15px 0 5px; }
.ipssmevo-inherited > div { border: 1px solid #d4cce3; border-radius: 6px; background: #fff; padding: 9px 10px; }
.ipssmevo-inherited span, .ipssmevo-inherited strong { display: block; }
.ipssmevo-inherited span { color: #513c7a; font-weight: 700; }
.ipssmevo-inherited strong { margin-top: 5px; }
.ipssmevo-inherited p { grid-column: 1 / -1; color: #657988; font-size: 12px; margin: 0; }
.ipssmevo-inherited .route-present { color: #a73535; }
.ipssmevo-inherited .route-absent { color: #397ba3; }
.ipssmevo-inherited .route-unknown { color: #687985; }
.ipssmevo-result { border-color: #bcb0d2; margin-top: 18px; }
.ipssmevo-result .result-class { color: #513c7a; font-size: 27px; }
.ipssmevo-use-note { border-left: 4px solid #8a6e1e; background: #fff9e8; color: #684f0d; margin: 13px 0 0; padding: 9px 11px; font-size: 13px; line-height: 1.6; }
.ipssmevo-route-summary { display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0; }
.ipssmevo-route-summary span { border-radius: 13px; background: #eee9f6; color: #513c7a; padding: 4px 9px; font-size: 12px; font-weight: 700; }
.risk-bar-evo { grid-template-columns: 12.5fr 12.5fr 12.5fr 12.5fr 25fr 25fr; }
.three-stage-risk { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr; align-items: center; gap: 10px; border-top: 1px solid #d8dfe4; margin-top: 20px; padding-top: 20px; }
.risk-stage-circle { display: flex; flex-direction: column; align-items: center; justify-content: center; aspect-ratio: 1; width: 100%; max-width: 165px; border-radius: 50%; background: var(--stage-color); color: #fff; margin: 0 auto; padding: 15px; text-align: center; box-shadow: 0 2px 7px rgba(26,45,58,.18); }
.risk-stage-circle small, .risk-stage-circle strong, .risk-stage-circle span { display: block; color: #fff; }
.risk-stage-circle small { font-size: 13px; }
.risk-stage-circle strong { font-size: 16px; line-height: 1.25; margin: 7px 0; }
.risk-stage-circle span { font-size: 17px; font-weight: 700; }
.risk-stage-arrow { align-self: center; color: #667784; font-size: 26px; font-weight: 700; }
.three-stage-risk p { grid-column: 1 / -1; color: #657988; font-size: 12px; margin: 0; text-align: center; }
.assist-references { border-top: 1px solid #ccd7df; margin-top: 30px; padding-top: 20px; font-size: 13px; color: #516673; }
@media (max-width: 767px) {
  .disease-grid, .assist-form-grid, .result-grid, .result-grid-three { grid-template-columns: 1fr; }
  .coverage-options, .ipssm-progress { grid-template-columns: 1fr; }
  .ipssm-gene-grid { grid-template-columns: 1fr; }
  .ipssmevo-inherited { grid-template-columns: 1fr; }
  .ipssmevo-inherited p { grid-column: auto; }
  .disease-panel { padding: 15px; }
}
@media (max-width: 480px) {
  .mutation-entry { display: block; }
  .mutation-entry .btn { margin-top: 7px; width: 100%; }
  .gene-bulk-actions { align-items: flex-start; flex-direction: column; }
  .gene-slider { grid-template-columns: 70px minmax(0, 1fr); }
  .risk-bar > div { font-size: 13px; }
  .ipssm-reclassification { grid-template-columns: 1fr; }
  .reclass-note { grid-column: auto; }
  .three-stage-risk { grid-template-columns: 1fr; }
  .risk-stage-arrow { transform: rotate(90deg); text-align: center; }
  .three-stage-risk p { grid-column: auto; }
  .risk-stage-circle { width: 150px; }
}
@media print {
  .navbar, header, .page-top, .pankuzu, .disease-grid, .score-index, .assist-favorites, .favorite-toggle, form, .col-sm-4 { display: none !important; }
  .disease-panel { display: none !important; border: 0; padding: 0; }
  .disease-panel.is-active { display: block !important; }
}
