
.jv-form-horizontal {max-width: 100%;margin: auto;}
.jv-form-horizontal .jv-form-group {display: flex;align-items: center;margin-bottom: 14px;gap: 10px;}
.jv-form-horizontal .jv-form-group label {width: 130px;min-width: 100px;font-weight: 600;color: #333;margin: 0;}
.jv-form-horizontal .jv-form-group input, .jv-form-horizontal .jv-form-group select {
    flex: 1;padding: 8px 10px;font-size: 14px;border: 1px solid #ccc;
    border-radius: 6px;background-color: #fff;box-sizing: border-box;transition: border-color 0.2s;
}
.jv-form-horizontal .jv-form-group input:focus, .jv-form-horizontal .jv-form-group select:focus {
    border-color: #2271b1;outline: none;
}
.hasil-warning {
    background-color: #fff3cd;border: 1px solid #ffecb5;color: #333d03;
    padding: 12px 16px;border-radius: 6px;font-size: 15px;line-height: 1.8;margin-top: 10px;
}
.jv-spinner {
    width: 32px;height: 32px;border: 4px solid #ccc;
    border-top: 4px solid #ff3300;border-radius: 50%;
    animation: jv-spin 0.8s linear infinite;margin: auto;
}
@keyframes jv-spin {0% {transform: rotate(0deg);}100% {transform: rotate(360deg);}}
.btn-danger {
    background-color: #dc3545;color: #fff;border: 1px solid #dc3545;padding: 10px 20px;
    border-radius: 3px;cursor: pointer;transition: background-color 0.2s ease-in-out, border-color 0.2s;
}
.btn-danger:hover {background-color: #c82333;border-color: #bd2130;}
.btn-primary {
    background-color: #0073aa;color: #fff;border: 1px solid #0073aa;padding: 10px 20px;
    border-radius: 3px;cursor: pointer;transition: background-color 0.2s ease-in-out, border-color 0.2s;
}
.btn-primary:hover {background-color: #005b8c;border-color: #004e7a;}