:root{color:#172033;--page-bg:#f2f5f9;--surface:#fbfcfe;--surface-blue:#eaf2fb;--surface-violet:#f0eef9;--surface-mint:#eaf7f3;--text:#172033;--muted:#6c788d;--border:#dbe3ed;--blue:#367bf5;--blue-dark:#245fc6;--shadow:0 20px 55px #31486e17;background:#f2f5f9;font-family:Vazirmatn,IRANSans,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{background:var(--page-bg);direction:rtl}body{background:radial-gradient(circle at 8% 8%, #5dadff24, transparent 26rem), radial-gradient(circle at 94% 22%, #977eff1a, transparent 24rem), var(--page-bg);min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}.app-shell{width:min(1440px,100% - 48px);margin:0 auto;padding:26px 0 58px}.top-nav{border:1px solid var(--border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#f8fafcf0;border-radius:22px;justify-content:space-between;align-items:center;gap:18px;margin-bottom:18px;padding:10px 12px 10px 16px;display:flex;box-shadow:0 10px 28px #30486c0e}.nav-brand{flex:none;align-items:center;gap:10px;display:flex}.nav-brand-mark{color:#fff;letter-spacing:.02em;background:linear-gradient(145deg,#4a91ff,#736cff);border-radius:14px 14px 22px;place-items:center;width:42px;height:42px;font-size:.78rem;font-weight:900;display:grid;box-shadow:0 9px 20px #4577e133}.nav-brand-text{color:var(--text);direction:ltr;font-size:.95rem;font-weight:850}.nav-links{flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:8px;display:flex}.nav-link{color:#58677e;border:1px solid #0000;border-radius:13px;justify-content:center;align-items:center;min-height:40px;padding:9px 15px;font-size:.86rem;font-weight:700;text-decoration:none;transition:background .15s,color .15s,border-color .15s,transform .15s;display:inline-flex}.nav-link:hover{color:var(--text);background:#f2f6fc;border-color:#e1e9f3;transform:translateY(-1px)}.nav-link-primary{color:var(--blue-dark);background:#e8f2ff;border-radius:999px}.nav-link-primary:hover{color:var(--blue-dark);background:#dcecff;border-color:#d3e6ff}.nav-link-database{background:var(--surface);direction:ltr;border:1px solid #d8e0ea}.hero-panel{min-height:215px;box-shadow:var(--shadow);background:linear-gradient(135deg,#f8fafcfa,#ebf1f7f5);border:1px solid #dae5f1f2;border-radius:30px 30px 68px;justify-content:space-between;align-items:center;gap:32px;padding:38px;display:flex;position:relative;overflow:hidden}.hero-copy{z-index:2;max-width:720px;position:relative}.eyebrow{min-height:36px;color:var(--blue-dark);letter-spacing:.02em;background:#e8f2ff;border-radius:999px;align-items:center;padding:7px 15px;font-size:.88rem;font-weight:800;display:inline-flex}.hero-panel h1{color:var(--text);letter-spacing:-.035em;margin:24px 0 12px;font-size:clamp(2rem,3.4vw,3.15rem);line-height:1.2}.hero-panel p{max-width:650px;color:var(--muted);margin:0;font-size:1.05rem;line-height:2}.hero-orbit{flex:0 0 220px;height:150px;position:relative}.orbit{border:1px solid #367bf52e;border-radius:50%;position:absolute}.orbit-large{width:160px;height:160px;top:-5px;left:28px}.orbit-small{background:#e5f1ffad;width:94px;height:94px;top:28px;left:61px}.orbit-dot{background:linear-gradient(145deg,#4a91ff,#7b6dff);border-radius:20px 20px 34px;width:50px;height:50px;position:absolute;top:50px;left:83px;box-shadow:0 18px 38px #437ae745}.stats-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:18px;margin-top:26px;display:grid}.stat-card{background:var(--surface);border:1px solid var(--border);flex-direction:column;justify-content:space-between;min-height:150px;padding:22px;transition:transform .16s,box-shadow .16s,border-color .16s;display:flex;box-shadow:0 14px 35px #30486c0e}.stat-card:hover{border-color:#ccdcee;transform:translateY(-3px);box-shadow:0 19px 42px #30486c17}.shape-primary{background:linear-gradient(145deg,#f8fafc,#e7f0f9);border-radius:28px 28px 28px 58px;grid-column:span 3}.shape-soft{background:var(--surface-mint);border-radius:58px 26px 26px;grid-column:span 3}.shape-wide{background:linear-gradient(135deg,#f8fafc,#e9e7f3);border-radius:28px 72px 28px 28px;grid-column:span 6}.shape-pill{background:var(--surface-blue);border-radius:74px;grid-column:span 6;min-height:125px}.shape-rounded{background:var(--surface);border-radius:30px 30px 68px;grid-column:span 6;min-height:125px}.stat-label{color:var(--muted);font-size:.92rem;font-weight:650}.stat-value{color:var(--text);margin:14px 0 8px;font-size:clamp(1.65rem,3vw,2.65rem);font-weight:850;line-height:1.25}.stat-detail{color:#8792a5;font-size:.82rem}.state-card{border:1px solid var(--border);background:var(--surface);min-height:110px;color:var(--muted);border-radius:26px;justify-content:center;align-items:center;gap:12px;margin-top:26px;padding:22px;display:flex;box-shadow:0 12px 30px #30486c0d}.state-card-error{color:#a84545;background:#fff4f4;border-color:#ffdada}.loading-dot{background:var(--blue);border-radius:50%;width:11px;height:11px;animation:1s ease-in-out infinite alternate pulse}@keyframes pulse{0%{opacity:.35;transform:scale(.75)}to{opacity:1;transform:scale(1.1)}}@media (width<=900px){.top-nav{flex-direction:column;align-items:flex-start;padding:13px}.nav-links{width:100%}.app-shell{width:min(100% - 28px,1440px);padding-top:24px}.hero-panel{border-radius:28px 28px 62px;min-height:auto;padding:34px}.hero-orbit{display:none}.shape-primary,.shape-soft,.shape-wide,.shape-pill,.shape-rounded{grid-column:span 6}}@media (width<=600px){.app-shell{width:min(100% - 20px,1440px)}.hero-panel{padding:28px 24px}.hero-panel h1{font-size:2rem}.stats-grid{gap:12px}.shape-primary,.shape-soft,.shape-wide,.shape-pill,.shape-rounded{border-radius:24px;grid-column:span 12;min-height:125px}}.jobs-intro{border:1px solid var(--border);background:linear-gradient(135deg,#f8fafc,#edf2f7);border-radius:28px 28px 58px;justify-content:space-between;align-items:center;gap:24px;margin-bottom:18px;padding:30px 34px;display:flex;box-shadow:0 12px 34px #30486c0f}.jobs-intro h1{margin:16px 0 6px;font-size:clamp(1.8rem,3vw,2.7rem)}.jobs-intro p{color:var(--muted);margin:0}.jobs-total-badge{min-width:145px;min-height:104px;color:var(--blue-dark);text-align:center;background:#e8f2ff;border-radius:52px;flex-direction:column;justify-content:center;padding:18px 24px;display:flex}.jobs-total-badge span{color:#6684aa;font-size:.8rem}.jobs-total-badge strong{margin-top:5px;font-size:1.8rem}.jobs-filter-panel{z-index:10;background:var(--surface);border:1px solid var(--border);border-radius:24px;grid-template-columns:1.4fr repeat(5,minmax(150px,1fr));gap:12px;margin-bottom:18px;padding:20px;display:grid;position:relative;box-shadow:0 12px 30px #30486c0d}.filter-field{flex-direction:column;gap:7px;min-width:0;display:flex}.filter-field>span{color:#718096;padding-inline:4px;font-size:.76rem;font-weight:750}.filter-field input,.filter-field select{width:100%;height:46px;color:var(--text);background:#f9fbfe;border:1px solid #dfe7f1;border-radius:13px;outline:none;padding:0 13px;transition:border-color .15s,box-shadow .15s,background .15s}.filter-field input:focus,.filter-field select:focus{background:#f4f7fa;border-color:#8fb3e8;box-shadow:0 0 0 4px #367bf517}.searchable-filter-control{position:relative}.searchable-filter-control input{padding-left:34px}.filter-clear{z-index:3;color:#758298;cursor:pointer;background:#edf2f8;border:0;border-radius:50%;width:27px;height:27px;padding:0;position:absolute;top:50%;left:8px;transform:translateY(-50%)}.searchable-menu{z-index:50;background:#f6f8fb;border:1px solid #dfe7f1;border-radius:15px;max-height:280px;padding:6px;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto;box-shadow:0 18px 45px #263c5d26}.searchable-menu button{color:#4d5a70;text-align:right;cursor:pointer;background:0 0;border:0;border-radius:10px;width:100%;padding:10px 11px}.searchable-menu button:hover,.searchable-menu button.is-selected{color:var(--blue-dark);background:#edf5ff}.searchable-empty{color:var(--muted);text-align:center;padding:12px;font-size:.82rem}.filter-actions{grid-column:1/-1;justify-content:flex-start;gap:9px;padding-top:3px;display:flex}.filter-submit,.filter-reset{cursor:pointer;border-radius:13px;min-height:43px;padding:9px 20px;font-weight:800}.filter-submit{border:1px solid var(--blue);background:var(--blue);color:#fff}.filter-reset{color:#5f6d80;background:#eef2f6;border:1px solid #d6dfe9}.jobs-summary-grid{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px;display:grid}.jobs-summary-grid>div{background:var(--surface);border:1px solid var(--border);border-radius:20px;flex-direction:column;justify-content:center;min-height:105px;padding:18px 20px;display:flex}.jobs-summary-grid>div:nth-child(2){background:#ecfbf7;border-radius:42px 20px 20px}.jobs-summary-grid>div:nth-child(3){background:#f3f0ff;border-radius:20px 20px 42px}.jobs-summary-grid span{color:var(--muted);font-size:.8rem}.jobs-summary-grid strong{margin-top:7px;font-size:1.35rem}.jobs-table-panel{background:var(--surface);border:1px solid var(--border);border-radius:28px;overflow:hidden;box-shadow:0 14px 38px #30486c0f}.jobs-table-heading{border-bottom:1px solid #edf1f6;justify-content:space-between;align-items:center;gap:18px;padding:22px 24px;display:flex}.jobs-table-heading h2{margin:0;font-size:1.2rem}.jobs-table-heading p{color:var(--muted);margin:5px 0 0;font-size:.8rem}.jobs-status{color:#6b788c;background:#f0f5fb;border-radius:999px;padding:7px 12px;font-size:.78rem}.jobs-status-ready{color:#35785f;background:#ecfaf4}.jobs-status-error{color:#a24d4d;background:#fff0f0}.react-table-wrap{overflow-x:auto}.react-jobs-table{border-collapse:collapse;width:100%;min-width:1160px;font-size:.83rem}.react-jobs-table th{color:#66758b;text-align:right;white-space:nowrap;background:#edf2f7;border-bottom:1px solid #e8edf4;padding:14px 16px}.react-jobs-table td{color:#4e5b70;vertical-align:middle;border-bottom:1px solid #eef2f7;padding:15px 16px}.react-jobs-table tbody tr{transition:background .14s}.react-jobs-table tbody tr:hover{background:#f8fbff}.job-title-cell{min-width:250px}.job-title-cell a{color:#245fc6;font-weight:800;text-decoration:none}.job-title-cell a:hover{text-decoration:underline}.salary-cell{white-space:nowrap;font-weight:800;color:#26735b!important}.category-cell{max-width:270px}.seniority-pill{color:#4d6ea2;white-space:nowrap;background:#edf3ff;border-radius:999px;padding:5px 10px;display:inline-flex}.date-cell{white-space:nowrap;color:#7d899b!important}.jobs-empty{text-align:center;color:var(--muted)!important;padding:40px!important}.jobs-pagination{background:#f0f4f8;justify-content:center;align-items:center;gap:14px;padding:18px 22px;display:flex}.jobs-pagination button{background:var(--blue);color:#fff;cursor:pointer;border:1px solid #dce5ef;border-radius:12px;min-height:40px;padding:8px 17px;font-weight:750}.jobs-pagination .secondary-page-button{color:#566579;background:#e9eef4}.jobs-pagination button:disabled{opacity:.38;cursor:not-allowed}.jobs-pagination span{color:var(--muted);font-size:.85rem}@media (width<=1180px){.jobs-filter-panel{grid-template-columns:repeat(3,minmax(0,1fr))}.filter-search{grid-column:span 3}}@media (width<=700px){.jobs-intro{flex-direction:column;align-items:stretch}.jobs-total-badge{min-height:82px}.jobs-filter-panel{grid-template-columns:1fr}.filter-search{grid-column:auto}.jobs-summary-grid{grid-template-columns:repeat(2,1fr)}.jobs-table-heading{flex-direction:column;align-items:flex-start}}.top-nav{z-index:100;position:sticky;top:10px}.theme-control{border:1px solid var(--border);background:var(--surface);border-radius:999px;align-items:center;gap:9px;min-height:42px;padding:5px 8px 5px 11px;display:inline-flex}.theme-control-label{color:var(--muted);white-space:nowrap;font-size:.76rem;font-weight:750}.theme-switch{cursor:pointer;background:0 0;border:0;border-radius:999px;align-items:center;width:54px;height:30px;padding:0;display:inline-flex}.theme-switch-track{background:#dbe4ef;border-radius:999px;width:54px;height:30px;transition:background .18s,box-shadow .18s;display:block;position:relative;box-shadow:inset 0 1px 3px #27395221}.theme-switch-thumb{color:#e8a62d;background:#fff;border-radius:50%;place-items:center;width:24px;height:24px;font-size:.82rem;transition:transform .19s,background .19s,color .19s;display:grid;position:absolute;top:3px;right:3px;box-shadow:0 2px 7px #21324c33}.theme-switch.is-on .theme-switch-track{background:#5967de}.theme-switch.is-on .theme-switch-thumb{color:#dce4ff;background:#172033;transform:translate(-24px)}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page-bg:#101722;--surface:#182230;--surface-blue:#1c2b3d;--surface-violet:#25243a;--surface-mint:#18312e;--text:#edf2f8;--muted:#9ba9ba;--border:#2d3b4c;--blue:#6095ff;--blue-dark:#8bb3ff;--shadow:0 20px 55px #0000003d;background:var(--page-bg)}:root[data-theme=dark] body{background:radial-gradient(circle at 8% 8%, #4471b329, transparent 26rem), radial-gradient(circle at 94% 22%, #6958b221, transparent 24rem), var(--page-bg)}:root[data-theme=dark] .top-nav{border-color:var(--border);background:#182230f0;box-shadow:0 12px 34px #00000038}:root[data-theme=dark] .nav-brand-text,:root[data-theme=dark] .hero-panel h1,:root[data-theme=dark] .jobs-intro h1,:root[data-theme=dark] .stat-value,:root[data-theme=dark] .jobs-table-heading h2,:root[data-theme=dark] .jobs-summary-grid strong{color:var(--text)}:root[data-theme=dark] .nav-link{color:#b2bdcc}:root[data-theme=dark] .nav-link:hover{color:#f3f6fa;background:#202d3c;border-color:#354558}:root[data-theme=dark] .nav-link-primary{color:#9ec3ff;background:#213755}:root[data-theme=dark] .nav-link-primary:hover{color:#b7d3ff;background:#294465;border-color:#345373}:root[data-theme=dark] .nav-link-database{background:#1c2735;border-color:#344354}:root[data-theme=dark] .theme-control{background:#1b2735}:root[data-theme=dark] .theme-switch-track{background:#3a4656}:root[data-theme=dark] .hero-panel{background:linear-gradient(135deg,#192331fc,#141f2dfa);border-color:#2b3a4b}:root[data-theme=dark] .eyebrow{color:#92baff;background:#213754}:root[data-theme=dark] .orbit{border-color:#6fa1ff3d}:root[data-theme=dark] .orbit-small{background:#314e7475}:root[data-theme=dark] .shape-primary{background:linear-gradient(145deg,#1a2533,#1c3045)}:root[data-theme=dark] .shape-wide{background:linear-gradient(135deg,#1a2533,#29283d)}:root[data-theme=dark] .stat-card,:root[data-theme=dark] .state-card{border-color:var(--border)}:root[data-theme=dark] .stat-card:hover{border-color:#43566d;box-shadow:0 18px 42px #00000038}:root[data-theme=dark] .jobs-intro{border-color:var(--border);background:linear-gradient(135deg,#192432,#16202d)}:root[data-theme=dark] .jobs-total-badge{color:#9dc2ff;background:#203755}:root[data-theme=dark] .jobs-total-badge span{color:#8099b8}:root[data-theme=dark] .jobs-filter-panel,:root[data-theme=dark] .jobs-table-panel{background:var(--surface)}:root[data-theme=dark] .filter-field input,:root[data-theme=dark] .filter-field select{color:#e5ebf3;background:#141e2a;border-color:#324153}:root[data-theme=dark] .filter-field input::placeholder{color:#758398}:root[data-theme=dark] .filter-field input:focus,:root[data-theme=dark] .filter-field select:focus{background:#182432;border-color:#567fb6}:root[data-theme=dark] .filter-clear{color:#aeb9c8;background:#2a3848}:root[data-theme=dark] .searchable-menu{background:#182432;border-color:#344457}:root[data-theme=dark] .searchable-menu button{color:#b8c3d0}:root[data-theme=dark] .searchable-menu button:hover,:root[data-theme=dark] .searchable-menu button.is-selected{color:#a9c9ff;background:#233650}:root[data-theme=dark] .filter-reset{color:#b7c1ce;background:#202c3a;border-color:#344355}:root[data-theme=dark] .jobs-summary-grid>div{background:#182230}:root[data-theme=dark] .jobs-summary-grid>div:nth-child(2){background:#18312e}:root[data-theme=dark] .jobs-summary-grid>div:nth-child(3){background:#25243a}:root[data-theme=dark] .jobs-table-heading{border-bottom-color:#2c3949}:root[data-theme=dark] .jobs-status{color:#aab5c4;background:#202c3a}:root[data-theme=dark] .jobs-status-ready{color:#89d0b2;background:#18382f}:root[data-theme=dark] .jobs-status-error{color:#ef9a9a;background:#402329}:root[data-theme=dark] .react-jobs-table th{color:#a4b0c0;background:#141e2a;border-bottom-color:#2d3a49}:root[data-theme=dark] .react-jobs-table td{color:#bdc7d3;border-bottom-color:#263341}:root[data-theme=dark] .react-jobs-table tbody tr:hover{background:#1d2a39}:root[data-theme=dark] .job-title-cell a{color:#83adff}:root[data-theme=dark] .salary-cell{color:#79c9a9!important}:root[data-theme=dark] .seniority-pill{color:#9db7dd;background:#24354b}:root[data-theme=dark] .date-cell{color:#919dad!important}:root[data-theme=dark] .jobs-pagination{background:#141e2a}:root[data-theme=dark] .jobs-pagination .secondary-page-button{color:#b8c2cf;background:#202c3a;border-color:#354456}@media (width<=700px){.theme-control-label{display:none}}.ranking-intro{background:linear-gradient(135deg, var(--surface), var(--surface-violet));border:1px solid var(--border);border-radius:28px 28px 64px;justify-content:space-between;align-items:center;gap:28px;margin-bottom:18px;padding:34px;display:flex;box-shadow:0 12px 34px #30486c0f}.ranking-intro h1{color:var(--text);margin:16px 0 7px;font-size:clamp(1.9rem,3vw,2.8rem)}.ranking-intro p{color:var(--muted);margin:0}.ranking-intro-shape{justify-content:center;align-items:center;gap:8px;width:180px;height:110px;display:flex}.ranking-intro-shape span{background:linear-gradient(#6095ff,#8072ef);border-radius:999px;width:24px}.ranking-intro-shape span:first-child{height:42px}.ranking-intro-shape span:nth-child(2){height:74px}.ranking-intro-shape span:nth-child(3){height:100px}.ranking-filter-panel{z-index:20;background:var(--surface);border:1px solid var(--border);border-radius:24px;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px;padding:20px;display:grid;position:relative;box-shadow:0 12px 30px #30486c0d}.ranking-filter-actions{grid-column:1/-1;gap:9px;padding-top:3px;display:flex}.ranking-panel{background:var(--surface);border:1px solid var(--border);border-radius:28px;overflow:hidden;box-shadow:0 14px 38px #30486c0f}.ranking-heading{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:18px;padding:23px 25px;display:flex}.ranking-heading h2{color:var(--text);margin:0;font-size:1.25rem}.ranking-heading p{color:var(--muted);margin:7px 0 0;font-size:.82rem}.ranking-status{background:var(--surface-blue);color:var(--muted);white-space:nowrap;border-radius:999px;padding:7px 12px;font-size:.78rem}.ranking-status-ready{background:var(--surface-mint);color:#36755f}.ranking-status-error{color:#a34d4d;background:#fff0f0}.ranking-chart{padding:8px 24px 20px}.ranking-row{border-bottom:1px solid var(--border);grid-template-columns:minmax(280px,.95fr) minmax(280px,1.6fr) minmax(175px,auto);align-items:center;gap:22px;min-height:86px;padding:14px 4px;display:grid}.ranking-row:last-child{border-bottom:0}.ranking-label{align-items:center;gap:13px;display:flex}.ranking-number{background:var(--surface-blue);width:40px;height:40px;color:var(--blue-dark);border-radius:14px 14px 22px;flex:none;place-items:center;font-weight:900;display:grid}.ranking-label>div{flex-direction:column;gap:5px;min-width:0;display:flex}.ranking-label strong{color:var(--text);font-size:.9rem}.ranking-label span:not(.ranking-number){color:var(--muted);font-size:.76rem}.ranking-track{background:#e9eef5;border-radius:999px;width:100%;height:17px;overflow:hidden;box-shadow:inset 0 1px 2px #32466014}.ranking-bar{border-radius:inherit;background:linear-gradient(90deg,#4d8df7,#766cec);min-width:4px;height:100%}.ranking-value{color:#26735b;text-align:left;white-space:nowrap}.ranking-empty{min-height:180px;color:var(--muted);text-align:center;place-items:center;display:grid}.ranking-error{color:#a24d4d}.ranking-note{border-top:1px solid var(--border);color:var(--muted);text-align:center;background:#f0f4f8;padding:17px 24px;font-size:.8rem}:root[data-theme=dark] .ranking-intro{background:linear-gradient(135deg,#192432,#27263b)}:root[data-theme=dark] .ranking-status-ready{color:#89d0b2;background:#18382f}:root[data-theme=dark] .ranking-status-error{color:#ef9a9a;background:#402329}:root[data-theme=dark] .ranking-track{background:#263444}:root[data-theme=dark] .ranking-value{color:#79c9a9}:root[data-theme=dark] .ranking-note{background:#141e2a}@media (width<=900px){.ranking-intro-shape{display:none}.ranking-filter-panel{grid-template-columns:1fr}.ranking-filter-actions{grid-column:auto}.ranking-row{grid-template-columns:1fr;gap:12px}.ranking-value{text-align:right}}.software-intro{background:linear-gradient(135deg, var(--surface), var(--surface-blue));border:1px solid var(--border);border-radius:28px 58px 28px 28px;justify-content:space-between;align-items:center;gap:28px;margin-bottom:18px;padding:34px;display:flex;box-shadow:0 12px 34px #30486c0f}.software-intro h1{color:var(--text);margin:16px 0 7px;font-size:clamp(1.9rem,3vw,2.8rem)}.software-intro p{color:var(--muted);margin:0}.software-intro-shape{justify-content:center;align-items:flex-end;gap:7px;width:180px;height:105px;display:flex}.software-intro-shape span{background:linear-gradient(#55a2f7,#5275e8);border-radius:9px 9px 4px 4px;width:20px}.software-intro-shape span:first-child{height:38px}.software-intro-shape span:nth-child(2){height:72px}.software-intro-shape span:nth-child(3){height:52px}.software-intro-shape span:nth-child(4){height:94px}.software-row{border-bottom:1px solid var(--border);grid-template-columns:minmax(260px,.95fr) minmax(280px,1.7fr) minmax(80px,auto);align-items:center;gap:22px;min-height:78px;padding:13px 4px;display:grid}.software-row:last-child{border-bottom:0}.software-label{align-items:center;gap:13px;min-width:0;display:flex}.software-label strong{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:.92rem;overflow:hidden}.software-bar{border-radius:inherit;background:linear-gradient(90deg,#4c93f4,#5ab6df);min-width:4px;height:100%}.software-count{min-width:70px;color:var(--blue-dark);text-align:left;white-space:nowrap}:root[data-theme=dark] .software-intro{background:linear-gradient(135deg,#192432,#1b2d42)}:root[data-theme=dark] .software-count{color:#82b4ff}@media (width<=900px){.software-intro-shape{display:none}.software-row{grid-template-columns:1fr;gap:12px}.software-count{text-align:right}}.react-map-panel{background:var(--surface);border:1px solid var(--border);border-radius:30px 30px 70px;margin-bottom:18px;position:relative;overflow:hidden;box-shadow:0 14px 38px #30486c0f}.react-map-heading{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:24px;padding:25px 28px;display:flex}.react-map-heading h2{color:var(--text);margin:13px 0 6px;font-size:clamp(1.35rem,2.2vw,1.85rem)}.react-map-heading p{color:var(--muted);margin:0;font-size:.86rem}.map-muted{color:var(--muted)}.map-hover-summary{border:1px solid var(--border);background:var(--surface-blue);min-width:180px;color:var(--muted);text-align:center;border-radius:16px 16px 24px;padding:10px 14px}.map-hover-summary strong{color:var(--text);font-size:.95rem;font-weight:900;display:block}.map-hover-summary span{margin-top:3px;font-size:.73rem;display:block}.iran-map-shell{background:radial-gradient(circle,#367bf514,#0000 56%),linear-gradient(#eaf2fb61,#0000);justify-content:center;align-items:center;min-height:510px;padding:24px;display:flex;overflow:hidden}.iran-map{justify-content:center;align-items:center;width:min(100%,760px);min-height:450px;display:flex}.iran-map svg{width:100%;height:auto;max-height:650px;display:block;overflow:visible}.map-loading{color:var(--muted);text-align:center;padding:24px}.iran-province{fill:#367bf51f;stroke:#4b5b746b;stroke-width:1.7px;vector-effect:non-scaling-stroke;cursor:pointer;transition:fill .16s,stroke .16s,stroke-width .16s,filter .16s,opacity .16s}.iran-province.has-jobs{fill:rgba(54, 123, 245, var(--province-alpha,.2))}.iran-province.no-jobs{fill:#8996a914;opacity:.6}.iran-province:hover,.iran-province.is-hovered{stroke:#fff;stroke-width:3.4px;opacity:1;filter:drop-shadow(0 0 5px #367bf585)drop-shadow(0 0 14px #367bf52e);fill:#3d8ee8b3!important}.province-hover-label{pointer-events:none;fill:#fff;stroke:#172033e0;stroke-width:4px;paint-order:stroke fill;text-anchor:middle;dominant-baseline:middle;font-size:21px;font-weight:950}.iran-map-tooltip{z-index:3000;pointer-events:none;color:#f6f8fb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);text-align:right;background:#172033f2;border:1px solid #ffffff29;border-radius:13px;min-width:150px;padding:10px 13px;position:fixed;box-shadow:0 14px 38px #1b283d4d}.iran-map-tooltip strong{font-size:.82rem;font-weight:900;display:block}.iran-map-tooltip span{color:#b8c3d2;margin-top:3px;font-size:.72rem;display:block}body.province-modal-open{overflow:hidden}.province-modal[hidden]{display:none!important}.province-modal{z-index:2500;-webkit-backdrop-filter:blur(12px);background:#1c263770;justify-content:center;align-items:center;padding:28px;display:flex;position:fixed;inset:0}.province-dialog{background:radial-gradient(circle at top right, #367bf514, transparent 36%), var(--surface);border:1px solid var(--border);border-radius:28px 28px 58px;width:min(1100px,96vw);max-height:90vh;position:relative;overflow:auto;box-shadow:0 30px 90px #2230463b}.province-modal-close{z-index:10;border:1px solid var(--border);background:var(--surface-blue);width:42px;height:42px;color:var(--text);cursor:pointer;border-radius:14px;place-items:center;padding:0;font-size:1.55rem;line-height:1;display:grid;position:absolute;top:16px;left:16px}.province-modal-close:hover{background:#e2edf9;border-color:#a9bfdc}.province-modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:20px;padding:24px 76px 20px 24px;display:flex}.province-modal-kicker{color:var(--blue);font-size:.72rem;font-weight:850}.province-modal-header h2{color:var(--text);margin:3px 0 0;font-size:1.7rem}.province-modal-header p{margin:4px 0 0;font-size:.78rem}.province-modal-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.province-all-jobs,.province-map-toggle{background:var(--surface-blue);color:var(--blue-dark);white-space:nowrap;border:1px solid #c9d9ee;border-radius:13px;padding:10px 14px;font-size:.8rem;font-weight:800;text-decoration:none}.province-all-jobs:hover,.province-map-toggle:hover{background:#dceafa;border-color:#9ebce2}.province-map-toggle{background:var(--surface-blue);color:var(--blue-dark);font:inherit;white-space:nowrap;cursor:pointer;border:1px solid #c9d9ee;border-radius:13px;font-size:.8rem;font-weight:800}.province-modal-body{grid-template-columns:1fr;min-height:480px;display:grid}.province-modal-body.is-map-visible{grid-template-columns:1.05fr .95fr}.province-focus-area{border-left:1px solid var(--border);background:radial-gradient(circle at center, #367bf517, transparent 60%), var(--surface-blue);flex-direction:column;justify-content:center;min-height:480px;padding:26px;display:none;position:relative;overflow:hidden}.province-focus-area.is-mobile-visible{display:flex}.province-focus-svg{cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;width:100%;height:380px;overflow:visible}.province-focus-svg.is-panning{cursor:grabbing}.province-focus-shape{fill:#367bf52e;stroke:#5b91e4;stroke-width:2.8px;vector-effect:non-scaling-stroke;filter:drop-shadow(0 10px 17px #30507a2e)}.province-focus-note{text-align:center;margin-top:10px;font-size:.7rem;line-height:1.8}.province-coordinate-source{white-space:nowrap}.province-coordinate-source a{color:var(--blue);text-decoration:none}.province-coordinate-source a:hover{text-decoration:underline}.province-cities-area{min-width:0;padding:26px}.province-cities-heading{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.province-cities-heading h3{color:var(--text);margin:0;font-size:1.05rem}.province-cities-heading p{color:var(--muted);margin:4px 0 0;font-size:.75rem}.province-city-list{flex-wrap:wrap;align-content:flex-start;gap:9px;max-height:390px;padding:2px 0 12px;display:flex;overflow-y:auto}.province-city{border:1px solid var(--border);background:var(--surface-blue);color:var(--text);border-radius:999px;align-items:center;gap:8px;padding:9px 12px;text-decoration:none;transition:border-color .14s,background .14s,transform .14s;display:inline-flex}.province-city:hover,.province-city.is-map-hovered{color:var(--blue-dark);background:#dceafa;border-color:#82aae1;transform:translateY(-1px)}.province-city strong{font-weight:850}.province-city-count{min-width:29px;height:23px;color:var(--blue-dark);background:#367bf51f;border-radius:999px;justify-content:center;align-items:center;padding:0 7px;font-size:.68rem;display:inline-flex}.province-city-marker{cursor:pointer;outline:none}.city-marker-hit{fill:#0000;pointer-events:all}.city-marker-halo{fill:#367bf51c;stroke:#367bf53d;stroke-width:1px;vector-effect:non-scaling-stroke;transition:fill .14s,stroke .14s}.city-marker-dot{fill:#438cf3;stroke:#fff;stroke-width:1.7px;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 3px #367bf5b3)drop-shadow(0 0 6px #367bf547);transition:fill .14s,stroke .14s,stroke-width .14s}.province-city-marker:hover .city-marker-halo,.province-city-marker.is-highlighted .city-marker-halo{fill:#367bf547;stroke:#367bf5b3}.province-city-marker:hover .city-marker-dot,.province-city-marker.is-highlighted .city-marker-dot{fill:#fff;stroke:#367bf5;stroke-width:2.6px}.city-flag-line{stroke:#367bf585;stroke-width:1.25px;vector-effect:non-scaling-stroke;pointer-events:none}.city-flag-box{fill:#f8fafcf5;stroke:#367bf573;stroke-width:1px;vector-effect:non-scaling-stroke;transition:fill .14s,stroke .14s}.city-flag-text{fill:#26374e;text-anchor:middle;dominant-baseline:central;pointer-events:none;font-weight:850}.province-city-marker:hover .city-flag-box,.province-city-marker.is-highlighted .city-flag-box{fill:#367bf5;stroke:#fff}.province-city-marker:hover .city-flag-text,.province-city-marker.is-highlighted .city-flag-text{fill:#fff}.province-map-controls{z-index:20;gap:6px;display:flex;position:absolute;top:18px;right:18px}.province-map-control{border:1px solid var(--border);width:38px;height:38px;color:var(--text);cursor:pointer;background:#fbfcfeeb;border-radius:12px;justify-content:center;align-items:center;padding:0;font-size:1.25rem;font-weight:800;line-height:1;display:inline-flex;box-shadow:0 7px 18px #2839521a}.province-map-control:hover{color:var(--blue-dark);background:#e5eef9;border-color:#9dbbe1}.province-map-reset{font-size:1rem}:root[data-theme=dark] .react-map-panel{background:var(--surface)}:root[data-theme=dark] .iran-map-shell{background:radial-gradient(circle,#6095ff1a,#0000 56%),#151f2c}:root[data-theme=dark] .map-hover-summary{background:#1d2b3b}:root[data-theme=dark] .iran-province{fill:#6095ff1f;stroke:#c5d0df6b}:root[data-theme=dark] .iran-province.has-jobs{fill:rgba(96, 149, 255, var(--province-alpha,.2))}:root[data-theme=dark] .iran-province.no-jobs{fill:#7b8b9f14}:root[data-theme=dark] .iran-province:hover,:root[data-theme=dark] .iran-province.is-hovered{stroke:#e8f7ff;filter:drop-shadow(0 0 5px #52a4e09e)drop-shadow(0 0 14px #52a4e033);fill:#52a4e0ad!important}:root[data-theme=dark] .province-dialog{background:radial-gradient(circle at 100% 0,#6095ff14,#0000 36%),#182230;border-color:#314052;box-shadow:0 30px 100px #0000007a}:root[data-theme=dark] .province-modal{background:#04090fa8}:root[data-theme=dark] .province-modal-close{background:#202d3c}:root[data-theme=dark] .province-modal-close:hover{background:#293a4c}:root[data-theme=dark] .province-all-jobs,:root[data-theme=dark] .province-map-toggle{color:#9fc4ff;background:#213753;border-color:#344b67}:root[data-theme=dark] .province-all-jobs:hover,:root[data-theme=dark] .province-map-toggle:hover{background:#294462;border-color:#4e6f97}:root[data-theme=dark] .province-focus-area{background:radial-gradient(circle,#6095ff1a,#0000 60%),#141f2c}:root[data-theme=dark] .province-focus-shape{fill:#6095ff2e;stroke:#83acfa;filter:drop-shadow(0 10px 18px #00000040)}:root[data-theme=dark] .province-city{color:#dce5ef;background:#1e2c3b;border-color:#344456}:root[data-theme=dark] .province-city:hover,:root[data-theme=dark] .province-city.is-map-hovered{color:#b6d2ff;background:#243c59;border-color:#567fae}:root[data-theme=dark] .province-city-count{color:#abc9fa;background:#263d5b}:root[data-theme=dark] .city-marker-dot{fill:#62a6ff;stroke:#eaf5ff}:root[data-theme=dark] .city-marker-halo{fill:#62a6ff1f;stroke:#62a6ff47}:root[data-theme=dark] .city-flag-line{stroke:#97c5ff94}:root[data-theme=dark] .city-flag-box{fill:#141e2af5;stroke:#62a6ff7a}:root[data-theme=dark] .city-flag-text{fill:#e5edf7}:root[data-theme=dark] .province-map-control{color:#e5edf7;background:#141e2af0;border-color:#344456;box-shadow:0 7px 18px #0003}:root[data-theme=dark] .province-map-control:hover{color:#fff;background:#25374b;border-color:#5376a0}@media (width<=760px){.react-map-heading{flex-direction:column;align-items:flex-start}.map-hover-summary{width:100%}.iran-map-shell{min-height:390px;padding:12px}.iran-map{min-height:360px}.province-modal{-webkit-backdrop-filter:none;align-items:stretch;width:100%;height:100dvh;padding:0;inset:0}.province-dialog{-webkit-overflow-scrolling:touch;border:0;border-radius:0;width:100%;max-width:none;height:100dvh;max-height:none;margin:0;overflow:hidden auto}.province-modal-header{z-index:40;width:100%;padding:max(14px, env(safe-area-inset-top)) 56px 12px 14px;-webkit-backdrop-filter:blur(10px);background:#fbfcfef7;flex-direction:column;align-items:stretch;gap:10px;position:sticky;top:0}:root[data-theme=dark] .province-modal-header{background:#182230f7}.province-modal-close{top:max(12px, env(safe-area-inset-top));z-index:60;width:40px;height:40px;position:fixed;left:12px}.province-all-jobs{text-align:center;justify-content:center;align-items:center;width:100%;min-height:42px;margin-top:2px;display:flex}.province-modal-body{flex-direction:column;width:100%;min-height:0;display:flex}.province-focus-area{border:0;border-bottom:1px solid var(--border);order:1;width:100%;min-width:0;min-height:0;padding:14px 8px 8px}.province-focus-svg{width:100%;height:46dvh;min-height:300px;max-height:430px;display:block}.province-map-controls{gap:5px;top:10px;right:10px}.province-focus-note{width:100%;padding:6px 8px 2px;font-size:.64rem}.province-cities-area{width:100%;min-width:0;padding:14px 10px max(24px, env(safe-area-inset-bottom));order:2}.province-city-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;width:100%;max-height:none;padding:0;display:grid;overflow:visible}.province-city{justify-content:space-between;align-items:center;width:100%;min-width:0;padding:9px 10px;font-size:.75rem;display:flex}.province-city strong{overflow-wrap:anywhere;min-width:0}.province-city-count{flex:none}.iran-map-tooltip{max-width:calc(100vw - 20px)}}@media (width<=420px){.province-modal-header h2{font-size:1.35rem}.province-focus-svg{height:43dvh;min-height:280px}.province-city-list{grid-template-columns:1fr}}.top-nav{padding-left:175px}.top-nav .theme-control{z-index:5;margin:0;position:absolute;top:50%;left:14px;transform:translateY(-50%)}@media (width<=700px){.top-nav{padding-left:82px}.top-nav .theme-control{left:10px}}.hero-top-metric{border:1px solid var(--border);background:var(--surface-blue);min-width:170px;color:var(--text);text-align:center;border-radius:24px 24px 42px;flex-direction:column;align-items:center;gap:4px;padding:18px 22px;display:flex}.hero-top-metric span{color:var(--muted);font-size:.78rem;font-weight:750}.hero-top-metric strong{color:var(--blue-dark);font-size:2rem;font-weight:950;line-height:1.2}.hero-top-metric small{color:var(--muted);font-size:.7rem}:root[data-theme=dark] .hero-top-metric{background:#203754;border-color:#31465f}:root[data-theme=dark] .hero-top-metric strong{color:#9fc4ff}@media (width<=700px){.hero-top-metric{width:100%;min-width:0}}@media (width<=900px){.hero-summary-cards{flex-wrap:wrap}}@media (width<=700px){.hero-summary-cards{flex-direction:column;width:100%}}.hero-panel{margin-bottom:18px}.hero-panel h1{font-size:clamp(1.9rem,3vw,2.55rem)}.jobs-intro h1,.ranking-intro h1,.software-intro h1{font-size:clamp(1.7rem,2.6vw,2.3rem)}.react-map-heading h2{font-size:clamp(1.2rem,2vw,1.6rem)}.hero-summary-cards{direction:rtl;align-items:stretch;gap:12px;display:flex}.hero-top-metric{min-width:165px}.hero-average-salary strong{white-space:nowrap;font-size:1.45rem}@media (width<=900px){.hero-summary-cards{flex-wrap:wrap}}@media (width<=700px){.hero-panel{margin-bottom:18px}.hero-summary-cards{flex-direction:column;width:100%}.hero-top-metric{width:100%;min-width:0}}.job-title-actions{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.job-expand-button{color:#5d6d82;cursor:pointer;background:#eef3f8;border:1px solid #cfd9e7;border-radius:9px;padding:5px 10px;font-size:.72rem;font-weight:800}.job-expand-button:hover{color:#315f9f;background:#e5edf6}.source-cell{white-space:nowrap;font-weight:750}.job-detail-row:hover{background:0 0!important}.job-detail-row>td{background:#f8fafc;padding:0!important}.job-detail-panel{padding:20px 24px}.job-detail-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px;display:flex}.job-detail-header h3,.job-detail-section h4{color:var(--text);margin:0}.job-detail-status{color:var(--muted);margin:5px 0 0;font-size:.78rem}.job-detail-links{flex-wrap:wrap;gap:8px;display:flex}.job-detail-links a{color:#315f9f;white-space:nowrap;border:1px solid #cfd9e7;border-radius:9px;padding:7px 11px;text-decoration:none}.job-detail-section{margin-top:14px}.job-detail-section h4{margin-bottom:8px;font-size:.88rem}.job-detail-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.job-detail-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.job-detail-item{background:#fff;border:1px solid #e2e9f1;border-radius:12px;padding:12px 14px}.job-detail-item span,.job-detail-description>span{color:#7a8798;margin-bottom:6px;font-size:.75rem;font-weight:800;display:block}.job-detail-item strong{color:#4b596d;font-size:.82rem;line-height:1.8}.job-detail-description{background:#fff;border:1px solid #e2e9f1;border-radius:12px;margin-top:14px;padding:15px 16px}.job-detail-description p{color:#536176;white-space:pre-wrap;margin:0;line-height:2}.job-detail-empty{color:var(--muted)}:root[data-theme=dark] .job-expand-button{color:#b8c2cf;background:#202c3a;border-color:#354456}:root[data-theme=dark] .job-expand-button:hover{color:#9dbdff;background:#29394b}:root[data-theme=dark] .job-detail-row>td{background:#141e2a}:root[data-theme=dark] .job-detail-item,:root[data-theme=dark] .job-detail-description,:root[data-theme=dark] .job-detail-links a{background:#182432;border-color:#324153}:root[data-theme=dark] .job-detail-item strong,:root[data-theme=dark] .job-detail-description p{color:#bdc7d3}@media (width<=900px){.job-detail-grid,.job-detail-list{grid-template-columns:1fr}.job-detail-header{flex-direction:column}}
