body {
direction: rtl;
font-family: IranSanse, sans-serif !important; 
background-color: #fff; }

p {
color: #b3b3b3;
font-weight: 300; }

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
font-family: IranSanse, sans-serif !important; }

a {
-webkit-transition: .3s all ease;
-o-transition: .3s all ease;
transition: .3s all ease; 
color: #2a15d9;
}
a:hover {
text-decoration: none !important; }

.content {
padding: 7rem 0; }

h2 {
font-size: 20px; }

/* .half {
background-image: url(/static/img/login/bg_3.jpg);
background-repeat: no-repeat;
background-size: cover;  
} */

.half, .half .container > .row {
height: 87vh;
min-height: 700px; }

@media (max-width: 991.98px) {
.half .bg {
height: 200px; } }

/* .half .contents {
background: #f6f7fc; } */

/* .half .contents { */
/* width: 65%; } */

.half .bg {
width: 35%; }


@media (max-width: 1199.98px) {
.half .contents, .half .bg {
width: 100%; } }

.half .contents .login-box {
  background: #ffffff;
  border-radius: 16px;
  padding: 35px 30px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
  border: 1px solid #edf2f7;
}

/* @media (min-width: 577px){
  .half .contents .login-box {
      margin-right: 135px;
  }
} */

@media (max-width: 576px){
  .half .contents .login-box {
      margin-right: 0;
  }
  .powered-by-porsian img {
    height: 3rem;;
  }
}

.half .contents .form-control, .half .bg .form-control {
border: none;
-webkit-box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.1);
box-shadow: 0 1px 14px 7px rgba(0, 0, 0, 0.1);
border-radius: 15px;
height: 54px;
background: #fff; }

.half .contents .form-control:active, .half .contents .form-control:focus, .half .bg .form-control:active, .half .bg .form-control:focus {
outline: none;
-webkit-box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.1);
box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.1); }

.half .bg {
background-size: cover;
background-position: center; }

.half a {
color: #888;
text-decoration: underline; }

.half .btn {
height: 54px;
padding-left: 30px;
padding-right: 30px; }

.half .forgot-pass {
position: relative;
top: 2px;
font-size: 14px; }

.control {
  display: block;
  position: relative;
  padding-left: 30px;
  margin-bottom: 15px;
  cursor: pointer;
  font-size: 14px;
}

.control .caption {
  top: .2rem;
}

.control input {
  z-index: -1;
  opacity: 0;
}

.control__indicator {
  top: 2px;
  right: 0;
  height: 20px;
  width: 20px;
  background: #e6e6e6;
  border-radius: 4px;
}

.control--radio .control__indicator {
  border-radius: 50%;
}

.control:hover input ~ .control__indicator,
.control input:focus ~ .control__indicator {
  background: #ccc;
}

.control input:checked ~ .control__indicator {
  background: #fb771a;
}

.control:hover input:not([disabled]):checked ~ .control__indicator,
.control input:checked:focus ~ .control__indicator {
  background: #fb8633;
}

.control input:disabled ~ .control__indicator {
  background: #e6e6e6;
  opacity: 0.9;
  pointer-events: none;
}

.control__indicator:after {
  font-family: FontAwesome;
  content: '\f00c';
  position: absolute;
  display: none;
  font-size: 16px;
  -webkit-transition: .3s all ease;
  -o-transition: .3s all ease;
  transition: .3s all ease;
}

.control input:checked ~ .control__indicator:after {
  display: block;
  color: #fff;
}

.control--checkbox .control__indicator:after {
  top: 50%;
  left: 50%;
  margin-top: -1px;
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
}

.control--checkbox input:disabled ~ .control__indicator:after {
  border-color: #7b7b7b;
}

.control--checkbox input:disabled:checked ~ .control__indicator {
  background-color: #7e0cf5;
  opacity: .2; 
}

.brand-header {
  text-align: center;
  margin-bottom: 25px;
}
.brand-header img.main-logo {
  max-height: 65px;
  width: auto;
  margin-bottom: 12px;
}
.powered-by-porsian {
    display: grid;
    position: absolute;
    bottom: 1rem;
    left: 1rem;
    align-items: center;
    /* justify-content: center; */
    /* margin-top: 25px; */
    /* padding-top: 15px; */
    /* border-top: 1px dashed #e2e8f0; */
    font-size: 12px;
    color: #64748b;
    background-color: #dddddd;
    border-radius: 15px;
    padding: 10px;
    text-align: center;
    box-shadow: 0 0px 0px 6px rgb(255 255 255 / 54%);
}

@media (min-width: 577px){
  .powered-by-porsian img {
    height: 5rem;
    margin-right: 6px;
    opacity: 0.85;
  }
}


        /* ظرف اصلی اسپینر */
        .spinner-container {
            position: fixed;
            width: 160px;
            height: 160px;
            display: flex;
            align-items: center;
            justify-content: center;
            z-index: 9999;
            align-self: center;
        }

        /* دایره مرکزی توپر */
        .spinner-core {
            width: 55px;
            height: 55px;
            background-color: #0d6efd; /* رنگ آبی Primary بوت‌استرپ */
            border-radius: 50%;
            box-shadow: 0 0 20px rgba(13, 110, 253, 0.5);
            z-index: 2;
        }

        /* تنظیمات پایه برای حلقه‌های چرخان */
        .spinner-ring-outer, .spinner-ring-inner {
            position: absolute;
            border-radius: 50%;
            border: 4px solid transparent;
        }

        /* حلقه بیرونی */
        .spinner-ring-outer {
            width: 100%;
            height: 100%;
            border-top-color: #0d6efd;
            border-bottom-color: #0d6efd;
            border-width: 5px;
            animation: spin 2s linear infinite;
            box-shadow: 0 0 15px rgba(13, 110, 253, 0.2);
        }

        /* حلقه درونی (با جهت چرخش معکوس و رنگ روشن‌تر) */
        .spinner-ring-inner {
            width: 120px;
            height: 120px;
            border-left-color: #6ea8fe; 
            border-right-color: #6ea8fe;
            border-width: 3px;
            animation: spin-reverse 1.5s linear infinite;
        }

        /* انیمیشن‌های چرخش */
        @keyframes spin {
            0% { transform: rotate(0deg); }
            100% { transform: rotate(360deg); }
        }

        @keyframes spin-reverse {
            0% { transform: rotate(360deg); }
            100% { transform: rotate(0deg); }
        }


        /* ========================================================
   Porsian Modern SaaS Login Background
   ======================================================== */
.porsian-dynamic-bg {
    /* استفاده از متغیرهای CSS که از سمت سرور تزریق می‌شوند */
    background: linear-gradient(
        -45deg, 
        var(--tenant-primary, #2a15d9), 
        var(--tenant-secondary, #0891B2), 
        #4F46E5, 
        #2563EB
    );
    background-size: 400% 400%;
    animation: gradientShift 15s ease infinite;
    position: relative;
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

/* لایه پترن نقطه‌ای ظریف با SVG Base64 (حجم: 0 کیلوبایت) */
.porsian-dynamic-bg::before {
    content: "";
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background-image: radial-gradient(rgba(255, 255, 255, 0.15) 1px, transparent 1px);
    background-size: 24px 24px;
    z-index: 1;
    pointer-events: none;
}

@keyframes gradientShift {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}