/* Global modernization for non-monitor module subpages.
 * Scope: body.module-pages-modern only.
 * Safety: visual layer only, no JS/PHP/protocol behavior changes.
 */

.module-pages-modern {
    --sf-card-bg: #ffffff;
    --sf-card-border: #dde4ec;
    --sf-card-shadow: 0 10px 20px rgba(28, 39, 50, 0.12);
    --sf-text-strong: #2f3b47;
    --sf-text-muted: #5f6d79;
}

.module-pages-modern .page-content .page-title {
    color: var(--sf-text-strong);
    margin-bottom: 14px;
}

.module-pages-modern .page-content .page-title small {
    color: #677584;
    font-weight: 500;
}

.module-pages-modern .page-content .heading-bar {
    border-top: 1px solid var(--sf-card-border);
    border-bottom: 1px solid var(--sf-card-border);
    background: #f8fafd;
}

.module-pages-modern .page-content .heading-bar .form-inline label {
    color: #4e5d6c;
    font-weight: 600;
}

.module-pages-modern .page-content #RefTm {
    color: var(--sf-color-accent);
    font-weight: 700;
}

.module-pages-modern .page-content .heading-bar .form-inline .form-control {
    border: 1px solid #d2dbe5;
    border-radius: 8px !important;
}

.module-pages-modern .page-content .portlet > .portlet-title {
    min-height: 52px;
    padding: 12px 16px;
    border-bottom: 1px solid #e7edf3;
    background: linear-gradient(180deg, #ffffff 0%, #fbfdff 100%);
}

.module-pages-modern .page-content .portlet > .portlet-title > .caption > .caption-subject {
    font-size: 16px;
    font-weight: 700;
    letter-spacing: 0.1px;
}

.module-pages-modern .page-content .portlet > .portlet-title > .caption .caption-helper {
    color: #708093;
}

.module-pages-modern .page-content .portlet > .portlet-body {
    padding: 12px 14px;
}

.module-pages-modern .page-content .portlet > .portlet-body.no-space {
    padding: 8px 14px 10px 14px;
}

.module-pages-modern .page-content .form-body {
    background: #ffffff;
}

.module-pages-modern .page-content .form-body .mb-3 {
    border-bottom: 1px dashed #e6edf4;
    padding-top: 4px;
    padding-bottom: 8px;
}

.module-pages-modern .page-content .form-body .mb-3.last {
    border-bottom: 0;
}

.module-pages-modern .page-content .form-label {
    color: #3f5164;
    font-weight: 700;
}

.module-pages-modern .page-content .para-comm {
    color: #6a7d90;
}

.module-pages-modern .page-content input.form-control,
.module-pages-modern .page-content select.form-control,
.module-pages-modern .page-content textarea.form-control,
.module-pages-modern .page-content .input-inline.form-control {
    border: 1px solid #d0d9e4;
    border-radius: 8px !important;
    background: #ffffff;
    color: #334455;
}

.module-pages-modern .page-content input.form-control:focus,
.module-pages-modern .page-content select.form-control:focus,
.module-pages-modern .page-content textarea.form-control:focus {
    border-color: #8fa7bf;
    box-shadow: 0 0 0 2px rgba(36, 89, 143, 0.12);
}

.module-pages-modern .page-content input[type="checkbox"],
.module-pages-modern .page-content input[type="radio"] {
    accent-color: var(--sf-color-accent);
}

.module-pages-modern .page-content .jtable-main-container {
    border: 1px solid #dbe4ef;
    border-radius: 12px !important;
    box-shadow: 0 6px 14px rgba(41, 57, 74, 0.1);
    overflow: auto;
}

.module-pages-modern .page-content .jtable-main-container > table.jtable {
    border-collapse: separate;
    border-spacing: 0;
}

.module-pages-modern .page-content .jtable-main-container > table.jtable > thead th {
    background: linear-gradient(180deg, #f8fbff 0%, #eef3f9 100%);
    color: #344354;
    font-weight: 700;
    font-size: 13px;
    border-bottom: 1px solid #d7e0eb;
    border-right: 1px solid #e4ebf3;
    padding: 10px 12px;
}

.module-pages-modern .page-content .jtable-main-container > table.jtable > thead th:last-child {
    border-right: 0;
}

.module-pages-modern .page-content .jtable-main-container > table.jtable > tbody > tr > td {
    padding: 8px 10px;
    font-size: 13px;
    font-weight: 500;
    color: #334252;
    border-top: 1px solid #e8eef5;
    border-right: 1px solid #eef3f8;
    background: #ffffff;
    line-height: 1.35;
}

.module-pages-modern .page-content .jtable-main-container > table.jtable > tbody > tr > td:last-child {
    border-right: 0;
}

.module-pages-modern .page-content .jtable-main-container > table.jtable > tbody > tr:nth-child(even) > td {
    background: #fbfdff;
}

.module-pages-modern .page-content .jtable-main-container > table.jtable > tbody > tr:hover > td {
    background: #f2f7ff;
}

.module-pages-modern .page-content .jtable-main-container > table.jtable > tbody > tr > td:first-child {
    text-align: center;
    font-weight: 700;
    color: #5a697a;
}

.module-pages-modern .page-content .form-actions {
    margin-top: 8px;
    margin-bottom: 0;
    border-top: 1px solid #e8eef5;
    padding: 10px 0 0 0;
    background: transparent !important;
}

.module-pages-modern .page-content .form-actions .btn {
    border-radius: 8px !important;
    font-weight: 700;
    padding: 6px 12px;
}

.module-pages-modern .page-content .form-actions .btn + .btn {
    margin-left: 6px;
}

.module-pages-modern .modal-content {
    border: 1px solid #dbe3ec;
    border-radius: 12px !important;
    box-shadow: 0 16px 32px rgba(22, 32, 44, 0.2);
}

.module-pages-modern .modal-header {
    border-bottom: 1px solid #e7edf3;
    background: #f8fbff;
}

.module-pages-modern .modal-title {
    color: #2f3b47;
    font-weight: 700;
}

/* 2026-03-09: Modal form label — modals sit outside .page-content so need separate rule */
.module-pages-modern .modal-body .form-label {
    color: #3f5164;
    font-weight: 700;
    margin-bottom: 6px;
}

/* jTable footer/pagination polish */
.module-pages-modern .page-content div.jtable-main-container > div.jtable-bottom-panel {
    border-top: 1px solid #dfe7f0;
    background: linear-gradient(180deg, #fbfdff 0%, #f4f8fc 100%);
    padding: 8px 10px;
}

.module-pages-modern .page-content div.jtable-main-container > div.jtable-bottom-panel .jtable-page-list .jtable-page-number,
.module-pages-modern .page-content div.jtable-main-container > div.jtable-bottom-panel .jtable-page-list .jtable-page-number-first,
.module-pages-modern .page-content div.jtable-main-container > div.jtable-bottom-panel .jtable-page-list .jtable-page-number-last,
.module-pages-modern .page-content div.jtable-main-container > div.jtable-bottom-panel .jtable-page-list .jtable-page-number-previous,
.module-pages-modern .page-content div.jtable-main-container > div.jtable-bottom-panel .jtable-page-list .jtable-page-number-next {
    border-radius: 6px;
    border: 1px solid #d4deea;
    background: #ffffff;
    color: #435466;
    font-weight: 600;
}

.module-pages-modern .page-content div.jtable-main-container > div.jtable-bottom-panel .jtable-page-list .jtable-page-number-active {
    border-radius: 6px;
    border: 1px solid #b8c9dc;
    background: #eaf2fb;
    color: #2d4660;
    font-weight: 700;
}

.module-pages-modern .page-content div.jtable-main-container > div.jtable-bottom-panel span.jtable-page-size-change select,
.module-pages-modern .page-content div.jtable-main-container > div.jtable-bottom-panel span.jtable-goto-page input[type=text],
.module-pages-modern .page-content div.jtable-main-container > div.jtable-bottom-panel span.jtable-goto-page select {
    border: 1px solid #cdd9e5;
    border-radius: 7px !important;
    background: #ffffff;
    color: #35495d;
    font-weight: 600;
}

/* IP List module: file-list counters + upload modal */
.module-iplist .page-content #IpFWCnt,
.module-iplist .page-content #IpFBCnt {
    display: inline-block;
    min-width: 36px;
    padding: 2px 8px;
    border: 1px solid #cfe2d5;
    border-radius: 999px;
    background: #f4fbf6;
    color: #2f7a56;
    font-weight: 700;
    text-align: center;
}

.module-iplist .page-content #IpFWCnt,
.module-iplist .page-content #IpFBCnt {
    margin-right: 4px;
}

.module-iplist #DlgIpFImp .modal-body .sf-file-upload,
.module-admin #DlgCfgImp .modal-body .sf-file-upload,
.module-ddos #DlgCcDnsF .modal-body .sf-file-upload,
.module-ips #DlgOutDnsF .modal-body .sf-file-upload,
.module-ddos #DlgOutDnsF .modal-body .sf-file-upload,
.module-dns #DlgDnsFImp .modal-body .sf-file-upload {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
}

