/* CyberPanel Evergreen — standalone authentication and file tools.
 * Load after the existing page styles and cyberpanel-evergreen.css.
 * Required html classes: cp-evergreen cp-auth, cp-filemanager or cp-fileeditor.
 * These rules style existing controls; visibility, Angular hooks, modals and
 * CodeMirror's document/theme remain owned by their original implementations.
 */
html.cp-evergreen:is(.cp-auth, .cp-filemanager, .cp-fileeditor) {
    --cp-sa-paper: #faf7f0;
    --cp-sa-surface: #fffdf8;
    --cp-sa-mint: #dceddc;
    --cp-sa-ink: #061711;
    --cp-sa-muted: #48564d;
    --cp-sa-line: #c7cfc3;
    --cp-sa-orange: #fe5706;
    --cp-sa-accent-ink: #061711;
    --cp-sa-danger: #a62d22;
    --cp-sa-danger-bg: #fff0e9;
    --cp-sa-focus: #a63800;
    background: var(--cp-sa-paper);
    min-height: 100%;
}

html.cp-evergreen:is(.cp-auth, .cp-filemanager, .cp-fileeditor)[data-theme="dark"],
html.cp-evergreen:is(.cp-auth, .cp-filemanager, .cp-fileeditor) body[data-theme="dark"] {
    --cp-sa-paper: #091b14;
    --cp-sa-surface: #10261c;
    --cp-sa-mint: #1b3928;
    --cp-sa-ink: #faf7f0;
    --cp-sa-muted: #b4c4b4;
    --cp-sa-line: #3b5344;
    --cp-sa-danger: #ffb4a5;
    --cp-sa-danger-bg: #3d231d;
    --cp-sa-focus: #ffad78;
    color-scheme: dark;
}

html.cp-evergreen:is(.cp-auth, .cp-filemanager, .cp-fileeditor) body {
    margin: 0;
    padding: 0;
    background: var(--cp-sa-paper) !important;
    color: var(--cp-sa-ink);
    font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 14px;
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
}

html.cp-evergreen:is(.cp-auth, .cp-filemanager, .cp-fileeditor) :is(button, input, select) {
    font-family: inherit;
}

html.cp-evergreen:is(.cp-auth, .cp-filemanager, .cp-fileeditor) :is(a, button, input, select, textarea):focus-visible {
    outline: 2px solid var(--cp-sa-focus);
    outline-offset: 3px;
}

/* Panel sign in: a quiet working space beside an architectural brand panel. */
html.cp-evergreen.cp-auth body {
    min-height: 100vh;
    min-height: 100svh;
    height: auto;
}

html.cp-evergreen.cp-auth body > div:has(> .col-login) {
    display: flex;
    align-items: stretch;
    min-height: 100vh;
    min-height: 100svh;
    width: 100%;
}

html.cp-evergreen.cp-auth #loading { background: var(--cp-sa-paper); }
html.cp-evergreen.cp-auth .spinner > div { background: var(--cp-sa-orange); }

html.cp-evergreen.cp-auth .col-login {
    float: none;
    height: auto;
    min-width: 0;
    min-height: 100vh;
    min-height: 100svh;
}

html.cp-evergreen.cp-auth .col-login-left {
    display: flex !important;
    position: relative;
    isolation: isolate;
    flex: 0 0 46%;
    width: 46%;
    padding: clamp(30px, 4vw, 64px);
    background: var(--cp-sa-mint) !important;
    filter: none;
    border-right: 1px solid var(--cp-sa-line);
    justify-content: space-between;
    gap: 32px;
}

html.cp-evergreen.cp-auth .col-login-left > .row,
html.cp-evergreen.cp-auth .col-login-left > .row > .row {
    margin: 0 !important;
    padding: 0 !important;
}

html.cp-evergreen.cp-auth .col-login-left > .row:first-child > div {
    float: none;
    width: 100%;
    max-width: none;
    padding: 0;
}

html.cp-evergreen.cp-auth .col-login-left h2 {
    color: var(--cp-sa-ink) !important;
    max-width: 480px;
    margin: 8px 0 22px !important;
    font-size: clamp(32px, 3.35vw, 54px);
    font-weight: 600;
    line-height: 1.07;
    letter-spacing: -.055em;
}

