@import url('https://fonts.googleapis.com/css2?family=Vazirmatn:wght@400;500;600;700;800&display=swap');
.scan-status-bar{grid-template-columns:minmax(160px,1.3fr) repeat(4,minmax(70px,.5fr)) minmax(170px,1fr)}.report-table{min-width:1050px}.report-details{min-width:94px}.report-details summary{color:var(--blue);cursor:pointer;white-space:nowrap}.report-details[open]{position:relative;min-width:600px}.report-details[open] .table-wrap{max-width:min(76vw,1100px);margin-top:10px}.report-details table{min-width:900px}.report-details td{white-space:normal;max-width:320px}.report-error{color:#ff9ca7;padding:10px;border:1px solid #3c1b26;border-radius:8px;white-space:normal}.report-duration{direction:ltr;font-variant-numeric:tabular-nums;white-space:nowrap}@media(max-width:850px){.scan-status-bar{grid-template-columns:1fr repeat(4,auto)}.report-details[open]{min-width:300px}.report-details[open] .table-wrap{max-width:85vw}}
.scan-status-bar{width:min(1440px,92vw);margin:12px auto 0;position:sticky;top:94px;z-index:4;display:grid;grid-template-columns:minmax(170px,1.4fr) repeat(3,minmax(76px,.5fr)) minmax(180px,1fr);align-items:center;gap:14px;padding:11px 16px;border:1px solid #24415d;border-radius:14px;background:#0b1b2bec;box-shadow:0 12px 30px #0005;backdrop-filter:blur(14px);font-size:13px}.scan-state,.scan-metric{display:flex;align-items:center;gap:8px}.scan-state{color:#bfe2ff}.scan-dot{width:9px;height:9px;border-radius:50%;background:var(--muted);box-shadow:0 0 0 4px #8da4ba20}.scan-metric{justify-content:center;color:var(--muted)}.scan-metric b{color:var(--text);font-size:15px}.scan-time{color:var(--muted);text-align:left;font-size:12px}.scan-progress{grid-column:1/-1;height:3px;background:#1b3045;border-radius:3px;overflow:hidden}.scan-progress i{display:block;width:0;height:100%;background:linear-gradient(90deg,var(--blue),var(--cyan));transition:width .4s}.scan-status-bar.is-running .scan-dot{background:var(--cyan);animation:scan-pulse 1.2s infinite}.scan-status-bar.is-completed .scan-dot{background:var(--green)}.scan-status-bar.is-failed .scan-dot,.scan-status-bar.is-interrupted .scan-dot{background:var(--red)}@keyframes scan-pulse{50%{box-shadow:0 0 0 7px #45e0d015}}@media(max-width:850px){.scan-status-bar{top:94px;grid-template-columns:1fr repeat(3,auto);gap:9px}.scan-time{grid-column:1/-1;text-align:right}.scan-state strong{font-size:12px}.scan-metric{display:grid;gap:0;text-align:center}.scan-metric span{font-size:10px}}
.max-ping-form{margin-top:22px;padding-top:20px;border-top:1px solid var(--line)}.subscription-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:20px}.source-subscriptions{margin-top:20px}.source-list-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.subscription-section .panel-head{margin-bottom:16px}.subscription-list{display:grid;gap:10px}.subscription-card{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px;border:1px solid var(--line);border-radius:13px;background:#091725}.subscription-card.featured{padding:18px}.subscription-card small{display:block;color:var(--muted);margin-top:4px}.subscription-actions{display:flex;align-items:center;gap:8px;flex:1;max-width:760px}.subscription-actions input{min-width:0}.copy-sub-link{white-space:nowrap}@media(max-width:850px){.subscription-grid,.source-list-grid{grid-template-columns:1fr}.subscription-card.featured{align-items:stretch;flex-direction:column}.subscription-actions{max-width:none;flex-direction:column;align-items:stretch}}
.composite-subscriptions{margin-top:20px}.composite-form{display:grid;grid-template-columns:1.35fr repeat(4,1fr) auto;gap:10px;align-items:end}.composite-form label{display:grid;gap:6px;color:var(--muted);font-size:12px}.composite-form select{width:100%;min-width:0}.form-hint{font-size:12px;margin:9px 0 18px!important}.composite-list{display:grid;gap:12px}.composite-card{padding:16px;border:1px solid var(--line);border-radius:14px;background:#091725}.composite-card.is-disabled{opacity:.65}.composite-summary{display:flex;align-items:center;justify-content:space-between;gap:14px}.composite-summary small{display:block;color:var(--muted);margin-top:5px}.composite-link{max-width:none;margin-top:13px}.composite-editor{margin-top:12px;border-top:1px solid var(--line);padding-top:11px}.composite-editor summary{color:#9ed3ff;cursor:pointer;font-size:13px}.composite-editor .composite-form{margin-top:13px}.composite-management{display:flex;gap:8px;justify-content:flex-end;margin-top:10px}.composite-management form{margin:0}@media(max-width:1100px){.composite-form{grid-template-columns:repeat(3,1fr)}.composite-form button{min-height:46px}}@media(max-width:700px){.composite-form{grid-template-columns:1fr}.composite-summary{align-items:flex-start}.composite-management{justify-content:stretch}.composite-management form,.composite-management button{width:100%}}
.filters{flex-wrap:wrap}.row-number{color:var(--muted);font-variant-numeric:tabular-nums}.country-flag{font-size:26px;line-height:1}.copy-config{border:1px solid #285174;background:#122b43;color:#bfe2ff;border-radius:8px;padding:7px 12px;font:600 12px Vazirmatn;cursor:pointer}.copy-config:hover,.copy-config.copied{border-color:var(--cyan);color:var(--cyan)}
.search-select-original{position:absolute!important;width:1px!important;height:1px!important;opacity:0;pointer-events:none}.search-select{position:relative;min-width:230px}.search-select-toggle{width:100%;min-height:46px;border:1px solid var(--line);background:#091522;color:var(--text);padding:11px 38px 11px 14px;border-radius:10px;font:inherit;text-align:right;cursor:pointer;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-select-toggle::after{content:'⌄';position:absolute;left:14px;top:9px;color:var(--muted);font-size:20px}.search-select.is-open .search-select-toggle{border-color:#315c80}.search-select-menu{display:none;position:absolute;z-index:20;top:calc(100% + 7px);right:0;width:max(100%,330px);padding:8px;background:#0b1929;border:1px solid #29435c;border-radius:12px;box-shadow:0 18px 46px #000a}.search-select.is-open .search-select-menu{display:block}.search-select-input{margin-bottom:7px;background:#07131f}.search-select-list{max-height:290px;overflow:auto;display:grid;gap:3px}.search-select-option{border:0;background:transparent;color:#c9dbea;padding:10px 11px;border-radius:8px;font:inherit;text-align:right;cursor:pointer}.search-select-option:hover,.search-select-option.is-selected{background:#15304a;color:#fff}.search-select-option.is-selected{box-shadow:inset -3px 0 var(--cyan)}.search-select-empty{padding:20px;text-align:center;color:var(--muted);font-size:13px}.country-cell .country-name-fa{display:inline-block;margin-right:7px;font-weight:700}.country-cell .country-name-en{margin-right:36px;direction:ltr;text-align:right}@media(max-width:850px){.search-select{min-width:min(100%,260px)}.search-select-menu{width:min(88vw,380px)}}
.pagination{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}.pagination-pages{display:flex;align-items:center;gap:6px}.pagination a{text-decoration:none}.pagination-page,.pagination-nav,.pagination-gap{min-width:38px;height:38px;display:grid;place-items:center;border:1px solid var(--line);border-radius:9px;color:#bcd5e9;background:#0a1725;padding:0 10px;font-size:13px}.pagination-page:hover,.pagination-nav:hover{border-color:var(--blue);color:#fff}.pagination-page.is-current{background:linear-gradient(135deg,var(--blue),#2977ff);border-color:transparent;color:#fff;font-weight:800}.pagination-nav{min-width:88px}.pagination-nav.is-disabled{opacity:.38}.pagination-gap{border-color:transparent;background:transparent;min-width:24px;padding:0}@media(max-width:600px){.pagination{gap:7px}.pagination-nav{min-width:auto;padding:0 9px}.pagination-pages{gap:3px}.pagination-page{min-width:34px;padding:0 7px}}
.danger:disabled{opacity:.4;cursor:not-allowed}.source-index{width:34px;height:34px;flex:0 0 34px;display:grid;place-items:center;border:1px solid var(--line);border-radius:9px;background:#091725;color:var(--muted);font-weight:700;font-variant-numeric:tabular-nums}.source-details{flex:1;min-width:0}@media(max-width:600px){.source-list article{align-items:flex-start;flex-wrap:wrap}.source-details{width:calc(100% - 50px)}.source-list .row-actions{width:100%;justify-content:flex-end}}
.source-test-button{white-space:nowrap}.source-test-button:disabled{opacity:.55;cursor:wait}.source-test-dialog{width:min(760px,92vw);max-height:86vh;overflow:auto;color:var(--text);background:linear-gradient(145deg,#0f2034,#0b1828);border:1px solid #29435c;border-radius:18px;padding:24px;box-shadow:0 30px 90px #000b}.source-test-dialog::backdrop{background:#02070dcc;backdrop-filter:blur(4px)}.dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:22px}.dialog-head h2{margin:5px 0 0}.dialog-close{width:38px;height:38px;border:1px solid var(--line);border-radius:10px;background:#10243a;color:var(--text);font-size:25px;cursor:pointer}.dialog-state{padding:42px;text-align:center;color:var(--muted)}.source-test-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.source-test-summary article{padding:14px;border:1px solid var(--line);border-radius:12px;background:#091725}.source-test-summary span{display:block;color:var(--muted);font-size:12px}.source-test-summary strong{display:block;margin-top:5px;font-size:23px;color:var(--cyan)}.source-test-columns{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:20px}.source-test-columns h3{font-size:14px;color:#bcd5e9}.test-stat-list{display:grid;gap:6px;max-height:270px;overflow:auto}.test-stat-list>div{display:flex;justify-content:space-between;gap:12px;padding:9px 11px;border-radius:8px;background:#091725;color:#c9dbea;font-size:13px}.test-stat-list b{color:var(--cyan)}.source-test-error{padding:18px;border:1px solid #673040;border-radius:12px;background:#351c29;color:#ff9ca7;white-space:pre-wrap;direction:rtl}@media(max-width:700px){.source-test-summary{grid-template-columns:1fr 1fr}.source-test-columns{grid-template-columns:1fr}.source-test-dialog{padding:18px}}
.source-filter{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:13px}.source-filter select{min-width:150px}.source-empty{border-bottom:0!important}@media(max-width:850px){.source-filter{width:100%}.source-filter select{flex:1}}
.source-head-actions{display:flex;align-items:center;gap:10px}.test-all-sources-button{white-space:nowrap}.test-all-sources-button:disabled{opacity:.55;cursor:wait}.bulk-test-dialog{width:min(900px,94vw)}.bulk-summary .success-count{color:var(--green)}.bulk-summary .failure-count{color:var(--red)}.bulk-config-summary{margin:16px 0;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#091725;color:#bcd5e9}.bulk-source-results{display:grid;gap:8px;max-height:430px;overflow:auto}.bulk-source-row{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#091725}.bulk-source-row>div{min-width:180px}.bulk-source-row strong,.bulk-source-row span{display:block}.bulk-source-row span{margin-top:3px;font-size:11px;color:var(--muted)}.bulk-source-row p{margin:0;text-align:left;direction:rtl;font-size:12px}.bulk-source-row.is-success{border-right:3px solid var(--green)}.bulk-source-row.is-success p{color:#78dbb3}.bulk-source-row.is-failed{border-right:3px solid var(--red)}.bulk-source-row.is-failed p{color:#ff9ca7}@media(max-width:850px){.source-head-actions{width:100%;flex-wrap:wrap}.test-all-sources-button{flex:1}.bulk-source-row{display:block}.bulk-source-row p{margin-top:9px;text-align:right}}
:root{--bg:#07111f;--card:#0d1b2d;--line:#1c3047;--text:#edf6ff;--muted:#8da4ba;--blue:#3aa7ff;--cyan:#45e0d0;--green:#38d996;--red:#ff6b78}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 80% 0,#102c48 0,transparent 32%),var(--bg);color:var(--text);font-family:Vazirmatn,sans-serif;min-height:100vh}.topbar{height:82px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(5vw,24px);background:#081523dd;backdrop-filter:blur(14px);position:sticky;top:0;z-index:5}.brand{display:flex;gap:12px;align-items:center;color:var(--text);text-decoration:none;font-weight:800}.brand small{display:block;color:var(--muted);font-size:10px;letter-spacing:1px}.brand-mark,.login-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:linear-gradient(135deg,var(--blue),var(--cyan));color:#04101d;font-weight:900}.topbar nav{display:flex;align-items:center;gap:28px}.topbar nav a,.link{color:var(--muted);text-decoration:none;background:none;border:0;font:inherit;cursor:pointer}.container{width:min(1440px,92vw);margin:0 auto;padding:48px 0}.hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:34px}.hero.compact{margin-bottom:24px}.eyebrow{color:var(--cyan);font-size:12px;font-weight:800;letter-spacing:2px}.hero h1{font-size:clamp(28px,4vw,48px);margin:8px 0}.hero p,.panel p{color:var(--muted);margin:0}.primary,.button,.danger{border:0;border-radius:11px;padding:12px 20px;font:600 14px Vazirmatn;cursor:pointer;text-decoration:none;display:inline-block}.primary,.button{background:linear-gradient(135deg,var(--blue),#2977ff);color:white}.primary:disabled{opacity:.5}.button.ghost{background:#13263b;color:#bcd5e9;border:1px solid var(--line)}.danger{background:#351c29;color:#ff9ca7}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:22px}.stats article,.panel{background:linear-gradient(145deg,#0f2034,#0b1828);border:1px solid var(--line);border-radius:18px;box-shadow:0 20px 50px #0004}.stats article{padding:22px}.stats span{display:block;color:var(--muted);font-size:13px}.stats strong{display:block;font-size:30px;margin-top:6px}.stats .status{font-size:18px;color:var(--cyan)}.panel{padding:24px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}.panel h2{margin:0 0 4px}.actions{display:flex;gap:8px}.filters{display:flex;gap:10px;margin-bottom:16px}input,select{width:100%;border:1px solid var(--line);background:#091522;color:var(--text);padding:12px 14px;border-radius:10px;font:inherit;outline:none}select{width:auto;min-width:160px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap}th{text-align:right;color:var(--muted);font-size:12px;padding:14px;border-bottom:1px solid var(--line)}td{padding:16px 14px;border-bottom:1px solid #15283b;font-size:14px}td small{display:block;color:var(--muted);font-size:11px}.ltr{direction:ltr;text-align:right}.protocol{color:#9ed3ff;background:#102b43;padding:5px 9px;border-radius:7px;font-weight:700}.ping{color:var(--green)}.badge{padding:6px 10px;border-radius:20px;font-size:12px}.badge.ok{background:#10382f;color:#60e7b3}.badge.fail{background:#3c1b26;color:#ff9ca7}.empty{text-align:center;color:var(--muted);padding:50px}.settings-grid{display:grid;grid-template-columns:2fr 1fr;gap:20px}.source-form{display:grid;grid-template-columns:1fr 2fr auto;gap:10px}.source-list article{display:flex;justify-content:space-between;gap:16px;padding:16px 0;border-bottom:1px solid var(--line)}.source-list small{display:block;color:var(--muted);max-width:620px;overflow:hidden;text-overflow:ellipsis}.row-actions{display:flex;gap:7px}.row-actions form,.topbar form{margin:0}.stack{display:grid;gap:16px}.stack label{display:grid;gap:7px;color:var(--muted)}.info{display:grid;grid-template-columns:1fr auto;gap:12px;margin-top:24px;padding-top:20px;border-top:1px solid var(--line);color:var(--muted)}.info b{color:var(--text)}.login-wrap{min-height:80vh;display:grid;place-items:center}.login-card{width:min(430px,92vw);padding:38px;background:var(--card);border:1px solid var(--line);border-radius:24px;box-shadow:0 30px 90px #0008}.login-icon{width:58px;height:58px;font-size:24px}.login-card h1{margin-bottom:4px}.login-card p{color:var(--muted);margin-top:0;margin-bottom:25px}.alert{padding:10px;border-radius:9px;margin-bottom:15px}.alert.error{background:#3c1b26;color:#ff9ca7}@media(max-width:850px){.stats{grid-template-columns:1fr 1fr}.settings-grid{grid-template-columns:1fr}.source-form{grid-template-columns:1fr}.hero,.panel-head{align-items:stretch;flex-direction:column}.topbar nav{gap:12px}.topbar{padding:0 16px}.container{padding:28px 0}}
