/* SCARP desktop surfaces and controls. */
:root {
    --panel-radius: 14px;
    --control-radius: 8px;
}

.main-content { padding: 24px 28px; }
.page-header { gap: 16px; align-items: center; }
.page-title { font-size: 24px; font-weight: 650; letter-spacing: -0.6px; line-height: 1.25; }
.page > .checker-card-desc { max-width: 1200px; flex-shrink: 0; }

.nav-item[data-page="shadow-sessions"] .nav-badge-beta,
#page-shadow-sessions > .page-header > .nav-badge-beta {
    color: #fb923c;
    background: rgba(251, 146, 60, 0.14);
    border: 1px solid rgba(251, 146, 60, 0.35);
}

.checker-card,
.settings-card,
.hex-import-card {
    border-radius: var(--panel-radius);
    border-color: var(--border-light);
    background: var(--bg-card);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.025);
}

.checker-card { padding: 24px; gap: 20px; }
.checker-card-title { font-size: 16px; letter-spacing: -0.2px; }
.checker-card-desc { font-size: 13px; line-height: 1.65; }
.setting-label, .campaign-field { font-size: 14px; line-height: 1.5; }
.campaign-field > label, .campaign-field > span:first-child { color: var(--text-primary); font-weight: 500; }
.campaign-field { gap: 10px; }

.setting-input, .modal-input, .modal-select, .module-input, .module-select,
.custom-select-trigger {
    min-height: 48px;
    border-radius: var(--control-radius);
    border-color: var(--border-light);
    background: var(--bg-hover);
    padding: 12px 14px;
    font-size: 14px;
    line-height: 1.5;
    transition: border-color var(--transition), background var(--transition), box-shadow var(--transition);
}

.custom-select.pp-control .custom-select-trigger,
.custom-select.pl-control .custom-select-trigger { height: 48px; line-height: 1.5; }
.modal-textarea {
    border-radius: var(--control-radius);
    border-color: var(--border-light);
    background: var(--bg-hover);
    padding: 14px 16px;
    font-size: 14px;
    line-height: 1.7;
}

:is(.setting-input, .modal-input, .module-input, .modal-select, .module-select, .modal-textarea):focus {
    border-color: var(--text-muted);
    outline: none;
    box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.045);
}
.custom-select.open .custom-select-trigger { border-color: var(--text-muted); }
.custom-select-options { border-radius: var(--control-radius); padding: 6px; box-shadow: 0 12px 32px rgba(0, 0, 0, 0.35); }
.custom-select-option { border-radius: 5px; padding: 11px 12px; }
.custom-select-trigger:focus-visible, button:focus-visible, summary:focus-visible { outline: 2px solid var(--text-muted); outline-offset: 3px; }
.custom-checkbox:has(input:focus-visible) .checkmark { outline: 2px solid var(--text-muted); outline-offset: 3px; }