html.cp-evergreen.cp-auth .col-login-left h4:not(.card-learnmore) {
    max-width: 420px;
    color: var(--cp-sa-muted) !important;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.6;
    margin: 0;
}

/* Only the old decorative banner is replaced. The changelog link and content
 * remain present; the new illustration consists entirely of CSS shapes. */
html.cp-evergreen.cp-auth .col-login-left > .row:first-child > .text-center {
    position: relative;
    isolation: isolate;
    height: 230px;
    margin-top: 42px;
    overflow: hidden;
    border-bottom: 1px solid var(--cp-sa-line);
}

html.cp-evergreen.cp-auth .col-login-left > .row:first-child > .text-center > img {
    display: none;
}

html.cp-evergreen.cp-auth .col-login-left > .row:first-child > .text-center::before {
    content: "";
    position: absolute;
    width: 57%;
    height: 138px;
    left: 17%;
    top: 29px;
    background: #173b28;
    border: 1px solid #061711;
    box-shadow: 23px 22px 0 #9fbaa1, 24px 23px 0 #061711, -22px 55px 0 #c4d8bd, -23px 56px 0 #617762;
    transform: skewY(-8deg);
    z-index: -1;
}

html.cp-evergreen.cp-auth .col-login-left > .row:first-child > .text-center::after {
    content: "";
    position: absolute;
    width: 68%;
    height: 30px;
    top: 118px;
    left: 23%;
    border: 1px solid #b03b00;
    background: var(--cp-sa-orange);
    box-shadow: 0 7px 0 #c64609;
    transform: skewY(-8deg);
    z-index: -1;
}

html.cp-evergreen.cp-auth a.login-changelogs {
    display: block;
    color: var(--cp-sa-ink);
    border: 0;
    text-decoration: none;
}

html.cp-evergreen.cp-auth .login-changelogs .card {
    max-width: none !important;
    padding: 20px 0 0;
    margin: 0 !important;
    background: transparent;
    border: 0;
    border-top: 1px solid var(--cp-sa-ink);
    border-radius: 0;
    box-shadow: none;
}

html.cp-evergreen.cp-auth .login-changelogs .card > .row {
    display: grid;
    grid-template-columns: 70px minmax(0, 1fr);
    gap: 18px;
    margin: 0;
}

html.cp-evergreen.cp-auth .login-changelogs .card > .row::before,
html.cp-evergreen.cp-auth .login-changelogs .card > .row::after { content: none; }

html.cp-evergreen.cp-auth .login-changelogs .card > .row > div {
    width: auto;
    max-width: none;
    padding: 0;
    margin: 0 !important;
}

html.cp-evergreen.cp-auth .login-changelogs .object-fit {
    height: 70px;
    width: 70px;
    object-fit: cover;
    border: 1px solid var(--cp-sa-line);
    border-radius: 3px;
}

html.cp-evergreen.cp-auth .login-changelogs .card-body { padding: 0; }
html.cp-evergreen.cp-auth .login-changelogs .card-title { font-size: 15px; line-height: 1.3; font-weight: 600; }
html.cp-evergreen.cp-auth .login-changelogs .card-text { color: var(--cp-sa-muted); font-size: 12px; margin-top: 5px; }
html.cp-evergreen.cp-auth .login-changelogs .card-learnmore { color: var(--cp-sa-ink); font-size: 12px; margin-top: 10px; }
html.cp-evergreen.cp-auth .login-changelogs .card-learnmore span { border-color: var(--cp-sa-ink); }
html.cp-evergreen.cp-auth .login-changelogs:hover .card { color: var(--cp-sa-ink); box-shadow: none; }
html.cp-evergreen.cp-auth .login-changelogs:hover .card-learnmore span { border-color: var(--cp-sa-orange); }

html.cp-evergreen.cp-auth .col-login-right {
    flex: 1 1 54%;
    width: 54%;
    padding: 48px clamp(24px, 5vw, 80px);
    background: var(--cp-sa-paper);
}

html.cp-evergreen.cp-auth .col-login-right .login-wrapper {
    width: 100%;
    max-width: 440px;
    margin: auto;
    justify-content: center;
}

html.cp-evergreen.cp-auth #loginForm {
    float: none;
    width: 100%;
    padding: 0;
    margin: 0;
}

