
/* --- css/siteforge-editor.css --- */
/* Editable Element Highlight */
.siteforge-editable {
    cursor: pointer;
    transition: outline 0.2s ease;
}

.siteforge-editable:hover {
    outline: 2px dashed #1a73e8;
    background-color: rgba(26, 115, 232, 0.05);
    border-radius: 4px;
}

/* Modal Styles */
.siteforge-modal {
    display: none;
    position: fixed;
    z-index: 10000;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: auto;
    background-color: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(2px);
    font-family: sans-serif;
}

.siteforge-modal-content {
    background-color: #fefefe;
    margin: 5vh auto;
    padding: 25px;
    border: 1px solid #888;
    width: 90%;
    max-width: 800px;
    border-radius: 12px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
    position: relative;
    animation: siteforge-slide-down 0.3s ease-out;
}

/* Specific smaller modal for Type Selection */
.siteforge-modal-content.siteforge-modal-small {
    max-width: 450px;
    text-align: center;
}

.siteforge-modal-content.siteforge-modal-large {
    max-width: 90vw;
    height: 80vh;
    display: flex;
    flex-direction: column;
    resize: both;
    overflow: auto;
    min-width: 400px;
    min-height: 300px;
}


@keyframes siteforge-slide-down {
    from {
        transform: translateY(-50px);
        opacity: 0;
    }

    to {
        transform: translateY(0);
        opacity: 1;
    }
}

.siteforge-close {
    color: #888;
    position: absolute;
    right: 15px;
    top: 12px;
    font-size: 28px;
    font-weight: bold;
    cursor: pointer;
    line-height: l;
    z-index: 100;
}

.siteforge-close:hover {
    color: #333;
}

.siteforge-modal-content h3 {
    margin-top: 0;
    margin-bottom: 20px;
    display: flex;
    justify-content: flex-start;
    gap: 8px;
    align-items: center;
    cursor: move;
    /* Indication for drag */
    user-select: none;
    background: #f8f9fa;
    padding: 10px 15px;
    margin: -25px -25px 20px -25px;
    /* Extend to edges */
    border-bottom: 1px solid #ddd;
    border-radius: 12px 12px 0 0;
}



.siteforge-field-group {
    margin-bottom: 20px;
    text-align: left;
}

/* Flex grow for large modal inputs */
.siteforge-modal-content.siteforge-modal-large .siteforge-field-group {
    flex: 1;
    display: flex;
    flex-direction: column;
    margin-bottom: 10px;
    overflow: hidden;
    /* Prevent spill */
}

/* Ensure textarea fills the group */
.siteforge-modal-content.siteforge-modal-large textarea {
    flex: 1;
    resize: none;
    /* Let the modal resize handle it */
    min-height: 200px;
}

.siteforge-field-group label {
    display: block;
    margin-bottom: 8px;
    font-weight: 600;
    color: #555;
}

/* WYSIWYG Editor Styles - UPDATED */
.siteforge-editor-toolbar {
    display: flex;
    gap: 5px;
    background: #f1f3f4;
    border: 1px solid #ddd;
    border-bottom: none;
    padding: 8px;
    border-radius: 6px 6px 0 0;
    align-items: center;
    /* Center items vertically */
}

.siteforge-format-btn {
    background: white;
    border: 1px solid #ccc;
    cursor: pointer;
    border-radius: 4px;
    padding: 6px 10px;
    font-size: 14px;
    color: #555;
    transition: all 0.2s;
    height: 32px;
    /* Fixed height for alignment */
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.siteforge-format-btn:hover {
    background: #e8f0fe;
    color: #1a73e8;
    border-color: #1a73e8;
}

/* NEW: Color Picker Style */
.siteforge-color-picker {
    background: white;
    border: 1px solid #ccc;
    cursor: pointer;
    border-radius: 4px;
    height: 32px;
    width: 40px;
    padding: 2px;
}

#siteforge-input {
    width: 100%;
    min-height: 250px;
    height: 100%;
    /* Fill container */
    max-height: none;
    /* remove constraint */
    overflow-y: auto;
    padding: 12px;
    border: 1px solid #ddd;
    border-radius: 0 0 6px 6px;
    /* Rounded bottom only */
    font-size: 16px;
    box-sizing: border-box;
    font-family: inherit;
    background: white;
}

#siteforge-input:focus {
    outline: none;
    border-color: #1a73e8;
    box-shadow: 0 0 0 2px rgba(26, 115, 232, 0.1);
}

/* Icon Grid */
.siteforge-icon-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    max-height: 200px;
    overflow-y: auto;
    padding: 5px;
    border: 1px solid #ddd;
    border-radius: 6px;
    background: #fafafa;
}

.siteforge-icon-option {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #eee;
    background: white;
    border-radius: 4px;
    cursor: pointer;
    transition: all 0.2s;
    font-size: 18px;
    color: #555;
}

.siteforge-icon-option:hover {
    background-color: #f0f0f0;
    border-color: #ccc;
    transform: translateY(-2px);
}

.siteforge-icon-option.selected {
    background-color: #e8f0fe;
    border-color: #1a73e8;
    color: #1a73e8;
    box-shadow: 0 0 0 2px rgba(26, 115, 232, 0.3);
}

.siteforge-icon-option[data-icon=""] {
    width: auto;
    padding: 0 10px;
    font-size: 12px;
}

/* Actions */
.siteforge-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 30px;
    border-top: 1px solid #eee;
    padding-top: 20px;
}

.siteforge-btn {
    padding: 10px 20px;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    font-size: 14px;
    font-weight: 600;
    transition: background 0.2s;
}

.siteforge-btn.primary {
    background-color: #1a73e8;
    color: white;
}

.siteforge-btn.primary:hover {
    background-color: #1557b0;
}

.siteforge-btn:not(.primary) {
    background-color: #f1f3f4;
    color: #3c4043;
}

.siteforge-btn:not(.primary):hover {
    background-color: #e8eaed;
}

/* --- ELEMENT GEAR ICON (Top Right) --- */
.siteforge-gear-btn {
    position: absolute;
    display: none;
    background: #f39c12;
    /* Orange */
    color: white;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 9999;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
    font-size: 16px;
    transition: transform 0.2s;
}

.siteforge-gear-btn:hover {
    background: #e67e22;
    transform: scale(1.1) rotate(20deg);
}

