/* ==========================================================
   ADDNEWS — DLE 21
   LIGHT / DARK
   Для разметки .addnews-page
   ========================================================== */


/* ==========================================================
   1. ОСНОВНЫЕ ПЕРЕМЕННЫЕ
   ========================================================== */

.addnews-page {

    --an-primary: #0d6efd;
    --an-primary-hover: #0b5ed7;
    --an-primary-soft: rgba(13, 110, 253, .10);

    --an-text: #212529;
    --an-text-2: #495057;
    --an-muted: #6c757d;

    --an-bg: #ffffff;
    --an-bg-soft: #f8f9fa;
    --an-input-bg: #ffffff;

    --an-border: #dee2e6;
    --an-border-hover: #adb5bd;

    --an-danger: #dc3545;

    --an-shadow:
        0 5px 20px rgba(0, 0, 0, .05);

    --an-radius: 12px;

    width: 100%;
    max-width: 1050px;

    margin: 30px auto;
    padding: 0 15px;

    color: var(--an-text);

    font-family: inherit;

    box-sizing: border-box;
}


/* ==========================================================
   2. BOX SIZING
   ========================================================== */

.addnews-page *,
.addnews-page *::before,
.addnews-page *::after {
    box-sizing: border-box;
}


/* ==========================================================
   3. DARK THEME
   ========================================================== */

/*
   Поддерживаются:
   .dark
   .darkmode
   [data-theme="dark"]
   [data-bs-theme="dark"]
   .dark-theme
   .dark-mode
*/

html.dark .addnews-page,
html.darkmode .addnews-page,
html[data-theme="dark"] .addnews-page,
html[data-bs-theme="dark"] .addnews-page,
body.dark .addnews-page,
body.darkmode .addnews-page,
body[data-theme="dark"] .addnews-page,
body[data-bs-theme="dark"] .addnews-page,
.dark-theme .addnews-page,
.dark-mode .addnews-page {

    --an-primary: #5b9cff;
    --an-primary-hover: #78adff;
    --an-primary-soft: rgba(91, 156, 255, .14);

    --an-text: #f1f3f5;
    --an-text-2: #ced4da;
    --an-muted: #adb5bd;

    --an-bg: #20252b;
    --an-bg-soft: #292f36;
    --an-input-bg: #181d22;

    --an-border: #3b434d;
    --an-border-hover: #59636e;

    --an-danger: #ff6b6b;

    --an-shadow:
        0 7px 28px rgba(0, 0, 0, .25);
}


/* ==========================================================
   4. HEADER
   ========================================================== */

.addnews-header {

    display: flex;
    align-items: center;

    gap: 16px;

    width: 100%;

    margin: 0 0 28px;
    padding: 22px;

    color: var(--an-text);

    background: var(--an-bg);

    border: 1px solid var(--an-border);
    border-radius: var(--an-radius);

    box-shadow: var(--an-shadow);

    transition:
        background-color .2s ease,
        border-color .2s ease,
        box-shadow .2s ease;
}


/* ==========================================================
   5. HEADER ICON
   ========================================================== */

.addnews-header-icon {

    display: flex;
    align-items: center;
    justify-content: center;

    width: 52px;
    height: 52px;

    flex: 0 0 52px;

    color: var(--an-primary);

    background: var(--an-primary-soft);

    border-radius: 13px;

    font-size: 22px;
}


/* ==========================================================
   6. HEADER TEXT
   ========================================================== */

.addnews-header-content {
    min-width: 0;
}


.addnews-title {

    margin: 0 0 5px;

    color: var(--an-text);

    font-size: 23px;
    font-weight: 700;

    line-height: 1.3;
}


.addnews-intro {

    margin: 0;

    color: var(--an-muted);

    font-size: 14px;

    line-height: 1.55;
}


/* ==========================================================
   7. FIELDS
   ========================================================== */

.addnews-field {

    width: 100%;

    margin: 0 0 22px;
}


/* ==========================================================
   8. LABEL
   ========================================================== */

.addnews-label {

    display: block;

    margin: 0 0 8px;

    color: var(--an-text);

    font-size: 14px;
    font-weight: 600;

    line-height: 1.45;
}


.addnews-required {

    margin-left: 3px;

    color: var(--an-danger);

    font-weight: 700;
}


/* ==========================================================
   9. INPUTS
   ========================================================== */

.addnews-page .addnews-control {

    display: block;

    width: 100%;
    min-height: 46px;

    padding: 10px 13px;

    color: var(--an-text) !important;

    background: var(--an-input-bg) !important;

    border: 1px solid var(--an-border) !important;
    border-radius: 9px;

    outline: none;

    box-shadow: none !important;

    font-family: inherit;
    font-size: 15px;

    line-height: 1.5;

    appearance: none;

    transition:
        color .2s ease,
        background-color .2s ease,
        border-color .2s ease,
        box-shadow .2s ease;
}


