@font-face{font-family:Vazir;src:url('../fonts/Vazir-Regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Vazir;src:url('../fonts/Vazir-Bold.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}
:root{--brand:#152d52;--brand-accent:#305f96;--site-bg:#f3f6fb;--site-panel:#fff;--site-border:#e6ebf2}
[data-bs-theme=dark]{--brand:#0c1a30;--brand-accent:#87b8ff;--site-bg:#0e1522;--site-panel:#182537;--site-border:#2d3b51;--bs-body-color:#e3eafa;--bs-secondary-color:#a9b7ce;--bs-border-color:var(--site-border);--bs-secondary-bg:#223149;--bs-tertiary-bg:#1b293f}
*,*::before,*::after{font-family:Vazir,Tahoma,sans-serif!important}
html{min-height:100%}body{background:var(--site-bg);min-height:100vh;color:var(--bs-body-color);font-size:14px;line-height:1.9}
form#form1{min-height:100vh;display:flex;flex-direction:column}.main-content{flex:1}
.topbar{background:var(--brand);box-shadow:0 2px 14px #0c254219}.topbar .nav-link{color:#dce7f4;white-space:nowrap;padding:.45rem .63rem!important;border-radius:8px}
.topbar .nav-link:hover,.topbar .nav-link:focus{background:#ffffff1a;color:white}
.brand-subtitle{color:#c4d5e9;font-size:.65rem}.site-logo{object-fit:contain;background:#fff;border-radius:12px;padding:4px}
.navbar-brand{white-space:normal}.theme-switch{min-width:75px}.site-footer{border-top:1px solid var(--site-border);color:var(--bs-secondary-color)}
.card{background:var(--site-panel);border:1px solid var(--site-border)!important;border-radius:15px}.card-body{min-width:0}
h1,h2,h3{line-height:1.65}.text-body-secondary{color:var(--bs-secondary-color)!important}
.form-control,.form-select{border:1px solid var(--bs-border-color);border-radius:9px;background-color:var(--bs-body-bg);min-height:42px}
.form-control:focus,.form-select:focus{border-color:#5588ba;box-shadow:0 0 0 .18rem #3e82bd25}
.btn{border-radius:9px;font-weight:700;padding:.46rem 1rem}.btn-primary{--bs-btn-bg:#234f83;--bs-btn-border-color:#234f83;--bs-btn-hover-bg:#153d6f;--bs-btn-hover-border-color:#153d6f;--bs-btn-disabled-bg:#5b7390}
label.form-label{font-size:.82rem;font-weight:700;margin-bottom:.34rem}
.table{--bs-table-bg:transparent;--bs-table-striped-bg:transparent;--bs-table-hover-bg:rgba(80,128,173,.075);font-size:.82rem;white-space:nowrap}
.table th{font-weight:700;font-size:.76rem;color:var(--bs-secondary-color);border-bottom:1px solid var(--site-border);padding:12px}
.table td{vertical-align:middle;border-bottom:1px solid var(--site-border);padding:11px 12px}
.table-responsive{border:1px solid var(--site-border);border-radius:11px}
.table-responsive .table{margin:0}.scope-checks{border:1px solid var(--site-border);border-radius:10px;padding:12px;max-height:200px;overflow:auto;display:grid;gap:6px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.form-check{display:flex;align-items:center;gap:8px;margin:0}.form-check-input{flex-shrink:0;margin:0}
.selection-list{max-height:255px;overflow-y:auto;border:1px solid var(--site-border);border-radius:10px}
.list-group-item{background:var(--site-panel);color:var(--bs-body-color);border-color:var(--site-border);padding:9px 13px}
.list-group-item.active{background:#244e81;border-color:#244e81;color:white}
.selection-badge{border:1px solid var(--site-border);background:var(--bs-tertiary-bg);border-radius:9px;padding:11px 13px;min-height:77px}
.login-symbol{width:48px;height:48px;display:grid;place-items:center;background:#234f83;color:white;font-size:1.3rem;font-weight:700;border-radius:13px}
[data-bs-theme=dark] .card{box-shadow:0 6px 22px #0002!important}[data-bs-theme=dark] .form-control,[data-bs-theme=dark] .form-select{background:#142235;color:#e3eafa}
[data-bs-theme=dark] .table{--bs-table-hover-bg:rgba(120,170,230,.10)}
@media(max-width:991px){.navbar-nav{padding-top:1rem}.brand-subtitle{max-width:200px;line-height:1.6}.main-content{padding-top:20px!important}}
@media(max-width:575px){body{font-size:13px}.navbar-brand span.fs-6{font-size:13px!important}.site-logo{width:39px;height:39px}.navbar-brand{gap:8px!important}.btn{padding:.45rem .7rem}.card-body{padding:16px!important}}
/* Sidebar navigation (right in RTL), without changing data-grid styles. */
.sidebar-card{position:sticky;top:100px}
.sidebar-nav .nav-link{color:var(--bs-body-color);border-radius:10px;padding:.65rem .8rem;font-weight:700;font-size:.83rem;line-height:1.75;transition:background .15s ease}
.sidebar-nav .nav-link:hover,.sidebar-nav .nav-link:focus{background:var(--bs-tertiary-bg);color:var(--brand-accent)}
.sidebar-nav .nav-link.active{background:#e3edf8;color:#183d6e;box-shadow:inset -3px 0 #305f96}
[data-bs-theme=dark] .sidebar-nav .nav-link.active{background:#213d60;color:#e7f2ff;box-shadow:inset -3px 0 #8abaff}
.sidebar-separator{height:1px;background:var(--site-border)}
.header-actions{margin-inline-start:auto}
.page-area{min-width:0}
.sidebar-card .nav-link{white-space:normal}
.accordion .accordion-button{font-weight:700;text-align:right;box-shadow:none}
.accordion .accordion-body{background:var(--site-panel)}
@media(max-width:991.98px){.sidebar-card{position:static}.sidebar-card .card-body{padding:0!important}.sidebar-nav{padding:.5rem}.header-actions{gap:.35rem!important}}
/* Header toggle icon remains visible outside Bootstrap's navbar component. */
.topbar .navbar-toggler{color:#fff;border:1px solid #ffffff66;padding:.3rem .65rem;font-size:1.25rem;line-height:1}
/* Consistent accessible feedback and spacious RTL forms (table styles unchanged). */
.geo-notice{border-radius:12px;border-width:1px;border-inline-start-width:4px;padding:1rem 1.15rem;box-shadow:0 4px 15px rgba(15,38,72,.045)}
.geo-notice .btn-close{inset-inline-start:auto;inset-inline-end:.45rem;top:.5rem}
.geo-notice .d-flex{padding-inline-end:1.3rem}
.geo-notice-icon{width:28px;height:28px;flex:0 0 28px;border-radius:50%;display:grid;place-items:center;background:currentColor;font-weight:700;font-size:1.1rem;line-height:1}
.geo-notice-icon::first-letter{color:var(--bs-body-bg)}
.geo-notice:focus{outline:2px solid var(--brand-accent);outline-offset:3px}
.geo-error-symbol{width:54px;height:54px;border-radius:14px;background:rgba(197,50,58,.10);color:#b13d49;font-size:2rem;font-weight:700;display:grid;place-items:center}
.page-area>.container-fluid{max-width:100%}
.page-area .form-control,.page-area .form-select{scroll-margin-top:100px}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #4389d0;outline-offset:2px}
@media (max-width:576px){.geo-notice{padding:.85rem 1rem}.geo-notice .d-flex{gap:.65rem!important}}
/* Assignment grids: column filters and paging preserve the existing Bootstrap grid style. */
.geo-filter-grid{position:relative;min-width:0}
.geo-choose-table{width:100%;min-width:760px;border-collapse:separate;border-spacing:0}
.geo-choose-table th{vertical-align:bottom;white-space:nowrap}
.geo-choose-table thead th.geo-filter-header{vertical-align:top;padding:10px 9px 11px;background:var(--bs-tertiary-bg);border-bottom:1px solid var(--site-border)}
.geo-filter-header .geo-header-title{display:block;font-weight:700;min-height:24px;margin-bottom:8px}
.geo-filter-header .geo-header-filter{display:block}
.geo-filter-header .geo-header-filter .form-control{width:100%;min-height:35px;font-size:.76rem;font-weight:400;background:var(--bs-body-bg);text-align:right}
.geo-filter-header .geo-header-filter .btn{white-space:nowrap;min-height:35px}
.geo-filter-header.geo-select-header{min-width:100px}
.geo-choose-table tbody tr.geo-selected-row>td{background:rgba(48,95,150,.1);font-weight:700}
[data-bs-theme=dark] .geo-choose-table tbody tr.geo-selected-row>td{background:rgba(115,164,220,.17)}
.geo-choose-table tbody td:last-child{white-space:nowrap}
.geo-choose-table tbody tr:hover td{transition:background-color .12s}
.geo-filter-grid.geo-grid-loading tbody{opacity:.48;transition:opacity .15s}
.geo-filter-grid .geo-grid-footer .btn.disabled{pointer-events:none}
.geo-filter-grid .geo-grid-warning{margin-bottom:0}
@media(max-width:600px){.geo-choose-table{min-width:690px}.geo-grid-footer{row-gap:10px}}
/* Extended map-selection grid: horizontal scrolling without squeezing filters. */
.geo-filter-grid[data-geo-grid='map'] .geo-choose-table{min-width:1480px}
.geo-filter-grid[data-geo-grid='map'] .geo-choose-table thead th:nth-child(3){min-width:185px}
.geo-filter-grid[data-geo-grid='map'] .geo-choose-table thead th:nth-child(2){min-width:135px}
.geo-filter-grid[data-geo-grid='map'] .geo-choose-table thead th:nth-child(8),
.geo-filter-grid[data-geo-grid='map'] .geo-choose-table thead th:nth-child(9){min-width:130px}

/* Keep text inputs consistent with the current light/dark theme, including
   Chrome/Edge/Firefox autofill (which otherwise paints fields yellow/green). */
:root{--geo-input-bg:#fff;--geo-input-fg:#212529}
[data-bs-theme=dark]{--geo-input-bg:#142235;--geo-input-fg:#e3eafa}
.form-control,.form-select{background-color:var(--geo-input-bg);color:var(--geo-input-fg)}
.geo-filter-header .geo-header-filter .form-control{background-color:var(--geo-input-bg)}
input.form-control:autofill,input.form-control:-webkit-autofill,
textarea.form-control:autofill,textarea.form-control:-webkit-autofill,
select.form-select:autofill,select.form-select:-webkit-autofill{
  -webkit-box-shadow:0 0 0 1000px var(--geo-input-bg) inset!important;
  box-shadow:0 0 0 1000px var(--geo-input-bg) inset!important;
  -webkit-text-fill-color:var(--geo-input-fg)!important;
  caret-color:var(--geo-input-fg);
}
/* Selection is the final logical column (left edge in this RTL grid).
   Its sticky position keeps the Select action accessible on wide tables. */
.geo-filter-grid[data-geo-grid='map'] .geo-choose-table :is(thead th:last-child,tbody td:last-child){
  position:sticky;left:0;right:auto;min-width:116px;z-index:2;
  background-color:var(--site-panel);
  box-shadow:5px 0 10px -10px rgba(18,39,70,.7);
}
.geo-filter-grid[data-geo-grid='map'] .geo-choose-table thead th:last-child{
  z-index:4;background-color:var(--bs-tertiary-bg);
}
.geo-filter-grid[data-geo-grid='map'] .geo-choose-table tr.geo-selected-row td:last-child{
  background-color:var(--bs-secondary-bg);
}
.geo-filter-grid[data-geo-grid='map'] .geo-choose-table tbody tr:hover td:last-child{
  background-color:var(--bs-tertiary-bg);
}
.geo-filter-grid[data-geo-grid='map'] .geo-choose-table tbody td:last-child .btn{
  white-space:nowrap;
}
.geo-map-detail{overflow-wrap:anywhere}
.geo-map-detail strong{white-space:pre-wrap}
/* Interactive server-side sorting on grid column titles. */
.geo-filter-header .geo-sort-link{
  display:flex;align-items:center;justify-content:space-between;
  gap:.45rem;min-height:27px;margin-bottom:8px;
  color:var(--bs-body-color);font-weight:700;
  text-decoration:none;border-radius:5px;
}
.geo-filter-header .geo-sort-link .geo-header-title{margin:0;min-height:0;line-height:1.6}
.geo-filter-header .geo-sort-indicator{font-size:.82rem;flex:0 0 auto;color:var(--bs-secondary-color);font-weight:700}
.geo-filter-header .geo-sort-link.geo-sort-active .geo-sort-indicator{color:var(--brand-accent)}
.geo-filter-header .geo-sort-link:hover,.geo-filter-header .geo-sort-link:focus-visible{color:var(--brand-accent);text-decoration:none}
.geo-filter-header .geo-sort-link:hover .geo-sort-indicator{color:var(--brand-accent)}
/* Expired company-license dates in the second assignment grid.
   Keep the actual date readable; emphasize only truly expired Jalali values. */
.geo-filter-grid[data-geo-grid='company'] .geo-expired-date{
  color:#c62828;
  font-weight:700;
}
[data-bs-theme=dark] .geo-filter-grid[data-geo-grid='company'] .geo-expired-date{
  color:#ff7888;
}
/* Pinned map type beside the action: both rightmost logical columns stay in
   view on narrow screens. Widths match the left offsets in this RTL table. */
.geo-filter-grid[data-geo-grid='map'] .geo-choose-table :is(thead th:last-child,tbody td:last-child){
  width:126px;min-width:126px;max-width:126px;
}
.geo-filter-grid[data-geo-grid='map'] .geo-choose-table :is(thead th:nth-last-child(2),tbody td:nth-last-child(2)){
  position:sticky;left:126px;right:auto;
  width:160px;min-width:160px;max-width:160px;
  background-color:var(--site-panel);
  box-shadow:5px 0 10px -10px rgba(18,39,70,.55);
  z-index:2;
}
.geo-filter-grid[data-geo-grid='map'] .geo-choose-table thead th:nth-last-child(2){
  z-index:5;background-color:var(--bs-tertiary-bg);
}
.geo-filter-grid[data-geo-grid='map'] .geo-choose-table thead th:last-child{z-index:6}
.geo-filter-grid[data-geo-grid='map'] .geo-choose-table tbody td:last-child{z-index:4}
.geo-filter-grid[data-geo-grid='map'] .geo-choose-table tr.geo-selected-row td:nth-last-child(2){
  background-color:var(--bs-secondary-bg);
}
.geo-filter-grid[data-geo-grid='map'] .geo-choose-table tbody tr:hover td:nth-last-child(2){
  background-color:var(--bs-tertiary-bg);
}
