/* Local lightweight Bootstrap-compatible subset for portability */
:root{--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-light:#f8f9fa;--bs-dark:#212529}
*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:#212529}
.container{width:min(1100px,92%);margin:0 auto}.row{display:flex;flex-wrap:wrap;margin:-.5rem}.col-md-2,.col-md-3,.col-md-4,.col-md-6,.col-12{padding:.5rem;flex:0 0 100%}
@media(min-width:768px){.col-md-2{flex:0 0 16.666%}.col-md-3{flex:0 0 25%}.col-md-4{flex:0 0 33.333%}.col-md-6{flex:0 0 50%}}
.navbar{padding:.75rem 0}.navbar .container{display:flex;justify-content:space-between;align-items:center}.navbar-nav{display:flex;gap:.75rem;flex-wrap:wrap}.navbar-light{background:#f8f9fa}.navbar-dark{background:#212529;color:#fff}.navbar-dark a{color:#fff}
.nav-link,.navbar-brand{color:inherit;text-decoration:none}.card{border:1px solid #ddd;border-radius:.5rem;background:#fff}.card-body{padding:1rem}.bg-light{background:#f8f9fa}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:1rem}.mb-4{margin-bottom:1.5rem}.py-4{padding-top:1.5rem;padding-bottom:1.5rem}.py-5{padding-top:3rem;padding-bottom:3rem}
.p-5{padding:3rem}.rounded-3{border-radius:.5rem}.text-center{text-align:center}.lead{font-size:1.1rem;color:#555}.display-6{font-size:2rem}
.form-control,.form-select{width:100%;padding:.55rem .65rem;border:1px solid #cfcfcf;border-radius:.375rem}.form-label{display:block;margin-bottom:.25rem}.btn{display:inline-block;padding:.55rem .8rem;border-radius:.375rem;border:1px solid transparent;cursor:pointer;text-decoration:none}.btn-primary{background:var(--bs-primary);color:#fff}.btn-outline-primary{border-color:var(--bs-primary);color:var(--bs-primary);background:#fff}.btn-outline-secondary{border-color:#999;color:#555;background:#fff}.w-100{width:100%}
.table{width:100%;border-collapse:collapse}.table th,.table td{border:1px solid #ddd;padding:.45rem;text-align:left}.table-striped tr:nth-child(even){background:#fafafa}
.alert{padding:.7rem;border-radius:.35rem;margin-bottom:1rem}.alert-danger{background:#f8d7da}.alert-success{background:#d1e7dd}.alert-info{background:#cff4fc}
.list-group{list-style:none;padding:0}.list-group-item{padding:.6rem;border:1px solid #ddd}
.d-flex{display:flex}.gap-2{gap:.5rem}
