@font-face{
  font-family:IRANSansBOS;
  src:url("/bos-assets/fonts/iransans-medium.ttf?v=20260928-1") format("truetype");
  font-weight:400;
  font-style:normal;
  font-display:swap
}
@font-face{
  font-family:IRANSansBOS;
  src:url("/bos-assets/fonts/iransans-bold.ttf?v=20260928-1") format("truetype");
  font-weight:700;
  font-style:normal;
  font-display:swap
}

:root{
  --bos-navy-950:#081827;
  --bos-navy-900:#0d2236;
  --bos-navy-800:#14324b;
  --bos-teal-700:#0f766e;
  --bos-teal-600:#0d9488;
  --bos-teal-100:#ccfbf1;
  --bos-teal-50:#f0fdfa;
  --bos-bg:#f4f7fa;
  --bos-surface:#ffffff;
  --bos-surface-soft:#f8fafc;
  --bos-text:#172033;
  --bos-text-soft:#475569;
  --bos-muted:#64748b;
  --bos-border:#dbe4ec;
  --bos-border-strong:#cbd5e1;
  --bos-danger:#b42318;
  --bos-danger-bg:#fff1f2;
  --bos-warning:#9a6700;
  --bos-warning-bg:#fff8e6;
  --bos-success:#0f766e;
  --bos-success-bg:#ecfdf5;
  --bos-info:#1d4ed8;
  --bos-info-bg:#eff6ff;

  --bos-font-xs:10px;
  --bos-font-sm:11px;
  --bos-font-md:12px;
  --bos-font-body:13px;
  --bos-font-section:15px;
  --bos-font-page:18px;

  --bos-space-1:4px;
  --bos-space-2:8px;
  --bos-space-3:12px;
  --bos-space-4:16px;
  --bos-space-5:20px;
  --bos-space-6:24px;

  --bos-radius-sm:6px;
  --bos-radius-md:9px;
  --bos-radius-lg:12px;

  --bos-input-h:36px;
  --bos-button-h:36px;
  --bos-shadow:0 1px 2px rgba(15,23,42,.035);
  --bos-shadow-float:0 8px 22px rgba(15,23,42,.08);
}

*{box-sizing:border-box}
html{background:var(--bos-bg);direction:rtl}
body{
  margin:0;
  background:var(--bos-bg);
  color:var(--bos-text);
  font-family:IRANSansBOS,Tahoma,Arial,sans-serif;
  font-size:var(--bos-font-body);
  line-height:1.65;
  direction:rtl;
}
button,input,select,textarea{font-family:inherit}
button{cursor:pointer}
a{color:inherit}