/* --- SECTION GEAR ICON (Top Left) --- */
.siteforge-section-container {
    position: relative;
    /* Ensure sections form a positioning context */
}

.siteforge-section-container:hover {
    outline: 2px dashed #9b59b6;
    /* Purple highlight for sections */
}

.siteforge-section-gear {
    position: absolute;
    top: 50%;
    /* Center vertically */
    left: 20px;
    transform: translateY(-50%);
    /* Center adjustment */
    background: #8e44ad;
    /* Purple */
    color: white;
    padding: 8px 15px;
    border-radius: 20px;
    /* Capsule shape */
    display: none;
    /* Hidden by default */
    align-items: center;
    gap: 8px;
    cursor: pointer;
    z-index: 9998;
    /* Just below element gear if overlapping */
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
    font-weight: bold;
    font-size: 14px;
}

.siteforge-section-container:hover .siteforge-section-gear {
    display: flex;
    animation: siteforge-fade-in-center 0.2s ease;
}

.siteforge-section-gear:hover {
    background: #9b59b6;
    transform: translateY(-50%) scale(1.05);
    /* Maintain center + scale */
}

@keyframes siteforge-fade-in-center {
    from {
        opacity: 0;
        transform: translate(0, -55%);
        /* Start slightly higher */
    }

    to {
        opacity: 1;
        transform: translate(0, -50%);
        /* End centered */
    }
}


/* --- Type Selection & Position Toggle --- */
.siteforge-pos-toggle {
    display: flex;
    background: #f1f3f4;
    border-radius: 8px;
    padding: 4px;
    margin-bottom: 20px;
}

.siteforge-pos-btn {
    flex: 1;
    padding: 8px;
    border: none;
    background: transparent;
    border-radius: 6px;
    cursor: pointer;
    font-weight: 600;
    color: #666;
    transition: all 0.2s;
}

.siteforge-pos-btn.active {
    background: white;
    color: #1a73e8;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

.siteforge-type-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    /* 3 columns for 3 types */
    gap: 15px;
    margin-bottom: 20px;
}

.siteforge-type-option {
    border: 1px solid #ddd;
    border-radius: 8px;
    padding: 15px 10px;
    cursor: pointer;
    transition: all 0.2s;
    background: #fafafa;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
}

.siteforge-type-option:hover {
    border-color: #1a73e8;
    background: #e8f0fe;
    transform: translateY(-2px);
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}

.siteforge-type-option i {
    font-size: 24px;
    color: #1a73e8;
}

.siteforge-type-option span {
    font-weight: 600;
    color: #333;
    font-size: 13px;
}

/* --- IMAGE MANAGER STYLES --- */
.siteforge-image-uploader {
    border: 2px dashed #ddd;
    padding: 30px;
    text-align: center;
    border-radius: 8px;
    cursor: pointer;
    margin-bottom: 20px;
    transition: all 0.3s;
    background: #fafafa;
}

.siteforge-image-uploader:hover {
    border-color: #1a73e8;
    background: #e8f0fe;
}

.siteforge-gallery-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
    gap: 15px;
    /* max-height removed to allow flex fill */
    overflow-y: auto;
    padding: 5px;
    flex: 1;
    /* Grow to fill space */
}

.siteforge-gallery-item {
    position: relative;
    aspect-ratio: 1;
    /* Square */
    border-radius: 8px;
    overflow: hidden;
    cursor: pointer;
    border: 2px solid transparent;
    transition: all 0.2s;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}

.siteforge-gallery-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.siteforge-gallery-item:hover {
    transform: translateY(-2px);
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
    border-color: #1a73e8;
}

.siteforge-gallery-item.selected {
    border-color: #1a73e8;
    box-shadow: 0 0 0 3px rgba(26, 115, 232, 0.3);
}

/* Template Modal Styles */
.siteforge-category-card {
    background: #f8f9fa;
    border: 1px solid #ddd;
    border-radius: 8px;
    padding: 20px;
    text-align: center;
    cursor: pointer;
    transition: all 0.2s;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 15px;
    height: 150px;
}

.siteforge-category-card:hover {
    background: #e8f0fe;
    border-color: #1a73e8;
    transform: translateY(-5px);
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
}

.siteforge-category-card i {
    font-size: 3rem;
    color: #1a73e8;
}

.siteforge-category-card span {
    font-weight: 600;
    color: #333;
}

.siteforge-template-item {
    border: 1px solid #eee;
    border-radius: 8px;
    overflow: hidden;
    cursor: pointer;
    transition: all 0.2s;
    background: grey;
}

.siteforge-template-item:hover {
    border-color: #1a73e8;
    box-shadow: 0 0 0 2px rgba(26, 115, 232, 0.2);
}

.siteforge-template-header {
    background: #f1f3f4;
    padding: 10px 15px;
    font-weight: 600;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid #ddd;
}

.siteforge-template-preview {
    padding: 0;
    position: relative;
    overflow: hidden;
    /* Simulate iframe-like isolation for simple preview */
}

.siteforge-template-select-btn {
    padding: 5px 15px;
    font-size: 12px;
    background: #1a73e8;
    color: white;
    border: none;
    border-radius: 4px;
    cursor: pointer;
}

.siteforge-template-select-btn:hover {
    background: #1557b0;
}

/* --- BLOG EDITOR STYLES --- */
.siteforge-blog-form-grid {
    display: grid;
    grid-template-columns: 1fr 280px;
    gap: 20px;
    flex: 1;
    overflow: hidden;
    padding: 15px;
}

.siteforge-blog-main-col {
    display: flex;
    flex-direction: column;
    gap: 12px;
    overflow-y: auto;
    padding-right: 10px;
    padding-left: 5px;
}

.siteforge-blog-sidebar {
    display: flex;
    flex-direction: column;
    gap: 12px;
    background: #f9fafb;
    padding: 15px;
    border-radius: 8px;
    border: 1px solid #eee;
    overflow-y: auto;
}

