.profile-modal[hidden]{display:none}.profile-modal,.challenge-modal{position:fixed;inset:0;display:grid;place-items:center;padding:20px}.profile-modal{z-index:20}.challenge-modal{z-index:30}.modal-backdrop{position:absolute;inset:0;background:#171914b8;backdrop-filter:blur(5px)}.modal-dialog{position:relative;width:min(480px,100%);background:#fff;padding:34px 38px 38px;box-shadow:0 30px 80px #1118}.modal-close{position:absolute;top:12px;right:16px;background:none;border:0;color:#777970;font-size:28px;line-height:1;cursor:pointer}.modal-dialog .section-label{border-top:0;padding-top:0}.modal-dialog h2{font:400 clamp(24px,5.5vw,42px)/.95 Georgia,serif;letter-spacing:-.06em;margin:24px 0 12px}.modal-copy{color:#777970;font-size:13px;line-height:1.5;margin:0 0 25px}.modal-dialog form{display:grid;gap:16px}.modal-dialog label{display:grid;gap:7px;color:#777970;font-size:11px;text-transform:uppercase;letter-spacing:.1em}.modal-dialog input{width:100%;border:1px solid #d2d3ca;background:#fafaf6;padding:12px;color:#181a16;outline:0}.modal-dialog input:focus{border-color:#9fca43;box-shadow:0 0 0 2px #c8ef6755}.form-error{color:#b34f47;font-size:12px;min-height:0;margin:0}.avatar-preview{display:flex;align-items:center;gap:10px;color:#777970;font-size:12px;margin:0}.avatar-preview img{width:40px;height:40px;border-radius:50%;object-fit:cover;border:1px solid #d1d2c9;background:#f1f1ea}.modal-submit{border:0;background:#c8ef67;color:#273513;text-align:left;padding:14px;cursor:pointer}.modal-submit span{float:right;font-size:18px}body.modal-open{overflow:hidden}body.dark .modal-dialog{background:#282a25;color:#f3f2e9}body.dark .modal-dialog input{background:#1f211d;border-color:#494b43;color:#f3f2e9}@media(max-width:650px){.modal-dialog{padding:30px 22px 25px}}.challenge-modal .modal-dialog{width:min(1160px,59vw)}@media(max-width:700px){.challenge-modal .modal-dialog{width:calc(100vw - 16px);max-height:calc(100dvh - 16px)}}.result-modal[hidden]{display:none}.result-modal{position:fixed;inset:0;display:grid;place-items:center;padding:20px;z-index:40}.result-modal .modal-dialog{width:min(480px,100%)}.result-dialog{width:min(760px,100%)!important}@media(max-width:700px){.result-dialog{width:calc(100vw - 16px)!important;max-height:calc(100dvh - 16px);overflow:auto}}
/* KeyZen-style result report */
.result-report{display:grid;grid-template-columns:minmax(150px,190px) 1fr;gap:26px;align-items:stretch;margin:20px 0 6px}
.result-headline{display:grid;gap:18px;align-content:start}
.result-metric small{display:block;color:#888a81;text-transform:uppercase;font-size:10px;letter-spacing:.12em}
.result-metric b{font:400 clamp(34px,5vw,46px)/1 Georgia,serif;letter-spacing:-.04em;color:#4c6214}
.result-metric .metric-info{display:inline-grid;place-items:center;width:14px;height:14px;border:1px solid #c9cac0;border-radius:50%;font-size:9px;font-style:normal;color:#888a81;vertical-align:2px;cursor:help}
.result-chart{min-width:0;align-self:center}
.result-chart[hidden]{display:none}
.wpm-chart{width:100%;height:auto;display:block}
.wpm-chart-grid{stroke:#e4e4dc;stroke-width:1}
body.dark .wpm-chart-grid{stroke:#3b3d35}
.wpm-chart-tick{fill:#888a81;font-size:10px;font-family:ui-monospace,monospace}
.wpm-chart-net{fill:none;stroke:#6a872c;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.wpm-chart-raw{fill:none;stroke:#b4b6ab;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
body.dark .wpm-chart-raw{stroke:#5a5d52}
.wpm-chart-dot{fill:#6a872c}
.result-substats{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;border-top:1px solid #e7e6df;padding-top:16px;margin:6px 0 16px}
.result-substat small{display:block;color:#888a81;text-transform:uppercase;font-size:10px;letter-spacing:.1em}
.result-substat b{font:400 20px Georgia,serif}
.substat-note{display:block;color:#92938a;font-size:9px;margin-top:3px}
.result-status{font-size:13px;color:#777970;margin:0 0 16px}.result-status.ok{color:#3f7a2e}.result-status.bad{color:#b34f47}.result-actions{display:grid;gap:10px}.ghost{border:1px solid #d2d3ca;background:none;padding:13px;cursor:pointer;color:#55564f;text-align:center}body.dark .ghost{border-color:#494b43;color:#f3f2e9}
body.dark .result-substats{border-top-color:#3b3d35}
body.dark .result-metric b{color:#a5c94c}
body.dark .result-metric .metric-info{border-color:#5a5d52;color:#9a9c92}
@media(max-width:700px){.result-report{grid-template-columns:1fr}.result-headline{grid-template-columns:repeat(2,1fr);display:grid;gap:14px}.result-substats{grid-template-columns:repeat(2,1fr)}}
.modal-dialog label.check{display:flex;flex-direction:row;align-items:center;gap:10px;text-transform:none;letter-spacing:0;font-size:13px;color:#55564f;cursor:pointer}.modal-dialog label.check input{width:auto;accent-color:#9fca43}


/* Rounded profile and challenge surfaces. */
.modal-dialog {
  border-radius: 18px;
}
.modal-dialog input,
.modal-dialog textarea,
.modal-dialog select {
  border-radius: 9px;
}
.modal-submit,
.challenge-actions .ghost {
  border-radius: 10px;
}
.challenge-turnstile { margin: 0 0 16px; }
.challenge-turnstile[hidden] { display: none; }

/* Shareable result card (assets/js/typing/share-card.js). */
.result-action-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
@media (max-width: 700px) {
  .result-action-row {
    grid-template-columns: 1fr;
  }
}

.share-modal[hidden] {
  display: none;
}
.share-modal {
  position: fixed;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 20px;
  z-index: 45;
}
.share-dialog {
  width: min(680px, 100%) !important;
  max-height: calc(100dvh - 40px);
  overflow: auto;
}
.share-preview {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  border: 1px solid #e7e6df;
  border-radius: 12px;
  background: #fafaf6;
}
body.dark .share-preview {
  border-color: #3b3d35;
  background: #1c1d19;
}
.share-actions {
  display: grid;
  gap: 10px;
}