.module-iplist #DlgIpFImp .modal-body .sf-file-upload-input,
.module-admin #DlgCfgImp .modal-body .sf-file-upload-input,
.module-ddos #DlgCcDnsF .modal-body .sf-file-upload-input,
.module-ips #DlgOutDnsF .modal-body .sf-file-upload-input,
.module-ddos #DlgOutDnsF .modal-body .sf-file-upload-input,
.module-dns #DlgDnsFImp .modal-body .sf-file-upload-input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

.module-iplist #DlgIpFImp .modal-body .sf-file-upload-btn,
.module-admin #DlgCfgImp .modal-body .sf-file-upload-btn,
.module-ddos #DlgCcDnsF .modal-body .sf-file-upload-btn,
.module-ips #DlgOutDnsF .modal-body .sf-file-upload-btn,
.module-ddos #DlgOutDnsF .modal-body .sf-file-upload-btn,
.module-dns #DlgDnsFImp .modal-body .sf-file-upload-btn {
    margin: 0;
}

.module-iplist #DlgIpFImp .modal-body .sf-file-upload-name,
.module-admin #DlgCfgImp .modal-body .sf-file-upload-name,
.module-ddos #DlgCcDnsF .modal-body .sf-file-upload-name,
.module-ips #DlgOutDnsF .modal-body .sf-file-upload-name,
.module-ddos #DlgOutDnsF .modal-body .sf-file-upload-name,
.module-dns #DlgDnsFImp .modal-body .sf-file-upload-name {
    flex: 1;
    min-width: 0;
    height: 36px;
    line-height: 36px;
    padding: 0 10px;
    border: 1px solid #cfd9e5;
    border-radius: 10px;
    background: linear-gradient(180deg, #ffffff 0%, #f5f9fd 100%);
    color: #5b6d80;
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.module-iplist #DlgIpFImp .modal-body .sf-file-upload-btn,
.module-iplist #DlgIpFImp .modal-body .sf-file-upload-submit,
.module-admin #DlgCfgImp .modal-body .sf-file-upload-btn,
.module-admin #DlgCfgImp .modal-body .sf-file-upload-submit,
.module-ddos #DlgCcDnsF .modal-body .sf-file-upload-btn,
.module-ddos #DlgCcDnsF .modal-body .sf-file-upload-submit,
.module-ips #DlgOutDnsF .modal-body .sf-file-upload-btn,
.module-ips #DlgOutDnsF .modal-body .sf-file-upload-submit,
.module-ddos #DlgOutDnsF .modal-body .sf-file-upload-btn,
.module-ddos #DlgOutDnsF .modal-body .sf-file-upload-submit,
.module-dns #DlgDnsFImp .modal-body .sf-file-upload-btn,
.module-dns #DlgDnsFImp .modal-body .sf-file-upload-submit {
    min-width: 96px;
    height: 36px;
    border: 1px solid #c4d3e2 !important;
    border-left-width: 1px !important;
    border-left-color: #c4d3e2 !important;
    border-radius: 10px !important;
    background: linear-gradient(180deg, #ffffff 0%, #eef4fa 100%) !important;
    color: #2f4458 !important;
    font-weight: 700;
    box-shadow: 0 1px 2px rgba(20, 70, 100, 0.08);
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.15s ease;
}

.module-iplist #DlgIpFImp .modal-body .sf-file-upload-btn:hover,
.module-iplist #DlgIpFImp .modal-body .sf-file-upload-submit:hover,
.module-admin #DlgCfgImp .modal-body .sf-file-upload-btn:hover,
.module-admin #DlgCfgImp .modal-body .sf-file-upload-submit:hover,
.module-ddos #DlgCcDnsF .modal-body .sf-file-upload-btn:hover,
.module-ddos #DlgCcDnsF .modal-body .sf-file-upload-submit:hover,
.module-ips #DlgOutDnsF .modal-body .sf-file-upload-btn:hover,
.module-ips #DlgOutDnsF .modal-body .sf-file-upload-submit:hover,
.module-ddos #DlgOutDnsF .modal-body .sf-file-upload-btn:hover,
.module-ddos #DlgOutDnsF .modal-body .sf-file-upload-submit:hover,
.module-dns #DlgDnsFImp .modal-body .sf-file-upload-btn:hover,
.module-dns #DlgDnsFImp .modal-body .sf-file-upload-submit:hover {
    border-color: #9fb4c8 !important;
    box-shadow: 0 3px 10px rgba(20, 70, 100, 0.16);
}

