.registration-placeholder {
    padding: 2rem;
    text-align: center;
    color: #aaa;
    font-style: italic;
    border: 1px dashed #34363a;
    border-radius: 6px;
    margin-top: 1rem;
}

/* Preferred multi-line block */
.program-schedule-header {
    display: flex;
    gap: 1rem;
    flex-direction: column;
    align-items: stretch;
    margin-bottom: 1.25rem;
}

/* Modernized schedule + form styles */
.program-schedule-picker { margin-bottom: 1.5rem; }
.program-schedule-select { flex:1; min-width:0; background:#1a1b1e; border:1px solid #34363a; color:#fff; padding:.75rem .9rem; border-radius:8px; font:inherit; line-height:1.2; transition:border-color .25s, box-shadow .25s; }
.program-schedule-select:focus { outline:none; border-color:#d4a017; box-shadow:0 0 0 2px rgba(212,160,23,.2); }
.picker-row { display:flex; gap:.75rem; align-items:center; flex-wrap:wrap; }
.program-schedule-confirm { white-space:nowrap; }
.accent-outline { background:transparent; border:1px solid #d4a017; color:#d4a017; font-weight:600; padding:.75rem 1rem; border-radius:8px; cursor:pointer; transition:.25s; }
.accent-outline:disabled { opacity:.4; cursor:not-allowed; }
.accent-outline:not(:disabled):hover { background:#d4a017; color:#000; }

.reg-heading { margin:.25rem 0 .35rem; font-size:1rem; letter-spacing:.05em; text-transform:uppercase; color:#d4a017; font-weight:600; }
.registration-info { background:#1a1b1e; border:1px solid #2c2d30; padding:.85rem 1rem; border-radius:10px; margin-bottom:1.1rem; box-shadow:0 2px 4px -2px rgba(0,0,0,.5); }
.selected-class-info { margin:.25rem 0 0; font-size:.9rem; color:#ccc; }

.registration-form { display:flex; flex-direction:column; gap:1.25rem; }
.form-grid { display:grid; gap:1rem; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); }
.form-group { display:flex; flex-direction:column; }
.form-group.span-2 { grid-column:span 2; }
@media (max-width:640px) { .form-group.span-2 { grid-column:span 1; } }
.form-group label { font-size:.65rem; letter-spacing:.12em; text-transform:uppercase; font-weight:600; margin:0 0 .45rem; color:#d4a017; }
.form-group input, .form-group textarea { background:#18191c; border:1px solid #303134; border-radius:10px; padding:.78rem .85rem; font:inherit; color:#fff; line-height:1.25; transition:border-color .25s, box-shadow .25s, background .25s; resize:vertical; }
.form-group input::placeholder, .form-group textarea::placeholder { color:#666; font-weight:400; letter-spacing:.03em; }
.form-group input:focus, .form-group textarea:focus { outline:none; border-color:#d4a017; box-shadow:0 0 0 2px rgba(212,160,23,.25); }
.form-group input:disabled, .form-group textarea:disabled { opacity:.6; cursor:not-allowed; }
.validation-message { min-height:1em; font-size:.65rem; font-weight:500; color:#ef4444; margin-top:.35rem; letter-spacing:.03em; }
.checkbox-label { display:flex; align-items:center; gap:.6rem; font-size:.75rem; line-height:1.25; }
.checkbox-label span a { text-decoration:underline; }
.checkmark { width:18px; height:18px; border:2px solid #555; background:#18191c; border-radius:4px; display:inline-block; position:relative; transition:.25s; }
.checkbox-label input[type=checkbox] { position:absolute; opacity:0; pointer-events:none; }
.checkbox-label input[type=checkbox]:checked + .checkmark { background:#d4a017; border-color:#d4a017; }
.checkbox-label input[type=checkbox]:checked + .checkmark:after { content:""; position:absolute; left:4px; top:2px; width:5px; height:9px; border:solid #000; border-width:0 2px 2px 0; transform:rotate(45deg); }

.registration-actions { display:flex; align-items:center; gap:.75rem; flex-wrap:wrap; margin-top:.25rem; }
.registration-actions .action-spacer { flex:1; }
.btn { background:#d4a017; color:#000; font-weight:600; border:0; padding:.8rem 1.15rem; font-size:.85rem; border-radius:10px; cursor:pointer; display:inline-flex; align-items:center; gap:.4rem; line-height:1.1; transition:background .25s, transform .25s, box-shadow .25s; }
.btn:hover { background:#edb835; }
.btn:active { transform:translateY(1px); }
.btn.ghost { background:#2a2b2e; color:#eee; border:1px solid #3a3c3f; font-weight:500; }
.btn.ghost:hover { background:#34363a; }
.btn.accent { min-width:140px; justify-content:center; }

.registration-message { border-radius:10px; }
.registration-message--success { background:linear-gradient(135deg,rgba(34,197,94,.12),rgba(34,197,94,.04)); border:1px solid rgba(34,197,94,.35); }
.registration-message--error { background:linear-gradient(135deg,rgba(239,68,68,.14),rgba(239,68,68,.05)); border:1px solid rgba(239,68,68,.4); }

/* Loading overlay tweaks */
.program-schedule-loading { display:flex; align-items:center; gap:.9rem; padding:1.1rem 1.25rem; background:#18191c; border:1px solid #2c2d30; border-radius:12px; box-shadow:0 2px 6px -2px rgba(0,0,0,.55); }
.program-schedule-loading[hidden] { display: none !important; }
.ps-spinner { width:28px; height:28px; border:3px solid #2d2f33; border-top-color:#d4a017; border-radius:50%; animation:pspin 1s linear infinite; }
@keyframes pspin { to { transform:rotate(360deg); } }

@media (max-width:780px) {
    .registration-actions { justify-content:stretch; }
    .registration-actions .action-spacer { flex-basis:100%; height:0; }
    .btn.accent { flex:1; }
}