/* Bootstrap Minimal - Only what we need */

/* Container & Grid */
.container { width: 100%; padding-right: 15px; padding-left: 15px; margin-right: auto; margin-left: auto; }
@media (min-width: 576px) { .container { max-width: 540px; } }
@media (min-width: 768px) { .container { max-width: 720px; } }
@media (min-width: 992px) { .container { max-width: 960px; } }
@media (min-width: 1200px) { .container { max-width: 1140px; } }

/* Buttons */
.btn { display: inline-block; font-weight: 400; text-align: center; white-space: nowrap; 
       vertical-align: middle; user-select: none; border: 1px solid transparent; 
       padding: 0.375rem 0.75rem; font-size: 1rem; line-height: 1.5; border-radius: 0.25rem; 
       transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out; cursor: pointer; 
       text-decoration: none; }
.btn:hover { text-decoration: none; }
.btn-primary { color: #fff; background-color: #007bff; border-color: #007bff; }
.btn-primary:hover { background-color: #0069d9; border-color: #0062cc; }
.btn-secondary { color: #fff; background-color: #6c757d; border-color: #6c757d; }
.btn-secondary:hover { background-color: #5a6268; border-color: #545b62; }
.btn-success { color: #fff; background-color: #28a745; border-color: #28a745; }
.btn-success:hover { background-color: #218838; border-color: #1e7e34; }
.btn-danger { color: #fff; background-color: #dc3545; border-color: #dc3545; }
.btn-danger:hover { background-color: #c82333; border-color: #bd2130; }
.btn-outline-light { color: #f8f9fa; border-color: #f8f9fa; background-color: transparent; }
.btn-outline-light:hover { color: #212529; background-color: #f8f9fa; }
.btn-lg { padding: 0.5rem 1rem; font-size: 1.25rem; }
.btn-sm { padding: 0.25rem 0.5rem; font-size: 0.875rem; }

/* Forms */
.form-control { display: block; width: 100%; padding: 0.375rem 0.75rem; font-size: 1rem; 
                line-height: 1.5; color: #495057; background-color: #fff; 
                border: 1px solid #ced4da; border-radius: 0.25rem; }
.form-control:focus { color: #495057; background-color: #fff; border-color: #80bdff; 
                      outline: 0; box-shadow: 0 0 0 0.2rem rgba(0,123,255,.25); }
.form-label { display: inline-block; margin-bottom: 0.5rem; font-weight: 500; }

/* Alerts */
.alert { position: relative; padding: 0.75rem 1.25rem; margin-bottom: 1rem; 
         border: 1px solid transparent; border-radius: 0.25rem; }
.alert-danger { color: #721c24; background-color: #f8d7da; border-color: #f5c6cb; }

/* Spinner */
.spinner-border { display: inline-block; width: 2rem; height: 2rem; 
                  vertical-align: text-bottom; border: 0.25em solid currentColor; 
                  border-right-color: transparent; border-radius: 50%; 
                  animation: spinner-border 0.75s linear infinite; }
@keyframes spinner-border { to { transform: rotate(360deg); } }
.text-primary { color: #007bff !important; }

/* Utility classes */
.w-100 { width: 100% !important; }
.text-center { text-align: center !important; }
.text-muted { color: #6c757d !important; }
.text-white { color: #fff !important; }
.mt-2 { margin-top: 0.5rem !important; }
.mt-4 { margin-top: 1.5rem !important; }
.mb-3 { margin-bottom: 1rem !important; }
.my-4 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; }
.fw-bold { font-weight: 700 !important; }
.visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; 
                   padding: 0 !important; margin: -1px !important; overflow: hidden !important; 
                   clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }
