/* ── Variables ─────────────────────────────────────────── */
:root {
    --app-sidebar-w: 44px;
    --app-sidebar-w-exp: 220px;
    --app-sidebar-bg: #1e1e2d;
    --app-sidebar-hover: #2d2d42;
    --app-sidebar-active: #2a2a3e;
    --app-accent: #7c5cbf;
    --app-accent-hover: #6a4dab;
    --app-topbar-h: 44px;
    --app-footer-h: 34px;
    --app-topbar-bg: #ffffff;
    --app-page-bg: #f0f0f4;
    --app-border: #e2e2e8;
    --app-border-light: #ebebf0;
    --app-text: #1a1a2e;
    --app-text-muted: #6b6b80;
    --app-text-sub: #4a4a60;
    --app-link: #5b5bd6;
    --app-success: #22c55e;
    --app-banner-bg: #f0eeff;
    --app-banner-border: #ddd5f5;
    --app-banner-accent: #7c5cbf;
    --app-radius: 8px;
    --app-shadow: 0 1px 4px rgba(0,0,0,.08);
    --app-transition: 220ms ease;
    --app-bg: #f0f0f4;
    --app-card: #ffffff;
    --app-muted-bg: #f8f8fb;
    --app-text: #1a1a2e;
    --app-muted: #6b6b80;
    --app-button-muted-bg: #aeaeae;
    --app-sub: #4a4a60;
    --app-gap: 8px;
    --app-danger: #ef4444;
    --app-warn: #f59e0b;
}
/* ── Page ───────────────────────────────────────────────── */
.app-page {
    padding: 14px 14px 5px;
    background: var(--app-bg);
    display: flex;
    flex-direction: column;
    gap: var(--app-gap);
    font-family: 'Segoe UI', system-ui, sans-serif;
    font-size: 13px;
    color: var(--app-text);
    box-sizing: border-box;
}


/* ── Shell ──────────────────────────────────────────────── */
.app-container {
    display: flex;
    height: 100vh;
    overflow: hidden;
    background: var(--app-page-bg);
    font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
    font-size: 13px;
    color: var(--app-text);
}

/* ── SfSidebar overrides ────────────────────────────────── */
.app-sidebar.e-sidebar {
    background: var(--app-sidebar-bg) !important;
    box-shadow: 2px 0 8px rgba(0,0,0,.18) !important;
    overflow: hidden !important;
    transition: width var(--app-transition) !important;
    /* Reset SfSidebar's default positioning so it sits in flex flow */
    position: relative !important;
    height: 100% !important;
    top: 0 !important;
    left: 0 !important;
    z-index: 30 !important;
    display: flex !important;
    flex-direction: column !important;
    border-right: none !important;
}

/* Hide SfSidebar's default backdrop/overlay */
.e-sidebar-overlay {
    display: none !important;
}

/* ── Sidebar toggle (hamburger) ─────────────────────────── */
.app-sidebar-toggle {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 0 13px;
    height: 44px;
    background: transparent;
    border: none;
    border-bottom: 1px solid rgba(255,255,255,.06);
    cursor: pointer;
    color: #b0b0cc;
    flex-shrink: 0;
    white-space: nowrap;
    transition: background var(--app-transition), color var(--app-transition);
}

.app-sidebar-toggle:hover {
    background: var(--app-sidebar-hover);
    color: #ffffff;
}

.app-sidebar-appname {
    font-size: 14px;
    font-weight: 600;
    color: #ffffff;
    letter-spacing: .01em;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* ── Nav ────────────────────────────────────────────────── */
.app-nav {
    display: flex;
    flex-direction: column;
    padding: 6px 0;
    flex: 1;
}

.app-nav-btn {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 0 13px;
    height: 44px;
    background: transparent;
    border: none;
    cursor: pointer;
    color: #9090b0;
    white-space: nowrap;
    overflow: hidden;
    transition: background var(--app-transition), color var(--app-transition);
    text-align: left;
}

.app-nav-btn:hover {
    background: var(--app-sidebar-hover);
    color: #ffffff;
}

.app-nav-btn--active {
    background: var(--app-sidebar-active);
    color: #ffffff;
    border-left: 3px solid var(--app-accent);
    padding-left: 10px;
}

.app-nav-icon {
    font-size: 16px;
    line-height: 1;
    flex-shrink: 0;
    width: 18px;
    text-align: center;
}

.app-nav-text {
    font-size: 13px;
    font-weight: 500;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.app-sidebar-spacer {
    flex: 1;
}

/* ── Main column ────────────────────────────────────────── */
.app-main {
    display: flex;
    flex-direction: column;
    flex: 1;
    overflow: hidden;
    min-width: 0;
}

/* ── Top bar ────────────────────────────────────────────── */
.app-topbar {
    height: var(--app-topbar-h);
    background: var(--app-topbar-bg);
    border-bottom: 1px solid var(--app-border);
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 16px;
    flex-shrink: 0;
    box-shadow: var(--app-shadow);
    z-index: 10;
}

.app-topbar-actions {
    display: flex;
    align-items: center;
    gap: 2px;
}

.app-hdr-btn.e-btn {
    color: var(--app-text-muted);
    border-radius: 6px;
    min-width: 30px !important;
    height: 30px;
    padding: 0 !important;
}

.app-hdr-btn.e-btn:hover {
    background: #f0f0f5;
    color: var(--app-text);
}

/* ── Update banner ──────────────────────────────────────── */
.app-banner {
    background: var(--app-banner-bg);
    border-bottom: 1px solid var(--app-banner-border);
    padding: 7px 16px;
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}

.app-banner-text {
    font-size: 13px;
    color: var(--app-text-sub);
}

.app-banner-update {
    color: var(--app-accent);
    font-weight: 600;
    text-decoration: none;
}

.app-banner-update:hover {
    text-decoration: underline;
}

.app-banner-link {
    color: var(--app-accent);
    font-weight: 500;
    text-decoration: underline;
    margin-left: 2px;
}

    .app-banner-link:hover {
        color: var(--app-accent-hover);
    }

.app-banner-actions {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 6px;
}

.app-banner-ignore {
    font-size: 12px;
    color: var(--app-text-sub);
    background: white;
    border: 1px solid var(--app-border);
    border-radius: 4px;
    padding: 3px 10px;
    cursor: pointer;
    transition: background var(--app-transition);
}

.app-banner-ignore:hover {
    background: #ece8f8;
}

.app-banner-close {
    background: none;
    border: none;
    cursor: pointer;
    color: #aaa;
    display: flex;
    align-items: center;
    padding: 0 2px;
    transition: color var(--app-transition);
}

    .app-banner-close:hover {
        color: var(--app-accent);
    }

/* ── Page content ───────────────────────────────────────── */
.app-content {
    flex: 1;
    overflow: auto;
    /*padding: 24px 24px 16px;*/
    min-width: 0;
}

.app-page-title {
    font-size: 20px;
    font-weight: 700;
    color: var(--app-text);
    margin: 0 0 18px;
}

/* ── Tabs ───────────────────────────────────────────────── */
.app-tabs.e-tab > .e-tab-header {
    background: transparent !important;
    border-bottom: 1px solid var(--app-border) !important;
}

.app-tabs .e-tab-header .e-indicator {
    background: var(--app-accent) !important;
    height: 2px;
}

.app-tabs .e-tab-header .e-active .e-tab-text,
.app-tabs .e-tab-header .e-active .e-tab-icon {
    color: var(--app-accent) !important;
}

.app-tabs .e-tab-header .e-toolbar-item:not(.e-active):hover .e-tab-text {
    color: var(--app-text) !important;
}

.app-tabs .e-content {
    background: transparent !important;
}

/* ── Card ───────────────────────────────────────────────── */
.app-card {
    border: 1px solid var(--app-border);
    border-radius: var(--app-radius);
    overflow: hidden;
    background: var(--app-card);
    box-shadow: var(--app-shadow);
    padding: 12px 14px;
    min-width: 0;
}

.app-empty-state {
    padding: 48px;
    text-align: center;
    color: var(--app-text-muted);
}

.app-card--full {
    margin-top: 0;
}

.app-card-header {
    display: flex;
    align-items: baseline;
    gap: 10px;
    margin-bottom: 10px;
}

.app-card-title {
    font-size: 14px;
    font-weight: 700;
    color: var(--app-text);
}

.app-card-sub {
    font-size: 12px;
    color: var(--app-muted);
}

.app-container .app-main.e-content-animation {
    margin-left: 0 !important;
}

/* ── Filter bar ─────────────────────────────────────────── */
.app-filter-bar {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    border-bottom: 1px solid var(--app-border-light);
    background: var(--app-card-bg);
}

.app-filter-wrap {
    flex: 1;
}

.app-filter-input {
    width: 100% !important;
}

.app-filter-input.e-input-group {
border: 1px solid var(--app-border) !important;
border-radius: 5px !important;
background: var(--app-muted-bg) !important;
}

.app-filter-input.e-input-group:not(.e-float-icon-left)::after {
    background: var(--app-accent) !important;
}

.app-col-btn.e-btn {
    color: var(--app-text-muted);
    border-radius: 6px;
    min-width: 32px !important;
    height: 32px;
    padding: 0 !important;
    flex-shrink: 0;
}

    .app-col-btn.e-btn:hover {
        background: #ece8f8;
        color: var(--app-accent);
    }

/* ── SfGrid ─────────────────────────────────────────────── */
.app-grid.e-grid {
    border: none !important;
    box-shadow: none !important;
    border-radius: 0 !important;
}

.app-grid .e-gridheader {
    background: var(--app-muted-bg) !important;
    border-bottom: 1px solid var(--app-border) !important;
}

.app-grid .e-headercell .e-headercelldiv {
    font-weight: 600;
    color: var(--app-text-sub);
    font-size: 13px;
}

.app-grid .e-row {
    border-bottom: 1px solid var(--app-border-light) !important;
    transition: background var(--app-transition);
}

.app-grid .e-row:hover .e-rowcell {
    background: #f5f3fc !important;
}

.app-grid .e-rowcell {
    padding: 10px 16px !important;
    font-size: 13px;
    color: var(--app-text-sub);
    border: none !important;
}

/* ── Cell components ────────────────────────────────────── */
.app-name-cell {
    display: flex;
    align-items: center;
    gap: 8px;
}

.app-badge {
    width: 22px;
    height: 22px;
    border-radius: 5px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    flex-shrink: 0;
}

.app-resource-name {
    font-weight: 500;
    color: var(--app-text);
}

.app-state-cell {
    display: flex;
    align-items: center;
    gap: 6px;
    color: var(--app-text-sub);
}

.app-state-dot {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--app-success);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.app-url-cell {
    display: flex;
    flex-wrap: wrap;
    gap: 2px 10px;
}

.app-url-link {
    color: var(--app-link);
    text-decoration: none;
    font-size: 12px;
}

    .app-url-link:hover {
        text-decoration: underline;
    }

.app-actions-cell {
    display: flex;
    align-items: center;
    gap: 4px;
}

.app-stop-btn.e-btn {
    background: var(--app-accent) !important;
    border-color: var(--app-accent) !important;
    color: #fff !important;
    min-width: 28px !important;
    width: 28px !important;
    height: 28px !important;
    padding: 0 !important;
    border-radius: 5px !important;
}

.app-stop-btn.e-btn:hover {
    background: var(--app-accent-hover) !important;
    border-color: var(--app-accent-hover) !important;
}

.app-action-btn.e-btn {
    color: var(--app-text-muted);
    border-color: var(--app-border) !important;
    border-radius: 5px;
    min-width: 28px !important;
    width: 28px !important;
    height: 28px !important;
    padding: 0 !important;
}

    .app-action-btn.e-btn:hover {
        background: #f0eeff;
        color: var(--app-accent);
        border-color: #c9b8f0 !important;
    }

/* ── Grid footer ────────────────────────────────────────── */
.app-grid-footer {
    padding: 9px 16px;
    background: var(--app-muted-bg);
    border-top: 1px solid var(--app-border-light);
    font-size: 12px;
    color: var(--app-text-muted);
}

/* ── Page footer ────────────────────────────────────────── */
.app-footer {
    height: var(--app-footer-h);
    background: var(--app-topbar-bg);
    border-top: 1px solid var(--app-border);
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 0 16px;
    flex-shrink: 0;
    font-size: 12px;
    color: var(--app-text-muted);
}

.app-footer-brand {
    display: flex;
    align-items: center;
    gap: 5px;
    font-weight: 600;
    color: var(--app-text-sub);
}

.app-footer-sep {
    color: var(--app-border);
    user-select: none;
}

.app-footer-item {
    display: flex;
    align-items: center;
    gap: 5px;
}

.app-footer-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    flex-shrink: 0;
}

.app-footer-dot--green {
    background: var(--app-success);
}

.app-footer-spacer {
    flex: 1;
}

.app-footer-link {
    color: var(--app-link);
    text-decoration: none;
    font-size: 12px;
}

.app-footer-link:hover {
    text-decoration: underline;
}

/* ── Dialog ─────────────────────────────────────────────── */
.e-dialog .e-dlg-header-content {
    background: var(--app-muted-bg);
    border-bottom: 1px solid var(--app-border);
    font-size: 14px;
    font-weight: 600;
    color: var(--app-text);
}

.e-dialog .e-footer-content {
    background: var(--app-muted-bg);
    border-top: 1px solid var(--app-border);
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    padding: 10px 16px;
}

.app-dialog-body {
    font-size: 13px;
    color: var(--app-text-sub);
    margin: 0;
    padding: 4px 0;
}

/* ── Tooltip ────────────────────────────────────────────── */
.e-tooltip-wrap {
    font-size: 12px !important;
}

/* ── Scrollbar ──────────────────────────────────────────── */
.app-content::-webkit-scrollbar {
    width: 6px;
    height: 6px;
}

.app-content::-webkit-scrollbar-track {
    background: transparent;
}

.app-content::-webkit-scrollbar-thumb {
    background: #ccc;
    border-radius: 3px;
}

.app-content::-webkit-scrollbar-thumb:hover {
    background: #aaa;
}

/*  -- Override -------------*/

.e-primary {
    background: var(--app-accent) !important;
    border-color: var(--app-accent) !important;
    color: #fff !important;
    border-radius: 6px !important;
}

.e-primary:hover {
    background: var(--app-accent-hover) !important;
    border-color: var(--app-accent-hover) !important;
}

.e-grid .e-rowcell {
    padding: 5px 8px;
}

.e-pager a.e-active {
    background: var(--app-accent) !important;
}


.e-icon-button .e-btn-icon {
    margin-left: -0.5em;
    margin-right: -0.5em;
}



/*######## TOAST ########*/
/* ── Base overrides ─────────────────────────────── */
    .e-toast-container .e-toast {
        border-radius: 8px;
        border: none;
        border-left: 4px solid;
        box-shadow: none;
        font-family: inherit;
        padding: 8px 12px;
        min-width: 320px;
        max-width: 420px;
    }

    .e-toast-container .e-toast .e-toast-message .e-toast-content {
        padding: unset;
    }

    .e-toast-container .e-toast .e-toast-close-icon {
        font-size: 10px;
    }

    .e-toast-container .e-toast .e-toast-message .e-toast-title {
        font-size: 14px;
    }

    .e-toast-container .e-toast .e-toast-icon {
        font-size: 22px;
        height: 24px;
        margin-right: 8px;
    }

    .e-toast-container .e-toast .e-toast-title {
        font-weight: 500;
        font-size: 14px;
    }

    .e-toast-container .e-toast .e-toast-content {
        font-size: 13px;
        opacity: 0.85;
    }

    /* ── Success ────────────────────────────────────── */
    .e-toast-container .e-toast.e-toast-success {
        background: #eaf3de;
        border-color: #3B6D11;
        color: #27500A;
    }

    .e-toast-container .e-toast.e-toast-success .e-toast-title,
    .e-toast-container .e-toast.e-toast-success .e-toast-icon,
    .e-toast-container .e-toast.e-toast-success .e-toast-close-icon {
        color: #27500A;
    }

    /* ── Danger ─────────────────────────────────────── */
    .e-toast-container .e-toast.e-toast-danger {
        background: #fcebeb;
        border-color: #A32D2D;
        color: #791F1F;
    }

    .e-toast-container .e-toast.e-toast-danger .e-toast-title,
    .e-toast-container .e-toast.e-toast-danger .e-toast-icon,
    .e-toast-container .e-toast.e-toast-danger .e-toast-close-icon {
        color: #791F1F;
    }

    /* ── Info ───────────────────────────────────────── */
    .e-toast-container .e-toast.e-toast-info {
        background: #e6f1fb;
        border-color: #185FA5;
        color: #0C447C;
    }

    .e-toast-container .e-toast.e-toast-info .e-toast-title,
    .e-toast-container .e-toast.e-toast-info .e-toast-icon,
    .e-toast-container .e-toast.e-toast-info .e-toast-close-icon {
        color: #0C447C;
    }

    /* ── Warning ────────────────────────────────────── */
    .e-toast-container .e-toast.e-toast-warning {
        background: #faeeda;
        border-color: #854F0B;
        color: #633806;
    }

    .e-toast-container .e-toast.e-toast-warning .e-toast-title,
    .e-toast-container .e-toast.e-toast-warning .e-toast-icon,
    .e-toast-container .e-toast.e-toast-warning .e-toast-close-icon {
        color: #633806;
    }

    /* ── Secondary ──────────────────────────────────── */
    .e-toast-container .e-toast.e-toast-secondary {
        background: #f1efe8;
        border-color: #5F5E5A;
        color: #444441;
    }

    .e-toast-container .e-toast.e-toast-secondary .e-toast-title,
    .e-toast-container .e-toast.e-toast-secondary .e-toast-icon,
    .e-toast-container .e-toast.e-toast-secondary .e-toast-close-icon {
        color: #444441;
    }

    /* ── Primary / Purple (matches your sidebar accent) */
    .e-toast-container .e-toast.e-toast-primary {
        background: #eeedfe;
        border-color: #534AB7;
        color: #3C3489;
    }

    .e-toast-container .e-toast.e-toast-primary .e-toast-title,
    .e-toast-container .e-toast.e-toast-primary .e-toast-icon,
    .e-toast-container .e-toast.e-toast-primary .e-toast-close-icon {
        color: #3C3489;
    }

    /* ── Progress bar ───────────────────────────────── */
    .e-toast-container .e-toast .e-toast-progress {
        height: 3px;
        border-radius: 0 0 8px 8px;
        opacity: 0.4;
    }
    /*######### END TOAST ###########*/

/*########## FORM ##########*/
/* ── Page Shell ── */
.form-page {
    padding: 14px 14px 5px;
    background: var(--app-page-bg);
}

/* ── Page Header ── */
.form-page-header {
    display: flex;
    align-items: center;
    margin-bottom: 8px;
}

.header-left {
    display: flex;
    align-items: center;
    gap: 12px;
}

.back-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: var(--app-radius);
    background: var(--app-card);
    border: 1px solid var(--app-border);
    color: var(--app-text-sub);
    text-decoration: none;
    transition: background var(--app-transition), border-color var(--app-transition);
    flex-shrink: 0;
}

    .back-link:hover {
        background: var(--app-banner-bg);
        border-color: var(--app-accent);
        color: var(--app-accent);
    }

    .back-link .e-icons {
        font-size: 14px;
    }

.form-page-title {
    margin: 0;
    font-size: 20px;
    font-weight: 700;
    color: var(--app-text);
    letter-spacing: -0.3px;
}

.form-page-subtitle {
    margin: 2px 0 0;
    font-size: 13px;
    color: var(--app-text-muted);
}

/* ── Form Card ── */
.form-card {
    background: var(--app-card);
    border-radius: 12px;
    border: 1px solid var(--app-border);
    box-shadow: var(--app-shadow);
    overflow: hidden;
}

/* ── Section ── */
.form-section {
    padding: 14px;
}

.section-header {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    /*margin-bottom: 8px;*/
}

.section-icon {
    width: 38px;
    height: 38px;
    border-radius: var(--app-radius);
    background: var(--app-banner-bg);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

    .section-icon .e-icons {
        color: var(--app-accent);
        font-size: 17px;
    }

.section-icon--alt {
    background: #e0f2fe;
}

    .section-icon--alt .e-icons {
        color: #0369a1;
    }

.section-title {
    margin: 0;
    font-size: 15px;
    font-weight: 600;
    color: var(--app-text);
}

.section-desc {
    margin: 3px 0 0;
    font-size: 12.5px;
    color: var(--app-text-muted);
}

.section-divider {
    height: 1px;
    background: var(--app-border-light);
    margin: 0 32px;
}

/* ── Form Body ── */
.form-body {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

/* SfDataForm tweaks */
.e-data-form .e-form-label {
    font-size: 13px;
    font-weight: 600;
    color: var(--app-text-sub);
}

.e-data-form .e-input-group,
.e-data-form .e-control-wrapper {
    border: 1px solid var(--app-border) !important;
    border-radius: 7px !important;
    background: var(--app-muted-bg) !important;
    height: 38px;
/*    padding: 0 10px;*/
    transition: border-color var(--app-transition), box-shadow var(--app-transition);
}

    .e-data-form .e-input-group:focus-within,
    .e-data-form .e-control-wrapper:focus-within {
        border-color: var(--app-accent) !important;
        box-shadow: 0 0 0 3px rgba(124, 92, 191, .12) !important;
        background: var(--app-card) !important;
    }

    .e-data-form .e-input-group.e-error {
        border-color: var(--app-danger) !important;
    }

.e-data-form textarea.e-input {
    min-height: 80px;
    resize: vertical;
}

.e-data-form .e-form-container {
    padding: 0;
}

/* required star */
.required {
    color: var(--app-danger);
    margin-left: 2px;
}

/* ── App Tabs ── */
.app-tabs {
    display: flex;
    gap: var(--app-gap);
    border-bottom: 1px solid var(--app-border);
    padding-bottom: 0;
    overflow-x: auto;
}

.app-tab {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 9px 16px;
    font-size: 13px;
    font-weight: 500;
    color: var(--app-text-muted);
    background: transparent;
    border: none;
    border-bottom: 2px solid transparent;
    cursor: pointer;
    transition: color var(--app-transition), border-color var(--app-transition);
    white-space: nowrap;
}

    .app-tab:hover {
        color: var(--app-text-sub);
    }

.app-tab--active {
    color: var(--app-accent);
    border-bottom-color: var(--app-accent);
    font-weight: 600;
}

.app-tab-icon {
    font-size: 14px;
}

.app-tab-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    border-radius: 20px;
    background: var(--app-accent);
    color: var(--app-card);
    font-size: 10px;
    font-weight: 700;
}

/* ── App Panel ── */
.app-panel {
    border: 1px solid var(--app-border);
    border-radius: 10px;
    overflow: hidden;
}

.app-panel-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 18px;
    background: var(--app-muted-bg);
    border-bottom: 1px solid var(--app-border);
}

.app-panel-meta {
    display: flex;
    align-items: center;
    gap: 12px;
}

.app-panel-icon {
    font-size: 18px;
    color: var(--app-accent);
}

.app-panel-title {
    font-size: 13.5px;
    font-weight: 600;
    color: var(--app-text);
}

.app-panel-desc {
    font-size: 12px;
    color: var(--app-text-muted);
    margin-top: 1px;
}

.select-all-btn {
    font-size: 12.5px;
    font-weight: 500;
    color: var(--app-accent);
    background: var(--app-banner-bg);
    border: none;
    border-radius: 6px;
    padding: 6px 12px;
    cursor: pointer;
    transition: background var(--app-transition);
}

    .select-all-btn:hover {
        background: var(--app-banner-border);
    }


/* ── Form Footer ── */
.form-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 8px 14px;
    border-top: 1px solid var(--app-border-light);
    background: var(--app-muted-bg);
}

.footer-right {
    display: flex;
    gap: 6px;
    align-items: center;
    justify-content: flex-end;
}

.btn-cancel.e-btn {
    background: transparent !important;
    border: 1px solid var(--app-border) !important;
    color: var(--app-text-muted) !important;
    border-radius: 7px !important;
    font-weight: 500;
}

    .btn-cancel.e-btn:hover {
        background: var(--app-muted-bg) !important;
        color: var(--app-text-sub) !important;
    }

.btn-secondary.e-btn {
    background: var(--app-card) !important;
    border: 1px solid var(--app-border) !important;
    color: var(--app-text-sub) !important;
    border-radius: 7px !important;
    height: 38px;
    font-weight: 500;
}

    .btn-secondary.e-btn:hover {
        background: var(--app-muted-bg) !important;
        border-color: var(--app-text-muted) !important;
    }

.btn-primary.e-btn {
    background: var(--app-accent) !important;
    border-color: var(--app-accent) !important;
    color: var(--app-card) !important;
    border-radius: 7px !important;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
}

    .btn-primary.e-btn:hover {
        background: var(--app-accent-hover) !important;
        border-color: var(--app-accent-hover) !important;
    }

.btn-icon {
    font-size: 14px;
}



/* ── Shared disabled state for all button variants ── */
.btn-cancel.e-btn.e-disabled,
.btn-cancel.e-btn:disabled,
.btn-cancel.e-btn[disabled],
.btn-secondary.e-btn.e-disabled,
.btn-secondary.e-btn:disabled,
.btn-secondary.e-btn[disabled],
.btn-primary.e-btn.e-disabled,
.btn-primary.e-btn:disabled,
.btn-primary.e-btn[disabled] {
    cursor: not-allowed !important;
    opacity: 0.8;
    pointer-events: none;
}

/* ── field-input (for Status template) ── */
.field-input.e-control-wrapper {
    border: 1px solid var(--app-border) !important;
    border-radius: 7px !important;
    background: var(--app-muted-bg) !important;
    height: 38px;
}

    .field-input.e-control-wrapper:focus-within {
        border-color: var(--app-accent) !important;
        box-shadow: 0 0 0 3px rgba(124, 92, 191, .12) !important;
    }

.app-icon-tab {
    padding: 4px;
    border-radius: 9px;
}

.app-icon {
    width: 35px;
    height: 35px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 4px;
}

/* ── Responsive ── */
@media (max-width: 768px) {
    .form-section {
        padding: 14px;
    }

    .permissions-grid {
        grid-template-columns: 1fr;
    }

    .form-footer {
        padding: 16px 18px;
        flex-direction: column;
        gap: 12px;
        align-items: stretch;
    }

    .footer-right {
        justify-content: flex-end;
    }

    .app-panel-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
    }
}
/*########## END FORM ######*/


.e-input-group {
    align-items: center;
}

.e-data-form .e-label-position-top {
    margin-top: 12px;
}