/*!***************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-5.use[3]!../ENV/lib/python3.12/site-packages/certificate_generator/media/css/certificate-generator-plugin.css ***!
  \***************************************************************************************************************************************************************************************************************************************************************/
@charset "UTF-8";
.cert-gen-container {
    background: #fff;
    border-radius: 4px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
    max-width: 600px;
    width: 100%;
    padding: 40px;
    margin: 40px auto;
    font-family: "Open Sans", "Helvetica Neue", "Helvetica", sans-serif;
    height: fit-content;
}

.cert-gen-container * {
    box-sizing: border-box;
}

.cert-gen-container h1 {
    color: #333;
    margin-bottom: 10px;
    font-size: 28px;
}

.cert-gen-container .subtitle {
    color: #666;
    margin-bottom: 30px;
    font-size: 14px;
}

.cert-gen-container .form-group {
    margin-bottom: 25px;
}

.cert-gen-container label {
    display: block;
    margin-bottom: 8px;
    color: #333;
    font-weight: 600;
    font-size: 14px;
}

.cert-gen-container select {
    width: 100%;
    padding: 12px 16px;
    border: 2px solid #e0e0e0;
    border-radius: 2px;
    font-size: 15px;
    background-color: #fff;
    cursor: pointer;
    transition: all 0.3s;
}

.cert-gen-container select:hover {
    border-color: #667eea;
}

.cert-gen-container select:focus {
    outline: none;
    border-color: #667eea;
    box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);
}

.cert-gen-container .info-box {
    background: #f8f9fa;
    border-left: 4px solid #667eea;
    padding: 12px 16px;
    border-radius: 4px;
    font-size: 13px;
    color: #666;
    margin-bottom: 20px;
}

.cert-gen-container .config-section {
    background: #f8f9fa;
    padding: 20px;
    border-radius: 8px;
    margin-bottom: 25px;
}

.cert-gen-container .config-section h3 {
    font-size: 16px;
    margin-bottom: 15px;
    color: #333;
}

.cert-gen-container .checkbox-group {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.cert-gen-container .checkbox-item {
    display: flex;
    align-items: center;
    gap: 8px;
}

.cert-gen-container .checkbox-item--spaced {
    margin-top: 8px;
}

.cert-gen-container .checkbox-item input[type=checkbox] {
    width: 18px;
    height: 18px;
    cursor: pointer;
}

.cert-gen-container .checkbox-item label {
    margin: 0;
    font-weight: normal;
    cursor: pointer;
}

.cert-gen-container button {
    width: 100%;
    padding: 14px 24px;
    background: #65a6de;
    color: #fff;
    border: none;
    border-radius: 2px;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
    transition: transform 0.2s, box-shadow 0.2s;
}

.cert-gen-container button:hover:not(:disabled) {
    transform: translateY(-2px);
    box-shadow: 0 10px 20px rgba(102, 126, 234, 0.3);
}

.cert-gen-container button:active:not(:disabled) {
    transform: translateY(0);
}

.cert-gen-container button:disabled {
    background: #ccc;
    cursor: not-allowed;
}

.cert-gen-container .status-message {
    margin-top: 20px;
    padding: 12px 16px;
    border-radius: 8px;
    font-size: 14px;
    display: none;
}

.cert-gen-container .status-message.success {
    background: #d4edda;
    color: #155724;
    border: 1px solid #c3e6cb;
}

.cert-gen-container .status-message.error {
    background: #f8d7da;
    color: #721c24;
    border: 1px solid #f5c6cb;
}

.cert-gen-container .status-message.info {
    background: #d1ecf1;
    color: #0c5460;
    border: 1px solid #bee5eb;
}

.cert-gen-container .spinner {
    display: inline-block;
    width: 16px;
    height: 16px;
    border: 2px solid #fff;
    border-radius: 50%;
    border-top-color: transparent;
    animation: cert-gen-spin 0.8s linear infinite;
    margin-right: 8px;
}

@keyframes cert-gen-spin {
    to {
        transform: rotate(360deg);
    }
}
.cert-gen-container .metadata {
    font-size: 12px;
    color: #999;
    margin-top: 5px;
}

/* Tom Select styling to match form */
.cert-gen-container .ts-wrapper.single .ts-control {
    padding: 12px 16px;
    border: 2px solid #e0e0e0;
    border-radius: 2px;
    font-size: 15px;
}

.cert-gen-container .ts-wrapper.single .ts-control:hover {
    border-color: #667eea;
}

.cert-gen-container .ts-wrapper.single.focus .ts-control {
    border-color: #667eea;
    box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);
}