.bos-shell{
  min-height:100vh;
  display:grid;
  grid-template-columns:224px minmax(0,1fr);
  background:var(--bos-bg);
}
.bos-sidebar{
  grid-column:1;
  grid-row:1;
  position:sticky;
  top:0;
  height:100vh;
  overflow:auto;
  background:var(--bos-navy-950);
  color:#dce7f2;
  border-left:1px solid rgba(255,255,255,.05);
  padding:14px 10px;
  display:flex;
  flex-direction:column;
  gap:14px;
  z-index:40;
}
.bos-brand{
  display:flex;
  align-items:center;
  gap:10px;
  min-height:60px;
  padding:4px 7px 12px;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.bos-brand-logo{
  width:52px;
  height:52px;
  display:grid;
  place-items:center;
  overflow:hidden;
  border-radius:50%;
  flex:0 0 auto;
  background:transparent;
}
.bos-brand-logo img{
  width:61px;
  height:61px;
  max-width:none;
  object-fit:cover;
  display:block;
}
.bos-brand-copy{min-width:0}
.bos-brand-title{
  margin:0;
  color:#fff;
  font-size:13px;
  font-weight:700;
  line-height:1.45;
}
.bos-brand-sub{
  margin-top:2px;
  color:#8fa6bb;
  font-size:10px;
  white-space:nowrap;
}
.bos-nav-label{
  padding:0 9px;
  color:#6f8aa2;
  font-size:9px;
  font-weight:700;
}
.bos-side-nav{display:grid;gap:3px}
.bos-side-nav .nav-target{
  width:100%;
  text-decoration:none;
  cursor:pointer;
  min-height:36px;
  display:flex;
  align-items:center;
  gap:9px;
  padding:7px 9px;
  border:1px solid transparent;
  border-radius:7px;
  background:transparent;
  color:#b7c7d7;
  text-align:right;
  font-size:11px;
  transition:background .15s ease,border-color .15s ease,color .15s ease;
}
.bos-side-nav .nav-target:hover,
.bos-side-nav .nav-target:focus-visible{
  background:rgba(255,255,255,.06);
  border-color:rgba(255,255,255,.06);
  color:#fff;
  outline:none;
}
.bos-side-nav .nav-target.active{
  background:rgba(13,148,136,.17);
  border-color:rgba(45,212,191,.22);
  color:#dcfffb;
}
.bos-nav-icon{
  width:22px;
  height:22px;
  display:grid;
  place-items:center;
  flex:0 0 auto;
  border-radius:6px;
  background:rgba(255,255,255,.06);
  color:#8fb0c9;
  font-size:10px;
  font-weight:700;
}
.bos-side-nav .nav-target.active .bos-nav-icon{
  background:rgba(45,212,191,.16);
  color:#5eead4;
}
.bos-sidebar-foot{
  margin-top:auto;
  padding:10px 8px 2px;
  color:#617b91;
  font-size:9px;
}

.bos-main{
  grid-column:2;
  grid-row:1;
  min-width:0;
}
.bos-topbar{
  height:54px;
  position:sticky;
  top:0;
  z-index:30;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:0 18px;
  background:rgba(255,255,255,.97);
  border-bottom:1px solid var(--bos-border);
}
.bos-page-title{
  display:flex;
  align-items:center;
  gap:9px;
  min-width:0;
}
.bos-page-title h1{
  margin:0;
  color:var(--bos-navy-900);
  font-size:var(--bos-font-page);
  line-height:1.3;
  font-weight:700;
  white-space:nowrap;
}
.bos-page-title span{
  color:var(--bos-muted);
  font-size:10px;
  white-space:nowrap;
}
.bos-userbar{
  display:flex;
  align-items:center;
  gap:8px;
  flex:0 0 auto;
}
.bos-user-meta{
  color:var(--bos-text-soft);
  font-size:10px;
  white-space:nowrap;
}
.logout-form{margin:0}
.logout-btn{
  height:30px;
  min-width:58px;
  margin:0;
  padding:0 11px;
  border:1px solid var(--bos-border-strong);
  border-radius:7px;
  background:#fff;
  color:var(--bos-text-soft);
  font-size:10px;
  font-weight:700;
  transition:all .15s ease;
}
.logout-btn:hover,
.logout-btn:focus-visible{
  background:#c62828;
  color:#fff;
  border-color:#c62828;
  outline:none;
}

.bos-workspace{
  width:min(100%,1600px);
  margin:0 auto;
  padding:14px 16px 24px;
}


.flash-message{
  margin:0 0 12px;
  padding:11px 14px;
  border:1px solid;
  border-radius:9px;
  display:flex;
  align-items:center;
  gap:10px;
  font-size:12px;
  line-height:1.8;
}
.flash-message strong{font-size:13px;white-space:nowrap}
.flash-success{
  border-color:#a7d9cf;
  background:#eefaf7;
  color:#0f766e;
}
.flash-error{
  border-color:#f0b8b8;
  background:#fff3f3;
  color:#b42318;
}

.kpi-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
  margin-bottom:10px;
}
.kpi-card{
  min-height:66px;
  background:var(--bos-surface);
  border:1px solid var(--bos-border);
  border-radius:var(--bos-radius-md);
  padding:9px 11px;
  box-shadow:var(--bos-shadow);
}
.kpi-label{
  color:var(--bos-muted);
  font-size:10px;
  line-height:1.4;
}
.kpi-value{
  margin-top:4px;
  color:var(--bos-navy-900);
  font-size:16px;
  line-height:1.2;
  font-weight:700;
}
.kpi-value small{
  font-size:9px;
  font-weight:400;
  color:var(--bos-muted);
}
.kpi-meta{
  margin-top:5px;
  color:var(--bos-muted);
  font-size:8.5px;
  line-height:1.55;
  white-space:normal;
}

