:root{--bs-body-bg:var(--bg-page);--bs-body-color:var(--text-primary);--bs-body-font-family:var(--font-body);--bs-secondary-color:var(--text-muted);--bs-border-color:var(--border-default);--bs-border-radius:var(--radius);--bs-border-radius-sm:var(--radius-sm);--bs-border-radius-lg:var(--radius-lg);--bs-primary:var(--green-800);--bs-primary-rgb:30,87,65;--bs-link-color:var(--green-800);--bs-link-color-rgb:30,87,65;--bs-link-hover-color:var(--green-900);--bs-link-hover-color-rgb:20,60,45;--bs-success-rgb:39,106,80;--bs-danger:var(--red-700);--bs-danger-rgb:160,50,50;--bs-warning-rgb:154,109,12;--bs-focus-ring-color:rgba(30,87,65,0.22)}body{background:var(--bg-page);color:var(--text-primary);font-family:var(--font-body)}.btn-primary{--bs-btn-bg:var(--brand);--bs-btn-border-color:var(--brand);--bs-btn-color:var(--brand-contrast);--bs-btn-hover-bg:var(--brand-hover);--bs-btn-hover-border-color:var(--brand-hover);--bs-btn-hover-color:var(--brand-contrast);--bs-btn-active-bg:var(--brand-hover);--bs-btn-active-border-color:var(--brand-hover);--bs-btn-active-color:var(--brand-contrast);--bs-btn-disabled-bg:var(--brand);--bs-btn-disabled-border-color:var(--brand);--bs-btn-disabled-color:var(--brand-contrast);--bs-btn-focus-shadow-rgb:30,87,65}.btn-outline-primary{--bs-btn-color:var(--brand);--bs-btn-border-color:var(--brand);--bs-btn-hover-bg:var(--brand);--bs-btn-hover-border-color:var(--brand);--bs-btn-hover-color:var(--brand-contrast);--bs-btn-active-bg:var(--brand);--bs-btn-active-border-color:var(--brand);--bs-btn-active-color:var(--brand-contrast);--bs-btn-disabled-color:var(--brand);--bs-btn-disabled-border-color:var(--brand);--bs-btn-focus-shadow-rgb:30,87,65}.btn-outline-info{--bs-btn-color:var(--accent-brass-deep);--bs-btn-border-color:var(--accent-brass);--bs-btn-hover-bg:var(--accent-brass);--bs-btn-hover-border-color:var(--accent-brass);--bs-btn-hover-color:#fff;--bs-btn-active-bg:var(--accent-brass);--bs-btn-active-border-color:var(--accent-brass);--bs-btn-active-color:#fff;--bs-btn-focus-shadow-rgb:176,141,62}.btn-info{--bs-btn-bg:var(--accent-brass);--bs-btn-border-color:var(--accent-brass);--bs-btn-color:#fff;--bs-btn-hover-bg:var(--accent-brass-deep);--bs-btn-hover-border-color:var(--accent-brass-deep);--bs-btn-hover-color:#fff;--bs-btn-active-bg:var(--accent-brass-deep);--bs-btn-active-border-color:var(--accent-brass-deep);--bs-btn-active-color:#fff}.btn-outline-secondary{--bs-btn-color:var(--text-secondary);--bs-btn-border-color:var(--border-strong);--bs-btn-hover-bg:var(--bg-inset);--bs-btn-hover-border-color:var(--border-strong);--bs-btn-hover-color:var(--text-primary);--bs-btn-active-bg:var(--bg-inset);--bs-btn-active-border-color:var(--border-strong);--bs-btn-active-color:var(--text-primary);--bs-btn-disabled-color:var(--text-muted);--bs-btn-disabled-border-color:var(--border-default)}.btn-danger{--bs-btn-bg:var(--danger);--bs-btn-border-color:var(--danger);--bs-btn-hover-bg:var(--red-700);--bs-btn-hover-border-color:var(--red-700)}.btn-outline-danger{--bs-btn-color:var(--danger);--bs-btn-border-color:var(--danger);--bs-btn-hover-bg:var(--danger);--bs-btn-hover-border-color:var(--danger);--bs-btn-hover-color:#fff;--bs-btn-active-bg:var(--danger);--bs-btn-active-border-color:var(--danger);--bs-btn-active-color:#fff}.btn-success{--bs-btn-bg:var(--success);--bs-btn-border-color:var(--success);--bs-btn-hover-bg:var(--green-800);--bs-btn-hover-border-color:var(--green-800);--bs-btn-active-bg:var(--green-800);--bs-btn-active-border-color:var(--green-800)}input[type="radio"],input[type="checkbox"]{accent-color:var(--brand)}.form-control:focus,.form-select:focus{border-color:var(--brand);box-shadow:var(--focus-ring)}.form-check-input:checked{background-color:var(--brand);border-color:var(--brand)}.form-check-input:focus{border-color:var(--brand);box-shadow:var(--focus-ring)}.nav-pills{--bs-nav-pills-link-active-bg:var(--brand);--bs-nav-pills-link-active-color:var(--brand-contrast)}.nav-link{color:var(--brand)}.nav-link:hover,.nav-link:focus{color:var(--brand-hover)}.card,.modal-content{background-color:var(--bg-surface);border-color:var(--border-default)}.badge.text-bg-primary,.badge.bg-primary{background-color:var(--brand)!important;color:var(--brand-contrast)!important}.dropdown-item.active,.dropdown-item:active{background-color:var(--brand);color:var(--brand-contrast)}.page-link{color:var(--brand)}.page-item.active .page-link{background-color:var(--brand);border-color:var(--brand)}.text-primary{color:var(--brand)!important}.text-info{color:var(--accent-brass-deep)!important}.progress-bar{background-color:var(--brand)}.alert-success{--bs-alert-bg:var(--success-soft);--bs-alert-color:var(--green-900);--bs-alert-border-color:var(--green-100)}.alert-danger{--bs-alert-bg:var(--danger-soft);--bs-alert-color:var(--danger);--bs-alert-border-color:var(--danger-soft)}.alert-warning{--bs-alert-bg:var(--warning-soft);--bs-alert-color:var(--warning);--bs-alert-border-color:var(--warning-soft)}.navbar.bg-dark{background-color:var(--green-900)!important}.navbar-dark .navbar-brand{font-family:var(--font-display);font-weight:600;letter-spacing:0.01em}.navbar-dark .navbar-nav .nav-link{color:rgba(246,247,244,0.88)}.navbar-dark .navbar-nav .nav-link:hover,.navbar-dark .navbar-nav .nav-link:focus{color:#ffffff}.navbar-dark .navbar-nav .nav-link.active{color:#ffffff}.navbar-dark .navbar-brand.brand-logo{font-size:1.55rem;font-family:"DM Serif Display",Georgia,"Times New Roman",serif;font-weight:400;letter-spacing:0.01em;color:rgba(246,247,244,0.88);line-height:1;position:relative;top:-2.5px}.brand-logo .brand-cursor{border-bottom:2.5px solid var(--accent-brass);padding-bottom:2px}.brand-logo .brand-tm{font-family:system-ui,-apple-system,"Segoe UI",sans-serif;font-size:0.4em;font-weight:600;vertical-align:super;line-height:0;margin-left:0.08em;letter-spacing:0;top:0}@media (max-width:991.98px){.navbar-dark .navbar-brand.brand-logo{font-size:1.15rem}}h1,h2{font-family:var(--font-display);font-weight:500;letter-spacing:-0.005em}h1,h2,h3{color:var(--text-primary);text-wrap:balance}.stat-mono,#live-stats,.wpm-value{font-family:var(--font-mono);font-variant-numeric:tabular-nums}