.siteforge-blog-group {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.siteforge-blog-group label {
    font-weight: 600;
    font-size: 13px;
    color: #444;
}

.siteforge-blog-group input[type="text"],
.siteforge-blog-group input[type="datetime-local"],
.siteforge-blog-group textarea,
.siteforge-blog-group select {
    width: 100%;
    padding: 8px 12px;
    border: 1px solid #ddd;
    border-radius: 6px;
    font-size: 14px;
    font-family: inherit;
    box-sizing: border-box;
    transition: border-color 0.2s;
}

.siteforge-blog-group input[type="text"]:focus,
.siteforge-blog-group textarea:focus,
.siteforge-blog-group select:focus {
    outline: none;
    border-color: #1a73e8;
    box-shadow: 0 0 0 2px rgba(26, 115, 232, 0.1);
}

.siteforge-blog-group textarea {
    resize: vertical;
}

#siteforge-blog-content {
    flex: 1;
    min-height: 200px;
    padding: 12px;
    border: 1px solid #ddd;
    border-radius: 0 0 6px 6px;
    font-size: 14px;
    font-family: inherit;
    overflow-y: auto;
    background: white;
}

#siteforge-blog-content:focus {
    outline: none;
    border-color: #1a73e8;
    box-shadow: 0 0 0 2px rgba(26, 115, 232, 0.1);
}

#siteforge-blog-cover-preview {
    width: 100%;
    min-height: 100px;
    border: 2px dashed #ddd;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    background: white;
    overflow: hidden;
    transition: border-color 0.2s;
}

#siteforge-blog-cover-preview:hover {
    border-color: #1a73e8;
}

#siteforge-blog-cover-preview img {
    width: 100%;
    height: auto;
    object-fit: cover;
}

#siteforge-blog-cover-preview span {
    color: #999;
    font-size: 13px;
}

#siteforge-blog-media-list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
    flex: 1;
    overflow-y: auto;
}

/* --- css/siteforge-blog.css --- */
/* SiteForge Blog Manager Styles */

/* Modal Layout */
#siteforge-blog-list-modal .siteforge-modal-content,
#siteforge-blog-editor-modal .siteforge-modal-content {
    width: 90%;
    max-width: 1000px;
    height: 90vh; /* Taller */
    max-height: 900px;
    display: flex;
    flex-direction: column;
    padding: 0; /* Reset */
    overflow: hidden;
}

#siteforge-blog-list-modal h3,
#siteforge-blog-editor-modal h3 {
    margin: 0;
    padding: 20px;
    background: #f8f9fa;
    border-bottom: 1px solid #ddd;
}

.siteforge-blog-scroll-area {
    flex: 1;
    overflow-y: auto;
    padding: 20px;
}

/* Table Styles */
.siteforge-blog-table {
    width: 100%;
    border-collapse: collapse;
}

.siteforge-blog-table th, 
.siteforge-blog-table td {
    padding: 12px;
    text-align: left;
    border-bottom: 1px solid #eee;
}

.siteforge-blog-table th {
    background: #f1f3f4;
    font-weight: 600;
    color: #5f6368;
}

/* Editor Form */
.siteforge-blog-form-grid {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 30px;
    height: 100%;
}

.siteforge-blog-main-col {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.siteforge-blog-sidebar {
    background: #f8f9fa;
    padding: 20px;
    border-radius: 8px;
    border: 1px solid #eee;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.siteforge-blog-group label {
    display: block;
    margin-bottom: 8px;
    font-weight: 600;
    color: #444;
}

.siteforge-blog-group input[type="text"],
.siteforge-blog-group select,
.siteforge-blog-group textarea {
    width: 100%;
    padding: 10px;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 14px;
}

.siteforge-blog-group input[type="text"]:focus,
.siteforge-blog-group select:focus,
.siteforge-blog-group textarea:focus {
    border-color: #1a73e8;
    outline: none;
}

/* Blog Content Editor (Simple WYSIWYG) */
#siteforge-blog-toolbar {
    padding: 10px;
    background: #f1f3f4;
    border: 1px solid #ddd;
    border-bottom: none;
    border-radius: 4px 4px 0 0;
    display: flex;
    gap: 5px;
    flex-wrap: wrap;
}

#siteforge-blog-content {
    min-height: 400px;
    border: 1px solid #ddd;
    border-radius: 0 0 4px 4px;
    padding: 20px;
    overflow-y: auto;
    background: white;
}

#siteforge-blog-content img {
    max-width: 100%;
    height: auto;
}

/* Media Manager Grid in Sidebar */
#siteforge-blog-media-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(60px, 1fr));
    gap: 5px;
    max-height: 300px;
    overflow-y: auto;
    border: 1px solid #ddd;
    padding: 5px;
    background: white;
}

.siteforge-blog-media-item {
    background: #eee;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Cover Preview */
#siteforge-blog-cover-preview {
    width: 100%;
    height: 150px;
    background: #e9ecef;
    border: 2px dashed #ccc;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #999;
    border-radius: 4px;
    overflow: hidden;
    position: relative;
    cursor: pointer;
}

#siteforge-blog-cover-preview img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Buttons */
.siteforge-btn {
    padding: 8px 16px;
    border: none;
    border-radius: 4px;
    background: #ddd;
    cursor: pointer;
    font-weight: 600;
}

.siteforge-btn.primary {
    background: #1a73e8;
    color: white;
}

.siteforge-btn.primary:hover {
    background: #1557b0;
}

.siteforge-btn.small {
    padding: 4px 8px;
    font-size: 12px;
}

/* Responsive adjustments */
@media (max-width: 900px) {
    .siteforge-blog-form-grid {
        grid-template-columns: 1fr;
    }
}


/* --- css/siteforge-aceeditor.css --- */
.ace-chrome .ace_gutter {
    background: #ebebeb;
    color: #333;
    overflow: hidden;
}

.ace-chrome .ace_print-margin {
    width: 1px;
    background: #e8e8e8;
}

.ace-chrome {
    background-color: #FFFFFF;
    color: black;
}

.ace-chrome .ace_cursor {
    color: black;
}

.ace-chrome .ace_invisible {
    color: rgb(191, 191, 191);
}

.ace-chrome .ace_constant.ace_buildin {
    color: rgb(88, 72, 246);
}

.ace-chrome .ace_constant.ace_language {
    color: rgb(88, 92, 246);
}

.ace-chrome .ace_constant.ace_library {
    color: rgb(6, 150, 14);
}

.ace-chrome .ace_invalid {
    background-color: rgb(153, 0, 0);
    color: white;
}

.ace-chrome .ace_fold {}

.ace-chrome .ace_support.ace_function {
    color: rgb(60, 76, 114);
}