.process-guide{
  margin:0 0 10px;
  background:var(--bos-surface);
  border:1px solid var(--bos-border);
  border-radius:var(--bos-radius-md);
  box-shadow:var(--bos-shadow);
}
.process-guide summary{
  list-style:none;
  min-height:34px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:6px 11px;
  color:var(--bos-navy-900);
  font-size:11px;
  font-weight:700;
  cursor:pointer;
  user-select:none;
}
.process-guide summary::-webkit-details-marker{display:none}
.process-guide summary::after{
  content:"＋";
  color:var(--bos-muted);
  font-size:14px;
  font-weight:400;
}
.process-guide[open] summary::after{content:"−"}
.process-guide-body{
  padding:0 11px 9px;
  color:var(--bos-text-soft);
  font-size:10px;
  line-height:1.8;
}
.process-guide-body p{
  margin:0 0 5px;
}
.process-guide-body p:last-of-type{
  margin-bottom:0;
}
.process-guide-body strong{
  color:var(--bos-navy-900);
}
.guide-date-note{
  margin-top:7px;
  padding-top:6px;
  border-top:1px dashed var(--bos-border);
  color:var(--bos-muted);
  font-size:9px;
}

.process-stepper{
  position:relative;
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:0;
  margin:0 0 10px;
  padding:5px 4px 6px;
  background:var(--bos-surface);
  border:1px solid var(--bos-border);
  border-radius:var(--bos-radius-md);
  box-shadow:var(--bos-shadow);
  overflow:hidden;
}
.process-stepper::before{
  content:"";
  position:absolute;
  right:8%;
  left:8%;
  top:19px;
  height:1px;
  background:var(--bos-border);
  z-index:0;
}
.step-btn{
  position:relative;
  text-decoration:none;
  cursor:pointer;
  z-index:1;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:4px;
  min-width:0;
  padding:1px 5px 4px;
  border:0;
  background:transparent;
  color:var(--bos-muted);
  font-size:9px;
  line-height:1.45;
  text-align:center;
}
.step-btn:hover,
.step-btn:focus-visible{
  color:var(--bos-navy-900);
  outline:none;
}
.step-index{
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  border:1px solid var(--bos-border-strong);
  border-radius:50%;
  background:#fff;
  color:var(--bos-muted);
  font-size:10px;
  font-weight:700;
  transition:all .15s ease;
}
.step-btn:hover .step-index{
  border-color:var(--bos-teal-600);
  color:var(--bos-teal-700);
}
.step-btn.active{
  color:var(--bos-teal-700);
  font-weight:700;
}
.step-btn.active .step-index{
  border-color:var(--bos-teal-600);
  background:var(--bos-teal-600);
  color:#fff;
  box-shadow:0 0 0 3px var(--bos-teal-50);
}
.step-btn.is-done .step-index{
  border-color:#86c9bf;
  background:var(--bos-teal-50);
  color:var(--bos-teal-700);
}
.step-label{
  max-width:150px;
  overflow:hidden;
  text-overflow:ellipsis;
}