/* ==========================================================
   10. TEXTAREA
   ========================================================== */

.addnews-page textarea.addnews-control {

    min-height: 125px;

    resize: vertical;
}


/* ==========================================================
   11. PLACEHOLDER
   ========================================================== */

.addnews-page .addnews-control::placeholder {

    color: var(--an-muted) !important;

    opacity: .75;
}


/* ==========================================================
   12. INPUT HOVER
   ========================================================== */

.addnews-page .addnews-control:hover {

    border-color: var(--an-border-hover) !important;
}


/* ==========================================================
   13. INPUT FOCUS
   ========================================================== */

.addnews-page .addnews-control:focus {

    color: var(--an-text) !important;

    background: var(--an-input-bg) !important;

    border-color: var(--an-primary) !important;

    outline: none !important;

    box-shadow:
        0 0 0 3px var(--an-primary-soft) !important;
}


/* ==========================================================
   14. HELP
   ========================================================== */

.addnews-help {

    margin-top: 7px;

    color: var(--an-muted);

    font-size: 13px;

    line-height: 1.5;
}


/* ==========================================================
   15. CATEGORY
   ========================================================== */

.addnews-category {
    width: 100%;
}


.addnews-category select {

    display: block;

    width: 100%;
    min-height: 46px;

    padding: 10px 13px;

    color: var(--an-text) !important;

    background-color: var(--an-input-bg) !important;

    border: 1px solid var(--an-border) !important;
    border-radius: 9px;

    outline: none;

    font-family: inherit;
    font-size: 15px;

    cursor: pointer;

    color-scheme: light;

    transition:
        border-color .2s ease,
        box-shadow .2s ease;
}


html.dark .addnews-category select,
html.darkmode .addnews-category select,
html[data-theme="dark"] .addnews-category select,
html[data-bs-theme="dark"] .addnews-category select,
body.dark .addnews-category select,
body.darkmode .addnews-category select,
body[data-theme="dark"] .addnews-category select,
body[data-bs-theme="dark"] .addnews-category select,
.dark-theme .addnews-category select,
.dark-mode .addnews-category select {

    color-scheme: dark;
}


.addnews-category select:hover {

    border-color: var(--an-border-hover) !important;
}


.addnews-category select:focus {

    border-color: var(--an-primary) !important;

    box-shadow:
        0 0 0 3px var(--an-primary-soft) !important;
}


/* ==========================================================
   16. POLL
   ========================================================== */

.addnews-panel {

    display: block;

    width: 100%;

    margin: 0 0 22px;

    overflow: hidden;

    color: var(--an-text);

    background: var(--an-bg);

    border: 1px solid var(--an-border);

    border-radius: var(--an-radius);

    transition:
        background-color .2s ease,
        border-color .2s ease,
        box-shadow .2s ease;
}


.addnews-panel[open] {

    border-color: var(--an-primary);

    box-shadow: var(--an-shadow);
}


/* ==========================================================
   17. POLL HEADER
   ========================================================== */

.addnews-panel > summary {

    display: flex;
    align-items: center;

    gap: 11px;

    min-height: 55px;

    padding: 11px 16px;

    color: var(--an-text);

    background: var(--an-bg);

    cursor: pointer;

    list-style: none;

    user-select: none;

    transition:
        background-color .2s ease;
}


.addnews-panel > summary::-webkit-details-marker {
    display: none;
}


.addnews-panel > summary:hover {

    background: var(--an-bg-soft);
}


/* ==========================================================
   18. POLL ICON
   ========================================================== */

.addnews-panel-icon {

    display: flex;
    align-items: center;
    justify-content: center;

    width: 32px;
    height: 32px;

    flex: 0 0 32px;

    color: var(--an-primary);

    background: var(--an-primary-soft);

    border-radius: 8px;

    font-size: 14px;
}


/* ==========================================================
   19. POLL TITLE
   ========================================================== */

.addnews-panel-title {

    flex: 1;

    color: var(--an-text);

    font-size: 14px;
    font-weight: 600;
}


/* ==========================================================
   20. POLL ARROW
   ========================================================== */

.addnews-panel-arrow {

    color: var(--an-muted);

    font-size: 13px;

    transition: transform .2s ease;
}


.addnews-panel[open] .addnews-panel-arrow {

    transform: rotate(180deg);
}


/* ==========================================================
   21. POLL BODY
   ========================================================== */

