/* Keep the original MDL cards and controls; scope additions to the archive. */
.rsa-tool .mdl-card__title-text { font-size: 1.3em; }
.rsa-tool #generate-button:not(:disabled), .rsa-tool #test-factor-button:not(:disabled) { background-color: #3f5a5a; }
.rsa-tool .rsa-number-table { table-layout: fixed; max-width: 100%; }
.rsa-tool .rsa-number { overflow-wrap: anywhere; word-break: break-all; text-align: left; margin: 6px 0; user-select: all; }
.rsa-tool .rsa-note { font-size: 12px; line-height: 1.5; color: #666; margin: 8px 0; }
.rsa-tool p:empty, .rsa-tool [hidden] { display: none !important; }
.rsa-tool [data-tone="error"] { color: #db6446; }
.rsa-tool [data-tone="success"] { color: green; }
.rsa-tool summary { cursor: pointer; color: #3f5a5a; }
.rsa-tool #published-solution { margin-top: 12px; }
.rsa-tool #published-solution .rsa-number { margin-top: 12px; }
.rsa-tool #testFactor { box-sizing: border-box; width: 90%; max-width: 500px; padding: 8px; border: 1px solid lightgray; font-family: monospace; line-height: 1.5; overflow-wrap: anywhere; resize: vertical; }
.rsa-tool #FactorTitle { padding: 0 16px; overflow-wrap: anywhere; }
.rsa-tool .rsa-archive { padding: 14px 16px; }
.rsa-archive label { width: auto; font-size: 14px; }
.rsa-archive select { font: inherit; padding: 4px; }
.rsa-archive #challenge-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; max-height: 220px; overflow-y: auto; margin: 12px 0; padding: 3px; }
.rsa-archive #challenge-list button { height: auto; padding: 6px; line-height: 1.5; border: 1px solid #ddd; }
.rsa-archive #challenge-list button span { display: block; font-size: 11px; font-weight: normal; text-transform: none; color: #666; }
.rsa-archive #challenge-list button[aria-pressed="true"] { border-color: #3f5a5a; background: #f0f3f2; }
.rsa-tool :is(button, summary, select, textarea):focus-visible { outline: 2px solid #3f5a5a; outline-offset: 2px; }
@media (max-width: 480px) {
  .rsa-archive #challenge-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