.btn-primary, .btn-secondary {
    min-height: 42px;
    border-radius: var(--control-radius);
    padding: 10px 18px;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: -0.1px;
}
.btn-primary { box-shadow: 0 2px 0 rgba(255, 255, 255, 0.08); }
.btn-secondary { border-color: var(--border-light); }
.page:not(#page-accounts):not(#page-proxy) .tool-btn-text { min-height: 42px; border-radius: var(--control-radius); padding: 10px 14px; }
.campaign-check { font-size: 13px; line-height: 1.6; }
.modal { border-radius: var(--panel-radius); border-color: var(--border-light); }
.modal-header, .modal-footer { padding: 20px 24px; }
.modal-body { padding: 24px; }
.modal-close { display: grid; place-items: center; border: 1px solid transparent; border-radius: var(--control-radius); }
.modal-close:hover { background: var(--bg-hover); }
.modal-close:focus-visible { outline: none; border-color: var(--text-muted); background: var(--bg-hover); }

.modal :is(.radio-row, .code-phone-row, .code-value-row, .code-preview) {
    background: var(--bg-hover);
    border-color: var(--border-light);
    border-radius: var(--control-radius);
}
.modal .radio-row { min-height: 48px; font-size: 14px; line-height: 1.5; }
.modal .radio-row:hover,
.modal .radio-row:has(input:checked) { border-color: var(--text-muted); color: var(--text-primary); }
.modal .radio-row input { flex-shrink: 0; }
.modal .dropzone { border-radius: var(--control-radius); }
.modal .dropzone:not(.dz-has-file) { background: var(--bg-hover); }
.modal :is(.code-phone-row, .code-value-row) { min-height: 48px; }
.modal :is(.code-phone, .code-value, .code-2fa-value) { min-width: 0; overflow-wrap: anywhere; }
.modal .code-preview:empty { display: none; }
.modal-body { scrollbar-width: thin !important; scrollbar-color: var(--border-light) transparent; }
.modal-body::-webkit-scrollbar { display: block !important; width: 6px !important; }
/* Keep the four gender options visible inside the scrollable modal body. */
#modal-bulk-gender .modal-body { height: 304px; }

.workspace-heading { display: flex; align-items: center; justify-content: space-between; gap: 14px; min-height: 44px; flex-wrap: wrap; }
.workspace-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; width: 100%; min-width: 0; min-height: 0; }
.workspace-page > .workspace-grid { flex: 1 1 0; min-height: 0; }
.workspace-settings, .workspace-output { display: flex; flex-direction: column; gap: 16px; min-width: 0; min-height: 0; overflow-x: hidden; overflow-y: auto; padding: 3px; }
.workspace-settings::-webkit-scrollbar, .workspace-output::-webkit-scrollbar { width: 5px; height: 5px; }
.workspace-settings::-webkit-scrollbar-track, .workspace-output::-webkit-scrollbar-track { background: transparent; }
.workspace-settings::-webkit-scrollbar-thumb, .workspace-output::-webkit-scrollbar-thumb { background: var(--border-light); border-radius: 6px; }
.workspace-settings::-webkit-scrollbar-thumb:hover, .workspace-output::-webkit-scrollbar-thumb:hover { background: var(--text-muted); }
.workspace-caption { color: var(--text-secondary); font-size: 11px; line-height: 1.5; font-weight: 650; letter-spacing: 1.5px; text-transform: uppercase; }
.workspace-settings > *, .workspace-output > * { flex-shrink: 0; }
.workspace-settings .checker-cards { flex-direction: column; }
.workspace-settings .checker-card { width: 100%; }
.workspace-settings .campaign-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.workspace-settings .setting-row { flex-wrap: wrap; gap: 10px 16px; }
.workspace-settings .setting-info { min-width: 0; }
.workspace-settings .checker-card-header { align-items: flex-start; gap: 14px; flex-wrap: wrap; }
.workspace-settings .campaign-form { gap: 16px; }
.workspace-settings .campaign-field > .modal-textarea { min-height: 150px; }
.workspace-settings .campaign-field .modal-input[readonly] { font-size: 13px; color: var(--text-secondary); }

.module-workspace { display: flex; flex-direction: column; gap: 16px; }
.module-section { gap: 18px; padding: 22px; }
.module-section-title { font-size: 14px; font-weight: 650; letter-spacing: 0; line-height: 1.6; }
.module-section-title::before { content: ""; display: inline-block; width: 3px; height: 12px; margin-right: 10px; border-radius: 1px; background: var(--text-muted); vertical-align: -1px; }
details.module-section > summary { align-items: center; }
details.module-section > summary::before { flex-shrink: 0; margin-right: -4px; }
details.module-section > summary > span:first-of-type { flex: 1; }
.module-section-toggle { color: var(--text-muted); font-size: 18px; }
.module-section .campaign-grid { gap: 18px 16px; }
.module-section .module-option { padding: 6px 0; border: 0; }
.module-section input, .module-section textarea, .module-section select, .module-section button, .module-section summary { scroll-margin-top: 24px; scroll-margin-bottom: 24px; }
.module-file-input .campaign-toolbar { gap: 8px; }
.module-file-input .btn-secondary { min-height: 40px; padding: 8px 14px; font-size: 12px; }
.module-actions { position: static; padding: 0; border: 0; gap: 10px; background: transparent; }
.module-actions .workspace-caption { margin-right: auto; }
.module-actions .btn-primary { min-width: 128px; margin-left: 0; font-size: 13px; }
.module-actions .btn-secondary { font-size: 13px; }