html.cp-evergreen.cp-auth #loginForm h1 {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 11px;
    padding: 0 !important;
    margin: 0 0 12px;
    color: var(--cp-sa-ink) !important;
    text-align: left !important;
    text-transform: none;
    font-size: 34px;
    font-weight: 650;
    letter-spacing: -.055em;
    line-height: 1.2;
}

html.cp-evergreen.cp-auth #loginForm h1 img {
    flex-shrink: 0;
    width: 48px;
    height: 48px;
    object-fit: contain;
    margin: 0 !important;
}

html.cp-evergreen.cp-auth[data-theme="dark"] #loginForm h1 img {
    content: url("../brand/cyberpanel-symbol-reverse.svg");
}

html.cp-evergreen:is(.cp-filemanager, .cp-fileeditor)[data-theme="dark"] .header-logo img {
    content: url("../brand/cyberpanel-logo-reverse.svg");
}

html.cp-evergreen.cp-auth #loginForm > h4 {
    color: var(--cp-sa-muted) !important;
    font-size: 15px;
    font-weight: 400;
    text-align: left !important;
    margin: 0 0 34px !important;
}

html.cp-evergreen.cp-auth #loginForm :is(.mx-30, .content-box-wrapper) {
    margin: 0 !important;
    padding: 0 !important;
}

html.cp-evergreen.cp-auth #loginForm .form-group { margin-bottom: 17px; }
html.cp-evergreen.cp-auth #loginForm label { display: block; margin-bottom: 7px; color: var(--cp-sa-ink); font-size: 13px; font-weight: 600; }
html.cp-evergreen.cp-auth #loginForm .input-group { width: 100%; }
html.cp-evergreen.cp-auth #loginForm :is(input.form-control, select.form-control) {
    height: 50px !important;
    min-width: 0;
    padding: 12px 15px;
    background: var(--cp-sa-surface);
    color: var(--cp-sa-ink);
    border: 1px solid var(--cp-sa-line);
    border-radius: 4px;
    box-shadow: none;
    font-size: 14px;
}

html.cp-evergreen.cp-auth #loginForm .input-group:has(.input-group-addon) .form-control {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

html.cp-evergreen.cp-auth #loginForm .input-group-addon {
    width: 48px;
    padding: 12px;
    color: var(--cp-sa-muted) !important;
    background: var(--cp-sa-surface) !important;
    border: 1px solid var(--cp-sa-line);
    border-left: 0;
    border-radius: 0 4px 4px 0;
}

html.cp-evergreen.cp-auth #loginForm .form-control::placeholder { color: var(--cp-sa-muted); opacity: 1; }
html.cp-evergreen.cp-auth #loginForm .form-control:focus { border-color: var(--cp-sa-focus); }
html.cp-evergreen.cp-auth #loginForm .input-group:focus-within .input-group-addon { border-color: var(--cp-sa-focus); }

html.cp-evergreen.cp-auth #loginForm .btn-login,
html.cp-evergreen.cp-auth .wm-login-btn {
    min-height: 50px;
    height: auto;
    padding: 13px 20px;
    color: var(--cp-sa-accent-ink) !important;
    background: var(--cp-sa-orange) !important;
    border: 1px solid var(--cp-sa-orange);
    border-radius: 4px;
    box-shadow: none;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.5;
}

html.cp-evergreen.cp-auth #loginForm .btn-login:hover,
html.cp-evergreen.cp-auth .wm-login-btn:hover { background: #e94f00 !important; border-color: #e94f00; box-shadow: none; }
html.cp-evergreen.cp-auth #loginForm .btn-login:disabled,
html.cp-evergreen.cp-auth .wm-login-btn:disabled { opacity: .6; cursor: not-allowed; }
html.cp-evergreen.cp-auth #loginFailed,
html.cp-evergreen.cp-auth .wm-login-error {
    color: var(--cp-sa-danger);
    background: var(--cp-sa-danger-bg);
    border: 1px solid var(--cp-sa-danger);
    border-radius: 4px;
    padding: 14px 16px;
    margin: 20px 0 0;
    font-size: 13px;
    text-align: left;
    overflow-wrap: anywhere;
}

/* Webmail keeps its existing compact sign-in flow. */
html.cp-evergreen.cp-auth body:has(> .wm-login-card) {
    position: relative;
    isolation: isolate;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40px 20px;
}

html.cp-evergreen.cp-auth body:has(> .wm-login-card)::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 44%;
    height: 100%;
    background: var(--cp-sa-mint);
    border-right: 1px solid var(--cp-sa-line);
    z-index: -1;
}