.addnews-panel-body {

    padding: 20px;

    color: var(--an-text);

    background: var(--an-bg-soft);

    border-top: 1px solid var(--an-border);
}


/* ==========================================================
   22. CHECKBOX
   ========================================================== */

.addnews-checkbox {

    display: flex;
    align-items: center;

    gap: 10px;

    position: relative;

    color: var(--an-text);

    font-size: 14px;

    cursor: pointer;

    user-select: none;
}


.addnews-checkbox input {

    position: absolute;

    width: 1px;
    height: 1px;

    opacity: 0;
}


.addnews-checkbox-custom {

    display: flex;
    align-items: center;
    justify-content: center;

    width: 19px;
    height: 19px;

    flex: 0 0 19px;

    color: #fff;

    background: var(--an-input-bg);

    border: 1px solid var(--an-border-hover);

    border-radius: 5px;

    font-size: 12px;

    transition:
        background-color .15s ease,
        border-color .15s ease;
}


.addnews-checkbox-custom i {
    display: none;
}


.addnews-checkbox input:checked + .addnews-checkbox-custom {

    background: var(--an-primary);

    border-color: var(--an-primary);
}


.addnews-checkbox input:checked + .addnews-checkbox-custom i {
    display: block;
}


/* ==========================================================
   23. EDITOR
   ========================================================== */

.addnews-editor {

    width: 100%;

    color: var(--an-text);
}


.addnews-editor textarea {

    width: 100%;

    color: var(--an-text) !important;

    background: var(--an-input-bg) !important;

    border-color: var(--an-border) !important;
}


.addnews-editor .dle-editor,
.addnews-editor .wysiwyg {

    color: var(--an-text);

    background: var(--an-input-bg);

    border-color: var(--an-border);
}


/* ==========================================================
   24. XFIELDS
   ========================================================== */

.addnews-xfields {

    width: 100%;

    margin-bottom: 22px;

    color: var(--an-text);
}


.addnews-xfields label {

    color: var(--an-text) !important;
}


.addnews-xfields input,
.addnews-xfields textarea,
.addnews-xfields select {

    max-width: 100%;

    color: var(--an-text) !important;

    background: var(--an-input-bg) !important;

    border-color: var(--an-border) !important;
}


/* ==========================================================
   25. ADMIN
   ========================================================== */

.addnews-admin {

    width: 100%;

    margin: 0 0 22px;

    padding: 16px 18px;

    color: var(--an-text);

    background: var(--an-bg-soft);

    border: 1px solid var(--an-border);

    border-radius: var(--an-radius);
}


.addnews-admin label {
    color: var(--an-text);
}


.addnews-admin input {
    accent-color: var(--an-primary);
}


/* ==========================================================
   26. SECURITY
   ========================================================== */

.addnews-security {

    width: 100%;

    margin: 0 0 22px;

    padding: 18px;

    color: var(--an-text);

    background: var(--an-bg-soft);

    border: 1px solid var(--an-border);

    border-radius: var(--an-radius);
}


.addnews-security-title {

    display: flex;
    align-items: center;

    gap: 7px;

    margin: 0 0 15px;

    padding: 0 6px;

    color: var(--an-text);

    font-size: 14px;
    font-weight: 600;
}


.addnews-security-title i {
    color: var(--an-primary);
}


/* ==========================================================
   27. RECAPTCHA
   ========================================================== */

.addnews-recaptcha {

    max-width: 100%;

    overflow-x: auto;
}


/* ==========================================================
   28. CAPTCHA
   ========================================================== */

.addnews-captcha {

    display: grid;

    grid-template-columns:
        minmax(130px, auto)
        minmax(200px, 1fr);

    align-items: center;

    gap: 12px;
}


.addnews-captcha-image {

    display: flex;
    align-items: center;
    justify-content: center;

    min-height: 46px;

    padding: 7px 10px;

    color: var(--an-text);

    background: var(--an-input-bg);

    border: 1px solid var(--an-border);

    border-radius: 9px;

    overflow: hidden;
}


.addnews-captcha-image img {

    display: block;

    max-width: 100%;

    height: auto;
}


/* ==========================================================
   29. BUTTONS
   ========================================================== */

.addnews-actions {

    display: grid;

    grid-template-columns:
        minmax(0, 1fr)
        minmax(0, 1fr);

    gap: 12px;

    width: 100%;

    margin-top: 28px;
}


.addnews-button {

    display: inline-flex;
    align-items: center;
    justify-content: center;

    gap: 9px;

    width: 100%;
    min-height: 48px;

    padding: 11px 18px;

    border-radius: 9px;

    font-family: inherit;
    font-size: 14px;
    font-weight: 600;

    line-height: 1.4;

    cursor: pointer;

    outline: none;

    transition:
        transform .15s ease,
        background-color .2s ease,
        border-color .2s ease,
        box-shadow .2s ease;
}