.module-iplist #DlgIpFImp .modal-body .sf-file-upload-btn:focus,
.module-iplist #DlgIpFImp .modal-body .sf-file-upload-submit:focus,
.module-admin #DlgCfgImp .modal-body .sf-file-upload-btn:focus,
.module-admin #DlgCfgImp .modal-body .sf-file-upload-submit:focus,
.module-ddos #DlgCcDnsF .modal-body .sf-file-upload-btn:focus,
.module-ddos #DlgCcDnsF .modal-body .sf-file-upload-submit:focus,
.module-ips #DlgOutDnsF .modal-body .sf-file-upload-btn:focus,
.module-ips #DlgOutDnsF .modal-body .sf-file-upload-submit:focus,
.module-ddos #DlgOutDnsF .modal-body .sf-file-upload-btn:focus,
.module-ddos #DlgOutDnsF .modal-body .sf-file-upload-submit:focus,
.module-dns #DlgDnsFImp .modal-body .sf-file-upload-btn:focus,
.module-dns #DlgDnsFImp .modal-body .sf-file-upload-submit:focus {
    outline: none;
    border-color: #6f8eaa !important;
    box-shadow: 0 0 0 2px rgba(113, 143, 161, 0.24);
}

.module-iplist #DlgIpFImp .modal-body .sf-file-upload-btn:active,
.module-iplist #DlgIpFImp .modal-body .sf-file-upload-submit:active,
.module-admin #DlgCfgImp .modal-body .sf-file-upload-btn:active,
.module-admin #DlgCfgImp .modal-body .sf-file-upload-submit:active,
.module-ddos #DlgCcDnsF .modal-body .sf-file-upload-btn:active,
.module-ddos #DlgCcDnsF .modal-body .sf-file-upload-submit:active,
.module-ips #DlgOutDnsF .modal-body .sf-file-upload-btn:active,
.module-ips #DlgOutDnsF .modal-body .sf-file-upload-submit:active,
.module-ddos #DlgOutDnsF .modal-body .sf-file-upload-btn:active,
.module-ddos #DlgOutDnsF .modal-body .sf-file-upload-submit:active,
.module-dns #DlgDnsFImp .modal-body .sf-file-upload-btn:active,
.module-dns #DlgDnsFImp .modal-body .sf-file-upload-submit:active {
    transform: translateY(1px);
}

.module-iplist #DlgIpFImp .modal-body .sf-file-upload-submit,
.module-admin #DlgCfgImp .modal-body .sf-file-upload-submit,
.module-ddos #DlgCcDnsF .modal-body .sf-file-upload-submit,
.module-ips #DlgOutDnsF .modal-body .sf-file-upload-submit,
.module-ddos #DlgOutDnsF .modal-body .sf-file-upload-submit,
.module-dns #DlgDnsFImp .modal-body .sf-file-upload-submit {
    margin-top: 10px;
    min-width: 110px;
}

/* 2026-03-09: Generalized from admin-only to all module pages */
.module-pages-modern .modal-body .sf-file-upload-hint {
    display: inline-block;
    margin-top: 6px;
    color: #5b6d80;
    font-size: 12px;
}

@media (max-width: 767px) {
    .module-iplist #DlgIpFImp .modal-body .sf-file-upload,
    .module-admin #DlgCfgImp .modal-body .sf-file-upload,
    .module-ddos #DlgCcDnsF .modal-body .sf-file-upload,
    .module-ips #DlgOutDnsF .modal-body .sf-file-upload,
    .module-ddos #DlgOutDnsF .modal-body .sf-file-upload,
    .module-dns #DlgDnsFImp .modal-body .sf-file-upload {
        flex-wrap: wrap;
    }

    .module-iplist #DlgIpFImp .modal-body .sf-file-upload-name,
    .module-admin #DlgCfgImp .modal-body .sf-file-upload-name,
    .module-ddos #DlgCcDnsF .modal-body .sf-file-upload-name,
    .module-ips #DlgOutDnsF .modal-body .sf-file-upload-name,
    .module-ddos #DlgOutDnsF .modal-body .sf-file-upload-name,
    .module-dns #DlgDnsFImp .modal-body .sf-file-upload-name {
        width: 100%;
    }
}

/* IP List module: GEO Filter configuration deep polish */
.module-iplist .page-content #CountrySearch {
    border: 1px solid #cdd8e4;
    border-radius: 8px !important;
}

.module-iplist .page-content #SelectedCount {
    border: 1px solid #c7d7ea;
    border-radius: 999px;
    background: #edf4fc !important;
    color: #2e4f6f !important;
    font-weight: 700;
    padding: 4px 10px;
}

.module-iplist .page-content #GeoDbStatus,
.module-iplist .page-content #GeoRangeCount {
    border-radius: 999px;
    padding: 4px 10px;
    font-weight: 700;
}

.module-iplist .page-content #btnLoadGeoDb {
    border-radius: 8px !important;
    font-weight: 700;
}

.module-iplist .page-content #CountryGrid {
    border: 1px solid #dce5ef;
    border-radius: 10px !important;
    background: #f9fbfe;
    padding: 10px 8px 4px 8px;
}

.module-iplist .page-content #CountryGrid .country-item {
    margin-bottom: 8px;
}

.module-iplist .page-content #CountryGrid .country-item > label {
    display: flex;
    align-items: center;
    gap: 6px;
    width: 100%;
    margin: 0;
    padding: 5px 8px;
    border: 1px solid #d8e1ec;
    border-radius: 8px;
    background: #ffffff;
    color: #425467;
    font-weight: 600;
}

.module-iplist .page-content #CountryGrid .country-item > label:hover {
    border-color: #c5d4e2;
    background: #f5f9fd;
}

.module-iplist .page-content #CountryGrid .country-item .country-code {
    color: #2f3f50;
    font-weight: 700;
    min-width: 18px;
}

.module-iplist .page-content #CountryGrid .country-item .country-name {
    color: #53687d;
}

/* GEO Filter color system: calm, readable, consistent */
.module-iplist .geo-filter-modern {
    --geo-neutral-bg: #5f6f82;
    --geo-danger-bg: #ba2e3b;
    --geo-success-bg: #1f8f5e;
    --geo-info-bg: #1c8db8;
    --geo-primary-bg: #2f7ecb;
    --geo-muted-bg: #6c7c8d;
}

.module-iplist .geo-filter-modern .badge {
    border-radius: 999px;
    padding: 4px 10px;
    font-weight: 700;
    letter-spacing: 0.1px;
    border: 1px solid transparent;
}

.module-iplist .geo-filter-modern .mt-radio-inline .mt-radio {
    margin-right: 8px;
}

.module-iplist .geo-filter-modern .geo-mode-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 30px;
    min-width: 86px;
    padding: 4px 12px;
    border: 1px solid #c8d6e3;
    border-radius: 999px;
    background: linear-gradient(180deg, #ffffff 0%, #edf4fb 100%);
    color: #35506a;
    font-weight: 700;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.15s ease;
}

.module-iplist .geo-filter-modern .mt-radio > input[type="radio"]:checked + .geo-mode-chip {
    border-color: #8aa3bb;
    box-shadow: 0 0 0 2px rgba(113, 143, 161, 0.2);
    color: #22384f;
}

.module-iplist .geo-filter-modern #GeoModeOff:checked + .geo-mode-chip {
    background: linear-gradient(180deg, #f8fbff 0%, #e9f0f7 100%);
}

.module-iplist .geo-filter-modern #GeoModeBlack:checked + .geo-mode-chip {
    background: linear-gradient(180deg, #fff7f8 0%, #f7e8ea 100%);
    border-color: #c6949a;
    color: #7b2e36;
}

.module-iplist .geo-filter-modern #GeoModeWhite:checked + .geo-mode-chip {
    background: linear-gradient(180deg, #f7fffb 0%, #e8f6ef 100%);
    border-color: #8cbda6;
    color: #1f6a49;
}

.module-iplist .geo-filter-modern .badge.bg-secondary {
    background: var(--geo-neutral-bg) !important;
    color: #ffffff !important;
    border-color: #546375 !important;
}

.module-iplist .geo-filter-modern .badge.bg-danger {
    background: var(--geo-danger-bg) !important;
    color: #ffffff !important;
    border-color: #a32935 !important;
}

.module-iplist .geo-filter-modern .badge.bg-success {
    background: var(--geo-success-bg) !important;
    color: #ffffff !important;
    border-color: #17774e !important;
}

.module-iplist .geo-filter-modern .badge.bg-info {
    background: var(--geo-info-bg) !important;
    color: #ffffff !important;
    border-color: #19789d !important;
}

.module-iplist .geo-filter-modern .badge.bg-primary {
    background: var(--geo-primary-bg) !important;
    color: #ffffff !important;
    border-color: #276cae !important;
}

.module-iplist .geo-filter-modern #GeoDbStatus.label-success,
.module-iplist .geo-filter-modern #GeoDbStatus.label-info,
.module-iplist .geo-filter-modern #GeoDbStatus.label-danger {
    color: #ffffff !important;
}

.module-iplist .geo-filter-modern #GeoDbStatus.label-success {
    background: var(--geo-success-bg) !important;
    border-color: #17774e !important;
}

.module-iplist .geo-filter-modern #GeoDbStatus.label-info {
    background: var(--geo-info-bg) !important;
    border-color: #19789d !important;
}

.module-iplist .geo-filter-modern #GeoDbStatus.label-danger {
    background: var(--geo-danger-bg) !important;
    border-color: #a32935 !important;
}

.module-iplist .geo-filter-modern .geo-premium-btn {
    min-height: 34px;
    margin: 0 6px 6px 0;
    border: 1px solid #c4d3e2 !important;
    border-radius: 10px !important;
    background: linear-gradient(180deg, #ffffff 0%, #eef4fa 100%) !important;
    color: #2f4458 !important;
    font-weight: 700;
    box-shadow: 0 1px 2px rgba(20, 70, 100, 0.08);
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.15s ease;
}

.module-iplist .geo-filter-modern .geo-premium-btn:hover {
    border-color: #9fb4c8 !important;
    box-shadow: 0 3px 10px rgba(20, 70, 100, 0.16);
}

.module-iplist .geo-filter-modern .geo-premium-btn:focus {
    outline: none;
    border-color: #6f8eaa !important;
    box-shadow: 0 0 0 2px rgba(113, 143, 161, 0.24);
}

.module-iplist .geo-filter-modern .geo-premium-btn:active {
    transform: translateY(1px);
}

.module-iplist .geo-filter-modern .geo-premium-btn[disabled],
.module-iplist .geo-filter-modern .geo-premium-btn.disabled {
    opacity: 0.7;
    box-shadow: none;
}

.module-iplist .geo-filter-modern #SelectedCount {
    border: 1px solid #b7cde4;
    background: #e8f2fc !important;
    color: #2b5376 !important;
}

/* Log module: tab shell + filter panel + counters */
.module-log #TabLog {
    border: 1px solid #dbe4ef;
    border-radius: 12px !important;
    background: #f7fafd;
    box-shadow: 0 6px 14px rgba(41, 57, 74, 0.08);
    padding: 10px;
}

.module-log #TabLog.ui-tabs {
    padding: 10px;
}

.module-log #TabLog .ui-tabs-nav {
    border: 1px solid #d8e2ee;
    border-radius: 10px !important;
    background: linear-gradient(180deg, #f5f9fd 0%, #edf3f9 100%);
    padding: 4px;
}

.module-log #TabLog .ui-tabs-nav li {
    border: 0;
    border-radius: 8px !important;
    margin: 0 6px 0 0;
    background: transparent;
}

.module-log #TabLog .ui-tabs-nav li a {
    color: #526477;
    font-size: 13px;
    font-weight: 700;
    padding: 8px 12px;
}

.module-log #TabLog .ui-tabs-nav li.ui-tabs-active {
    background: #ffffff;
    border: 1px solid #d2dce8;
    box-shadow: 0 3px 8px rgba(35, 49, 65, 0.1);
}

.module-log #TabLog .ui-tabs-nav li.ui-tabs-active a {
    color: #2b3a4a;
}

.module-log #TabLog .ui-tabs-panel {
    border: 0;
    background: transparent;
    padding: 12px 4px 2px 4px;
}

.module-log .page-content #StartTm,
.module-log .page-content #EndTm,
.module-log .page-content #IpSrcStart,
.module-log .page-content #IpSrcEnd,
.module-log .page-content #IpDstStart,
.module-log .page-content #IpDstEnd,
.module-log .page-content #DstStartPort,
.module-log .page-content #DstEndPort,
.module-log .page-content #LogDataLst {
    border: 1px solid #ccd8e4;
    border-radius: 8px !important;
    background: #ffffff;
    color: #334455;
}

.module-log .page-content .cValueRad {
    display: inline-block;
    min-width: 30px;
    padding: 1px 7px;
    border: 1px solid #d8e1ec;
    border-radius: 999px;
    background: #f6f9fd;
    color: #45596d;
    font-weight: 700;
    text-align: center;
}