html.cp-evergreen.cp-auth body:has(> .wm-login-card)::after {
    content: "";
    position: absolute;
    top: max(24px, calc(50% - 260px));
    left: max(24px, calc(50% - 310px));
    width: 106px;
    height: 106px;
    border: 1px solid var(--cp-sa-ink);
    box-shadow: 14px 14px 0 var(--cp-sa-orange);
    z-index: -1;
}

html.cp-evergreen.cp-auth .wm-login-card {
    width: 100%;
    max-width: 460px;
    padding: 40px;
    background: var(--cp-sa-surface);
    border: 1px solid var(--cp-sa-line);
    border-top: 3px solid var(--cp-sa-ink);
    border-radius: 5px;
    box-shadow: 10px 10px 0 #06171108;
}

html.cp-evergreen.cp-auth .wm-login-logo { text-align: left; margin-bottom: 30px; }
html.cp-evergreen.cp-auth .wm-login-logo > i { font-size: 25px; color: var(--cp-sa-ink); padding: 12px; background: var(--cp-sa-mint); border: 1px solid var(--cp-sa-line); }
html.cp-evergreen.cp-auth .wm-login-logo h2 { color: var(--cp-sa-ink); font-size: 28px; line-height: 1.15; letter-spacing: -.04em; margin-top: 22px; font-weight: 600; }
html.cp-evergreen.cp-auth .wm-login-logo p { color: var(--cp-sa-muted); font-size: 14px; margin-top: 8px; }
html.cp-evergreen.cp-auth .wm-login-field { margin-bottom: 20px; }
html.cp-evergreen.cp-auth .wm-login-field label { color: var(--cp-sa-ink); font-size: 13px; font-weight: 500; margin-bottom: 8px; }
html.cp-evergreen.cp-auth .wm-login-field input { min-height: 48px; border-radius: 4px; border: 1px solid var(--cp-sa-line); background: var(--cp-sa-paper); color: var(--cp-sa-ink); font-size: 14px; padding: 12px 14px; }
html.cp-evergreen.cp-auth .wm-login-field input::placeholder { color: var(--cp-sa-muted); }
html.cp-evergreen.cp-auth .wm-login-field input:focus { border-color: var(--cp-sa-focus); box-shadow: none; }
html.cp-evergreen.cp-auth .wm-login-error { margin: 0 0 20px; }

/* File tools: a consistent toolbar, directory tree and readable file table. */
html.cp-evergreen:is(.cp-filemanager, .cp-fileeditor) #navBar {
    position: relative;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-start;
    gap: 12px 22px;
    min-height: 82px;
    padding: 17px 24px !important;
    background: var(--cp-sa-paper) !important;
    border-bottom: 1px solid var(--cp-sa-ink);
    box-shadow: none;
}

html.cp-evergreen:is(.cp-filemanager, .cp-fileeditor) .header-logo { padding: 0; min-width: 0; }
html.cp-evergreen:is(.cp-filemanager, .cp-fileeditor) .header-logo a { color: var(--cp-sa-ink); min-width: 0; gap: 12px; }
html.cp-evergreen:is(.cp-filemanager, .cp-fileeditor) .header-logo img { display: block; width: 180px; max-width: 100%; height: auto; }
html.cp-evergreen:is(.cp-filemanager, .cp-fileeditor) .header-logo .logo-icon { width: 42px; height: 42px; background: var(--cp-sa-mint); color: var(--cp-sa-ink); border: 1px solid var(--cp-sa-line); border-radius: 4px; box-shadow: none; }
html.cp-evergreen:is(.cp-filemanager, .cp-fileeditor) .header-logo:hover .logo-icon { transform: none; box-shadow: none; }
html.cp-evergreen:is(.cp-filemanager, .cp-fileeditor) .header-logo .logo-text .brand { color: var(--cp-sa-ink); font-size: 18px; font-weight: 600; letter-spacing: -.035em; }
html.cp-evergreen:is(.cp-filemanager, .cp-fileeditor) .header-logo .logo-text .domain { color: var(--cp-sa-muted); font: 11px ui-monospace, SFMono-Regular, Consolas, monospace; margin-top: 5px; overflow-wrap: anywhere; }
html.cp-evergreen:is(.cp-filemanager, .cp-fileeditor) #navBar > div { min-width: 0; max-width: 100%; }
html.cp-evergreen:is(.cp-filemanager, .cp-fileeditor) #navBar .nav { flex-wrap: wrap; gap: 4px; padding: 0; margin: 0; }