.ace-chrome .ace_support.ace_constant {
    color: rgb(6, 150, 14);
}

.ace-chrome .ace_support.ace_type,
.ace-chrome .ace_support.ace_class .ace-chrome .ace_support.ace_other {
    color: rgb(109, 121, 222);
}

.ace-chrome .ace_variable.ace_parameter {
    font-style: italic;
    color: #FD971F;
}

.ace-chrome .ace_keyword.ace_operator {
    color: rgb(104, 118, 135);
}

.ace-chrome .ace_comment {
    color: #236e24;
}

.ace-chrome .ace_comment.ace_doc {
    color: #236e24;
}

.ace-chrome .ace_comment.ace_doc.ace_tag {
    color: #236e24;
}

.ace-chrome .ace_constant.ace_numeric {
    color: rgb(0, 0, 205);
}

.ace-chrome .ace_variable {
    color: rgb(49, 132, 149);
}

.ace-chrome .ace_xml-pe {
    color: rgb(104, 104, 91);
}

.ace-chrome .ace_entity.ace_name.ace_function {
    color: #0000A2;
}


.ace-chrome .ace_heading {
    color: rgb(12, 7, 255);
}

.ace-chrome .ace_list {
    color: rgb(185, 6, 144);
}

.ace-chrome .ace_marker-layer .ace_selection {
    background: rgb(181, 213, 255);
}

.ace-chrome .ace_marker-layer .ace_step {
    background: rgb(252, 255, 0);
}

.ace-chrome .ace_marker-layer .ace_stack {
    background: rgb(164, 229, 101);
}

.ace-chrome .ace_marker-layer .ace_bracket {
    margin: -1px 0 0 -1px;
    border: 1px solid rgb(192, 192, 192);
}

.ace-chrome .ace_marker-layer .ace_active-line {
    background: rgba(0, 0, 0, 0.07);
}

.ace-chrome .ace_gutter-active-line {
    background-color: #dcdcdc;
}

.ace-chrome .ace_marker-layer .ace_selected-word {
    background: rgb(250, 250, 255);
    border: 1px solid rgb(200, 200, 250);
}

.ace-chrome .ace_storage,
.ace-chrome .ace_keyword,
.ace-chrome .ace_meta.ace_tag {
    color: rgb(147, 15, 128);
}

.ace-chrome .ace_string.ace_regex {
    color: rgb(255, 0, 0)
}

.ace-chrome .ace_string {
    color: #1A1AA6;
}

.ace-chrome .ace_entity.ace_other.ace_attribute-name {
    color: #994409;
}

.ace-chrome .ace_indent-guide {
    background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;
}

.ace-chrome .ace_indent-guide-active {
    background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAZSURBVHjaYvj///9/hivKyv8BAAAA//8DACLqBhbvk+/eAAAAAElFTkSuQmCC") right repeat-y;
}

.ace-tm .ace_gutter {
    background: #f0f0f0;
    color: #333;
}

.ace-tm .ace_print-margin {
    width: 1px;
    background: #e8e8e8;
}

.ace-tm .ace_fold {
    background-color: #6B72E6;
}

.ace-tm {
    background-color: #FFFFFF;
    color: black;
}

.ace-tm .ace_cursor {
    color: black;
}

.ace-tm .ace_invisible {
    color: rgb(191, 191, 191);
}

.ace-tm .ace_storage,
.ace-tm .ace_keyword {
    color: blue;
}

.ace-tm .ace_constant {
    color: rgb(197, 6, 11);
}

.ace-tm .ace_constant.ace_buildin {
    color: rgb(88, 72, 246);
}

.ace-tm .ace_constant.ace_language {
    color: rgb(88, 92, 246);
}

.ace-tm .ace_constant.ace_library {
    color: rgb(6, 150, 14);
}

.ace-tm .ace_invalid {
    background-color: rgba(255, 0, 0, 0.1);
    color: red;
}

.ace-tm .ace_support.ace_function {
    color: rgb(60, 76, 114);
}

.ace-tm .ace_support.ace_constant {
    color: rgb(6, 150, 14);
}

.ace-tm .ace_support.ace_type,
.ace-tm .ace_support.ace_class {
    color: rgb(109, 121, 222);
}

.ace-tm .ace_keyword.ace_operator {
    color: rgb(104, 118, 135);
}

.ace-tm .ace_string {
    color: rgb(3, 106, 7);
}

.ace-tm .ace_comment {
    color: rgb(76, 136, 107);
}

.ace-tm .ace_comment.ace_doc {
    color: rgb(0, 102, 255);
}

.ace-tm .ace_comment.ace_doc.ace_tag {
    color: rgb(128, 159, 191);
}

.ace-tm .ace_constant.ace_numeric {
    color: rgb(0, 0, 205);
}

.ace-tm .ace_variable {
    color: rgb(49, 132, 149);
}

.ace-tm .ace_xml-pe {
    color: rgb(104, 104, 91);
}

.ace-tm .ace_entity.ace_name.ace_function {
    color: #0000A2;
}


.ace-tm .ace_heading {
    color: rgb(12, 7, 255);
}

.ace-tm .ace_list {
    color: rgb(185, 6, 144);
}

.ace-tm .ace_meta.ace_tag {
    color: rgb(0, 22, 142);
}

.ace-tm .ace_string.ace_regex {
    color: rgb(255, 0, 0)
}

.ace-tm .ace_marker-layer .ace_selection {
    background: rgb(181, 213, 255);
}

.ace-tm.ace_multiselect .ace_selection.ace_start {
    box-shadow: 0 0 3px 0px white;
}

.ace-tm .ace_marker-layer .ace_step {
    background: rgb(252, 255, 0);
}

.ace-tm .ace_marker-layer .ace_stack {
    background: rgb(164, 229, 101);
}

.ace-tm .ace_marker-layer .ace_bracket {
    margin: -1px 0 0 -1px;
    border: 1px solid rgb(192, 192, 192);
}

.ace-tm .ace_marker-layer .ace_active-line {
    background: rgba(0, 0, 0, 0.07);
}

.ace-tm .ace_gutter-active-line {
    background-color: #dcdcdc;
}

.ace-tm .ace_marker-layer .ace_selected-word {
    background: rgb(250, 250, 255);
    border: 1px solid rgb(200, 200, 250);
}

.ace-tm .ace_indent-guide {
    background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;
}

