.registry-page { color: var(--ink, #172033); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
body.standalone-registry-page .wrapper { display: block; max-width: 1120px; width: min(calc(100% - 40px), 1120px); }
body.standalone-registry-page .wrapper > header { display: none; }
body.standalone-registry-page .content-shell, body.standalone-registry-page .content-panel { float: none; margin: 0; max-width: none; padding: 0; width: 100%; }
.registry-standalone-nav { align-items: center; display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 12px; }
.registry-standalone-nav a { border: 1px solid var(--line, #dfe4ea); border-radius: 6px; color: var(--muted, #667085); font-size: 12px; font-weight: 700; padding: 6px 9px; text-decoration: none; }
.registry-standalone-nav a.active { background: var(--accent, #315c96); border-color: var(--accent, #315c96); color: #fff; }
.registry-hero { border-bottom: 1px solid var(--line, #dfe4ea); margin-bottom: 18px; padding-bottom: 16px; }
.registry-hero { position: relative; }
.registry-account-link { background: var(--accent, #315c96); border-radius: 6px; color: #fff; font-size: 12px; font-weight: 750; padding: 8px 11px; position: absolute; right: 0; text-decoration: none; top: 4px; }
.registry-kicker { color: var(--accent-2, #0f766e); display: block; font-size: 12px; font-weight: 800; margin-bottom: 6px; text-transform: uppercase; }
.registry-hero h1 { font-size: 27px; letter-spacing: 0; margin: 0 0 7px; }
.registry-hero p, .registry-note, .registry-empty { color: var(--muted, #667085); }
.registry-hero p { margin: 0; max-width: 800px; }
.registry-layout { align-items: start; display: grid; gap: 18px; grid-template-columns: minmax(0, 1fr); }
.registry-panel { background: var(--panel-bg, #fff); border: 1px solid var(--line, #dfe4ea); border-radius: 8px; box-sizing: border-box; float: none; min-width: 0; padding: 16px; width: auto; }
.registry-panel h2 { font-size: 18px; margin: 0 0 4px; }
.registry-note { font-size: 12.5px; line-height: 1.55; margin: 0 0 14px; }
.registry-form-grid { display: grid; gap: 11px; grid-template-columns: 1fr 1fr; }
.registry-field, .registry-field label { display: block; }
.registry-field label { font-size: 12px; font-weight: 750; margin-bottom: 5px; }
.registry-field-label { display: block; font-size: 12px; font-weight: 750; margin-bottom: 5px; }
.registry-role-picker { display: grid; gap: 6px; grid-template-columns: 1fr 1fr; }
.registry-role-option { cursor: pointer; float: none; margin: 0 !important; width: auto; }
.registry-role-option input { height: 1px; opacity: 0; position: absolute; width: 1px; }
.registry-role-option span { align-items: center; border: 1px solid var(--line, #dfe4ea); border-radius: 6px; display: flex; height: 38px; justify-content: center; }
.registry-role-option-student input:checked + span { background: #e8f6ee; border-color: #55a67a; color: #157347; }
.registry-role-option-teacher input:checked + span { background: #e9f2fb; border-color: #6193bd; color: #245f8f; }
.registry-field input, .registry-field select, .registry-search input, .registry-search select { background: var(--panel-bg, #fff); border: 1px solid var(--line, #dfe4ea); border-radius: 6px; box-sizing: border-box; color: var(--ink, #172033); font: inherit; height: 40px; padding: 7px 9px; width: 100%; }
.registry-span-2 { grid-column: 1 / -1; }
.registry-person-fields, .registry-selection-fields { border: 1px solid var(--line, #dfe4ea); border-radius: 7px; display: grid; gap: 10px; margin: 0; min-width: 0; padding: 11px; }
.registry-person-fields { grid-template-columns: .7fr 1fr 1.5fr; }
.registry-selection-fields { grid-template-columns: 1fr 1fr 1.5fr; }
.registry-selection-fields select { appearance: auto; cursor: pointer; pointer-events: auto !important; position: relative; z-index: 2; }
.registry-person-fields legend, .registry-selection-fields legend { color: var(--accent, #315c96); font-size: 12px; font-weight: 800; padding: 0 5px; }
.registry-consent { align-items: start; display: flex; float: none; font-size: 12px; gap: 8px; line-height: 1.5; margin-top: 2px; width: auto; }
.registry-consent input { flex: 0 0 auto; margin-top: 3px; }
.registry-submit { background: var(--accent, #315c96); border: 1px solid var(--accent, #315c96); border-radius: 6px; color: #fff; cursor: pointer; font: inherit; font-size: 13px; font-weight: 750; height: 40px; padding: 0 14px; }
.registry-submit:hover { filter: brightness(.94); }
.registry-guidelines { background: #f5f8fb; border-left: 3px solid var(--accent, #315c96); font-size: 12px; line-height: 1.6; margin-top: 14px; padding: 10px 12px; }
.registry-toolbar { align-items: center; display: flex; gap: 8px; justify-content: space-between; margin-bottom: 12px; }
.registry-search { display: grid; flex: 1; gap: 8px; grid-template-columns: minmax(140px, 1fr) 112px 132px; }
.registry-refresh { background: var(--panel-bg, #fff); border: 1px solid var(--line, #dfe4ea); border-radius: 6px; color: var(--ink, #172033); cursor: pointer; font: inherit; font-size: 13px; height: 40px; padding: 0 11px; }
.registry-list { display: grid; gap: 9px; max-height: 600px; overflow-y: auto; padding-right: 3px; }
.registry-entry { border: 1px solid var(--line, #dfe4ea); border-radius: 7px; padding: 12px; }
.registry-entry-head, .registry-person, .registry-entry-foot { align-items: center; display: flex; gap: 8px; justify-content: space-between; }
.registry-person { justify-content: flex-start; margin-top: 9px; }
.registry-person-arrow { color: var(--muted, #667085); font-weight: 750; }
.registry-person strong, .registry-person span { display: block; }
.registry-person span { color: var(--muted, #667085); font-size: 12px; }
.registry-person em { color: var(--accent-2, #0f766e); display: block; font-size: 11px; font-style: normal; font-weight: 750; margin-top: 3px; }
.registry-status { border-radius: 999px; display: inline-flex; font-size: 11px; font-weight: 800; padding: 4px 8px; }
.registry-year { color: var(--muted, #667085); font-size: 11px; font-weight: 750; margin-right: 7px; }
.registry-role { border-radius: 999px; display: inline-flex; font-size: 11px; font-weight: 800; margin-right: 7px; padding: 4px 8px; }
.registry-role-student { background: #e8f6ee; color: #157347; }
.registry-role-teacher { background: #e9f2fb; color: #245f8f; }
.status-contact { background: #eef3f8; color: #49627a; }
.status-agreed { background: #eaf6f1; color: #13715f; }
.status-confirmed { background: #e9f2fb; color: #225f91; }
.status-cancelled { background: #f3f3f3; color: #666; }
.status-unverified { background: #fff5e5; color: #9a5b05; }
.registry-entry-foot { border-top: 1px solid var(--line, #dfe4ea); color: var(--muted, #667085); font-size: 11px; margin-top: 10px; padding-top: 8px; }
.registry-entry-foot a { color: var(--accent, #315c96); }
.registry-loading, .registry-empty { font-size: 13px; padding: 30px 10px; text-align: center; }
.registry-account-grid { display: grid; gap: 14px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.registry-account-panel { min-height: 220px; }
.registry-account-panel h2 { margin-top: 10px; }
.registry-account-panel p { color: var(--muted, #667085); font-size: 13px; line-height: 1.65; }
.registry-step { color: var(--accent-2, #0f766e); font-size: 12px; font-weight: 850; }
.registry-account-button { background: var(--accent, #315c96); border: 1px solid var(--accent, #315c96); border-radius: 6px; color: #fff; display: inline-block; font-size: 12.5px; font-weight: 750; margin: 8px 5px 0 0; padding: 8px 11px; text-decoration: none; }
.registry-account-secondary { background: transparent; color: var(--accent, #315c96); }
.registry-account-hint { border-top: 1px solid var(--line, #dfe4ea); font-size: 11.5px !important; margin-top: 14px; padding-top: 10px; }
@media screen and (max-width: 850px) { .registry-layout { grid-template-columns: 1fr; } .registry-list { max-height: none; } }
@media screen and (max-width: 850px) { .registry-account-grid { grid-template-columns: 1fr; } .registry-account-panel { min-height: 0; } }
@media screen and (max-width: 560px) { .registry-form-grid, .registry-search, .registry-person-fields, .registry-selection-fields { grid-template-columns: 1fr; } .registry-toolbar, .registry-person { align-items: stretch; flex-direction: column; } .registry-person-arrow { transform: rotate(90deg); width: fit-content; } }
@media screen and (max-width: 560px) { .registry-account-link { display: inline-block; margin-top: 12px; position: static; } }
@media screen and (max-width: 560px) { body.standalone-registry-page .wrapper { width: min(calc(100% - 24px), 1120px); } }
