body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*{box-sizing:border-box}.app{display:flex;flex-direction:column;min-height:100vh}.main-content{flex:1 1;padding:20px}.page-header{margin-bottom:20px}.page-title{color:#333;margin-bottom:10px}.card{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:20px;padding:20px}.btn{border:none;border-radius:4px;cursor:pointer;display:inline-block;font-size:14px;padding:8px 16px;text-decoration:none;transition:background-color .2s}.btn-primary{background-color:#007bff;color:#fff}.btn-primary:hover{background-color:#0056b3}.btn-secondary{background-color:#6c757d;color:#fff}.btn-secondary:hover{background-color:#545b62}.btn-danger{background-color:#dc3545;color:#fff}.btn-danger:hover{background-color:#c82333}.btn-success{background-color:#28a745;color:#fff}.btn-success:hover{background-color:#218838}.table{background:#fff;border-collapse:collapse;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow:hidden;width:100%}.table td,.table th{border-bottom:1px solid #ddd;padding:12px;text-align:left}.table th{font-weight:600}.table tbody tr:hover,.table th{background-color:#f8f9fa}.form-group{margin-bottom:15px}.form-label{display:block;font-weight:500;margin-bottom:5px}.form-input{border:1px solid #ddd;border-radius:4px;font-size:14px;padding:8px 12px;width:100%}.form-input:focus{border-color:#007bff;box-shadow:0 0 0 2px #007bff40;outline:none}.form-row{display:flex;gap:15px}.form-row .form-group{flex:1 1}.alert{border-radius:4px;margin-bottom:15px;padding:12px 16px}.alert-success{background-color:#d4edda;border:1px solid #c3e6cb;color:#155724}.alert-error{background-color:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.loading{align-items:center;display:flex;justify-content:center;padding:40px}.spinner{animation:spin 1s linear infinite;border:4px solid #f3f3f3;border-radius:50%;border-top-color:#007bff;height:40px;width:40px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}
/*# sourceMappingURL=main.e0b33bb6.css.map*/