.ace-tm .ace_indent-guide-active {
    background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAZSURBVHjaYvj///9/hivKyv8BAAAA//8DACLqBhbvk+/eAAAAAElFTkSuQmCC") right repeat-y;
}

/*# sourceURL=ace/css/ace-tm */
.ace_br1 {
    border-top-left-radius: 3px;
}

.ace_br2 {
    border-top-right-radius: 3px;
}

.ace_br3 {
    border-top-left-radius: 3px;
    border-top-right-radius: 3px;
}

.ace_br4 {
    border-bottom-right-radius: 3px;
}

.ace_br5 {
    border-top-left-radius: 3px;
    border-bottom-right-radius: 3px;
}

.ace_br6 {
    border-top-right-radius: 3px;
    border-bottom-right-radius: 3px;
}

.ace_br7 {
    border-top-left-radius: 3px;
    border-top-right-radius: 3px;
    border-bottom-right-radius: 3px;
}

.ace_br8 {
    border-bottom-left-radius: 3px;
}

.ace_br9 {
    border-top-left-radius: 3px;
    border-bottom-left-radius: 3px;
}

.ace_br10 {
    border-top-right-radius: 3px;
    border-bottom-left-radius: 3px;
}

.ace_br11 {
    border-top-left-radius: 3px;
    border-top-right-radius: 3px;
    border-bottom-left-radius: 3px;
}

.ace_br12 {
    border-bottom-right-radius: 3px;
    border-bottom-left-radius: 3px;
}

.ace_br13 {
    border-top-left-radius: 3px;
    border-bottom-right-radius: 3px;
    border-bottom-left-radius: 3px;
}

.ace_br14 {
    border-top-right-radius: 3px;
    border-bottom-right-radius: 3px;
    border-bottom-left-radius: 3px;
}

.ace_br15 {
    border-top-left-radius: 3px;
    border-top-right-radius: 3px;
    border-bottom-right-radius: 3px;
    border-bottom-left-radius: 3px;
}


.ace_editor {
    position: relative;
    overflow: hidden;
    padding: 0;
    font: 12px/normal 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'Source Code Pro', 'source-code-pro', monospace;
    direction: ltr;
    text-align: left;
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

.ace_scroller {
    position: absolute;
    overflow: hidden;
    top: 0;
    bottom: 0;
    background-color: inherit;
    -ms-user-select: none;
    -moz-user-select: none;
    -webkit-user-select: none;
    user-select: none;
    cursor: text;
}

.ace_content {
    position: absolute;
    box-sizing: border-box;
    min-width: 100%;
    contain: style size layout;
    font-variant-ligatures: no-common-ligatures;
}

.ace_keyboard-focus:focus {
    box-shadow: inset 0 0 0 2px #5E9ED6;
    outline: none;
}

.ace_dragging .ace_scroller:before {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    content: '';
    background: rgba(250, 250, 250, 0.01);
    z-index: 1000;
}

.ace_dragging.ace_dark .ace_scroller:before {
    background: rgba(0, 0, 0, 0.01);
}

.ace_gutter {
    position: absolute;
    overflow: hidden;
    width: auto;
    top: 0;
    bottom: 0;
    left: 0;
    cursor: default;
    z-index: 4;
    -ms-user-select: none;
    -moz-user-select: none;
    -webkit-user-select: none;
    user-select: none;
    contain: style size layout;
}

.ace_gutter-active-line {
    position: absolute;
    left: 0;
    right: 0;
}

.ace_scroller.ace_scroll-left:after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;
    pointer-events: none;
}

.ace_gutter-cell,
.ace_gutter-cell_svg-icons {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    padding-left: 19px;
    padding-right: 6px;
    background-repeat: no-repeat;
}

.ace_gutter-cell_svg-icons .ace_gutter_annotation {
    margin-left: -14px;
    float: left;
}

.ace_gutter-cell .ace_gutter_annotation {
    margin-left: -19px;
    float: left;
}

.ace_gutter-cell.ace_error,
.ace_icon.ace_error,
.ace_icon.ace_error_fold {
    background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==");
    background-repeat: no-repeat;
    background-position: 2px center;
}

.ace_gutter-cell.ace_warning,
.ace_icon.ace_warning,
.ace_icon.ace_warning_fold {
    background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==");
    background-repeat: no-repeat;
    background-position: 2px center;
}

.ace_gutter-cell.ace_info,
.ace_icon.ace_info {
    background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=");
    background-repeat: no-repeat;
    background-position: 2px center;
}

.ace_dark .ace_gutter-cell.ace_info,
.ace_dark .ace_icon.ace_info {
    background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC");
}

.ace_icon_svg.ace_error {
    -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJyZWQiIHNoYXBlLXJlbmRlcmluZz0iZ2VvbWV0cmljUHJlY2lzaW9uIj4KPGNpcmNsZSBmaWxsPSJub25lIiBjeD0iOCIgY3k9IjgiIHI9IjciIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPGxpbmUgeDE9IjExIiB5MT0iNSIgeDI9IjUiIHkyPSIxMSIvPgo8bGluZSB4MT0iMTEiIHkxPSIxMSIgeDI9IjUiIHkyPSI1Ii8+CjwvZz4KPC9zdmc+");
    background-color: crimson;
}

.ace_icon_svg.ace_warning {
    -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJkYXJrb3JhbmdlIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+Cjxwb2x5Z29uIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGZpbGw9Im5vbmUiIHBvaW50cz0iOCAxIDE1IDE1IDEgMTUgOCAxIi8+CjxyZWN0IHg9IjgiIHk9IjEyIiB3aWR0aD0iMC4wMSIgaGVpZ2h0PSIwLjAxIi8+CjxsaW5lIHgxPSI4IiB5MT0iNiIgeDI9IjgiIHkyPSIxMCIvPgo8L2c+Cjwvc3ZnPg==");
    background-color: darkorange;
}

.ace_icon_svg.ace_info {
    -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJibHVlIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+CjxjaXJjbGUgZmlsbD0ibm9uZSIgY3g9IjgiIGN5PSI4IiByPSI3IiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjxwb2x5bGluZSBwb2ludHM9IjggMTEgOCA4Ii8+Cjxwb2x5bGluZSBwb2ludHM9IjkgOCA2IDgiLz4KPGxpbmUgeDE9IjEwIiB5MT0iMTEiIHgyPSI2IiB5Mj0iMTEiLz4KPHJlY3QgeD0iOCIgeT0iNSIgd2lkdGg9IjAuMDEiIGhlaWdodD0iMC4wMSIvPgo8L2c+Cjwvc3ZnPg==");
    background-color: royalblue;
}