/* Admin module: Capture Packet top filter area */
.module-admin .page-content #idBtnRstInp,
.module-admin .page-content #idBtnCapStartBtn {
    border-radius: 8px !important;
    border: 1px solid #ccd7e3 !important;
    background: #f5f8fc !important;
    color: #3f5368 !important;
    font-weight: 700 !important;
}

.module-admin .page-content #idBtnRstInp:hover,
.module-admin .page-content #idBtnCapStartBtn:hover {
    border-color: #b8c8d9 !important;
    background: #edf3f9 !important;
}

.module-admin .page-content #idSrcStartIp,
.module-admin .page-content #idSrcEndIp,
.module-admin .page-content #idDstStartIp,
.module-admin .page-content #idDstEndIp,
.module-admin .page-content #SrcStartPort,
.module-admin .page-content #SrcEndPort,
.module-admin .page-content #DstStartPort,
.module-admin .page-content #DstEndPort,
.module-admin .page-content #idGwIp {
    border: 1px solid #d0d9e4;
    border-radius: 8px !important;
    background: #ffffff;
    color: #334455;
}

/* Generic top filter strips in module pages */
.module-pages-modern .page-content .portlet.margin-bottom-5 .portlet-body.fs-13 {
    font-size: 13px;
}

.module-pages-modern .page-content .portlet.margin-bottom-5 .portlet-body.fs-13 strong {
    color: var(--sf-text-strong);
    font-weight: 700;
}

.module-pages-modern .page-content .portlet.margin-bottom-5 .portlet-body.fs-13 .form-control.input-inline {
    border: 1px solid #cfd9e5;
    border-radius: 8px !important;
    background: #ffffff;
}

.module-pages-modern .page-content .portlet.margin-bottom-5 .portlet-body.fs-13 .float-end {
    color: #4f6275;
    font-weight: 600;
}

/* DDoS module: CC DNS tabs + top control strip polish */
.module-ddos #TabCcDns {
    border: 1px solid #dbe4ef;
    border-radius: 12px !important;
    background: #f7fafd;
    box-shadow: 0 6px 14px rgba(41, 57, 74, 0.08);
    padding: 10px;
}

.module-ddos #TabCcDns.ui-tabs {
    padding: 10px;
}

.module-ddos #TabCcDns .ui-tabs-nav {
    border: 1px solid #d8e2ee;
    border-radius: 10px !important;
    background: linear-gradient(180deg, #f5f9fd 0%, #edf3f9 100%);
    padding: 4px;
}

.module-ddos #TabCcDns .ui-tabs-nav li {
    border: 0;
    border-radius: 8px !important;
    margin: 0 6px 0 0;
    background: transparent;
}

.module-ddos #TabCcDns .ui-tabs-nav li a {
    color: #526477;
    font-size: 13px;
    font-weight: 700;
    padding: 8px 12px;
}

.module-ddos #TabCcDns .ui-tabs-nav li.ui-tabs-active {
    background: #ffffff;
    border: 1px solid #d2dce8;
    box-shadow: 0 3px 8px rgba(35, 49, 65, 0.1);
}

.module-ddos #TabCcDns .ui-tabs-nav li.ui-tabs-active a {
    color: #2b3a4a;
}

.module-ddos #TabCcDns .ui-tabs-panel {
    border: 0;
    background: transparent;
    padding: 12px 4px 2px 4px;
}

.module-ddos .page-content #CcDnsPmt,
.module-ddos .page-content #CcDnsLev {
    border: 1px solid #cdd9e5;
    border-radius: 8px !important;
    background: #ffffff;
    font-weight: 600;
}

.module-ddos .page-content #CcDnsCnt {
    display: inline-block;
    min-width: 34px;
    padding: 2px 8px;
    border: 1px solid #cfe2d5;
    border-radius: 999px;
    background: #f4fbf6;
    color: #2f7a56;
    font-weight: 700;
    text-align: center;
}

.module-ddos .page-content #CcDnsCnt + span {
    color: #607385;
}

/* Trusted Proxy form buttons: match premium action buttons */
.module-ddos .page-content .trusted-proxy-form-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
}

.module-ddos .page-content .trusted-proxy-form-actions > .btn.primary-stripe {
    border-left-width: 4px;
    border-radius: 8px !important;
    padding: 5px 10px;
    line-height: 1.2;
    font-weight: 600;
}

.module-ddos .page-content .ddos-ipmode-toggle {
    display: inline-flex;
    align-items: center;
    margin-right: 8px;
}

