/* Records portal (requester side). Prefix rp-. Uses theme tokens from screen.css. */
.rp { --rp-ok: #0b7d4f; }
html[data-scheme="night"] .rp { --rp-ok: #3ad39b; }
.rp .wrap { max-width: 1040px; }
.rp-live { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.rp-jump { display: flex; gap: 8px; overflow-x: auto; padding: 2px 0 14px; scrollbar-width: none; margin-bottom: 8px; }
.rp-jump::-webkit-scrollbar { display: none; }
.rp-jump a { flex: none; display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border: 1.5px solid var(--line); border-radius: 999px; font: 800 14px/1 var(--f-ui); background: var(--card); }
.rp-jump a:hover { border-color: var(--pink); }
.rp-block { margin: 0 0 clamp(32px, 5vw, 56px); scroll-margin-top: 90px; }
.rp-block:focus { outline: 0; }
.rp-block--form { padding: clamp(18px, 3vw, 32px); border-radius: 16px; background: var(--card); box-shadow: var(--shadow); border-top: 6px solid var(--pink); }
.rp-block--city { padding: clamp(20px, 3vw, 32px); border-radius: 16px; background: var(--ink); color: var(--on-dark); }
.rp-block--city .btn--ghost { color: #fff; border-color: rgba(255,255,255,.55); }
.rp-block--status { max-width: 820px; }
.rp-h { margin: 0 0 8px; font: 850 clamp(28px, 3.4vw, 40px)/1.02 var(--f-display); font-stretch: 78%; scroll-margin-top: 90px; }
.rp-h:focus { outline: 0; }
.rp-sub { margin: 28px 0 10px; font: 850 22px/1.1 var(--f-display); font-stretch: 80%; }
.rp-lede { font: 400 17px/1.55 var(--f-body); color: var(--muted); max-width: 66ch; margin: 0 0 18px; }
.rp-block--city .rp-lede { color: var(--on-dark-muted); }
.rp-help { font-size: 13.5px; line-height: 1.5; color: var(--muted); margin: 6px 0 14px; }
.rp-meta { font: 500 13px/1.4 var(--f-ui); color: var(--muted); margin: 4px 0 0; }
.rp-cite { font: 700 12px/1 var(--f-ui); color: var(--cyan-d); white-space: nowrap; }
.rp-note { padding: 12px 14px; border-radius: 10px; background: var(--paper-2); border-left: 5px solid var(--cyan); margin: 0 0 14px; font-size: 15px; }
.rp-note--wide { grid-column: 1 / -1; font-size: 13.5px; color: var(--muted); }
.rp-empty { padding: 22px; border: 1.5px dashed var(--line); border-radius: 12px; text-align: center; color: var(--muted); list-style: none; }
.rp-skel { height: 76px; border-radius: 10px; margin-bottom: 12px; list-style: none; background: linear-gradient(90deg, rgba(0,0,0,.04), rgba(0,0,0,.09), rgba(0,0,0,.04)); background-size: 200% 100%; animation: rp-shimmer 1.4s infinite; }
@keyframes rp-shimmer { to { background-position: -200% 0; } }

.rp-filter { display: flex; gap: 14px; flex-wrap: wrap; }
.rp-filter .field { min-width: 220px; margin-bottom: 8px; }
.rp-count { font: 700 13.5px/1.2 var(--f-ui); color: var(--muted); margin: 4px 0 12px; min-height: 16px; }
.rp-cities { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); gap: 14px; }
.rp-city { display: flex; flex-direction: column; justify-content: space-between; gap: 14px; padding: 18px; border-radius: 12px; background: var(--card); box-shadow: var(--shadow); border: 2px solid transparent; }
.rp-city.is-on { border-color: var(--pink); }
.rp-city h3 { margin: 0; font: 850 24px/1.05 var(--f-display); font-stretch: 78%; }
.rp-city .btn { align-self: flex-start; min-height: 44px; }

.rp-picked { font: 700 17px/1.3 var(--f-ui); margin: 0 0 4px; }
.rp-change { font-size: 14px; margin-left: 8px; text-decoration: underline; min-height: 44px; display: inline-flex; align-items: center; }
.rp-custodian { font-size: 14px; color: var(--muted); margin: 0 0 18px; }
.rp-fs { border: 0; margin: 0 0 24px; padding: 0; min-width: 0; }
.rp-fs legend { font: 850 21px/1.1 var(--f-display); font-stretch: 80%; padding: 0; margin-bottom: 12px; }
.rp-fs--share { padding: 16px; border-radius: 12px; background: var(--paper-2); }
.rp-req { font: 800 11px/1 var(--f-ui); letter-spacing: .05em; text-transform: uppercase; color: var(--pink-d); margin-left: 6px; }
.rp-fs i, .rp-form i { font-style: normal; font-weight: 600; color: var(--muted); margin-left: 4px; }
.rp-form .field { margin-bottom: 10px; }
.rp-form input[aria-invalid], .rp-form textarea[aria-invalid] { border-color: var(--pink-d); }
.rp-guide { padding: 14px 16px; border-radius: 10px; background: var(--paper-2); border-left: 5px solid var(--cyan); margin-bottom: 16px; font-size: 15px; line-height: 1.5; }
.rp-guide h3 { margin: 0 0 6px; font: 850 18px/1.1 var(--f-display); font-stretch: 80%; }
.rp-guide ul { margin: 6px 0; padding-left: 20px; }
.rp-checks { list-style: none; margin: 0 0 14px; padding: 0; display: grid; gap: 4px; font-size: 14px; }
.rp-checks li { display: flex; gap: 8px; align-items: baseline; color: var(--muted); }
.rp-checks .rp-chk { flex: none; min-width: 108px; font: 800 11px/1 var(--f-ui); letter-spacing: .04em; text-transform: uppercase; }
.rp-checks .is-ok { color: var(--text); }
.rp-checks .is-ok .rp-chk { color: var(--rp-ok); }
.rp-check { display: flex; gap: 12px; align-items: flex-start; min-height: 44px; font: 600 16px/1.4 var(--f-ui); cursor: pointer; }
.rp-check input { flex: none; width: 24px; height: 24px; margin: 2px 0 0; accent-color: var(--pink-d); }
.rp-check a { text-decoration: underline; }
.rp-hp { position: absolute !important; left: -9999px; top: auto; width: 1px; height: 1px; overflow: hidden; }
.rp-details { margin: 8px 0; font-size: 14.5px; }
.rp-details summary { cursor: pointer; font: 800 14px/1.2 var(--f-ui); min-height: 44px; display: flex; align-items: center; }
.rp-details blockquote { margin: 4px 0; padding: 10px 14px; border-left: 4px solid var(--line); background: var(--paper-2); font: 400 14.5px/1.55 var(--f-body); }
.rp-terms { max-height: 320px; overflow: auto; padding: 12px 14px; border: 1px solid var(--line); border-radius: 8px; font-size: 14px; line-height: 1.55; }
.rp-terms h4 { margin: 12px 0 4px; font: 800 14px/1.2 var(--f-ui); }
.rp-terms p { margin: 0 0 8px; }
.rp-error { padding: 12px 14px; border-radius: 10px; background: rgba(216,17,106,.1); border: 1.5px solid var(--pink-d); color: var(--text); font-weight: 600; margin: 10px 0; }
.rp-error:focus { outline: 3px solid var(--cyan); }
.rp-actions { margin: 6px 0 12px; }
.rp-actions .btn { min-height: 52px; }
.rp-form .btn:disabled { opacity: .6; cursor: progress; }

.rp-ref { font: 850 28px/1 var(--f-display); letter-spacing: .02em; }
.rp-linkbox { padding: 18px; border-radius: 12px; background: var(--paper-2); border: 2px solid var(--cyan); margin: 14px 0 18px; }
.rp-linkbox h3 { margin: 0 0 6px; font: 850 22px/1.1 var(--f-display); font-stretch: 80%; }
.rp-linkbox input { font-size: 14px; }
.rp-sharenote { padding: 12px 14px; background: var(--paper-2); border-radius: 10px; font-size: 15px; }
.rp-done h3 { margin: 24px 0 8px; font: 850 21px/1.1 var(--f-display); font-stretch: 80%; }
.rp-steps { padding-left: 22px; line-height: 1.6; max-width: 70ch; }
.rp-steps li { margin-bottom: 6px; }

.rp-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 16px; margin-bottom: 18px; }
.rp-grid--2 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); }
.rp-card { padding: 20px; border-radius: 12px; background: var(--card); box-shadow: var(--shadow); font-size: 15px; line-height: 1.55; min-width: 0; overflow-wrap: anywhere; }
.rp-card h3 { margin: 0 0 8px; font: 850 22px/1.05 var(--f-display); font-stretch: 78%; }
.rp-card p { margin: 0 0 10px; }
.rp-card ul { margin: 0 0 10px; padding-left: 20px; }
.rp-card--share { border-top: 5px solid var(--cyan); }