.ace_icon_svg.ace_error_fold {
    -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiIgZmlsbD0ibm9uZSI+CiAgPHBhdGggZD0ibSAxOC45Mjk4NTEsNy44Mjk4MDc2IGMgMC4xNDYzNTMsNi4zMzc0NjA0IC02LjMyMzE0Nyw3Ljc3Nzg0NDQgLTcuNDc3OTEyLDcuNzc3ODQ0NCAtMi4xMDcyNzI2LC0wLjEyODc1IDUuMTE3Njc4LDAuMzU2MjQ5IDUuMDUxNjk4LC03Ljg3MDA2MTggLTAuNjA0NjcyLC04LjAwMzk3MzQ5IC03LjA3NzI3MDYsLTcuNTYzMTE4OSAtNC44NTczLC03LjQzMDM5NTU2IDEuNjA2LC0wLjExNTE0MjI1IDYuODk3NDg1LDEuMjYyNTQ1OTYgNy4yODM1MTQsNy41MjI2MTI5NiB6IiBmaWxsPSJjcmltc29uIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0ibSA4LjExNDc1NjIsMi4wNTI5ODI4IGMgMy4zNDkxNjk4LDAgNi4wNjQxMzI4LDIuNjc2ODYyNyA2LjA2NDEzMjgsNS45Nzg5NTMgMCwzLjMwMjExMjIgLTIuNzE0OTYzLDUuOTc4OTIwMiAtNi4wNjQxMzI4LDUuOTc4OTIwMiAtMy4zNDkxNDczLDAgLTYuMDY0MTc3MiwtMi42NzY4MDggLTYuMDY0MTc3MiwtNS45Nzg5MjAyIDAuMDA1MzksLTMuMjk5ODg2MSAyLjcxNzI2NTYsLTUuOTczNjQwOCA2LjA2NDE3NzIsLTUuOTc4OTUzIHogbSAwLC0xLjczNTgyNzE5IGMgLTQuMzIxNDgzNiwwIC03LjgyNDc0MDM4LDMuNDU0MDE4NDkgLTcuODI0NzQwMzgsNy43MTQ3ODAxOSAwLDQuMjYwNzI4MiAzLjUwMzI1Njc4LDcuNzE0NzQ1MiA3LjgyNDc0MDM4LDcuNzE0NzQ1MiA0LjMyMTQ0OTgsMCA3LjgyNDY5OTgsLTMuNDU0MDE3IDcuODI0Njk5OCwtNy43MTQ3NDUyIDAsLTIuMDQ2MDkxNCAtMC44MjQzOTIsLTQuMDA4MzY3MiAtMi4yOTE3NTYsLTUuNDU1MTc0NiBDIDEyLjE4MDIyNSwxLjEyOTk2NDggMTAuMTkwMDEzLDAuMzE3MTU1NjEgOC4xMTQ3NTYyLDAuMzE3MTU1NjEgWiBNIDYuOTM3NDU2Myw4LjI0MDU5ODUgNC42NzE4Njg1LDEwLjQ4NTg1MiA2LjAwODY4MTQsMTEuODc2NzI4IDguMzE3MDAzNSw5LjYwMDc5MTEgMTAuNjI1MzM3LDExLjg3NjcyOCAxMS45NjIxMzgsMTAuNDg1ODUyIDkuNjk2NTUwOCw4LjI0MDU5ODUgMTEuOTYyMTM4LDYuMDA2ODA2NiAxMC41NzMyNDYsNC42Mzc0MzM1IDguMzE3MDAzNSw2Ljg3MzQyOTcgNi4wNjA3NjA3LDQuNjM3NDMzNSA0LjY3MTg2ODUsNi4wMDY4MDY2IFoiIGZpbGw9ImNyaW1zb24iIHN0cm9rZS13aWR0aD0iMiIvPgo8L3N2Zz4=");
    background-color: crimson;
}

.ace_icon_svg.ace_warning_fold {
    -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyMCAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNC43NzY5IDE0LjczMzdMOC42NTE5MiAyLjQ4MzY5QzguMzI5NDYgMS44Mzg3NyA3LjQwOTEzIDEuODM4NzcgNy4wODY2NyAyLjQ4MzY5TDAuOTYxNjY5IDE0LjczMzdDMC42NzA3NzUgMTUuMzE1NSAxLjA5MzgzIDE2IDEuNzQ0MjkgMTZIMTMuOTk0M0MxNC42NDQ4IDE2IDE1LjA2NzggMTUuMzE1NSAxNC43NzY5IDE0LjczMzdaTTMuMTYwMDcgMTQuMjVMNy44NjkyOSA0LjgzMTU2TDEyLjU3ODUgMTQuMjVIMy4xNjAwN1pNOC43NDQyOSAxMS42MjVWMTMuMzc1SDYuOTk0MjlWMTEuNjI1SDguNzQ0MjlaTTYuOTk0MjkgMTAuNzVWNy4yNUg4Ljc0NDI5VjEwLjc1SDYuOTk0MjlaIiBmaWxsPSIjRUM3MjExIi8+CjxwYXRoIGQ9Ik0xMS4xOTkxIDIuOTUyMzhDMTAuODgwOSAyLjMxNDY3IDEwLjM1MzcgMS44MDUyNiA5LjcwNTUgMS41MDlMMTEuMDQxIDEuMDY5NzhDMTEuNjg4MyAwLjk0OTgxNCAxMi4zMzcgMS4yNzI2MyAxMi42MzE3IDEuODYxNDFMMTcuNjEzNiAxMS44MTYxQzE4LjM1MjcgMTMuMjkyOSAxNy41OTM4IDE1LjA4MDQgMTYuMDE4IDE1LjU3NDVDMTYuNDA0NCAxNC40NTA3IDE2LjMyMzEgMTMuMjE4OCAxNS43OTI0IDEyLjE1NTVMMTEuMTk5MSAyLjk1MjM4WiIgZmlsbD0iI0VDNzIxMSIvPgo8L3N2Zz4=");
    background-color: darkorange;
}