.module-ddos .page-content .ddos-ipmode-toggle > input[type="checkbox"] {
    margin-top: 0 !important;
    margin-right: 10px !important;
}

/* IPS/DDoS module: Outgoing DNS ACL tabs + top control strip polish */
.module-ips #TabOutDns,
.module-ddos #TabOutDns {
    border: 1px solid #dbe4ef;
    border-radius: 12px !important;
    background: #f7fafd;
    box-shadow: 0 6px 14px rgba(41, 57, 74, 0.08);
    padding: 10px;
}

.module-ips #TabOutDns.ui-tabs,
.module-ddos #TabOutDns.ui-tabs {
    padding: 10px;
}

.module-ips #TabOutDns .ui-tabs-nav,
.module-ddos #TabOutDns .ui-tabs-nav {
    border: 1px solid #d8e2ee;
    border-radius: 10px !important;
    background: linear-gradient(180deg, #f5f9fd 0%, #edf3f9 100%);
    padding: 4px;
}

.module-ips #TabOutDns .ui-tabs-nav li,
.module-ddos #TabOutDns .ui-tabs-nav li {
    border: 0;
    border-radius: 8px !important;
    margin: 0 6px 0 0;
    background: transparent;
}

.module-ips #TabOutDns .ui-tabs-nav li a,
.module-ddos #TabOutDns .ui-tabs-nav li a {
    color: #526477;
    font-size: 13px;
    font-weight: 700;
    padding: 8px 12px;
}

.module-ips #TabOutDns .ui-tabs-nav li.ui-tabs-active,
.module-ddos #TabOutDns .ui-tabs-nav li.ui-tabs-active {
    background: #ffffff;
    border: 1px solid #d2dce8;
    box-shadow: 0 3px 8px rgba(35, 49, 65, 0.1);
}

.module-ips #TabOutDns .ui-tabs-nav li.ui-tabs-active a,
.module-ddos #TabOutDns .ui-tabs-nav li.ui-tabs-active a {
    color: #2b3a4a;
}

.module-ips #TabOutDns .ui-tabs-panel,
.module-ddos #TabOutDns .ui-tabs-panel {
    border: 0;
    background: transparent;
    padding: 12px 4px 2px 4px;
}

.module-ips .page-content #OutDnsPmt,
.module-ips .page-content #OutDnsLev,
.module-ddos .page-content #OutDnsPmt,
.module-ddos .page-content #OutDnsLev {
    border: 1px solid #cdd9e5;
    border-radius: 8px !important;
    background: #ffffff;
    font-weight: 600;
}

.module-ips .page-content #OutDnsCnt,
.module-ddos .page-content #OutDnsCnt {
    display: inline-block;
    min-width: 34px;
    padding: 2px 8px;
    border: 1px solid #cfe2d5;
    border-radius: 999px;
    background: #f4fbf6;
    color: #2f7a56;
    font-weight: 700;
    text-align: center;
}

.module-ips .page-content #OutDnsCnt + span,
.module-ddos .page-content #OutDnsCnt + span {
    color: #607385;
}

@media (max-width: 1200px) {
    .module-pages-modern .page-content .portlet > .portlet-title > .actions {
        margin-top: 6px;
    }
}

@media (max-width: 991px) {
    .module-pages-modern .page-content .portlet > .portlet-title {
        padding: 10px 12px;
    }

    .module-pages-modern .page-content .portlet > .portlet-body,
    .module-pages-modern .page-content .portlet > .portlet-body.no-space {
        padding: 8px 10px 10px 10px;
    }

    .module-pages-modern .page-content .heading-bar .left-side,
    .module-pages-modern .page-content .heading-bar .right-side {
        float: none !important;
        width: 100%;
    }

    .module-pages-modern .page-content .heading-bar .right-side {
        margin-top: 6px;
    }

    .module-log #TabLog,
    .module-log #TabLog.ui-tabs,
    .module-ddos #TabCcDns,
    .module-ddos #TabCcDns.ui-tabs,
    .module-ips #TabOutDns,
    .module-ips #TabOutDns.ui-tabs,
    .module-ddos #TabOutDns,
    .module-ddos #TabOutDns.ui-tabs {
        padding: 8px;
    }

    .module-log #TabLog .ui-tabs-nav li a,
    .module-ddos #TabCcDns .ui-tabs-nav li a,
    .module-ips #TabOutDns .ui-tabs-nav li a,
    .module-ddos #TabOutDns .ui-tabs-nav li a {
        padding: 7px 10px;
    }
}
