
body { margin:0; background:#f8f9fa; }
.o3-main { padding-top: 74px; min-height: calc(100vh - 74px); }
.o3-container { max-width: 1140px; margin: 0 auto; padding: 0 1rem; }
.o3-jumbotron { background: transparent; border-bottom: 1px solid rgba(148, 163, 184, 0.35); margin-bottom: 1rem; padding: 1.4rem 0; }
.o3-card-grid { display:flex; flex-wrap:wrap; gap:12px; }
.o3-card { flex: 1 1 260px; min-width: 260px; }
.o3-hint { margin-bottom:8px; }
.o3-muted { color:#6c757d; }
.o3-points { display:inline-flex; align-items:center; gap:0.35rem; font-weight:600; }
.o3-nav-spacer { height: 56px; }
.o3-theme-mode-toggle { min-width: 6.5rem; }
.o3-modal-backdrop { position: fixed; inset: 0; background: rgba(15, 23, 42, 0.65); z-index: 1040; }
.o3-hint-backdrop { position: fixed; inset: 0; background: rgba(2, 6, 23, 0.62); z-index: 2060; }
.o3-modal { display: none; position: fixed; inset: 0; z-index: 1050; overflow-y: auto; }
.o3-modal.o3-open { display: block; }
.o3-modal-open { overflow: hidden; }
.o3-modal .modal-dialog { margin: 5rem auto 2rem auto; }
.o3-hint-modal { z-index: 2070; background: transparent !important; }
.o3-hint-modal .modal-dialog { position: relative; z-index: 2071; }
.o3-hint-modal .modal-content { border: 2px solid rgba(23, 162, 184, 0.75); opacity: 1; }
.o3-hint-modal.o3-open { background: transparent !important; }
.challenge-desc { display: block; margin-bottom: 1.25rem; }
#o3-nav-notifications-link .o3-nav-notify-label { position: relative; display: inline-block; padding-right: 0.1rem; }
.o3-notify-dot { position: absolute; top: -0.2rem; right: -0.42rem; display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: #ff3b30; }
