.container{max-width:1200px;margin:0 auto;padding:0 1rem}.row{display:flex;flex-wrap:wrap;margin:0 -.5rem}.col{flex:1;padding:0 .5rem}.btn{display:inline-block;padding:.5rem 1rem;border:none;border-radius:.25rem;text-decoration:none;cursor:pointer;transition:all .3s ease}.btn-primary{background-color:var(--primary-color, #007bff);color:#fff}.btn-secondary{background-color:var(--secondary-color, #6c757d);color:#fff}.form-group{margin-bottom:1rem}.form-control{width:100%;padding:.5rem;border:1px solid #ddd;border-radius:.25rem;font-size:1rem}.form-control:focus{outline:none;border-color:var(--primary-color, #007bff);box-shadow:0 0 0 2px #007bff40}.card{border:1px solid #ddd;border-radius:.25rem;padding:1rem;margin-bottom:1rem;background:#fff}.card-title{font-size:1.25rem;font-weight:700;margin-bottom:.5rem}.card-body{margin-bottom:1rem}.notification{position:fixed;top:20px;right:20px;padding:1rem 1.5rem;border-radius:.25rem;color:#fff;z-index:1000;animation:slideIn .3s ease-out}.notification-success{background-color:var(--success-color, #28a745)}.notification-error{background-color:var(--danger-color, #dc3545)}.notification-warning{background-color:var(--warning-color, #ffc107);color:#212529}.notification-info{background-color:var(--info-color, #17a2b8)}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;z-index:1000}.modal.show{display:flex;align-items:center;justify-content:center}.modal-dialog{margin:1.75rem auto;max-width:500px;width:90%;transform:scale(.8);opacity:0;transition:transform .3s ease-out,opacity .3s ease-out}.modal-content{background:#fff;border-radius:.25rem;box-shadow:0 .5rem 1rem #00000026;position:relative;display:flex;flex-direction:column;width:100%;max-height:90vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.modal-title{font-size:1.25rem;font-weight:700;margin:0}.modal-body{padding:1rem;flex:1}.modal-footer{display:flex;justify-content:flex-end;align-items:center;padding:1rem;border-top:1px solid #dee2e6;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.modal-footer .btn{margin-left:.5rem}.modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center}.modal-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;z-index:999}.modal-backdrop.fade{opacity:0;transition:opacity .15s linear}.modal-backdrop.show{opacity:1}body.modal-open{overflow:hidden}.table{width:100%;border-collapse:collapse;margin-bottom:1rem}.table th,.table td{padding:.75rem;border-bottom:1px solid #ddd;text-align:left}.table th{background-color:#f8f9fa;font-weight:700}.list-group{border:1px solid #ddd;border-radius:.25rem;overflow:hidden}.list-group-item{padding:.75rem 1rem;border-bottom:1px solid #ddd;background:#fff}.list-group-item:last-child{border-bottom:none}.list-group-item:hover{background-color:#f8f9fa}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;border:1px solid #ddd;border-radius:.25rem;max-width:100%;height:auto}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-primary{color:var(--primary-color, #007bff)}.text-secondary{color:var(--secondary-color, #6c757d)}.text-success{color:var(--success-color, #28a745)}.text-danger{color:var(--danger-color, #dc3545)}.text-warning{color:var(--warning-color, #ffc107)}.text-info{color:var(--info-color, #17a2b8)}.m-0{margin:0}.m-1{margin:.25rem}.m-2{margin:.5rem}.m-3{margin:1rem}.m-4{margin:1.5rem}.m-5{margin:3rem}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:1rem}.p-4{padding:1.5rem}.p-5{padding:3rem}@media (max-width: 768px){.container{padding:0 .5rem}.row{flex-direction:column}.col{margin-bottom:1rem}.modal-content{width:95%;padding:1rem}}.loading{display:inline-block;width:20px;height:20px;border:3px solid #f3f3f3;border-top:3px solid var(--primary-color, #007bff);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