html.cp-evergreen:is(.cp-filemanager, .cp-fileeditor) #navBar a.nav-link {
    color: var(--cp-sa-ink) !important;
    padding: 9px 10px;
    border: 1px solid transparent;
    border-radius: 3px;
    background: transparent;
    font-size: 12px;
    font-weight: 500;
    min-height: 44px;
}

html.cp-evergreen:is(.cp-filemanager, .cp-fileeditor) #navBar a.nav-link:hover { background: var(--cp-sa-mint); border-color: var(--cp-sa-line); color: var(--cp-sa-ink) !important; }
html.cp-evergreen.cp-filemanager #navBar a[ng-click="showUploadBox()"] { background: var(--cp-sa-orange); color: var(--cp-sa-accent-ink) !important; }
html.cp-evergreen.cp-filemanager #navBar #deleteFile a { color: var(--cp-sa-danger) !important; }

html.cp-evergreen.cp-filemanager body > .row {
    margin: 0;
    padding: 24px;
    row-gap: 20px;
}

html.cp-evergreen.cp-filemanager body > .row > #treeView { padding: 0 20px 0 0 !important; }
html.cp-evergreen.cp-filemanager body > .row > .col-sm-9 { padding: 0; min-width: 0; }
html.cp-evergreen.cp-filemanager #treeView .content-box { background: var(--cp-sa-surface) !important; border: 1px solid var(--cp-sa-line); border-radius: 4px; box-shadow: none; height: auto !important; min-height: 400px; max-height: calc(100vh - 160px); overflow: auto; }
html.cp-evergreen.cp-filemanager #treeView .card-header { background: var(--cp-sa-mint); border-bottom: 1px solid var(--cp-sa-line); border-radius: 3px 3px 0 0; padding: 18px 14px; }
html.cp-evergreen.cp-filemanager #treeView .card-header .mt-20 { margin-top: 0; }
html.cp-evergreen.cp-filemanager #treeView label { color: var(--cp-sa-muted); font-size: 11px; font-weight: 600; letter-spacing: .045em; text-transform: uppercase; }
html.cp-evergreen.cp-filemanager #currentPath { min-width: 0; height: 44px; padding: 8px 9px; background: var(--cp-sa-surface); color: var(--cp-sa-ink); border: 1px solid var(--cp-sa-line); border-radius: 3px; font: 11px ui-monospace, SFMono-Regular, Consolas, monospace; box-shadow: none; }
html.cp-evergreen.cp-filemanager #treeView .list-group-item { background: var(--cp-sa-surface); color: var(--cp-sa-ink); border-color: var(--cp-sa-line); padding: 12px 10px; font-size: 12px; }
html.cp-evergreen.cp-filemanager #treeView .list-group-item a { color: var(--cp-sa-ink); overflow-wrap: anywhere; }
html.cp-evergreen.cp-filemanager #treeView .list-group-item a:hover { color: var(--cp-sa-focus); }
html.cp-evergreen.cp-filemanager :is(.fa-file, .fa-minus, .fa-plus, .fa-folder, .fa-folder-open) { color: var(--cp-sa-focus) !important; }

html.cp-evergreen.cp-filemanager body > .row > .col-sm-9 > div {
    margin: 0;
    padding: 0;
    background: var(--cp-sa-surface);
    border: 1px solid var(--cp-sa-line);
    border-radius: 4px;
    box-shadow: none;
    overflow-x: auto;
}