.addnews-button:hover {
    transform: translateY(-1px);
}


.addnews-button:active {
    transform: translateY(0);
}


/* ==========================================================
   30. PRIMARY BUTTON
   ========================================================== */

.addnews-button-primary {

    color: #fff !important;

    background: var(--an-primary) !important;

    border: 1px solid var(--an-primary) !important;
}


.addnews-button-primary:hover {

    color: #fff !important;

    background: var(--an-primary-hover) !important;

    border-color: var(--an-primary-hover) !important;

    box-shadow:
        0 6px 18px rgba(13, 110, 253, .20);
}


/* ==========================================================
   31. SECONDARY BUTTON
   ========================================================== */

.addnews-button-secondary {

    color: var(--an-text) !important;

    background: var(--an-bg) !important;

    border: 1px solid var(--an-border) !important;
}


.addnews-button-secondary:hover {

    color: var(--an-text) !important;

    background: var(--an-bg-soft) !important;

    border-color: var(--an-border-hover) !important;
}


/* ==========================================================
   32. REQUIRED NOTE
   ========================================================== */

.addnews-required-note {

    margin-top: 14px;

    color: var(--an-muted);

    font-size: 13px;

    line-height: 1.5;
}


/* ==========================================================
   33. AUTOFILL
   ========================================================== */

.addnews-page input:-webkit-autofill,
.addnews-page input:-webkit-autofill:hover,
.addnews-page input:-webkit-autofill:focus,
.addnews-page textarea:-webkit-autofill,
.addnews-page textarea:-webkit-autofill:hover,
.addnews-page textarea:-webkit-autofill:focus {

    -webkit-text-fill-color: var(--an-text) !important;

    -webkit-box-shadow:
        0 0 0 1000px var(--an-input-bg) inset !important;

    box-shadow:
        0 0 0 1000px var(--an-input-bg) inset !important;
}


/* ==========================================================
   34. VISUALLY HIDDEN
   ========================================================== */

.addnews-visually-hidden {

    position: absolute !important;

    width: 1px !important;
    height: 1px !important;

    padding: 0 !important;
    margin: -1px !important;

    overflow: hidden !important;

    clip: rect(0, 0, 0, 0) !important;

    white-space: nowrap !important;

    border: 0 !important;
}


/* ==========================================================
   35. MOBILE
   ========================================================== */

@media (max-width: 767px) {

    .addnews-page {

        margin-top: 20px;
        margin-bottom: 20px;

        padding-left: 14px;
        padding-right: 14px;
    }


    .addnews-header {

        align-items: flex-start;

        gap: 13px;

        margin-bottom: 22px;

        padding: 17px;
    }


    .addnews-header-icon {

        width: 45px;
        height: 45px;

        flex-basis: 45px;

        font-size: 19px;

        border-radius: 11px;
    }


    .addnews-title {
        font-size: 20px;
    }


    .addnews-intro {
        font-size: 13px;
    }


    .addnews-panel-body {
        padding: 16px;
    }


    .addnews-captcha {
        grid-template-columns: 1fr;
    }


    .addnews-captcha-image {
        justify-content: flex-start;

        width: fit-content;
    }


    .addnews-actions {

        grid-template-columns: 1fr;

        gap: 10px;

        margin-top: 22px;
    }
}


/* ==========================================================
   36. SMALL MOBILE
   ========================================================== */

@media (max-width: 480px) {

    .addnews-page {

        margin-top: 15px;
        margin-bottom: 15px;

        padding-left: 10px;
        padding-right: 10px;
    }


    .addnews-header {

        padding: 15px;

        border-radius: 10px;
    }


    .addnews-header-icon {

        width: 40px;
        height: 40px;

        flex-basis: 40px;

        font-size: 17px;
    }


    .addnews-title {
        font-size: 18px;
    }


    .addnews-intro {
        font-size: 12px;
    }


    .addnews-page .addnews-control {

        min-height: 44px;

        font-size: 14px;
    }


    .addnews-page textarea.addnews-control {
        min-height: 110px;
    }


    .addnews-panel > summary {

        min-height: 50px;

        padding: 10px 13px;

        font-size: 13px;
    }


    .addnews-panel-icon {

        width: 28px;
        height: 28px;

        flex-basis: 28px;
    }


    .addnews-security {
        padding: 15px;
    }


    .addnews-button {

        min-height: 46px;

        padding-left: 14px;
        padding-right: 14px;
    }
}