.rp-liblist { list-style: none; margin: 0 0 18px; padding: 0; display: grid; gap: 10px; }
.rp-liblist li { padding: 14px 16px; border-radius: 10px; background: var(--card); box-shadow: var(--shadow); overflow-wrap: anywhere; }
.rp-liblist p { margin: 6px 0 0; font-size: 14.5px; line-height: 1.45; }
.rp-pill { display: inline-block; margin-left: 8px; padding: 3px 9px; border-radius: 999px; background: var(--ink); color: #fff; font: 800 11px/1.3 var(--f-ui); letter-spacing: .04em; text-transform: uppercase; }
html[data-scheme="night"] .rp-pill { background: var(--cyan); color: var(--ink); }

.rp-back a { text-decoration: underline; display: inline-flex; min-height: 44px; align-items: center; }
.rp-statusline { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: 0 0 12px; font: 600 16px/1.3 var(--f-ui); }
.rp-badge { display: inline-block; padding: 6px 12px; border-radius: 999px; background: var(--ink); color: #fff; font: 800 13px/1 var(--f-ui); }
.rp-badge--fulfilled { background: var(--rp-ok); }
.rp-badge--clarifying { background: var(--pink-d); }
.rp-badge--denied { background: #5a2a6b; }
.rp-badge--withdrawn { background: #6b6760; }
.rp-fee { padding: 12px 14px; background: var(--paper-2); border-left: 5px solid var(--pink); border-radius: 8px; font-size: 15px; }
.rp-tl { list-style: none; margin: 0 0 8px; padding: 0 0 0 18px; border-left: 3px solid var(--line); display: grid; gap: 14px; }
.rp-ev { position: relative; padding: 14px 16px; border-radius: 10px; background: var(--card); box-shadow: var(--shadow); overflow-wrap: anywhere; }
.rp-ev::before { content: ""; position: absolute; left: -29px; top: 18px; width: 14px; height: 14px; border-radius: 50%; background: var(--cyan); border: 3px solid var(--paper); }
.rp-ev--you::before { background: var(--pink); }
.rp-ev__head { display: flex; flex-wrap: wrap; gap: 4px 12px; justify-content: space-between; align-items: baseline; }
.rp-ev__head b { font: 800 16px/1.3 var(--f-ui); }
.rp-ev__head time { font: 500 13px/1.3 var(--f-ui); color: var(--muted); }
.rp-ev p { margin: 8px 0 0; font-size: 15.5px; line-height: 1.55; }
.rp-files { list-style: none; margin: 10px 0 0; padding: 0; display: grid; gap: 8px; }
.rp-files .btn { min-height: 44px; white-space: normal; text-align: left; }
.rp-reply { margin-top: 8px; }
.rp-tools { display: flex; flex-wrap: wrap; gap: 8px; margin: 22px 0 14px; }
.rp-tools .btn { min-height: 44px; }
.rp-confirm { padding: 18px; border-radius: 12px; background: var(--card); border: 2px solid var(--pink-d); box-shadow: var(--shadow); margin-bottom: 16px; }
.rp-confirm h3 { margin: 0 0 6px; font: 850 22px/1.1 var(--f-display); font-stretch: 80%; }

.rp .btn { min-height: 44px; }
.rp a:focus-visible, .rp button:focus-visible, .rp input:focus-visible, .rp select:focus-visible, .rp textarea:focus-visible, .rp summary:focus-visible { outline: 3px solid var(--cyan); outline-offset: 2px; }
.rp-form .field-row .field { min-width: min(100%, 220px); }
.rp-form input, .rp-form select, .rp-form textarea { min-height: 44px; }
@media (max-width: 520px) {
  .rp-block--form { padding: 16px; border-radius: 12px; }
  .rp-actions .btn, .rp-linkbox .btn { width: 100%; }
  .rp-checks li { flex-direction: column; gap: 2px; }
}
@media (prefers-reduced-motion: reduce) {
  .rp-skel { animation: none; }
  .rp .btn:hover { transform: none; }
}