/* Suppress the browser default focus outline on TomSelect's inner search input
   and dropdown wrapper — the .focus .ts-control rule above is what shows the
   focused state. */
.cert-gen-container .ts-wrapper input:focus,
.cert-gen-container .ts-wrapper input:focus-visible,
.cert-gen-container .ts-control:focus,
.cert-gen-container .ts-control:focus-visible {
    outline: none;
    box-shadow: none;
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjQ5OTEuNTc4MDUwMjQ3ZjNiNjljYjlhYzkuY3NzIiwibWFwcGluZ3MiOiI7OztBQUFBLGdCQUFnQjtBQUFoQjtJQUNJO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUVKOztBQUNBO0lBQ0k7QUFFSjs7QUFDQTtJQUNJO0lBQ0E7SUFDQTtBQUVKOztBQUNBO0lBQ0k7SUFDQTtJQUNBO0FBRUo7O0FBQ0E7SUFDSTtBQUVKOztBQUNBO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUVKOztBQUNBO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUVKOztBQUNBO0lBQ0k7QUFFSjs7QUFDQTtJQUNJO0lBQ0E7SUFDQTtBQUVKOztBQUNBO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7QUFFSjs7QUFDQTtJQUNJO0lBQ0E7SUFDQTtJQUNBO0FBRUo7O0FBQ0E7SUFDSTtJQUNBO0lBQ0E7QUFFSjs7QUFDQTtJQUNJO0lBQ0E7SUFDQTtBQUVKOztBQUNBO0lBQ0k7SUFDQTtJQUNBO0FBRUo7O0FBQ0E7SUFDSTtBQUVKOztBQUNBO0lBQ0k7SUFDQTtJQUNBO0FBRUo7O0FBQ0E7SUFDSTtJQUNBO0lBQ0E7QUFFSjs7QUFDQTtJQUNJO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0FBRUo7O0FBQ0E7SUFDSTtJQUNBO0FBRUo7O0FBQ0E7SUFDSTtBQUVKOztBQUNBO0lBQ0k7SUFDQTtBQUVKOztBQUNBO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUVKOztBQUNBO0lBQ0k7SUFDQTtJQUNBO0FBRUo7O0FBQ0E7SUFDSTtJQUNBO0lBQ0E7QUFFSjs7QUFDQTtJQUNJO0lBQ0E7SUFDQTtBQUVKOztBQUNBO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtBQUVKOztBQUNBO0lBQ0k7UUFBSztJQUdMO0FBQ0o7QUFEQTtJQUNJO0lBQ0E7SUFDQTtBQUdKOztBQUFBO0FBQ0E7SUFDSTtJQUNBO0lBQ0E7SUFDQTtBQUdKOztBQUFBO0lBQ0k7QUFHSjs7QUFBQTtJQUNJO0lBQ0E7QUFHSjs7QUFBQTs7bUJBQUE7QUFHQTs7OztJQUlJO0lBQ0E7QUFHSixDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vcXVhcnR6Ly4uL0VOVi9saWIvcHl0aG9uMy4xMi9zaXRlLXBhY2thZ2VzL2NlcnRpZmljYXRlX2dlbmVyYXRvci9tZWRpYS9jc3MvY2VydGlmaWNhdGUtZ2VuZXJhdG9yLXBsdWdpbi5jc3MiXSwic291cmNlc0NvbnRlbnQiOlsiLmNlcnQtZ2VuLWNvbnRhaW5lciB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYm94LXNoYWRvdzogMCAyMHB4IDYwcHggcmdiYSgwLCAwLCAwLCAwLjMpO1xuICAgIG1heC13aWR0aDogNjAwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogNDBweDtcbiAgICBtYXJnaW46IDQwcHggYXV0bztcbiAgICBmb250LWZhbWlseTogXCJPcGVuIFNhbnNcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBcIkhlbHZldGljYVwiLCBzYW5zLXNlcmlmO1xuICAgIGhlaWdodDogZml0LWNvbnRlbnQ7XG59XG5cbi5jZXJ0LWdlbi1jb250YWluZXIgKiB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLmNlcnQtZ2VuLWNvbnRhaW5lciBoMSB7XG4gICAgY29sb3I6ICMzMzM7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICBmb250LXNpemU6IDI4cHg7XG59XG5cbi5jZXJ0LWdlbi1jb250YWluZXIgLnN1YnRpdGxlIHtcbiAgICBjb2xvcjogIzY2NjtcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLmNlcnQtZ2VuLWNvbnRhaW5lciAuZm9ybS1ncm91cCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjVweDtcbn1cblxuLmNlcnQtZ2VuLWNvbnRhaW5lciBsYWJlbCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgIGNvbG9yOiAjMzMzO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zaXplOiAxNHB4O1xufVxuXG4uY2VydC1nZW4tY29udGFpbmVyIHNlbGVjdCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMTJweCAxNnB4O1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICNlMGUwZTA7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcbn1cblxuLmNlcnQtZ2VuLWNvbnRhaW5lciBzZWxlY3Q6aG92ZXIge1xuICAgIGJvcmRlci1jb2xvcjogIzY2N2VlYTtcbn1cblxuLmNlcnQtZ2VuLWNvbnRhaW5lciBzZWxlY3Q6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm9yZGVyLWNvbG9yOiAjNjY3ZWVhO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCByZ2JhKDEwMiwgMTI2LCAyMzQsIDAuMSk7XG59XG5cbi5jZXJ0LWdlbi1jb250YWluZXIgLmluZm8tYm94IHtcbiAgICBiYWNrZ3JvdW5kOiAjZjhmOWZhO1xuICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgIzY2N2VlYTtcbiAgICBwYWRkaW5nOiAxMnB4IDE2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBjb2xvcjogIzY2NjtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xufVxuXG4uY2VydC1nZW4tY29udGFpbmVyIC5jb25maWctc2VjdGlvbiB7XG4gICAgYmFja2dyb3VuZDogI2Y4ZjlmYTtcbiAgICBwYWRkaW5nOiAyMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBtYXJnaW4tYm90dG9tOiAyNXB4O1xufVxuXG4uY2VydC1nZW4tY29udGFpbmVyIC5jb25maWctc2VjdGlvbiBoMyB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gICAgY29sb3I6ICMzMzM7XG59XG5cbi5jZXJ0LWdlbi1jb250YWluZXIgLmNoZWNrYm94LWdyb3VwIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMHB4O1xufVxuXG4uY2VydC1nZW4tY29udGFpbmVyIC5jaGVja2JveC1pdGVtIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG59XG5cbi5jZXJ0LWdlbi1jb250YWluZXIgLmNoZWNrYm94LWl0ZW0tLXNwYWNlZCB7XG4gICAgbWFyZ2luLXRvcDogOHB4O1xufVxuXG4uY2VydC1nZW4tY29udGFpbmVyIC5jaGVja2JveC1pdGVtIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgd2lkdGg6IDE4cHg7XG4gICAgaGVpZ2h0OiAxOHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmNlcnQtZ2VuLWNvbnRhaW5lciAuY2hlY2tib3gtaXRlbSBsYWJlbCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uY2VydC1nZW4tY29udGFpbmVyIGJ1dHRvbiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMTRweCAyNHB4O1xuICAgIGJhY2tncm91bmQ6ICM2NWE2ZGU7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMsIGJveC1zaGFkb3cgMC4ycztcbn1cblxuLmNlcnQtZ2VuLWNvbnRhaW5lciBidXR0b246aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcbiAgICBib3gtc2hhZG93OiAwIDEwcHggMjBweCByZ2JhKDEwMiwgMTI2LCAyMzQsIDAuMyk7XG59XG5cbi5jZXJ0LWdlbi1jb250YWluZXIgYnV0dG9uOmFjdGl2ZTpub3QoOmRpc2FibGVkKSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xufVxuXG4uY2VydC1nZW4tY29udGFpbmVyIGJ1dHRvbjpkaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZDogI2NjYztcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4uY2VydC1nZW4tY29udGFpbmVyIC5zdGF0dXMtbWVzc2FnZSB7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICBwYWRkaW5nOiAxMnB4IDE2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4uY2VydC1nZW4tY29udGFpbmVyIC5zdGF0dXMtbWVzc2FnZS5zdWNjZXNzIHtcbiAgICBiYWNrZ3JvdW5kOiAjZDRlZGRhO1xuICAgIGNvbG9yOiAjMTU1NzI0O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjM2U2Y2I7XG59XG5cbi5jZXJ0LWdlbi1jb250YWluZXIgLnN0YXR1cy1tZXNzYWdlLmVycm9yIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjhkN2RhO1xuICAgIGNvbG9yOiAjNzIxYzI0O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNmNWM2Y2I7XG59XG5cbi5jZXJ0LWdlbi1jb250YWluZXIgLnN0YXR1cy1tZXNzYWdlLmluZm8ge1xuICAgIGJhY2tncm91bmQ6ICNkMWVjZjE7XG4gICAgY29sb3I6ICMwYzU0NjA7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2JlZTVlYjtcbn1cblxuLmNlcnQtZ2VuLWNvbnRhaW5lciAuc3Bpbm5lciB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBhbmltYXRpb246IGNlcnQtZ2VuLXNwaW4gMC44cyBsaW5lYXIgaW5maW5pdGU7XG4gICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG59XG5cbkBrZXlmcmFtZXMgY2VydC1nZW4tc3BpbiB7XG4gICAgdG8geyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9XG59XG5cbi5jZXJ0LWdlbi1jb250YWluZXIgLm1ldGFkYXRhIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29sb3I6ICM5OTk7XG4gICAgbWFyZ2luLXRvcDogNXB4O1xufVxuXG4vKiBUb20gU2VsZWN0IHN0eWxpbmcgdG8gbWF0Y2ggZm9ybSAqL1xuLmNlcnQtZ2VuLWNvbnRhaW5lciAudHMtd3JhcHBlci5zaW5nbGUgLnRzLWNvbnRyb2wge1xuICAgIHBhZGRpbmc6IDEycHggMTZweDtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjZTBlMGUwO1xuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICBmb250LXNpemU6IDE1cHg7XG59XG5cbi5jZXJ0LWdlbi1jb250YWluZXIgLnRzLXdyYXBwZXIuc2luZ2xlIC50cy1jb250cm9sOmhvdmVyIHtcbiAgICBib3JkZXItY29sb3I6ICM2NjdlZWE7XG59XG5cbi5jZXJ0LWdlbi1jb250YWluZXIgLnRzLXdyYXBwZXIuc2luZ2xlLmZvY3VzIC50cy1jb250cm9sIHtcbiAgICBib3JkZXItY29sb3I6ICM2NjdlZWE7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgM3B4IHJnYmEoMTAyLCAxMjYsIDIzNCwgMC4xKTtcbn1cblxuLyogU3VwcHJlc3MgdGhlIGJyb3dzZXIgZGVmYXVsdCBmb2N1cyBvdXRsaW5lIG9uIFRvbVNlbGVjdCdzIGlubmVyIHNlYXJjaCBpbnB1dFxuICAgYW5kIGRyb3Bkb3duIHdyYXBwZXIg4oCUIHRoZSAuZm9jdXMgLnRzLWNvbnRyb2wgcnVsZSBhYm92ZSBpcyB3aGF0IHNob3dzIHRoZVxuICAgZm9jdXNlZCBzdGF0ZS4gKi9cbi5jZXJ0LWdlbi1jb250YWluZXIgLnRzLXdyYXBwZXIgaW5wdXQ6Zm9jdXMsXG4uY2VydC1nZW4tY29udGFpbmVyIC50cy13cmFwcGVyIGlucHV0OmZvY3VzLXZpc2libGUsXG4uY2VydC1nZW4tY29udGFpbmVyIC50cy1jb250cm9sOmZvY3VzLFxuLmNlcnQtZ2VuLWNvbnRhaW5lciAudHMtY29udHJvbDpmb2N1cy12aXNpYmxlIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG59XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=*/