html.cp-evergreen.cp-filemanager .col-sm-9 .nav { background: var(--cp-sa-surface); border: 0; border-bottom: 1px solid var(--cp-sa-line); border-radius: 0; padding: 12px; gap: 5px; margin: 0; box-shadow: none; }
html.cp-evergreen.cp-filemanager .col-sm-9 .nav-item a { margin: 0; color: var(--cp-sa-muted) !important; min-height: 44px; padding: 10px; border-radius: 3px; font-size: 12px; }
html.cp-evergreen.cp-filemanager .col-sm-9 .nav-item a:hover { color: var(--cp-sa-ink) !important; background: var(--cp-sa-mint); }
html.cp-evergreen.cp-filemanager .col-sm-9 > div > .table { min-width: 620px; margin: 0; background: var(--cp-sa-surface); color: var(--cp-sa-ink); font-size: 13px; box-shadow: none; border-radius: 0; }
html.cp-evergreen.cp-filemanager #tableHead { background: var(--cp-sa-mint); color: var(--cp-sa-muted); font-size: 11px; letter-spacing: .035em; }
html.cp-evergreen.cp-filemanager #tableHead th { color: var(--cp-sa-muted); border: 0; border-bottom: 1px solid var(--cp-sa-line); font-weight: 600; padding: 13px 16px; white-space: nowrap; }
html.cp-evergreen.cp-filemanager #tableBodyFiles td { color: var(--cp-sa-ink); border-color: var(--cp-sa-line); padding: 14px 16px; vertical-align: middle; }
html.cp-evergreen.cp-filemanager #tableBodyFiles tr:hover { background: var(--cp-sa-mint); }
html.cp-evergreen.cp-filemanager #tableBodyFiles a { color: inherit; }

