/* ==========================================================================
   Netsoif — Base / Reset
   ========================================================================== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{color-scheme:dark}
html[data-theme="light"]{color-scheme:light}
html,body{height:100%}
body{
  font-family:var(--xb-font-ui);
  background:var(--xb-bg-0);
  color:var(--xb-text-0);
  font-size:var(--xb-fs-base);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  min-height:100vh;
  position:relative;
}
/* Fixed navy gradient backdrop — the glass panels blur this layer */
body::before{content:"";position:fixed;inset:0;z-index:-1;background:var(--xb-page-bg);pointer-events:none}

/* Reusable glass surfaces */
.glass,.glass-strong{
  border:1px solid var(--xb-glass-border);
  box-shadow:var(--xb-glass-inset),var(--xb-shadow-1);
  -webkit-backdrop-filter:var(--xb-blur);backdrop-filter:var(--xb-blur);
}
.glass{background:var(--xb-glass-card);border-radius:var(--xb-radius-xl)}
.glass-strong{background:var(--xb-glass-strong);border-radius:var(--xb-radius-2xl);-webkit-backdrop-filter:var(--xb-blur-strong);backdrop-filter:var(--xb-blur-strong);box-shadow:var(--xb-glass-inset),var(--xb-shadow-2)}
[dir="rtl"] body{font-family:'Estedad','Vazirmatn','Inter',sans-serif}
img{display:block;max-width:100%}
svg{display:block;max-width:100%;width:18px;height:18px;flex:none}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:none}
ul,ol{list-style:none}
table{border-collapse:collapse;width:100%}
::selection{background:rgba(var(--xb-brand-rgb),.35);color:var(--xb-text-0)}

/* Slim pill scrollbars in the brand blue; no arrow buttons; the track is inset
   from the ends so the thumb never touches a card's rounded corners */
*{scrollbar-width:thin;scrollbar-color:var(--xb-scroll-thumb) transparent}
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-button{display:none;width:0;height:0}
::-webkit-scrollbar-corner{background:transparent}
::-webkit-scrollbar-track{background:transparent;margin:14px}
::-webkit-scrollbar-thumb{background:var(--xb-scroll-thumb);border-radius:999px;border:2px solid transparent;background-clip:content-box;min-height:36px}
::-webkit-scrollbar-thumb:hover{background:var(--xb-scroll-thumb-hover);background-clip:content-box}
::-webkit-scrollbar-thumb:active{background:var(--xb-primary-hover,var(--xb-primary-hover));background-clip:content-box}

.xb-mono{font-family:var(--xb-font-mono);font-variant-numeric:tabular-nums}
.xb-num{font-family:var(--xb-font-mono);font-variant-numeric:tabular-nums}

.xb-container{max-width:1440px;margin:0 auto;padding:0 var(--xb-sp-6)}
.xb-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

.xb-flex{display:flex}
.xb-flex-col{display:flex;flex-direction:column}
.xb-items-center{align-items:center}
.xb-justify-between{justify-content:space-between}
.xb-gap-1{gap:var(--xb-sp-1)}
.xb-gap-2{gap:var(--xb-sp-2)}
.xb-gap-3{gap:var(--xb-sp-3)}
.xb-gap-4{gap:var(--xb-sp-4)}
.xb-gap-6{gap:var(--xb-sp-6)}
.xb-grow{flex:1 1 auto}
.xb-text-muted{color:var(--xb-text-2)}
.xb-text-dim{color:var(--xb-text-3)}
.xb-text-success{color:var(--xb-success)}
.xb-text-danger{color:var(--xb-danger)}
.xb-text-warning{color:var(--xb-warning)}
.xb-text-brand{color:var(--xb-brand-400)}
.xb-hidden{display:none!important}

@media (max-width:960px){
  .xb-hide-mobile{display:none!important}
}
@media (min-width:961px){
  .xb-hide-desktop{display:none!important}
}