.ace_scrollbar {
    contain: strict;
    position: absolute;
    right: 0;
    bottom: 0;
    z-index: 6;
}

.ace_scrollbar-inner {
    position: absolute;
    cursor: text;
    left: 0;
    top: 0;
}

.ace_scrollbar-v {
    overflow-x: hidden;
    overflow-y: scroll;
    top: 0;
}

.ace_scrollbar-h {
    overflow-x: scroll;
    overflow-y: hidden;
    left: 0;
}

.ace_print-margin {
    position: absolute;
    height: 100%;
}

.ace_text-input {
    position: absolute;
    z-index: 0;
    width: 0.5em;
    height: 1em;
    opacity: 0;
    background: transparent;
    -moz-appearance: none;
    appearance: none;
    border: none;
    resize: none;
    outline: none;
    overflow: hidden;
    font: inherit;
    padding: 0 1px;
    margin: 0 -1px;
    contain: strict;
    -ms-user-select: text;
    -moz-user-select: text;
    -webkit-user-select: text;
    user-select: text;
    /*with `pre-line` chrome inserts &nbsp; instead of space*/
    white-space: pre !important;
}

.ace_text-input.ace_composition {
    background: transparent;
    color: inherit;
    z-index: 1000;
    opacity: 1;
}

.ace_composition_placeholder {
    color: transparent
}

.ace_composition_marker {
    border-bottom: 1px solid;
    position: absolute;
    border-radius: 0;
    margin-top: 1px;
}

[ace_nocontext=true] {
    transform: none !important;
    filter: none !important;
    clip-path: none !important;
    mask: none !important;
    contain: none !important;
    perspective: none !important;
    mix-blend-mode: initial !important;
    z-index: auto;
}

.ace_layer {
    z-index: 1;
    position: absolute;
    overflow: hidden;
    /* workaround for chrome bug https://github.com/ajaxorg/ace/issues/2312*/
    word-wrap: normal;
    white-space: pre;
    height: 100%;
    width: 100%;
    box-sizing: border-box;
    /* setting pointer-events: auto; on node under the mouse, which changes
        during scroll, will break mouse wheel scrolling in Safari */
    pointer-events: none;
}

.ace_gutter-layer {
    position: relative;
    width: auto;
    text-align: right;
    pointer-events: auto;
    height: 1000000px;
    contain: style size layout;
}

.ace_text-layer {
    font: inherit !important;
    position: absolute;
    height: 1000000px;
    width: 1000000px;
    contain: style size layout;
}

.ace_text-layer>.ace_line,
.ace_text-layer>.ace_line_group {
    contain: style size layout;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
}

.ace_hidpi .ace_text-layer,
.ace_hidpi .ace_gutter-layer,
.ace_hidpi .ace_content,
.ace_hidpi .ace_gutter {
    contain: strict;
}

.ace_hidpi .ace_text-layer>.ace_line,
.ace_hidpi .ace_text-layer>.ace_line_group {
    contain: strict;
}

.ace_cjk {
    display: inline-block;
    text-align: center;
}

.ace_cursor-layer {
    z-index: 4;
}

.ace_cursor {
    z-index: 4;
    position: absolute;
    box-sizing: border-box;
    border-left: 2px solid;
    /* workaround for smooth cursor repaintng whole screen in chrome */
    transform: translatez(0);
}

.ace_multiselect .ace_cursor {
    border-left-width: 1px;
}

.ace_slim-cursors .ace_cursor {
    border-left-width: 1px;
}

.ace_overwrite-cursors .ace_cursor {
    border-left-width: 0;
    border-bottom: 1px solid;
}

.ace_hidden-cursors .ace_cursor {
    opacity: 0.2;
}

.ace_hasPlaceholder .ace_hidden-cursors .ace_cursor {
    opacity: 0;
}

.ace_smooth-blinking .ace_cursor {
    transition: opacity 0.18s;
}

.ace_animate-blinking .ace_cursor {
    animation-duration: 1000ms;
    animation-timing-function: step-end;
    animation-name: blink-ace-animate;
    animation-iteration-count: infinite;
}

.ace_animate-blinking.ace_smooth-blinking .ace_cursor {
    animation-duration: 1000ms;
    animation-timing-function: ease-in-out;
    animation-name: blink-ace-animate-smooth;
}

@keyframes blink-ace-animate {

    from,
    to {
        opacity: 1;
    }

    60% {
        opacity: 0;
    }
}

@keyframes blink-ace-animate-smooth {

    from,
    to {
        opacity: 1;
    }

    45% {
        opacity: 1;
    }

    60% {
        opacity: 0;
    }

    85% {
        opacity: 0;
    }
}

.ace_marker-layer .ace_step,
.ace_marker-layer .ace_stack {
    position: absolute;
    z-index: 3;
}

.ace_marker-layer .ace_selection {
    position: absolute;
    z-index: 5;
}

.ace_marker-layer .ace_bracket {
    position: absolute;
    z-index: 6;
}

.ace_marker-layer .ace_error_bracket {
    position: absolute;
    border-bottom: 1px solid #DE5555;
    border-radius: 0;
}

.ace_marker-layer .ace_active-line {
    position: absolute;
    z-index: 2;
}

.ace_marker-layer .ace_selected-word {
    position: absolute;
    z-index: 4;
    box-sizing: border-box;
}

.ace_line .ace_fold {
    box-sizing: border-box;

    display: inline-block;
    height: 11px;
    margin-top: -2px;
    vertical-align: middle;

    background-image:
        url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),
        url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=");
    background-repeat: no-repeat, repeat-x;
    background-position: center center, top left;
    color: transparent;

    border: 1px solid black;
    border-radius: 2px;

    cursor: pointer;
    pointer-events: auto;
}

.ace_dark .ace_fold {}

.ace_fold:hover {
    background-image:
        url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),
        url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC");
}

.ace_tooltip {
    background-color: #f5f5f5;
    border: 1px solid gray;
    border-radius: 1px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
    color: black;
    max-width: 100%;
    padding: 3px 4px;
    position: fixed;
    z-index: 999999;
    box-sizing: border-box;
    cursor: default;
    white-space: pre-wrap;
    word-wrap: break-word;
    line-height: normal;
    font-style: normal;
    font-weight: normal;
    letter-spacing: normal;
    pointer-events: none;
    overflow: auto;
    max-width: min(60em, 66vw);
    overscroll-behavior: contain;
}