/* Bootstrap owns modal visibility, backdrop and close behavior. */
html.cp-evergreen.cp-filemanager .modal-content { background: var(--cp-sa-surface); color: var(--cp-sa-ink); border: 1px solid var(--cp-sa-line); border-radius: 5px !important; box-shadow: 0 18px 50px #06171126; }
html.cp-evergreen.cp-filemanager .modal-header { background: var(--cp-sa-mint) !important; border-bottom: 1px solid var(--cp-sa-line); border-radius: 4px 4px 0 0 !important; padding: 18px 22px; }
html.cp-evergreen.cp-filemanager .modal-title { color: var(--cp-sa-ink); font-size: 18px; font-weight: 600; letter-spacing: -.025em; }
html.cp-evergreen.cp-filemanager .modal-body { padding: 22px; background: var(--cp-sa-surface); }
html.cp-evergreen.cp-filemanager .modal-footer { background: var(--cp-sa-paper); border-top: 1px solid var(--cp-sa-line); padding: 16px 22px; }
html.cp-evergreen.cp-filemanager .modal .close { color: var(--cp-sa-ink); text-shadow: none; }
html.cp-evergreen.cp-filemanager .modal .form-control { min-height: 44px; height: auto; padding: 10px 12px !important; border: 1px solid var(--cp-sa-line) !important; border-radius: 4px !important; background: var(--cp-sa-paper); color: var(--cp-sa-ink); font-size: 14px; line-height: 1.55; box-shadow: none; }
html.cp-evergreen.cp-filemanager .modal textarea.form-control { min-height: 106px; }
html.cp-evergreen.cp-filemanager .modal .form-group { margin-bottom: 20px; }
html.cp-evergreen.cp-filemanager .modal .form-group > label { margin-bottom: 7px; font-size: 13px; font-weight: 600; line-height: 1.5; }
html.cp-evergreen.cp-filemanager .modal .form-text { margin-top: 7px; color: var(--cp-sa-muted); font-size: 12px; line-height: 1.6; }
html.cp-evergreen.cp-filemanager .modal .alert { margin-top: 0; margin-bottom: 0; padding: 13px 16px; border-radius: 4px; font-size: 13px; line-height: 1.6; overflow-wrap: anywhere; }
html.cp-evergreen.cp-filemanager .modal input[type="checkbox"] { margin-right: 7px; }
html.cp-evergreen.cp-filemanager .modal .table { background: var(--cp-sa-surface); color: var(--cp-sa-ink); border-radius: 0; box-shadow: none; }
html.cp-evergreen.cp-filemanager .modal .table :is(td, th) { border-color: var(--cp-sa-line); }
html.cp-evergreen.cp-filemanager .modal-body { overflow-x: auto; }
html.cp-evergreen.cp-filemanager .my-drop-zone { padding: 32px 20px; border: 1px dashed var(--cp-sa-muted); background: var(--cp-sa-mint); border-radius: 4px; box-shadow: none; }
html.cp-evergreen.cp-filemanager .my-drop-zone:hover { border-color: var(--cp-sa-focus); background: var(--cp-sa-mint); box-shadow: none; }
html.cp-evergreen.cp-filemanager .my-drop-zone h4 { color: var(--cp-sa-ink); }
html.cp-evergreen.cp-filemanager .my-drop-zone p { color: var(--cp-sa-muted); }
html.cp-evergreen.cp-filemanager #uploadBox :is(h3, h4, th) { color: var(--cp-sa-ink); }
html.cp-evergreen.cp-filemanager #uploadBox :is(p, td) { color: var(--cp-sa-muted); }
html.cp-evergreen.cp-filemanager #uploadBox .form-control-file { border: 1px dashed var(--cp-sa-line); border-radius: 4px; background: var(--cp-sa-paper); color: var(--cp-sa-ink); }
html.cp-evergreen.cp-filemanager #uploadBox .progress { background: var(--cp-sa-mint); }
html.cp-evergreen.cp-filemanager #uploadBox .progress-bar { background: var(--cp-sa-orange); }
html.cp-evergreen.cp-filemanager #rightClick { border: 1px solid var(--cp-sa-line); border-radius: 4px; box-shadow: 0 8px 24px #06171126; max-width: calc(100vw - 16px); }
html.cp-evergreen.cp-filemanager #rightClick a { color: var(--cp-sa-ink); border-color: var(--cp-sa-line) !important; }
html.cp-evergreen.cp-filemanager #rightClick .list-group-item { min-height: 44px; background: var(--cp-sa-surface); color: var(--cp-sa-ink); border-color: var(--cp-sa-line); border-radius: 0; font-size: 13px; padding: 12px 16px; }
html.cp-evergreen.cp-filemanager #rightClick a:hover .list-group-item { background: var(--cp-sa-mint); }

html.cp-evergreen:is(.cp-filemanager, .cp-fileeditor) .btn {
    min-height: 44px;
    font-size: 13px;
    font-weight: 500;
    border-radius: 4px;
    padding: 9px 14px;
    box-shadow: none;
}

html.cp-evergreen:is(.cp-filemanager, .cp-fileeditor) :is(.btn-primary, .btn-success, .btn-light) { background: var(--cp-sa-orange); color: var(--cp-sa-accent-ink); border: 1px solid var(--cp-sa-orange); }
html.cp-evergreen:is(.cp-filemanager, .cp-fileeditor) :is(.btn-primary, .btn-success, .btn-light):hover { background: #e94f00; border-color: #e94f00; }
html.cp-evergreen:is(.cp-filemanager, .cp-fileeditor) .btn-danger { background: var(--cp-sa-danger-bg); color: var(--cp-sa-danger); border: 1px solid var(--cp-sa-danger); }
html.cp-evergreen:is(.cp-filemanager, .cp-fileeditor) .btn-warning { background: var(--cp-sa-mint); color: var(--cp-sa-ink); border: 1px solid var(--cp-sa-line); }
html.cp-evergreen:is(.cp-filemanager, .cp-fileeditor) :is(.btn-default, .btn-secondary) { background: var(--cp-sa-paper); color: var(--cp-sa-ink); border: 1px solid var(--cp-sa-line); }

/* The original editor theme and dimensions remain authoritative. Only its
 * enclosing toolbar is styled; do not target CodeMirror lines or gutters. */
html.cp-evergreen.cp-fileeditor #navBar > div:has(#completeFilePath) { flex: 1 1 220px; }
html.cp-evergreen.cp-fileeditor #navBar #editFile { min-width: 0; }
html.cp-evergreen.cp-fileeditor #navBar #editFile a { white-space: normal; overflow-wrap: anywhere; }
html.cp-evergreen.cp-fileeditor #completeFilePath { font: 12px ui-monospace, SFMono-Regular, Consolas, monospace; }
html.cp-evergreen.cp-fileeditor #navbarSupportedContent:not(.ng-hide):not([hidden]) { display: flex; flex: 1 1 auto; flex-wrap: wrap; justify-content: flex-end; gap: 10px; }
html.cp-evergreen.cp-fileeditor #navbarSupportedContent .navbar-nav { display: flex; flex-direction: row; flex-wrap: wrap; gap: 10px; margin-right: 0 !important; }
html.cp-evergreen.cp-fileeditor #navbarSupportedContent :is(select, input) { min-height: 44px; max-width: 100%; padding: 7px 10px; color: var(--cp-sa-ink); background: var(--cp-sa-surface); border: 1px solid var(--cp-sa-line); border-radius: 4px; font-size: 12px; }
html.cp-evergreen.cp-fileeditor #navbarSupportedContent > .btn { margin-left: 0 !important; }
html.cp-evergreen.cp-fileeditor body > .row { margin: 0; }
html.cp-evergreen.cp-fileeditor body > .row > .col-sm-12 { padding: 0; }

@media (max-width: 1100px) {
    html.cp-evergreen.cp-auth .col-login-left { padding: 36px; flex-basis: 43%; width: 43%; }
    html.cp-evergreen.cp-auth .col-login-left h2 { font-size: 36px; }
    html.cp-evergreen.cp-auth .col-login-right { padding: 40px 32px; width: 57%; }
    html.cp-evergreen.cp-auth .col-login-left > .row:first-child > .text-center { height: 200px; margin-top: 28px; }
    html.cp-evergreen:is(.cp-filemanager, .cp-fileeditor) #navBar { gap: 16px; }
}

@media (max-width: 767px) {
    html.cp-evergreen.cp-auth body > div:has(> .col-login) { flex-direction: column; min-height: 0; }
    html.cp-evergreen.cp-auth .col-login { min-height: 0; }
    html.cp-evergreen.cp-auth .col-login-left { width: 100%; flex-basis: auto; padding: 28px; border-right: 0; border-bottom: 1px solid var(--cp-sa-line); gap: 24px; }
    html.cp-evergreen.cp-auth .col-login-left h2 { font-size: 31px; max-width: 520px; margin-top: 0 !important; margin-bottom: 14px !important; }
    html.cp-evergreen.cp-auth .col-login-left h4:not(.card-learnmore) { font-size: 14px; max-width: none; }
    html.cp-evergreen.cp-auth .col-login-left > .row:first-child > .text-center { height: 0; margin: 0; border: 0; }
    html.cp-evergreen.cp-auth .col-login-left .login-changelogs .card { padding-top: 18px; }
    html.cp-evergreen.cp-auth .col-login-right { order: -1; width: 100%; flex: 0 0 auto; padding: 40px 28px; }
    html.cp-evergreen.cp-auth .col-login-right .login-wrapper { margin: 0 auto; }
    html.cp-evergreen.cp-auth #loginForm h1 { font-size: 30px; }
    html.cp-evergreen.cp-auth #loginForm > h4 { margin-bottom: 26px !important; }
    html.cp-evergreen.cp-auth .wm-login-card { padding: 32px 26px; }
    html.cp-evergreen:is(.cp-filemanager, .cp-fileeditor) #navBar { padding: 16px !important; }
    html.cp-evergreen.cp-filemanager body > .row { padding: 16px; }
    html.cp-evergreen.cp-filemanager body > .row > #treeView { flex: 0 0 100%; max-width: 100%; padding: 0 !important; }
    html.cp-evergreen.cp-filemanager body > .row > .col-sm-9 { flex: 0 0 100%; max-width: 100%; }
    html.cp-evergreen.cp-filemanager #treeView .content-box { min-height: 0; max-height: 230px; margin-bottom: 0 !important; }
    html.cp-evergreen.cp-filemanager #treeView .card-header { padding: 12px; }
    html.cp-evergreen.cp-filemanager .modal-dialog { margin: 12px; }
    html.cp-evergreen.cp-fileeditor #navbarSupportedContent { flex-basis: 100%; justify-content: flex-start; }
    html.cp-evergreen.cp-fileeditor #navbarSupportedContent .navbar-nav { flex-basis: 100%; }
}

@media (max-width: 380px) {
    html.cp-evergreen.cp-auth .col-login-left { padding: 24px 20px; }
    html.cp-evergreen.cp-auth .col-login-left h2 { font-size: 28px; }
    html.cp-evergreen.cp-auth .col-login-right { padding: 32px 20px; }
    html.cp-evergreen.cp-auth .wm-login-card { padding: 28px 20px; }
    html.cp-evergreen.cp-auth .wm-login-logo h2 { font-size: 25px; }
    html.cp-evergreen:is(.cp-filemanager, .cp-fileeditor) #navBar a.nav-link { padding: 9px 8px; }
}

@media (prefers-reduced-motion: reduce) {
    html.cp-evergreen:is(.cp-auth, .cp-filemanager, .cp-fileeditor) :is(.btn, .nav-link, .card, .logo-icon, .wm-login-btn) { transition: none; }
}