.module-activity-panel, .module-results-panel { border: 1px solid var(--border-light); border-radius: var(--panel-radius); background: var(--bg-sidebar); }
.module-activity-panel { overflow: hidden; }
.module-activity-status { display: flex; align-items: center; gap: 10px; padding: 18px 20px; color: var(--text-secondary); font-size: 12px; line-height: 1.5; border-bottom: 1px solid var(--border); background: var(--bg-card); }
.module-status-mark { width: 6px; height: 6px; flex-shrink: 0; border-radius: 50%; background: var(--text-secondary); }
.module-activity-panel > .campaign-progress { padding: 14px 20px; gap: 10px; }
.module-activity-panel .campaign-progress progress { height: 4px; width: 100%; }
.module-activity-panel .campaign-progress .checker-card-desc { font-size: 12px; }
.module-activity-panel > .campaign-account-stats:not(:empty) { padding: 0 20px 14px; }
.module-page .module-activity-panel .campaign-log { position: relative; height: clamp(292px, 36vh, 420px); min-height: 292px; border: 0; border-top: 1px solid var(--border); border-radius: 0; background: var(--bg-dark); }
.checker-log-header { padding: 13px 18px; font-size: 10px; letter-spacing: 1px; background: var(--bg-sidebar); }
.checker-log { padding: 16px 18px; font-size: 12px; line-height: 1.7; gap: 6px; }
.workspace-output .checker-log-wrapper { border-radius: var(--panel-radius); border-color: var(--border-light); }
.workspace-output .checker-log-empty { margin: auto; font-size: 13px; line-height: 1.7; }
.workspace-empty { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; padding: 28px 24px; text-align: center; color: var(--text-muted); }
.workspace-empty-mark { display: grid; place-items: center; width: 38px; height: 38px; border: 1px solid var(--border-light); border-radius: 10px; color: var(--text-secondary); font-size: 22px; margin-bottom: 4px; }
.workspace-empty strong { color: var(--text-secondary); font-size: 13px; font-weight: 500; }
.workspace-empty p { max-width: 320px; font-size: 12px; line-height: 1.7; }
.module-log-empty { position: absolute; inset: 40px 0 0; pointer-events: none; }
.campaign-log:has(.checker-log > *) .module-log-empty { display: none; }
.module-results-panel { padding: 18px 20px; display: flex; flex-direction: column; gap: 14px; }
.module-results-panel:has(tbody tr) .module-results-empty { display: none; }
.module-results-panel .module-report-toolbar { padding: 0; gap: 12px; }
.module-results-panel .module-export { gap: 8px; }
.module-results-panel .module-export > .custom-select { width: 84px; min-width: 84px; }
.module-wide-results:not(#page-group-cleanup) .module-export .custom-select { width: 210px; min-width: 210px; }
.module-results-panel .module-export .custom-select-trigger { min-height: 42px; padding: 10px 12px; }
#page-global-search .module-export { flex-wrap: wrap; }
.module-export-data-mode { display: flex; align-items: center; gap: 8px; min-width: 0; }
.module-export-data-mode > .parameter-label { white-space: nowrap; font-size: 12px; color: var(--text-secondary); }
#page-global-search.module-wide-results .module-export .custom-select { width: 84px; min-width: 84px; }
#page-global-search .module-export .module-export-data-mode .custom-select { width: 330px; min-width: 330px; }
.module-results-panel .campaign-results { max-height: 360px; border-radius: 8px; border-color: var(--border-light); background: var(--bg-dark); }
.module-results-panel .campaign-results td, .module-results-panel .campaign-results th { padding: 11px 14px; font-size: 12px; }
.module-results-panel .checker-card-desc { font-size: 12px; }
.module-results-empty { padding: 18px 12px; min-height: 150px; }
.campaign-format-tools { gap: 6px; }
.campaign-format-tools .btn-secondary { min-width: 36px; min-height: 36px; border-radius: 6px; padding: 7px 10px; }

@media (min-width: 1280px) {
    .workspace-page:not(.hidden) { overflow: hidden; }
}

@media (max-width: 1279px) {
    .main-content { padding: 20px; }
    .module-page { scroll-padding-top: 20px; }
    .module-page .module-activity-panel .campaign-log { height: 300px; }
    .workspace-page:not(.hidden) { overflow-y: auto; }
    .workspace-page > .workspace-grid { flex: none; grid-template-columns: minmax(0, 1fr); }
    .workspace-settings, .workspace-output { overflow: visible; padding: 3px; scrollbar-gutter: auto; }
}

@media (prefers-reduced-motion: reduce) {
    .setting-input, .modal-input, .custom-select-trigger, .btn-primary, .btn-secondary { transition: none; }
}

html, body, body * { scrollbar-width: none !important; scrollbar-gutter: auto !important; }
::-webkit-scrollbar { display: none !important; width: 0 !important; height: 0 !important; }
.workspace-settings {
    border-radius: var(--panel-radius);
    scrollbar-width: auto !important;
    scrollbar-gutter: stable !important;
    overscroll-behavior: contain;
}
.workspace-settings::-webkit-scrollbar { display: block !important; width: 8px !important; height: 8px !important; }
.workspace-settings::-webkit-scrollbar-track { background: var(--bg-card); border-radius: 8px; }
.workspace-settings::-webkit-scrollbar-thumb { background: var(--text-muted); border: 2px solid var(--bg-card); border-radius: 8px; }
:is(.workspace-settings, .workspace-output, .checker-log, .campaign-results, .hex-import-log, .modal):focus { outline: none; }
:is(.workspace-settings, .workspace-output, .checker-log, .campaign-results, .hex-import-log):focus-visible { box-shadow: inset 0 0 0 1px var(--border-light); }
.report-open-button { margin-left: 10px; padding: 2px 8px; border: 1px solid var(--border-light); border-radius: 5px; background: var(--bg-hover); color: var(--text-primary); font: inherit; white-space: nowrap; cursor: pointer; }
.report-open-button:hover { border-color: var(--text-muted); }
.report-open-button:disabled { opacity: .5; cursor: wait; }
.checker-log .log-line { overflow-wrap: anywhere; }
#page-adgen .adgen-settings { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 16px; border: 0; background: transparent; }
#page-adgen .adgen-settings .setting-row { display: flex; flex-direction: column; align-items: stretch; padding: 0; gap: 10px; border: 0; background: transparent; }
#page-adgen .adgen-settings .setting-row:last-child { grid-column: 1 / -1; }
#page-adgen .adgen-settings :is(.module-input, .module-select, .custom-select) { width: 100% !important; min-width: 0 !important; }
#page-adgen .adgen-output-area { background: var(--bg-hover); border-color: var(--border-light); border-radius: var(--control-radius); }
.campaign-field .modal-input, .campaign-field .modal-select { margin: auto 0 0; }
.module-file-input .modal-input { margin: 0; }
.workspace-toolbar { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; padding: 0 3px; }
.module-page > .workspace-toolbar { flex-shrink: 0; }
.module-page .workspace-output > .module-activity-panel { display: flex; flex-direction: column; flex: 1 0 390px; }
.module-page .module-activity-panel > .campaign-log { flex: 1 0 292px; height: auto; }
.legacy-output > .legacy-actions { position: sticky; top: 0; z-index: 5; }
:is(#page-phone-login, #page-qr-login, #page-manual-registration).legacy-page { align-items: stretch; }
.workspace-grid.workspace-stacked { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto minmax(280px, 1fr); }
.workspace-stacked > .workspace-settings { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; max-height: 45vh; }
.workspace-stacked > .workspace-settings > .checker-card { height: 100%; }
.workspace-stacked > .workspace-output > .checker-log-wrapper { flex: 1 0 280px; min-height: 280px; }
#page-hex-import .legacy-hex-form, #page-hex-import .legacy-hex-result { display: flex; flex-direction: column; flex: 1 0 480px; gap: 18px; margin: 0; }
#page-hex-import .hex-import-textarea { flex: 1; min-height: 220px; resize: none; margin: 0; font-size: 13px !important; }
#page-hex-import .hex-import-log { flex: 1; min-height: 280px; max-height: none; font-size: 13px; }
#page-hex-import .hex-import-actions { flex-wrap: wrap; margin-top: 0; }
#page-hex-import .hex-import-actions .btn-primary { flex: 1; justify-content: center; }
#page-hex-import .settings-group-title { margin: 0; }

@media (max-width: 1279px) {
    .workspace-toolbar { position: sticky; top: 0; z-index: 20; background: var(--bg-dark); padding: 8px 3px; }
    .workspace-heading { gap: 8px; }
    .workspace-caption { font-size: 10px; letter-spacing: 1px; }
    .workspace-stacked > .workspace-settings { max-height: none; }
    .workspace-stacked > .workspace-output > .checker-log-wrapper { flex: none; height: 360px; }
    .legacy-output > .legacy-actions { position: static; }
    #page-hex-import .legacy-hex-form, #page-hex-import .legacy-hex-result { flex: none; min-height: 480px; }
}

@media (max-width: 900px) {
    .workspace-toolbar { grid-template-columns: minmax(0, 1fr); gap: 8px; }
    .workspace-toolbar .workspace-heading { min-height: 36px; }
    .workspace-stacked > .workspace-settings { grid-template-columns: minmax(0, 1fr); }
}

.module-wide-results > .workspace-grid { grid-template-rows: minmax(340px, 1.2fr) minmax(190px, 0.8fr); }
.module-wide-results .workspace-output > .module-activity-panel { flex: 1 1 0; min-height: 0; }
.module-wide-results .module-activity-panel > .campaign-log { flex: 1 1 80px; min-height: 80px; }
#page-group-cleanup .module-activity-status { padding: 12px 20px; }
#page-group-cleanup .module-activity-panel > .campaign-progress { padding: 12px 20px; }
#page-group-cleanup .cleanup-mode-banner { flex-shrink: 0; padding: 12px 20px; border-bottom: 1px solid var(--border); background: var(--bg-card); font-size: 12px; line-height: 1.5; }
#page-group-cleanup .cleanup-execution { flex-shrink: 0; display: grid; gap: 4px; padding: 12px 20px 0; color: var(--text-secondary); font-size: 12px; line-height: 1.5; overflow-wrap: anywhere; }
#page-group-cleanup .cleanup-execution:empty { display: none; }
.module-wide-results .workspace-grid > .module-results-panel { grid-column: 1 / -1; min-width: 0; min-height: 0; overflow: hidden; gap: 10px; }
.module-wide-results .module-results-panel .campaign-results { flex: 1 1 auto; min-height: 0; max-height: none; }
#page-group-cleanup .campaign-results table { width: 100%; table-layout: fixed; }
#page-group-cleanup .campaign-results :is(td, th) { padding: 10px 12px; vertical-align: top; overflow-wrap: normal; word-break: normal; }
#page-group-cleanup .campaign-results :is(td, th):nth-child(1) { width: 150px; white-space: nowrap; font-variant-numeric: tabular-nums; overflow: hidden; text-overflow: ellipsis; }
#page-group-cleanup .campaign-results :is(td, th):nth-child(2) { width: 28%; overflow-wrap: anywhere; }
#page-group-cleanup .campaign-results :is(td, th):nth-child(3) { width: 90px; white-space: nowrap; }
#page-group-cleanup .campaign-results :is(td, th):nth-child(4) { width: 190px; }
#page-group-cleanup .campaign-results :is(td, th):nth-child(5) { white-space: pre-line; overflow-wrap: anywhere; }
#page-group-cleanup .campaign-results :is(td, th):nth-child(6) { width: 130px; }

@media (max-width: 1279px) {
    .module-wide-results > .workspace-grid { grid-template-rows: auto 400px minmax(280px, auto); }
    .module-wide-results .module-results-panel .campaign-results { max-height: 400px; }
    #page-group-cleanup .campaign-results table { min-width: 850px; }
}

.module-wide-results:not(#page-group-cleanup) .campaign-results table { width: 100%; table-layout: fixed; }
.module-wide-results:not(#page-group-cleanup) .campaign-results :is(td, th) { padding: 10px 12px; vertical-align: top; overflow-wrap: anywhere; }
.module-wide-results:not(#page-group-cleanup) .campaign-results :is(td, th):first-child { width: 150px; }

#page-folder-creation .campaign-results table { min-width: 1240px; }
#page-folder-creation.module-wide-results .campaign-results :is(td, th) { overflow-wrap: normal; word-break: normal; }
#page-folder-creation .campaign-results :is(td, th):nth-child(1) { width: 150px; }
#page-folder-creation .campaign-results td:nth-child(1) { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#page-folder-creation .campaign-results :is(td, th):nth-child(2) { width: 140px; }
#page-folder-creation .campaign-results :is(td, th):nth-child(3),
#page-folder-creation .campaign-results :is(td, th):nth-child(4),
#page-folder-creation .campaign-results :is(td, th):nth-child(5) { width: 108px; }
#page-folder-creation .campaign-results td:nth-child(n+3):nth-child(-n+5) { white-space: nowrap; font-variant-numeric: tabular-nums; }
#page-folder-creation .campaign-results :is(td, th):nth-child(6) { width: 210px; }
#page-folder-creation .campaign-results td:nth-child(6) a { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#page-folder-creation .campaign-results :is(td, th):nth-child(7) { width: 190px; }
#page-folder-creation .campaign-results td:nth-child(2),
#page-folder-creation .campaign-results td:nth-child(8) { overflow-wrap: anywhere; }
#page-folder-creation .campaign-results { scrollbar-width: auto !important; scrollbar-color: var(--border-light) transparent; }
#page-folder-creation .campaign-results::-webkit-scrollbar { display: block !important; width: 8px !important; height: 8px !important; }
#page-folder-creation .campaign-results::-webkit-scrollbar-thumb { border-radius: 999px; background: var(--border-light); }
@media (min-width: 1280px) {
    #page-folder-creation.module-wide-results > .workspace-grid { grid-template-rows: minmax(180px, 1fr) minmax(360px, .9fr); }
    #page-folder-creation.module-wide-results .module-results-panel .campaign-results { min-height: 130px; }
}
@media (min-width: 1280px) and (max-height: 740px) {
    #page-folder-creation:not(.hidden) { overflow-y: auto; }
    #page-folder-creation.module-wide-results > .workspace-grid { flex: none; grid-template-rows: 280px 360px; }
}
#page-settings .settings-actions { gap: 10px; flex-wrap: wrap; }
#page-settings .settings-docs { display: inline-flex; align-items: center; justify-content: center; gap: 8px; text-decoration: none; }
