.account-tools { display: flex; align-items: center; gap: 6px; margin-left: auto; }
.account-tools a, .account-tools button { min-height: 32px; display: inline-flex; align-items: center; border: 1px solid #b9c0c8; border-radius: 0; background: transparent; color: #243244; padding: 0 10px; font: inherit; font-size: 11px; font-weight: 780; text-decoration: none; cursor: pointer; }
.account-tools a:hover, .account-tools button:hover { border-color: #243244; background: #fff; }
.account-tools__name { color: #5c6876; font-size: 11px; white-space: nowrap; }
.account-tools__status { color: #8b5913; font-size: 11px; font-weight: 800; white-space: nowrap; }
.account-tools__admin { color: #8c3f34 !important; }

.account-notice { position: fixed; right: 18px; bottom: 18px; z-index: 1000; max-width: 360px; border: 1px solid #8e99a6; background: #fff; box-shadow: 4px 4px 0 rgb(30 45 65 / 18%); padding: 11px 14px; color: #27374a; font-size: 13px; }

.access-page main { padding-block: 42px 80px; }
.access-state { max-width: 720px; padding: 28px 0; border-block: 1px solid var(--ink); }
.access-state h1 { font-size: clamp(25px, 3.2vw, 38px); letter-spacing: -0.045em; }
.access-state p { margin-top: 12px; color: var(--muted); font-size: 13px; line-height: 1.65; }
.access-state a { min-height: 38px; display: inline-flex; align-items: center; margin-top: 20px; padding: 0 13px; border: 1px solid var(--ink); font-size: 12px; font-weight: 820; }
.access-state a:hover { background: var(--ink); color: #fff; }

.record-page .header-nav { display: flex; align-items: center; gap: 6px; }
.record-page .header-nav a { min-height: 33px; display: inline-flex; align-items: center; padding: 0 10px; border: 1px solid var(--ink); font-size: 11px; font-weight: 800; }
.record-page main { padding-block: 34px 80px; }
.record-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; margin-bottom: 24px; padding-bottom: 18px; border-bottom: 1px solid var(--ink); }
.record-heading h1 { margin: 0; font-size: clamp(27px, 3.5vw, 42px); letter-spacing: -.045em; }
.record-heading p { color: #687587; font-size: 12px; }
.record-panel { border-top: 1px solid #243244; }
.record-empty { padding: 36px 10px; text-align: center; color: #687587; font-size: 13px; }
.record-row { display: grid; grid-template-columns: 140px minmax(150px, 1fr) 90px 90px minmax(210px, 1.2fr); gap: 16px; align-items: center; border-bottom: 1px solid #d2d8df; padding: 15px 10px; }
.record-row strong { font-size: 17px; }
.record-row small, .record-row span { color: #667386; font-size: 11px; line-height: 1.5; }
.record-row__pass { color: #176e4b !important; font-weight: 800; }
.record-row__fail { color: #a64135 !important; font-weight: 800; }
.admin-record-row { grid-template-columns: 180px minmax(170px, 1.2fr) 70px 70px minmax(220px, 1fr) 135px; }
.record-login { padding: 38px 0; }
.record-login p { margin-top: 8px; color: var(--muted); font-size: 13px; }
.record-login a { display: inline-block; margin-top: 14px; border: 1px solid var(--ink); background: var(--ink); color: #fff; padding: 10px 14px; text-decoration: none; font-size: 12px; font-weight: 800; }

.admin-section + .admin-section { margin-top: 42px; }
.admin-section > header { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; margin-bottom: 12px; }
.admin-section > header h2 { font-size: 20px; letter-spacing: -0.035em; }
.admin-section > header p { color: var(--muted); font-size: 11px; }
.admin-user-row { display: grid; grid-template-columns: minmax(190px, 1fr) minmax(210px, 1fr) minmax(260px, 1.35fr) 90px; gap: 20px; align-items: center; min-height: 92px; padding: 14px 10px; border-bottom: 1px solid #d2d8df; }
.admin-user-row > div { min-width: 0; }
.admin-user-row strong, .admin-user-row small { display: block; }
.admin-user-row strong { font-size: 14px; }
.admin-user-row small { margin-top: 5px; color: var(--muted); font-size: 10px; line-height: 1.55; overflow-wrap: anywhere; }
.access-status { display: inline-flex; align-items: center; min-height: 25px; padding: 0 8px; border: 1px solid #777; font-size: 10px; font-weight: 850; }
.access-status--approved { border-color: #176e4b; color: #176e4b; }
.access-status--pending { border-color: #9b671a; color: #80500a; }
.access-status--revoked { border-color: #a64135; color: #a64135; }
.admin-user-action { text-align: right; }
.admin-user-action button { min-height: 34px; padding: 0 11px; border: 1px solid var(--ink); background: transparent; cursor: pointer; font: inherit; font-size: 11px; font-weight: 820; }
.admin-user-action button:hover { background: var(--ink); color: #fff; }
.admin-user-action button:disabled { opacity: .55; cursor: wait; }
.admin-user-identity { display: grid; gap: 5px; }
.admin-user-identity small { display: grid; grid-template-columns: 105px minmax(0, 1fr); gap: 8px; margin-top: 0; }
.admin-user-field-label { color: #4c5965; font-weight: 800; }
.admin-user-identity code { color: #27313a; font-family: ui-monospace, "Cascadia Mono", Consolas, monospace; font-size: 11px; overflow-wrap: anywhere; }
.admin-section-description { margin-top: 4px; }
.integrity-flag { color: #a64135 !important; font-weight: 850; }
.learning-activity-row { display: grid; grid-template-columns: minmax(180px, 1fr) minmax(170px, 1fr) minmax(260px, 1.4fr) 135px; gap: 18px; align-items: center; padding: 14px 10px; border-bottom: 1px solid #d2d8df; }
.learning-activity-row strong, .learning-activity-row small { display: block; }
.learning-activity-row span, .learning-activity-row small { color: var(--muted); font-size: 11px; line-height: 1.55; }
.learning-activity-row--flagged { border-left: 4px solid #b04a3d; background: #fff8f5; }
.admin-practical-row { display: grid; grid-template-columns: minmax(180px,.65fr) minmax(190px,.75fr) auto; gap: 18px; align-items: center; padding: 16px 10px; border-bottom: 1px solid #d2d8df; }
.admin-practical-row strong, .admin-practical-row small { display: block; }
.admin-practical-row strong { font-size: 13px; }
.admin-practical-row small { margin-top: 5px; color: var(--muted); font-size: 10px; line-height: 1.55; }
.admin-practical-row > div > a { min-height: 32px; display: inline-flex; align-items: center; padding: 0 9px; border: 1px solid var(--ink); font-size: 10px; font-weight: 820; }
.practical-grade-form { grid-column: 1 / -1; padding: 15px; border: 1px solid #aeb7c0; background: #f7f8f9; }
.practical-score-fields { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.practical-grade-form label span { display: block; margin-bottom: 5px; color: var(--muted); font-size: 9px; font-weight: 800; }
.practical-grade-form input { width: 100%; height: 35px; border: 1px solid #9aa4ae; padding: 0 8px; background: #fff; }
.practical-feedback { display: block; margin-top: 12px; }
.practical-grade-form textarea { width: 100%; resize: vertical; border: 1px solid #9aa4ae; padding: 9px; font: inherit; font-size: 11px; }
.practical-grade-form > div:last-child { display: flex; align-items: center; gap: 10px; margin-top: 10px; }
.practical-grade-form button { min-height: 34px; padding: 0 11px; border: 1px solid var(--ink); background: var(--ink); color: #fff; font-size: 10px; font-weight: 820; cursor: pointer; }
.practical-grade-message { color: var(--muted); font-size: 10px; }

@media (max-width: 1050px) {
  .masthead { flex-wrap: wrap; padding-block: 10px; }
  .account-tools { margin-left: 0; }
  .admin-user-row { grid-template-columns: 1fr 1fr; }
  .admin-user-action { text-align: left; }
  .record-row, .admin-record-row { grid-template-columns: 1fr 1fr; gap: 7px 16px; }
  .learning-activity-row { grid-template-columns: 1fr 1fr; }
  .admin-practical-row { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 620px) {
  .record-page .header-nav { flex-wrap: wrap; }
  .record-page .header-nav a { padding-inline: 7px; font-size: 10px; }
  .account-tools { width: 100%; flex-wrap: wrap; }
  .account-tools__name { margin-left: auto; }
  .record-heading, .admin-section > header { align-items: flex-start; flex-direction: column; gap: 7px; }
  .admin-user-row { grid-template-columns: 1fr; gap: 10px; }
  .learning-activity-row { grid-template-columns: 1fr; }
  .admin-practical-row { grid-template-columns: 1fr; }
  .practical-score-fields { grid-template-columns: repeat(2, 1fr); }
}

/* Readability for account, access, history, and administration guidance. */
.account-tools a, .account-tools button, .account-tools__name, .account-tools__status { font-size: 13px; }
.account-notice, .access-state p, .record-empty, .record-login p { font-size: 15px; line-height: 1.65; }
.access-state a, .record-login a { font-size: 14px; }
.record-heading p, .admin-section > header p { font-size: 14px; }
.record-row small, .record-row span, .learning-activity-row span, .learning-activity-row small { font-size: 13px; }
.admin-user-row small, .admin-practical-row small, .practical-grade-message { font-size: 12px; line-height: 1.6; }
.access-status, .admin-practical-row > div > a, .practical-grade-form label span, .practical-grade-form button { font-size: 12px; }
.admin-user-action button, .practical-grade-form textarea { font-size: 13px; }

@media (max-width: 620px) {
  .admin-user-identity small { grid-template-columns: 1fr; gap: 1px; }
}
