.auth-page{display:grid;place-items:center;min-height:calc(100vh - 170px)}
.auth-card{width:min(520px,100%);padding:34px}.auth-card h1{margin:8px 0 12px}.auth-card form{display:grid;gap:18px;margin-top:26px}.auth-switch{text-align:center;margin-top:18px}.auth-switch a{color:#8cff7a;font-weight:700}
.api-loading{min-height:55vh;display:grid;place-items:center;align-content:center;gap:12px;text-align:center}.api-loading p{color:var(--muted)}.loader{width:42px;height:42px;border:4px solid rgba(255,255,255,.12);border-top-color:#8cff7a;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.status-banner{padding:10px 12px;border-radius:12px;font-size:.86rem;font-weight:750;margin-top:12px;background:rgba(53,215,255,.12);border:1px solid rgba(53,215,255,.25)}.status-confirmed{background:rgba(140,255,122,.12);border-color:rgba(140,255,122,.3)}.status-waitlist{background:rgba(255,189,89,.12);border-color:rgba(255,189,89,.35)}.status-applied{background:rgba(217,156,255,.12);border-color:rgba(217,156,255,.3)}
.participation-list{display:grid;gap:14px}.participation-row{display:flex;align-items:center;gap:16px;padding:18px}.participation-row>div:nth-child(2){display:grid;gap:4px;flex:1}.participation-row small{color:var(--muted)}
.settings-card{max-width:760px;padding:28px}.modal-map{border-radius:18px;min-height:250px}.modal-stats{grid-template-columns:repeat(3,1fr);margin:18px 0}.modal-body form{display:grid;gap:18px}
code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;background:rgba(255,255,255,.08);padding:.15em .4em;border-radius:6px}
@media(max-width:720px){.participation-row{align-items:flex-start;flex-wrap:wrap}.participation-row .card-actions{width:100%}.modal-stats{grid-template-columns:1fr}.auth-card{padding:24px}}