.grid{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
}
.card{
  background:var(--bos-surface);
  border:1px solid var(--bos-border);
  border-radius:var(--bos-radius-md);
  padding:11px 12px;
  box-shadow:var(--bos-shadow);
}
.card.blue{
  background:var(--bos-surface);
  border-color:var(--bos-border);
}
.wide{grid-column:1/-1}
.form-panel{display:none}
.form-panel.active{display:block}
.form-panel>h2,
.data-section h2{
  margin:0 0 9px;
  color:var(--bos-navy-900);
  font-size:var(--bos-font-section);
  line-height:1.4;
  font-weight:700;
}
.section-heading{
  display:flex;
  align-items:center;
  gap:7px;
  min-height:24px;
  margin-bottom:8px;
}
.section-heading h2{margin:0}
.section-count{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:20px;
  padding:1px 7px;
  border-radius:999px;
  background:var(--bos-surface-soft);
  border:1px solid var(--bos-border);
  color:var(--bos-muted);
  font-size:9px;
  font-weight:400;
}

.form-panel form{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  grid-auto-flow:row dense;
  gap:8px 10px;
  align-items:start;
}
.field{min-width:0}
.field-wide{grid-column:1/-1}
.field-2{grid-column:span 2}
.field label{
  display:flex;
  align-items:center;
  gap:4px;
  min-height:17px;
  margin:0 0 3px;
  color:#253348;
  font-size:11px;
  font-weight:700;
  line-height:1.5;
}
.field-hint{
  display:block;
  margin-top:3px;
  color:var(--bos-muted);
  font-size:9px;
  line-height:1.55;
}
input,select,textarea{
  width:100%;
  min-width:0;
  border:1px solid var(--bos-border-strong);
  border-radius:var(--bos-radius-sm);
  background:#fff;
  color:var(--bos-text);
  font-size:12px;
  line-height:1.4;
  transition:border-color .12s ease,box-shadow .12s ease,background .12s ease;
}
input,select{
  height:var(--bos-input-h);
  padding:0 9px;
}
textarea{
  min-height:58px;
  padding:7px 9px;
  resize:vertical;
}
input::placeholder,
textarea::placeholder{
  color:#9aa9b8;
  opacity:1;
  font-size:10px;
  font-weight:400;
}
input:hover,select:hover,textarea:hover{border-color:#aebdca}
input:focus,select:focus,textarea:focus{
  outline:none;
  border-color:var(--bos-teal-600);
  box-shadow:0 0 0 3px rgba(13,148,136,.09);
}
input:disabled,select:disabled,textarea:disabled{
  background:#f1f5f9;
  color:#94a3b8;
  border-color:#e2e8f0;
  cursor:not-allowed;
}
input[aria-invalid="true"],select[aria-invalid="true"],textarea[aria-invalid="true"]{
  border-color:#f04438;
  background:#fffafa;
}
input[name*="code"],
input[name*="ref"],
input[name*="no"],
input[name*="key"],
input[name*="id"]{
  direction:ltr;
  text-align:left;
  unicode-bidi:plaintext;
}
.help{
  position:relative;
  width:16px;
  height:16px;
  display:inline-grid;
  place-items:center;
  flex:0 0 auto;
  border-radius:50%;
  background:#eef2f6;
  color:#607286;
  font-size:9px;
  font-weight:700;
  cursor:help;
}
.help:hover:after,.help:focus:after{
  content:attr(data-tip);
  position:absolute;
  z-index:100;
  right:20px;
  top:-8px;
  width:250px;
  max-width:60vw;
  padding:8px 9px;
  border-radius:7px;
  background:var(--bos-navy-950);
  color:#fff;
  font-size:9px;
  line-height:1.7;
  font-weight:400;
  box-shadow:var(--bos-shadow-float);
}
.form-panel form>button{
  grid-column:1/-1;
  justify-self:start;
  min-width:126px;
  height:var(--bos-button-h);
  margin:1px 0 0;
  padding:0 14px;
  border:1px solid var(--bos-teal-700);
  border-radius:var(--bos-radius-sm);
  background:var(--bos-teal-700);
  color:#fff;
  font-size:11px;
  font-weight:700;
  transition:background .15s ease,border-color .15s ease,transform .05s ease,opacity .15s ease;
}
.form-panel form>button:hover,
.form-panel form>button:focus-visible{
  background:#0b665f;
  border-color:#0b665f;
  outline:none;
}
.form-panel form>button:active{transform:translateY(1px)}
.form-panel form>button:disabled{
  background:#b7c5d1;
  border-color:#b7c5d1;
  cursor:not-allowed;
  opacity:.75;
}
.form-panel form>button[aria-busy="true"],
.form-panel form>button.is-loading{
  cursor:wait;
  opacity:.78;
  pointer-events:none;
}
.form-panel form>button[aria-busy="true"]::after,
.form-panel form>button.is-loading::after{
  content:"…";
  margin-right:5px;
}

.note{
  margin-top:8px;
  padding:7px 9px;
  border:1px solid #f1dfb1;
  border-radius:var(--bos-radius-sm);
  background:#fffbeb;
  color:#70551b;
  font-size:9px;
  line-height:1.7;
}
.workspace-note{margin-bottom:0}

.data-section{padding:9px 10px}
.tbl{
  width:100%;
  overflow:auto;
  border:1px solid #edf1f5;
  border-radius:7px;
}
table{
  width:100%;
  min-width:680px;
  border-collapse:collapse;
  background:#fff;
}
th,td{
  height:34px;
  padding:5px 8px;
  border-bottom:1px solid #eef2f6;
  text-align:right;
  vertical-align:middle;
  font-size:10px;
  white-space:nowrap;
}
th{
  height:31px;
  background:#f8fafc;
  color:#5b6b7d;
  font-size:9px;
  font-weight:700;
}
tbody tr:last-child td{border-bottom:0}
tbody tr:hover td{background:#fbfdff}
td[dir="ltr"],th[dir="ltr"]{text-align:left}
.empty-row td{
  height:44px;
  color:#8a99a8;
  text-align:center;
  background:#fbfcfd;
}
.status-badge{
  display:inline-flex;
  align-items:center;
  min-height:20px;
  padding:1px 7px;
  border-radius:999px;
  border:1px solid var(--bos-border);
  background:var(--bos-surface-soft);
  color:var(--bos-text-soft);
  font-size:9px;
  font-weight:700;
}
.status-badge.success{
  background:var(--bos-success-bg);
  border-color:#b7e6d6;
  color:#0b6b60;
}
.status-badge.warning{
  background:var(--bos-warning-bg);
  border-color:#f0d89a;
  color:var(--bos-warning);
}
.status-badge.danger{
  background:var(--bos-danger-bg);
  border-color:#fecdd3;
  color:var(--bos-danger);
}
.status-badge.info{
  background:var(--bos-info-bg);
  border-color:#cbdcfb;
  color:var(--bos-info);
}

/* Login uses the same design tokens and components. */
.login-page{
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:20px;
  background:var(--bos-bg);
}
.login-card{
  width:min(100%,390px);
  padding:22px;
  background:var(--bos-surface);
  border:1px solid var(--bos-border);
  border-radius:var(--bos-radius-lg);
  box-shadow:0 10px 28px rgba(15,23,42,.08);
}
.login-brand{
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:18px;
}
.login-brand img{
  width:58px;
  height:58px;
  object-fit:cover;
  border-radius:50%;
}
.login-brand h1{
  margin:0;
  color:var(--bos-navy-900);
  font-size:18px;
}
.login-brand p{
  margin:2px 0 0;
  color:var(--bos-muted);
  font-size:10px;
}
.login-form{display:grid;gap:9px}
.login-form label{
  color:#253348;
  font-size:11px;
  font-weight:700;
}
.login-form input{height:38px}
.login-form small{
  color:var(--bos-muted);
  font-size:9px;
  line-height:1.7;
}
.login-form button{
  height:38px;
  margin-top:3px;
  border:1px solid var(--bos-teal-700);
  border-radius:var(--bos-radius-sm);
  background:var(--bos-teal-700);
  color:#fff;
  font-size:11px;
  font-weight:700;
}
.login-form button:hover{background:#0b665f}

@media(max-width:1180px){
  .bos-shell{grid-template-columns:208px minmax(0,1fr)}
  .form-panel form{grid-template-columns:repeat(2,minmax(0,1fr))}
  .process-stepper{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:4px}
  .process-stepper::before{display:none}
}
@media(max-width:860px){
  .bos-shell{display:block}
  .bos-sidebar{
    position:relative;
    width:100%;
    height:auto;
    min-height:auto;
    padding:8px 10px;
  }
  .bos-brand{
    min-height:48px;
    padding:2px 4px 7px;
  }
  .bos-brand-logo{width:40px;height:40px}.bos-brand-logo img{width:47px;height:47px}
  .bos-side-nav{
    display:flex;
    overflow:auto;
    padding-bottom:2px;
  }
  .bos-side-nav .nav-target{
    width:auto;
    min-width:max-content;
  }
  .bos-sidebar-foot,.bos-nav-label{display:none}
  .bos-topbar{position:sticky;top:0;height:50px;padding:0 12px}
  .bos-page-title span{display:none}
  .bos-workspace{padding:10px 10px 18px}
  .kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:620px){
  .bos-page-title h1{font-size:15px}
  .bos-user-meta{display:none}
  .form-panel form{grid-template-columns:1fr}
  .field-wide,.field-2{grid-column:auto}
  .process-stepper{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kpi-grid{grid-template-columns:1fr 1fr}
  .kpi-card{min-height:58px}
  .kpi-value{font-size:14px}
  .step-label{font-size:8px}
}

/* BOS User Admin */
.admin-link{display:inline-flex;align-items:center;min-height:34px;padding:0 11px;border:1px solid var(--bos-border);border-radius:8px;background:#fff;color:var(--bos-navy-900);font-size:12px;font-weight:700;text-decoration:none;cursor:pointer}.admin-link:hover{border-color:var(--bos-teal-700);color:var(--bos-teal-700)}
.admin-create-card{margin-bottom:12px}.admin-create-card h2,.admin-users-section h2{font-size:16px;margin:0 0 10px}.compact-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.compact-form .form-actions{display:flex;align-items:flex-end}.compact-form .primary-btn{width:100%}.admin-users-section{display:grid;gap:10px}.section-head{display:flex;align-items:center;justify-content:space-between}.admin-user-card{background:#fff;border:1px solid var(--bos-border);border-radius:10px;padding:12px}.admin-user-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.admin-user-head>div{display:flex;align-items:center;gap:10px}.admin-user-head strong{font-size:14px}.mono{font-family:Consolas,monospace;direction:ltr;color:var(--bos-muted);font-size:12px}.access-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:10px}.access-grid label{display:grid;gap:4px;font-size:11px;font-weight:700}.access-grid select{height:36px}.admin-inline-actions{display:flex;align-items:center;gap:8px;margin-top:9px;padding-top:9px;border-top:1px solid var(--bos-border)}.admin-inline-actions form{margin:0}.password-reset{display:flex;align-items:center;gap:6px;flex:1}.password-reset input{height:34px;min-width:190px}.owner-lock{padding:10px 12px;border-radius:8px;background:#eefaf7;color:#0f766e;font-size:12px;font-weight:700}.secondary-btn{min-height:34px;border:1px solid var(--bos-border);background:#fff;border-radius:8px;padding:0 11px;font-family:inherit;cursor:pointer}.secondary-btn:hover{border-color:var(--bos-teal-700);color:var(--bos-teal-700)}@media(max-width:980px){.compact-form{grid-template-columns:repeat(2,minmax(0,1fr))}.access-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.compact-form,.access-grid{grid-template-columns:1fr}.admin-inline-actions,.password-reset{flex-direction:column;align-items:stretch}.password-reset input{min-width:0}}
