.center-screen{min-height:60vh;display:grid;place-items:center}.spinner{width:34px;height:34px;border-radius:50%;border:3px solid var(--color-rule);border-top-color:var(--color-petal-amber);animation:ritam-spin .8s linear infinite;display:inline-block}@keyframes ritam-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.spinner{animation-duration:2.4s}}.topbar{display:flex;align-items:flex-end;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;margin-bottom:2rem}.page-title{font-family:var(--font-serif);font-size:clamp(2rem,4vw,2.8rem);font-weight:600;line-height:1.1;margin:0;color:#000}.page-sub{margin:.4rem 0 0;color:var(--color-clay-brown-light)}.empty{padding:2.5rem 1.5rem;text-align:center;color:var(--color-clay-brown-light);border:1px dashed var(--color-rule);background:var(--color-warm-paper-soft)}.error{color:var(--color-terracotta);margin:.5rem 0 0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1c130e8c;display:grid;place-items:center;padding:1.25rem;z-index:50}.modal{background:var(--color-warm-paper);border:1px solid var(--color-rule);box-shadow:0 18px 60px #1c130e59;width:100%;max-width:540px;max-height:88vh;overflow:auto;padding:1.75rem}.spread{display:flex;align-items:center;justify-content:space-between;gap:1rem}.btn{font-family:inherit;font-size:1rem;padding:.55rem 1.1rem;border:1px solid var(--color-petal-amber);background:var(--color-petal-amber);color:var(--color-paper-on-dark);cursor:pointer;border-radius:var(--radius-sm)}.btn:hover{background:var(--color-petal-cocoa);border-color:var(--color-petal-cocoa);text-decoration:none}.btn-secondary{background:transparent;color:#000;border-color:var(--color-rule)}.btn-secondary:hover{background:var(--color-warm-paper-soft);border-color:var(--color-clay-brown-light)}.signup-list{display:grid;gap:1rem;margin-top:2.25rem}.signup-row{display:flex;align-items:flex-start;justify-content:space-between;gap:1.25rem;padding:1.35rem 1.6rem;background:var(--color-warm-paper-soft);border:1px solid var(--color-rule)}.signup-row-title{font-family:var(--font-serif);font-size:1.5rem;font-weight:600;line-height:1.15;margin:0;color:#000}.signup-row-meta{margin:.35rem 0 0;color:var(--color-clay-brown-light);font-size:.95rem}.signup-status{flex:none;align-self:center;font-size:.8rem;letter-spacing:.04em;text-transform:uppercase;padding:.3rem .7rem;border:1px solid var(--color-rule);color:#000;white-space:nowrap}.signup-status--new{background:var(--color-warm-paper);border-color:var(--color-saffron-gold-soft);color:var(--color-saffron-gold-deep)}.signup-status--accepted,.signup-status--confirmed{background:var(--color-warm-paper);border-color:var(--color-petal-amber);color:var(--color-petal-amber)}.signup-status--cancelled,.signup-status--canceled{color:var(--color-terracotta);border-color:var(--color-terracotta)}.course-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin-top:3rem}.course-card{display:flex;flex-direction:column;padding:1.75rem;background:var(--color-warm-paper-soft);border:1px solid var(--color-rule)}.course-card-tag{font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--color-saffron-gold-deep);margin-bottom:.75rem}.course-card-title{font-family:var(--font-serif);font-size:1.7rem;font-weight:600;line-height:1.1;margin:0;color:#000}.course-card-subtitle{font-family:var(--font-serif);font-style:italic;font-size:1.1rem;color:var(--color-clay-brown-light);margin:.25rem 0 0}.course-card-desc{margin:1rem 0 1.5rem;color:#000}.course-card-foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding-top:1rem;border-top:1px solid var(--color-rule)}.course-card-status{font-size:.8rem;letter-spacing:.04em;text-transform:uppercase;color:var(--color-saffron-gold-deep);white-space:nowrap}.course-card-cta{font-weight:600;white-space:nowrap}.toast-container{position:fixed;top:1rem;right:1rem;z-index:9999;display:flex;flex-direction:column;gap:.5rem;pointer-events:none;max-width:min(420px,calc(100vw - 2rem))}.toast{pointer-events:auto;display:flex;align-items:flex-start;gap:.75rem;padding:.85rem 1rem;border:1px solid var(--color-rule);background:var(--color-page);color:var(--color-ink);box-shadow:0 6px 24px #1c130e2e;animation:toast-in .3s ease-out}.toast-success{border-left:4px solid var(--color-peacock)}.toast-error{border-left:4px solid var(--color-terracotta)}.toast-msg{flex:1;font-size:.95rem;line-height:1.4}.toast-close{flex:none;background:none;border:none;cursor:pointer;font-size:1.2rem;line-height:1;color:var(--color-ink-soft);padding:0}.toast-close:hover{color:var(--color-ink)}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.toast{animation:none}}