.ace_tooltip pre {
    white-space: pre-wrap;
}

.ace_tooltip.ace_dark {
    background-color: #636363;
    color: #fff;
}

.ace_tooltip:focus {
    outline: 1px solid #5E9ED6;
}

.ace_icon {
    display: inline-block;
    width: 18px;
    vertical-align: top;
}

.ace_icon_svg {
    display: inline-block;
    width: 12px;
    vertical-align: top;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-size: 12px;
    -webkit-mask-position: center;
}

.ace_folding-enabled>.ace_gutter-cell,
.ace_folding-enabled>.ace_gutter-cell_svg-icons {
    padding-right: 13px;
}

.ace_fold-widget {
    box-sizing: border-box;

    margin: 0 -12px 0 1px;
    display: none;
    width: 11px;
    vertical-align: top;

    background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==");
    background-repeat: no-repeat;
    background-position: center;

    border-radius: 3px;

    border: 1px solid transparent;
    cursor: pointer;
}

.ace_folding-enabled .ace_fold-widget {
    display: inline-block;
}

.ace_fold-widget.ace_end {
    background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==");
}

.ace_fold-widget.ace_closed {
    background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==");
}

.ace_fold-widget:hover {
    border: 1px solid rgba(0, 0, 0, 0.3);
    background-color: rgba(255, 255, 255, 0.2);
    box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);
}

.ace_fold-widget:active {
    border: 1px solid rgba(0, 0, 0, 0.4);
    background-color: rgba(0, 0, 0, 0.05);
    box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);
}

/**
 * Dark version for fold widgets
 */
.ace_dark .ace_fold-widget {
    background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC");
}

.ace_dark .ace_fold-widget.ace_end {
    background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==");
}

.ace_dark .ace_fold-widget.ace_closed {
    background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==");
}

.ace_dark .ace_fold-widget:hover {
    box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);
    background-color: rgba(255, 255, 255, 0.1);
}

.ace_dark .ace_fold-widget:active {
    box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);
}

.ace_inline_button {
    border: 1px solid lightgray;
    display: inline-block;
    margin: -1px 8px;
    padding: 0 5px;
    pointer-events: auto;
    cursor: pointer;
}

.ace_inline_button:hover {
    border-color: gray;
    background: rgba(200, 200, 200, 0.2);
    display: inline-block;
    pointer-events: auto;
}

.ace_fold-widget.ace_invalid {
    background-color: #FFB4B4;
    border-color: #DE5555;
}

.ace_fade-fold-widgets .ace_fold-widget {
    transition: opacity 0.4s ease 0.05s;
    opacity: 0;
}

.ace_fade-fold-widgets:hover .ace_fold-widget {
    transition: opacity 0.05s ease 0.05s;
    opacity: 1;
}

.ace_underline {
    text-decoration: underline;
}

.ace_bold {
    font-weight: bold;
}

.ace_nobold .ace_bold {
    font-weight: normal;
}

.ace_italic {
    font-style: italic;
}


.ace_error-marker {
    background-color: rgba(255, 0, 0, 0.2);
    position: absolute;
    z-index: 9;
}

.ace_highlight-marker {
    background-color: rgba(255, 255, 0, 0.2);
    position: absolute;
    z-index: 8;
}

.ace_mobile-menu {
    position: absolute;
    line-height: 1.5;
    border-radius: 4px;
    -ms-user-select: none;
    -moz-user-select: none;
    -webkit-user-select: none;
    user-select: none;
    background: white;
    box-shadow: 1px 3px 2px grey;
    border: 1px solid #dcdcdc;
    color: black;
}

.ace_dark>.ace_mobile-menu {
    background: #333;
    color: #ccc;
    box-shadow: 1px 3px 2px grey;
    border: 1px solid #444;

}

.ace_mobile-button {
    padding: 2px;
    cursor: pointer;
    overflow: hidden;
}

.ace_mobile-button:hover {
    background-color: #eee;
    opacity: 1;
}

.ace_mobile-button:active {
    background-color: #ddd;
}

.ace_placeholder {
    font-family: arial;
    transform: scale(0.9);
    transform-origin: left;
    white-space: pre;
    opacity: 0.7;
    margin: 0 10px;
}

.ace_ghost_text {
    opacity: 0.5;
    font-style: italic;
    white-space: pre;
}

.ace_screenreader-only {
    position: absolute;
    left: -10000px;
    top: auto;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.ace_editor>.ace_sb-v div,
.ace_editor>.ace_sb-h div {
    position: absolute;
    background: rgba(128, 128, 128, 0.6);
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    border: 1px solid #bbb;
    border-radius: 2px;
    z-index: 8;
}

.ace_editor>.ace_sb-v,
.ace_editor>.ace_sb-h {
    position: absolute;
    z-index: 6;
    background: none;
    overflow: hidden !important;
}

.ace_editor>.ace_sb-v {
    z-index: 6;
    right: 0;
    top: 0;
    width: 12px;
}

.ace_editor>.ace_sb-v div {
    z-index: 8;
    right: 0;
    width: 100%;
}

.ace_editor>.ace_sb-h {
    bottom: 0;
    left: 0;
    height: 12px;
}

.ace_editor>.ace_sb-h div {
    bottom: 0;
    height: 100%;
}

.ace_editor>.ace_sb_grabbed {
    z-index: 8;
    background: #000;
}

/* --- css/siteforge-errors.css --- */
.error_widget_wrapper {
    background: inherit;
    color: inherit;
    border: none
}

.error_widget {
    border-top: solid 2px;
    border-bottom: solid 2px;
    margin: 5px 0;
    padding: 10px 40px;
    white-space: pre-wrap;
}

.error_widget.ace_error,
.error_widget_arrow.ace_error {
    border-color: #ff5a5a
}

.error_widget.ace_warning,
.error_widget_arrow.ace_warning {
    border-color: #F1D817
}

.error_widget.ace_info,
.error_widget_arrow.ace_info {
    border-color: #5a5a5a
}

.error_widget.ace_ok,
.error_widget_arrow.ace_ok {
    border-color: #5aaa5a
}

.error_widget_arrow {
    position: absolute;
    border: solid 5px;
    border-top-color: transparent !important;
    border-right-color: transparent !important;
    border-left-color: transparent !important;
    top: -5px;
}
