@font-face {
  font-family: "DadeNegarText";
  src: url("../assets/fonts/BNAZANIN.TTF") format("truetype");
  font-display: swap;
}

@font-face {
  font-family: "DadeNegarTitle";
  src: url("../assets/fonts/BTITRBD.TTF") format("truetype");
  font-display: swap;
}

@font-face {
  font-family: "DadeNegarSignature";
  src: url("../assets/fonts/Shekasteh.ttf") format("truetype");
  font-display: swap;
}

:root {
  --navy-950: #06152f;
  --navy-900: #0a2046;
  --navy-800: #0d2d5f;
  --navy-700: #143d79;
  --blue-600: #2864dc;
  --blue-100: #eaf1ff;
  --blue-50: #f5f8ff;
  --white: #fff;
  --page: #07152d;
  --surface: rgba(255, 255, 255, .97);
  --text: #14213a;
  --muted: #71809a;
  --border: #dde4ef;
  --danger: #b4233a;
  --success: #16725a;
  --shadow-sm: 0 8px 26px rgba(6, 21, 47, .07);
  --shadow-lg: 0 28px 70px rgba(6, 21, 47, .14);
  --radius: 1.25rem;
}

turbo-frame {
  display: block;
}

#turbo-progress-bar {
  height: 3px;
  background: linear-gradient(90deg, #fff, #68a2ff, #fff);
  box-shadow: 0 0 14px rgba(104, 162, 255, .8);
}

html { min-height: 100%; max-width: 100%; overflow-x: clip; font-size: 17px; scroll-behavior: smooth; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }

body {
  min-height: 100vh;
  max-width: 100%;
  overflow-x: clip;
  margin: 0;
  color: var(--text);
  background:
    radial-gradient(circle at 8% 12%, rgba(53, 119, 255, .24), transparent 28rem),
    radial-gradient(circle at 88% 38%, rgba(39, 180, 214, .12), transparent 32rem),
    radial-gradient(circle at 48% 105%, rgba(40, 100, 220, .2), transparent 36rem),
    linear-gradient(145deg, #030a18 0%, #071a38 48%, #0b2852 100%);
  background-attachment: fixed;
  font-family: "DadeNegarText", Tahoma, sans-serif;
  font-size: 1.05rem;
  -webkit-user-select: none;
  user-select: none;
}

input,
textarea,
[contenteditable="true"] {
  -webkit-user-select: text;
  user-select: text;
}

.otp-delivery-notice { unicode-bidi: plaintext; }
.masked-phone-number { display: inline-block; direction: ltr; unicode-bidi: isolate; color: #536f98; font-family: "DadeNegarText", "B Nazanin", Tahoma, sans-serif; letter-spacing: .025em; white-space: nowrap; }

body::before {
  content: "";
  position: fixed;
  z-index: 0;
  inset: -35%;
  pointer-events: none;
  background: conic-gradient(from 20deg at 50% 50%, transparent 0 22%, rgba(52, 123, 255, .12) 32%, transparent 43% 68%, rgba(44, 202, 231, .08) 78%, transparent 88%);
  animation: ambient-orbit 24s linear infinite;
}

body > header,
body > .app-shell,
body > .app-footer {
  position: relative;
  z-index: 2;
}
body > header { z-index: 1300; }
body.account-menu-open > header { z-index: 1420; }

.account-focus-backdrop { position: fixed; z-index: 1350; inset: 0; padding: 0; opacity: 0; background: rgba(2, 10, 25, .42); border: 0; outline: 0; backdrop-filter: blur(8px) saturate(75%); transition: opacity .22s ease; }
.account-focus-backdrop.show { opacity: 1; }
body.account-menu-open .navbar-brand, body.account-menu-open .app-navigation, body.account-menu-open .navbar-toggler { opacity: .4; filter: blur(1.5px); pointer-events: none; transition: opacity .22s ease, filter .22s ease; }
body.account-menu-open .account-dropdown { position: relative; z-index: 1450; }
body.account-menu-open .account-menu-toggle { transform: translateY(-2px) scale(1.025); box-shadow: 0 18px 45px rgba(0, 5, 22, .5), 0 0 0 1px rgba(121, 178, 255, .38); }

.ambient-canvas,
.transition-canvas {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.ambient-canvas { z-index: 1; opacity: 1; filter: drop-shadow(0 0 7px rgba(104, 171, 255, .32)); }
.transition-canvas { z-index: 1200; opacity: 0; visibility: hidden; transition: opacity .18s ease, visibility .18s ease; }
.transition-canvas.is-active { opacity: 1; visibility: visible; }

h1, h2, h3, h4, h5, h6, .navbar-brand, .btn { font-family: "DadeNegarTitle", "DadeNegarText", sans-serif; }
a, button, input, select, textarea { transition: color .2s ease, background-color .2s ease, border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
a { color: var(--blue-600); }

.app-navbar {
  position: relative;
  z-index: 1300;
  min-height: 5rem;
  padding: .7rem 0;
  background: linear-gradient(110deg, rgba(3, 12, 29, .92), rgba(8, 35, 72, .9));
  backdrop-filter: blur(18px) saturate(135%);
  border-bottom: 1px solid rgba(255, 255, 255, .08);
  box-shadow: 0 12px 35px rgba(6, 21, 47, .15);
  backdrop-filter: blur(18px);
}

.navbar-brand { display: inline-flex; align-items: center; padding: .25rem 0; color: #fff; }
.brand-logo { display: block; width: 8.25rem; height: auto; }
.app-navbar-container { max-width: min(96vw, 1760px); }
.navbar-account { flex: 0 0 auto; margin-inline-start: .55rem; }

.navigation-hub { position: relative; display: flex; flex: 1 1 auto; min-width: 0; align-items: center; gap: .45rem; margin-inline: .75rem; padding: .38rem .5rem; background: linear-gradient(115deg, rgba(62, 131, 231, .13), rgba(255, 255, 255, .035)); border: 1px solid rgba(126, 181, 255, .16); border-radius: 1rem; box-shadow: 0 12px 30px rgba(0, 8, 30, .2), inset 0 1px 0 rgba(255, 255, 255, .07); }
.navigation-hub::before { content: ""; position: absolute; inset: auto 12% -1px; height: 1px; background: linear-gradient(90deg, transparent, rgba(101, 194, 255, .8), transparent); }
.navigation-hub-label { display: inline-flex; flex: 0 0 auto; align-items: center; gap: .35rem; padding: .36rem .55rem; color: #a9d2ff; background: rgba(80, 151, 255, .1); border-radius: .65rem; font-family: "DadeNegarText", Tahoma, sans-serif; font-size: .66rem; white-space: nowrap; }
.navigation-hub-label i { width: .42rem; height: .42rem; background: #70d5ff; border-radius: 50%; box-shadow: 0 0 0 .22rem rgba(112, 213, 255, .1), 0 0 .75rem #70d5ff; animation: navigation-pulse 1.8s ease-in-out infinite; }
.app-navigation { width: 100%; flex-wrap: nowrap; justify-content: center; gap: .12rem; }
.app-navigation .nav-link {
  position: relative;
  margin-inline: .05rem;
  display: flex; align-items: center; gap: .28rem;
  padding: .52rem .58rem !important;
  color: rgba(239, 247, 255, .78);
  border-radius: .7rem;
  font-family: "DadeNegarTitle", "B Titr", "DadeNegarText", sans-serif;
  font-size: .9rem;
  white-space: nowrap;
  isolation: isolate;
}
.navigation-hub-admin .app-navigation .nav-link { padding-inline: .48rem !important; font-size: .82rem; }
.app-navigation .nav-icon { display: grid; width: 1.35rem; height: 1.35rem; place-items: center; color: #a9d7ff; background: rgba(114, 183, 255, .09); border: 1px solid rgba(145, 199, 255, .1); border-radius: .42rem; font-family: Tahoma, sans-serif; font-size: .72rem; font-style: normal; transition: transform .25s ease, background .25s ease, box-shadow .25s ease; }
.app-navigation .nav-icon svg { width: .98rem; height: .98rem; overflow: visible; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.app-navigation .nav-icon svg .nav-icon-accent { stroke-width: 2; }
.app-navigation .nav-link::after { content: ""; position: absolute; z-index: -1; height: 2px; inset: auto 50% .18rem; background: linear-gradient(90deg, transparent, #72cfff, transparent); border-radius: 999px; opacity: 0; transform: translateX(50%) scaleX(.15); transition: opacity .25s ease, transform .32s cubic-bezier(.2, .8, .2, 1), height .25s ease; }
.app-navigation .nav-link:hover, .app-navigation .nav-link:focus, .app-navigation .nav-link.active { color: #fff; background: rgba(255, 255, 255, .08); transform: translateY(-2px); }
.app-navigation .nav-link:hover .nav-icon, .app-navigation .nav-link:focus .nav-icon, .app-navigation .nav-link.active .nav-icon { color: #fff; background: rgba(87, 164, 255, .24); box-shadow: 0 0 1rem rgba(85, 174, 255, .28); transform: rotate(-5deg) scale(1.07); }
.app-navigation .nav-link.active { box-shadow: inset 0 0 0 1px rgba(130, 190, 255, .16), 0 8px 18px rgba(0, 10, 32, .16); }
.app-navigation .nav-link-admin { color: #ffe8ad; }
.app-navigation .nav-link-admin .nav-icon { color: #ffe49d; background: rgba(255, 203, 79, .1); }
.app-navigation .nav-link:hover::after, .app-navigation .nav-link:focus::after, .app-navigation .nav-link.active::after { height: 3px; opacity: 1; transform: translateX(50%) scaleX(1); }
.navbar-toggler { border: 1px solid rgba(255, 255, 255, .2); }
.account-menu-toggle { display: flex; align-items: center; gap: .6rem; min-width: 10rem; padding: .42rem .55rem; color: #fff; background: linear-gradient(120deg, rgba(255, 255, 255, .06), rgba(74, 139, 255, .1)); border: 1px solid rgba(255, 255, 255, .13); border-radius: .85rem; line-height: 1.1; text-align: right; box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08); transition: transform .28s cubic-bezier(.2, .8, .2, 1), background .28s ease, border-color .28s ease, box-shadow .28s ease; }
.account-menu-toggle:hover, .account-menu-toggle[aria-expanded="true"] { color: #fff; background: linear-gradient(120deg, rgba(255, 255, 255, .14), rgba(52, 116, 230, .2)); border-color: rgba(128, 183, 255, .46); transform: translateY(-2px); box-shadow: 0 10px 28px rgba(0, 8, 28, .3), inset 0 1px 0 rgba(255, 255, 255, .12); }
.account-menu-toggle::after { margin-right: auto; }
.account-menu-toggle[aria-expanded="true"]::after { transform: rotate(180deg); }
.account-menu-toggle > i { display: grid; flex: 0 0 auto; width: 2.15rem; height: 2.15rem; place-items: center; background: linear-gradient(145deg, rgba(255, 255, 255, .18), rgba(77, 139, 244, .18)); border: 1px solid rgba(255, 255, 255, .1); border-radius: 50%; font-style: normal; transition: transform .35s cubic-bezier(.2, .8, .2, 1), box-shadow .35s ease; }
.account-menu-toggle[aria-expanded="true"] > i { transform: rotate(-8deg) scale(1.08); box-shadow: 0 0 18px rgba(104, 171, 255, .35); }
.account-menu-toggle > span { display: grid; font-size: .85rem; }
.account-menu-toggle small { color: rgba(255, 255, 255, .58); font-family: "DadeNegarText"; font-size: .68rem; }
.login-nav-button { display: inline-flex; align-items: center; gap: .55rem; padding: .55rem .9rem; color: #f7fbff; background: linear-gradient(135deg, rgba(42, 111, 218, .46), rgba(11, 46, 97, .72)); border: 1px solid rgba(133, 187, 255, .48); border-radius: .85rem; box-shadow: 0 10px 28px rgba(0, 7, 24, .26), inset 0 1px 0 rgba(255, 255, 255, .14); backdrop-filter: blur(10px); font-family: DadeNegarText, Tahoma, sans-serif; transition: transform .28s cubic-bezier(.2, .8, .2, 1), background .28s ease, border-color .28s ease, box-shadow .28s ease; }
.login-nav-button::after { content: "←"; display: grid; width: 1.55rem; height: 1.55rem; place-items: center; color: #dcebff; background: rgba(118, 177, 255, .18); border-radius: .5rem; font-family: Tahoma, sans-serif; transition: transform .28s ease, background .28s ease; }
.login-nav-button:hover, .login-nav-button:focus-visible { color: #fff; background: linear-gradient(135deg, rgba(53, 127, 240, .62), rgba(12, 54, 113, .86)); border-color: rgba(166, 207, 255, .72); transform: translateY(-2px); box-shadow: 0 14px 34px rgba(0, 8, 28, .34), 0 0 0 4px rgba(80, 151, 255, .08), inset 0 1px 0 rgba(255, 255, 255, .18); }
.login-nav-button:hover::after, .login-nav-button:focus-visible::after { background: rgba(151, 200, 255, .26); transform: translateX(-3px); }

.app-shell { padding-top: clamp(1.5rem, 4vw, 3rem); padding-bottom: 4rem; }
.app-footer { padding: 1.5rem 0 2rem; color: rgba(224, 235, 255, .72) !important; border-top: 1px solid rgba(255, 255, 255, .12); font-size: .82rem; }
.app-footer .container { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.footer-company, .footer-meta { flex: 1 1 0; }
.footer-meta { display: grid; justify-items: end; gap: .15rem; }
.footer-credit { flex: 0 0 auto; color: rgba(202, 221, 250, .64); font-size: .7rem; text-align: center; text-decoration: none; transition: color .2s ease, transform .2s ease; }
.footer-credit:hover, .footer-credit:focus { color: #fff; transform: translateY(-2px); }

@media (min-width: 992px) and (min-height: 720px) {
  body.page-login, body.page-home-guest { display: grid; height: 100dvh; min-height: 0; overflow: hidden; grid-template-rows: auto minmax(0, 1fr) auto; }
  body.page-login > .app-shell, body.page-home-guest > .app-shell { width: 100%; min-height: 0; padding-top: clamp(.75rem, 1.8vh, 1.35rem); padding-bottom: clamp(.75rem, 1.8vh, 1.35rem); }
  body.page-login > .app-shell > main, body.page-home-guest > .app-shell > main { height: 100%; min-height: 0; }
  body.page-login .login-experience { height: 100%; min-height: 0; }
  body.page-home-guest > .app-shell > main { display: grid; grid-template-rows: minmax(0, 1.35fr) minmax(0, .65fr); gap: clamp(.6rem, 1.5vh, 1rem); }
  body.page-home-guest .hero-card { min-height: 0; padding: clamp(1.35rem, 3vh, 2.6rem); }
  body.page-home-guest .hero-card h1 { margin-block: clamp(.4rem, 1vh, .8rem); }
  body.page-home-guest .hero-card p { margin-bottom: clamp(.5rem, 1.2vh, 1rem); }
  body.page-home-guest .hero-login-actions { margin-top: clamp(.65rem, 1.5vh, 1.25rem); }
  body.page-home-guest main > .row { min-height: 0; margin-top: 0 !important; }
  body.page-home-guest .module-card { padding: clamp(1rem, 2vh, 1.45rem); }
  body.page-home-guest .module-icon { margin-bottom: clamp(.5rem, 1vh, .85rem); }
  body.page-home-guest .module-card p { min-height: 0; }
  body.page-login .app-footer, body.page-home-guest .app-footer { padding: .55rem 0 .65rem; }
}

.hero-card {
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 2rem;
  align-items: center;
  padding: clamp(1.7rem, 5vw, 4rem);
  overflow: hidden;
  color: #fff;
  background: linear-gradient(135deg, rgba(4, 17, 40, .96), rgba(13, 54, 108, .94));
  border: 1px solid rgba(145, 186, 255, .22);
  border-radius: 2rem;
  box-shadow: 0 30px 70px rgba(0, 0, 0, .28), inset 0 1px 0 rgba(255, 255, 255, .08);
}
.hero-card::before, .hero-card::after { content: ""; position: absolute; z-index: -1; border-radius: 50%; }
.hero-card::before { width: 22rem; height: 22rem; inset: -12rem auto auto -7rem; background: rgba(255, 255, 255, .06); }
.hero-card::after { width: 14rem; height: 14rem; inset: auto 36% -9rem auto; background: rgba(40, 100, 220, .35); filter: blur(10px); }
.hero-card h1 { max-width: 46rem; margin: 1rem 0; font-size: clamp(2rem, 5vw, 3.8rem); line-height: 1.35; }
.hero-card .hero-corporate-title { max-width: none; font-size: min(2.5vw, 2.35rem); line-height: 1.55; letter-spacing: -.015em; white-space: nowrap; }
.hero-card p { max-width: 48rem; margin-bottom: 1.5rem; color: rgba(255, 255, 255, .76); font-size: 1.15rem; line-height: 2; }
.status-pill, .feature-chip { display: inline-flex; align-items: center; padding: .42rem .82rem; border-radius: 999px; }
.status-pill { color: var(--navy-800); background: var(--blue-100); font-family: "DadeNegarTitle"; font-size: .82rem; }
.feature-chip { color: #fff; background: rgba(255, 255, 255, .1); border: 1px solid rgba(255, 255, 255, .15); font-size: .86rem; }
.hero-login-actions { display: flex; align-items: center; flex-wrap: wrap; gap: .8rem 1rem; margin-top: 1.75rem; }
.hero-login-actions small { color: rgba(224, 236, 255, .7); font-size: .78rem; }
.hero-login-button { position: relative; isolation: isolate; display: inline-flex; align-items: center; gap: .8rem; min-width: 12rem; justify-content: center; padding: .78rem 1.2rem; overflow: hidden; color: #fff; background: linear-gradient(135deg, rgba(40, 119, 237, .92), rgba(11, 54, 115, .96)); border: 1px solid rgba(147, 199, 255, .62); border-radius: 1rem; font-family: "DadeNegarTitle"; box-shadow: 0 16px 38px rgba(0, 8, 28, .38), 0 0 0 5px rgba(89, 157, 255, .08), inset 0 1px 0 rgba(255, 255, 255, .22); backdrop-filter: blur(12px); transition: transform .3s cubic-bezier(.2, .8, .2, 1), box-shadow .3s ease, color .2s ease, border-color .3s ease; }
.hero-login-button::before { content: ""; position: absolute; z-index: -1; width: 45%; height: 220%; inset: -60% auto auto -55%; background: linear-gradient(90deg, transparent, rgba(210, 233, 255, .38), transparent); transform: rotate(20deg); transition: left .65s ease; }
.hero-login-button i { display: grid; width: 2rem; height: 2rem; place-items: center; color: #fff; background: rgba(222, 239, 255, .15); border: 1px solid rgba(219, 238, 255, .2); border-radius: .65rem; box-shadow: inset 0 1px 0 rgba(255, 255, 255, .16); font-family: Tahoma, sans-serif; font-style: normal; transition: transform .3s ease, background .3s ease; }
.hero-login-button:hover, .hero-login-button:focus-visible { color: #fff; border-color: rgba(187, 220, 255, .88); transform: translateY(-4px) scale(1.015); box-shadow: 0 22px 46px rgba(0, 7, 26, .48), 0 0 0 6px rgba(96, 166, 255, .13), inset 0 1px 0 rgba(255, 255, 255, .26); }
.hero-login-button:hover::before, .hero-login-button:focus-visible::before { left: 125%; }
.hero-login-button:hover i, .hero-login-button:focus-visible i { background: rgba(225, 241, 255, .24); transform: translateX(-4px); }
.hero-symbol { display: grid; width: clamp(7rem, 18vw, 11rem); height: clamp(7rem, 18vw, 11rem); place-items: center; color: var(--navy-800); background: #fff; border: .8rem solid rgba(255, 255, 255, .12); border-radius: 2.7rem; font-size: 4.5rem; transform: rotate(-4deg); box-shadow: 0 24px 50px rgba(0, 0, 0, .18); }

.module-card, .payment-card, .ticket-card, .auth-card, .ledger-table-wrap, .report-viewer-shell {
  background: linear-gradient(150deg, rgba(255, 255, 255, .985), rgba(237, 244, 255, .95));
  border: 1px solid rgba(181, 207, 248, .78);
  box-shadow: 0 22px 55px rgba(0, 5, 18, .24), inset 0 1px 0 rgba(255, 255, 255, .8);
  backdrop-filter: blur(14px);
}
.module-card { position: relative; isolation: isolate; height: 100%; padding: 1.6rem; overflow: hidden; background: linear-gradient(150deg, rgba(255, 255, 255, .99), rgba(238, 245, 255, .965)) padding-box, linear-gradient(140deg, rgba(255, 255, 255, .96), rgba(93, 148, 235, .48), rgba(255, 255, 255, .7)) border-box; border: 1px solid transparent; border-radius: var(--radius); box-shadow: 0 22px 55px rgba(0, 5, 18, .24), -8px 12px 35px rgba(33, 89, 172, .08), inset 0 1px 0 #fff, inset -1px -1px 0 rgba(45, 99, 180, .06); transform-style: preserve-3d; transition: transform .35s cubic-bezier(.2, .8, .2, 1), box-shadow .35s ease, border-color .3s ease; }
.module-card > * { position: relative; z-index: 1; }
.module-card::before { content: ""; position: absolute; z-index: 0; width: 11rem; height: 11rem; inset: -6.2rem -5.2rem auto auto; pointer-events: none; background: radial-gradient(circle, rgba(30, 78, 151, .25), rgba(65, 128, 230, .08) 45%, transparent 72%); border-radius: 50%; filter: blur(1px); transition: transform .45s cubic-bezier(.2, .8, .2, 1), opacity .3s ease; }
.module-card::after { content: ""; position: absolute; z-index: 0; width: 70%; height: 45%; inset: auto auto -28% -16%; pointer-events: none; background: radial-gradient(ellipse, rgba(9, 46, 105, .14), transparent 68%); filter: blur(9px); transform: rotate(-8deg); transition: transform .45s ease, opacity .3s ease; }
.module-card:hover { transform: perspective(900px) translateY(-9px) rotateX(1.2deg) rotateY(-1.2deg) scale(1.012); border-color: #78a9ff; box-shadow: 0 30px 65px rgba(1, 15, 39, .36), -14px 18px 42px rgba(11, 52, 118, .15), inset 0 1px 0 #fff; }
.module-card:hover::before { opacity: 1; transform: translate(-1.2rem, 1rem) scale(1.18); }
.module-card:hover::after { opacity: 1; transform: translate(1.1rem, -1rem) rotate(-4deg) scale(1.12); }
.module-icon { display: grid; width: 3rem; height: 3rem; margin-bottom: 1.2rem; place-items: center; color: var(--navy-800); background: linear-gradient(145deg, #f4f8ff, var(--blue-100)); border: 1px solid rgba(108, 157, 232, .14); border-radius: .9rem; box-shadow: 0 9px 22px rgba(30, 78, 151, .1), inset 0 1px 0 #fff; font-family: "DadeNegarTitle"; transition: transform .35s cubic-bezier(.2, .8, .2, 1), box-shadow .35s ease; }
.module-card:hover .module-icon { transform: translateY(-3px) rotate(-3deg); box-shadow: 0 13px 28px rgba(30, 78, 151, .18), 0 0 0 5px rgba(77, 137, 230, .06), inset 0 1px 0 #fff; }
.module-card h2 { font-size: 1.25rem; }
.module-card p { min-height: 3.7rem; margin: 0; color: var(--muted); line-height: 1.85; }
.module-link { display: inline-flex; margin-top: 1rem; color: var(--blue-600); font-family: "DadeNegarTitle"; text-decoration: none; }
.module-link:hover { color: var(--navy-800); transform: translateX(-3px); }
.compact-module { display: grid; grid-template-columns: auto 1fr; column-gap: 1rem; align-items: center; padding-block: 1.1rem; }
.compact-module .module-icon { grid-row: 1 / 4; margin: 0; }
.compact-module h2, .compact-module p, .compact-module .module-link { grid-column: 2; }
.compact-module p { min-height: auto; }
.compact-module .module-link { margin-top: .35rem; }

.page-heading { display: flex; align-items: center; justify-content: space-between; gap: 2rem; margin-bottom: 1.6rem; padding: 1.4rem 1.6rem; border: 1px solid rgba(142, 183, 249, .18); border-radius: 1.35rem; background: linear-gradient(120deg, rgba(5, 21, 49, .8), rgba(17, 63, 119, .52)); box-shadow: 0 18px 44px rgba(0, 0, 0, .18); backdrop-filter: blur(14px); }
.page-heading h1 { margin: .65rem 0 .2rem; color: #fff; font-size: clamp(1.75rem, 4vw, 2.35rem); }
.page-heading p { margin: 0; color: rgba(225, 235, 252, .76); }
.page-heading > .btn-outline-primary { color: #fff; border-color: rgba(255, 255, 255, .5); }
.page-heading > .btn-outline-primary:hover { color: var(--navy-950); background: #fff; border-color: #fff; }
.btn { position: relative; overflow: hidden; border-radius: .85rem; font-family: DadeNegarText, Tahoma, sans-serif; font-weight: 700; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease, background .2s ease; }
.btn::after { content: ""; position: absolute; inset: -70% auto -70% -45%; width: 30%; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .4), transparent); transform: rotate(18deg); transition: left .5s ease; pointer-events: none; }
.btn:hover::after { left: 115%; }
.btn-link::after { display: none; }
.btn-brand, .btn-primary { color: #fff; background: linear-gradient(135deg, #123f80, #2864dc); border-color: #3975e8; box-shadow: 0 10px 24px rgba(12, 65, 151, .24); }
.btn-brand:hover, .btn-primary:hover { color: #fff; background: linear-gradient(135deg, #1a4d9a, #3a7af0); border-color: #6097f8; transform: translateY(-2px); box-shadow: 0 14px 28px rgba(40, 100, 220, .34); }
.btn-outline-primary { color: #e9f2ff; background: rgba(15, 54, 111, .68); border-color: #7eafff; }
.btn-outline-primary:hover { color: #fff; background: #2864dc; border-color: #8ab5ff; box-shadow: 0 10px 24px rgba(40, 100, 220, .3); }

.form-control, .form-select {
  min-height: 3rem;
  color: var(--text);
  background-color: #fff;
  border: 1px solid #cfd8e8;
  border-radius: .8rem;
  font-family: "DadeNegarText";
  font-size: 1rem;
}
textarea.form-control { min-height: 8rem; }
.form-control:focus, .form-select:focus { border-color: var(--blue-600); box-shadow: 0 0 0 .25rem rgba(40, 100, 220, .11); }
.form-label { color: var(--navy-800); font-family: "DadeNegarTitle"; }
.required-marker { display: inline-block; margin-inline-start: .16rem; color: #e32755; font-family: Arial, sans-serif; font-size: 1.08em; line-height: 1; text-shadow: 0 0 .55rem rgba(227, 39, 85, .34); }
.file-upload.is-processing .file-upload-dropzone { opacity: .72; pointer-events: none; }
.file-upload-processing { display: inline-flex; align-items: center; gap: .55rem; padding: .55rem .8rem; color: #174a8d; background: rgba(221, 235, 255, .76); border: 1px solid rgba(72, 130, 211, .2); border-radius: .75rem; }
.file-upload-processing i { width: 1rem; height: 1rem; border: 2px solid rgba(30, 92, 178, .25); border-top-color: #1e5cb2; border-radius: 50%; animation: spin .7s linear infinite; }
.form-check-input:checked { background-color: var(--navy-800); border-color: var(--navy-800); }
.alert { border: 0; border-radius: .85rem; }
html.js .alert:not([data-notification-static]) { display: none !important; }
.alert-danger { color: #862438; background: #fff0f3; }
.alert-success { color: #0e6049; background: #e9f8f3; }
.alert-warning { color: #75520b; background: #fff7df; }
.notification-center { position: fixed; z-index: 2100; top: 1rem; left: 1rem; width: min(25rem, calc(100vw - 2rem)); pointer-events: none; }
.app-toast { overflow: hidden; pointer-events: auto; color: #eef5ff; background: linear-gradient(145deg, rgba(5, 20, 46, .98), rgba(13, 51, 104, .97)); border: 1px solid rgba(139, 185, 255, .34); border-radius: 1rem; box-shadow: 0 22px 55px rgba(0, 7, 25, .42), inset 0 1px 0 rgba(255, 255, 255, .1); backdrop-filter: blur(18px); opacity: 0; transform: translate3d(-1.25rem, -.65rem, 0) scale(.94); filter: blur(5px); transition: opacity .38s ease, transform .42s cubic-bezier(.16, 1, .3, 1), filter .38s ease; }
.app-toast.show, .app-toast.showing { opacity: 1; transform: translate3d(0, 0, 0) scale(1); filter: blur(0); }
.app-toast.is-leaving { opacity: 0 !important; transform: translate3d(-1rem, -.4rem, 0) scale(.96) !important; filter: blur(4px) !important; }
.app-toast::before { content: ""; display: block; height: 3px; background: #76a8ff; }
.app-toast-success::before { background: #43d7a7; }
.app-toast-warning::before { background: #ffc75b; }
.app-toast-danger::before { background: #ff728d; }
.app-toast-danger { color: #fff; background: linear-gradient(145deg, rgba(92, 18, 46, .99), rgba(154, 31, 70, .98)); border-color: rgba(255, 164, 185, .64); box-shadow: 0 22px 55px rgba(61, 3, 25, .54), inset 0 1px 0 rgba(255, 255, 255, .15); }
.app-toast .toast-header { gap: .55rem; color: #f5f9ff; background: rgba(255, 255, 255, .065); border-bottom-color: rgba(255, 255, 255, .1); }
.app-toast .toast-header strong { font-family: "DadeNegarTitle", "DadeNegarText", sans-serif; font-size: .9rem; }
.app-toast .toast-body { color: rgba(239, 246, 255, .9); font-size: .92rem; line-height: 1.85; }
.app-toast .btn-close { margin-right: auto; margin-left: 0; filter: invert(1) grayscale(1); opacity: .75; }
.notification-symbol { display: grid; flex: 0 0 auto; width: 1.65rem; height: 1.65rem; place-items: center; color: #fff; background: rgba(118, 168, 255, .2); border-radius: .5rem; font-family: Tahoma, sans-serif; font-size: .8rem; font-weight: 700; }
.app-toast-success .notification-symbol { background: rgba(67, 215, 167, .2); }
.app-toast-warning .notification-symbol { background: rgba(255, 199, 91, .2); }
.app-toast-danger .notification-symbol { background: rgba(255, 114, 141, .2); }
.app-toast-danger .toast-header { color: #fff; background: rgba(255, 255, 255, .1); border-bottom-color: rgba(255, 255, 255, .16); }
.app-toast-danger .toast-body { color: rgba(255, 247, 249, .96); }
.app-toast-danger .notification-symbol { background: rgba(255, 255, 255, .17); }
.activation-result { padding: 1rem; background: var(--blue-50); border: 1px solid var(--border); border-radius: 1rem; }

.debt-card { min-width: 14rem; padding: 1.1rem 1.5rem; border: 1px solid transparent; border-radius: 1rem; text-align: center; }
.debt-card span, .debt-card small { display: block; }
.debt-card strong { display: block; margin: .15rem 0; font-family: "DadeNegarTitle"; font-size: 1.8rem; }
.debt-card.is-debt { color: #8a263a; background: #fff0f3; border-color: #f2ccd5; }
.debt-card.is-clear { color: var(--navy-800); background: var(--blue-100); border-color: #cfdcff; }
.ledger-table-wrap { overflow-x: auto; overflow-y: hidden; border-radius: var(--radius); overscroll-behavior-inline: contain; scrollbar-gutter: stable; -webkit-overflow-scrolling: touch; }
.ledger-table { width: 100%; min-width: 78rem; table-layout: fixed; }
.ledger-table .ledger-col-date { width: 8.5rem; }
.ledger-table .ledger-col-description { width: 24rem; }
.ledger-table .ledger-col-money { width: 9.5rem; }
.ledger-table .ledger-col-balance { width: 10.5rem; }
.ledger-table .ledger-col-status { width: 7rem; }
.ledger-table th, .ledger-table td { vertical-align: middle; text-align: center; }
.ledger-table th + th, .ledger-table td + td { border-inline-start: 1px solid rgba(104, 127, 164, .16); }
.ledger-table .ledger-description { padding-inline: 1.25rem; text-align: right; line-height: 1.75; }
.ledger-date, .ledger-number { direction: ltr; text-align: center !important; font-variant-numeric: tabular-nums; }
.ledger-table-wrap thead th, .payment-card thead th { padding: 1rem; color: #52637f; background: var(--blue-50); border-bottom-color: var(--border); font-family: "DadeNegarTitle"; font-size: .85rem; }
.ledger-table-wrap tbody td, .payment-card tbody td { padding: .9rem 1rem; border-color: #edf0f5; font-size: .9rem; }
.table-hover > tbody > tr:hover > * { background: #f8faff; }
.balance-badge { display: inline-flex; padding: .25rem .65rem; color: var(--navy-800); background: var(--blue-100); border-radius: 999px; font-size: .78rem; }
.empty-state { padding: 3rem !important; color: var(--muted) !important; text-align: center; }
.report-viewer-shell { max-width: 100%; min-height: 42rem; overflow: auto; border-radius: var(--radius); -webkit-overflow-scrolling: touch; }
.report-print-hint { margin: -.85rem .8rem .45rem; color: rgba(218, 231, 252, .68); font-size: .75rem; line-height: 1.7; text-align: right; }
.payment-card { height: 100%; padding: 1.5rem; border-radius: var(--radius); }
.payment-card h2 { font-size: 1.3rem; }
.payment-card-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.payment-card-actions { display: flex; flex: 0 0 auto; flex-wrap: wrap; gap: .6rem; }
.payment-history-button { flex: 0 0 auto; color: #edf5ff; background: linear-gradient(135deg, var(--navy-800), #245cae); border: 1px solid rgba(112, 169, 255, .7); box-shadow: 0 10px 24px rgba(7, 42, 101, .24); }
.payment-history-button:hover, .payment-history-button:focus { color: #fff; background: linear-gradient(135deg, #174787, #3474d5); border-color: #90bcff; transform: translateY(-2px); box-shadow: 0 14px 28px rgba(7, 42, 101, .32); }
.payment-ledger-button { color: var(--navy-800); background: #fff; border: 1px solid rgba(31, 83, 163, .34); box-shadow: 0 8px 20px rgba(7, 42, 101, .1); }
.payment-ledger-button:hover, .payment-ledger-button:focus { color: #fff; background: var(--navy-800); border-color: var(--navy-800); transform: translateY(-2px); }
.payment-amount-input { direction: ltr; color: var(--navy-800); font-family: "DadeNegarTitle", "DadeNegarText", sans-serif; font-size: 1.45rem; font-weight: 700; letter-spacing: .035em; font-variant-numeric: tabular-nums; }
.payment-lock-release-note { position: relative; isolation: isolate; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: .7rem; margin-top: .85rem; padding: .7rem .8rem; overflow: hidden; color: #155848; background: linear-gradient(125deg, rgba(226, 250, 242, .98), rgba(239, 249, 255, .98)); border: 1px solid rgba(39, 157, 126, .28); border-radius: .9rem; box-shadow: 0 10px 24px rgba(10, 91, 77, .08), inset 0 1px 0 #fff; }
.payment-lock-release-note::after { content: ""; position: absolute; z-index: -1; width: 6rem; height: 6rem; inset: -4rem auto auto -2rem; background: radial-gradient(circle, rgba(48, 195, 155, .2), transparent 70%); border-radius: 50%; }
.payment-lock-release-note p { margin: 0; font-size: .76rem; line-height: 1.85; }
.payment-lock-release-note strong { color: #0a765d; font-family: "DadeNegarTitle", "DadeNegarText", sans-serif; white-space: nowrap; }
.ledger-lock-release-note p { font-size: .86rem; font-weight: 700; line-height: 1.9; }
.payment-lock-release-icon { display: grid; width: 2.45rem; height: 2.45rem; place-items: center; color: #16866b; background: rgba(255, 255, 255, .72); border: 1px solid rgba(35, 155, 123, .2); border-radius: .75rem; box-shadow: 0 7px 16px rgba(14, 105, 84, .1); }
.payment-lock-release-icon svg { width: 1.45rem; height: 1.45rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.ledger-lock-release-note { margin: 0 0 .85rem; }
.mini-ledger-wrap { border: 1px solid rgba(120, 146, 187, .18); border-radius: 1rem; }
.account-mini-ledger { table-layout: fixed; font-size: .8rem; }
.account-mini-ledger th, .account-mini-ledger td { padding: .72rem .55rem !important; text-align: center; vertical-align: middle; }
.account-mini-ledger th + th, .account-mini-ledger td + td { border-inline-start: 1px solid rgba(104, 127, 164, .14); }
.account-mini-ledger th:nth-child(1) { width: 7.2rem; }
.account-mini-ledger th:nth-child(2) { width: auto; }
.account-mini-ledger th:nth-child(n+3) { width: 7.3rem; }
.account-mini-ledger .mini-ledger-description {
    min-width: 15rem;
    overflow-wrap: anywhere;
    text-align: right;
    white-space: normal;
}

.modal-backdrop { z-index: 1590; }
.modal { z-index: 1600; }

.ledger-col-action { width: 9rem; }
.ledger-invoice-cell { min-width: 9rem; text-align: center; }
.invoice-download-button {
    border-radius: 999px;
    box-shadow: 0 0.45rem 1.1rem rgba(35, 93, 181, 0.14);
    white-space: nowrap;
}
.payment-history-modal .modal-content { overflow: hidden; color: #eaf3ff; background: linear-gradient(145deg, rgba(4, 17, 40, .99), rgba(10, 42, 87, .985)); border: 1px solid rgba(121, 176, 255, .32); border-radius: 1.35rem; box-shadow: 0 35px 90px rgba(0, 6, 24, .62), inset 0 1px 0 rgba(255, 255, 255, .08); }
.payment-history-modal .modal-dialog { opacity: 0; transform: perspective(900px) translateY(1.25rem) scale(.965) rotateX(-2deg); transform-origin: 72% 18%; transition: opacity .3s ease, transform .34s cubic-bezier(.4, 0, .2, 1); }
.payment-history-modal.show .modal-dialog { opacity: 1; transform: none; animation: payment-history-reveal .55s cubic-bezier(.16, 1, .3, 1) both; }
.payment-history-modal .modal-content::before, .payment-history-modal .modal-content::after { content: ""; position: absolute; z-index: 0; pointer-events: none; border-radius: 50%; filter: blur(2px); }
.payment-history-modal .modal-content::before { width: 18rem; height: 18rem; inset: -10rem -6rem auto auto; background: radial-gradient(circle, rgba(87, 160, 255, .3), transparent 68%); animation: payment-modal-orbit 7s ease-in-out infinite alternate; }
.payment-history-modal .modal-content::after { width: 12rem; height: 12rem; inset: auto auto -7rem 8%; background: radial-gradient(circle, rgba(47, 213, 232, .18), transparent 68%); animation: payment-modal-orbit 5s ease-in-out infinite alternate-reverse; }
.payment-history-modal .modal-header, .payment-history-modal .modal-body { position: relative; z-index: 1; }
.payment-history-modal .modal-header { padding: 1.2rem 1.4rem; background: linear-gradient(110deg, rgba(39, 98, 190, .24), transparent); border-bottom-color: rgba(255, 255, 255, .1); }
.payment-history-modal .modal-title { margin: .15rem 0 0; color: #fff; font-size: 1.35rem; }
.modal-eyebrow { color: #86b8ff; font-size: .75rem; }
.payment-history-modal .modal-body { padding: 1.25rem; }
.payment-history-table { overflow: hidden; background: rgba(255, 255, 255, .96); border-radius: 1rem; }
.payment-history-table th, .payment-history-table td { text-align: center; }
.payment-history-table th + th, .payment-history-table td + td { border-inline-start: 1px solid rgba(104, 127, 164, .14); }
.user-login-history-modal .modal-content { overflow: hidden; color: #eaf3ff; background: linear-gradient(145deg, rgba(4, 17, 40, .995), rgba(11, 49, 99, .99)); border: 1px solid rgba(121, 176, 255, .34); border-radius: 1.35rem; box-shadow: 0 35px 90px rgba(0, 6, 24, .64), inset 0 1px 0 rgba(255, 255, 255, .09); }
.user-login-history-modal .modal-dialog { opacity: 0; transform: perspective(900px) translateY(1.4rem) scale(.965); transition: opacity .3s ease, transform .38s cubic-bezier(.16, 1, .3, 1); }
.user-login-history-modal.show .modal-dialog { opacity: 1; transform: none; }
.user-login-history-modal .modal-header { position: relative; z-index: 1; align-items: flex-start; padding: 1.15rem 1.35rem; background: linear-gradient(110deg, rgba(39, 98, 190, .27), transparent); border-bottom-color: rgba(255, 255, 255, .1); }
.user-login-history-modal .modal-header > div { display: grid; gap: .12rem; }
.user-login-history-modal .modal-title { margin: 0; color: #fff; font-size: 1.3rem; }
.user-login-history-title { display: flex; align-items: center; gap: .6rem; }
.user-login-history-title-icon { display: grid; flex: 0 0 auto; width: 2.25rem; height: 2.25rem; place-items: center; color: #eaf6ff; background: linear-gradient(145deg, rgba(99, 184, 255, .28), rgba(62, 120, 220, .18)); border: 1px solid rgba(142, 207, 255, .34); border-radius: .72rem; box-shadow: 0 8px 18px rgba(0, 10, 35, .24), inset 0 1px 0 rgba(255, 255, 255, .14); }
.user-login-history-title-icon svg { width: 1.45rem; height: 1.45rem; overflow: visible; fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }
.user-login-history-title-icon-accent { color: #69dcff; stroke: currentColor; filter: drop-shadow(0 0 .22rem rgba(87, 210, 255, .55)); }
.user-login-history-modal .modal-header p { margin: 0; color: rgba(222, 236, 255, .68); font-size: .72rem; }
.user-login-history-modal .modal-body { position: relative; z-index: 1; min-height: 14rem; padding: 1rem 1.15rem 1.2rem; }
.user-login-history-summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: .75rem; padding: .58rem .8rem; color: rgba(230, 241, 255, .8); background: rgba(255, 255, 255, .055); border: 1px solid rgba(145, 192, 255, .16); border-radius: .75rem; font-size: .68rem; }
.user-login-history-summary span { display: flex; align-items: center; gap: .4rem; }
.user-login-history-summary i { width: .48rem; height: .48rem; background: #62d7ff; border-radius: 50%; box-shadow: 0 0 .7rem rgba(72, 201, 255, .72); }
.user-login-history-summary strong { display: inline-flex; align-items: baseline; gap: .3rem; color: #fff; font-weight: 400; white-space: nowrap; }
.user-login-history-summary b { color: #83dcff; font-family: "DadeNegarTitle"; font-size: .95rem; font-weight: 400; }
.user-login-history-loading, .user-login-history-message { min-height: 10rem; place-items: center; align-content: center; gap: .8rem; padding: 1.25rem; color: rgba(229, 241, 255, .78); background: rgba(255, 255, 255, .045); border: 1px dashed rgba(145, 192, 255, .22); border-radius: 1rem; text-align: center; }
.user-login-history-loading { display: grid; }
.user-login-history-loading[hidden], .user-login-history-message[hidden] { display: none; }
.user-login-history-loading .spinner-border { width: 2.1rem; height: 2.1rem; color: #69d8ff; }
.user-login-history-loading strong { font-size: .78rem; font-weight: 400; }
.user-login-history-message:not([hidden]) { display: grid; }
.user-login-history-message.is-error { color: #ffd8df; background: rgba(166, 33, 67, .18); border-color: rgba(255, 120, 151, .35); }
.user-login-history-table[hidden] { display: none; }
.user-login-history-table tbody tr { animation: user-login-history-row-in .38s calc(var(--login-history-row, 0) * 32ms) both; }
.user-login-history-ltr { direction: ltr; unicode-bidi: isolate; font-family: Tahoma, sans-serif; }
.gateway-selector { display: grid; gap: .65rem; }
.gateway-selector label { display: flex; gap: .6rem; align-items: center; padding: .9rem; background: #fff; border: 1px solid var(--border); border-radius: .8rem; cursor: pointer; }
.gateway-selector label:hover { border-color: #9eb1d6; background: var(--blue-50); transform: translateY(-1px); }

.support-form-card { max-width: 60rem; margin-inline: auto; }
.graphic-select { position: relative; }
.graphic-select-native { position: absolute; width: 1px; height: 1px; overflow: hidden; opacity: 0; pointer-events: none; }
.graphic-select-toggle { display: flex; width: 100%; min-height: 3rem; align-items: center; justify-content: space-between; gap: 1rem; padding: .72rem 1rem; color: var(--text); background: linear-gradient(145deg, #fff, #f4f8ff); border: 1px solid #cfd8e8; border-radius: .8rem; font-family: "DadeNegarText"; text-align: right; box-shadow: inset 0 1px 0 #fff; }
.graphic-select-toggle:hover, .graphic-select.is-open .graphic-select-toggle { border-color: #6f9ce8; box-shadow: 0 0 0 .25rem rgba(40, 100, 220, .1), 0 12px 26px rgba(7, 42, 101, .12); transform: translateY(-1px); }
.graphic-select-toggle i { width: .65rem; height: .65rem; border-left: 2px solid var(--navy-700); border-bottom: 2px solid var(--navy-700); transform: rotate(-45deg); transition: transform .32s cubic-bezier(.2, .8, .2, 1); }
.graphic-select.is-open .graphic-select-toggle i { transform: rotate(135deg); }
.graphic-select-menu { position: absolute; z-index: 1450; display: grid; width: 100%; max-height: 18rem; inset: calc(100% + .55rem) 0 auto; padding: .55rem; overflow: hidden; visibility: hidden; opacity: 0; background: linear-gradient(145deg, rgba(5, 20, 46, .985), rgba(13, 54, 108, .98)); border: 1px solid rgba(126, 175, 255, .42); border-radius: 1rem; box-shadow: 0 24px 55px rgba(0, 7, 28, .42), inset 0 1px 0 rgba(255, 255, 255, .08); transform: perspective(700px) translateY(-12px) rotateX(-7deg) scale(.97); transform-origin: top; transition: opacity .22s ease, visibility .22s ease, transform .34s cubic-bezier(.16, 1, .3, 1); }
.graphic-select.is-open .graphic-select-menu { visibility: visible; opacity: 1; transform: none; }
.graphic-select-search { display: flex; align-items: center; gap: .55rem; margin-bottom: .4rem; padding: .58rem .7rem; color: #9fc8ff; background: rgba(255, 255, 255, .08); border: 1px solid rgba(145, 199, 255, .18); border-radius: .7rem; transition: border-color .2s ease, box-shadow .2s ease, background .2s ease; }
.graphic-select-search:focus-within { background: rgba(255, 255, 255, .12); border-color: rgba(127, 190, 255, .72); box-shadow: 0 0 0 .2rem rgba(72, 145, 255, .14); }
.graphic-select-search svg { flex: 0 0 auto; width: 1rem; height: 1rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
.graphic-select-search input { width: 100%; min-width: 0; padding: 0; color: #fff; background: transparent; border: 0; outline: 0; font-family: "DadeNegarText"; }
.graphic-select-search input::placeholder { color: rgba(218, 233, 255, .58); }
.graphic-select-search input::-webkit-search-cancel-button { filter: invert(1); opacity: .65; }
.graphic-select-options { display: grid; max-height: 13rem; overflow: auto; scrollbar-width: thin; scrollbar-color: rgba(137, 191, 255, .5) transparent; }
.graphic-select-empty { padding: .85rem .6rem; color: rgba(226, 238, 255, .72); font-size: .82rem; text-align: center; }
.graphic-select-option { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: .8rem; padding: .72rem .85rem; color: rgba(239, 246, 255, .86); background: transparent; border: 0; border-radius: .7rem; font-family: "DadeNegarText"; text-align: right; }
.graphic-select-option[hidden] { display: none; }
.graphic-select-option:hover, .graphic-select-option:focus, .graphic-select-option.is-selected { color: #fff; background: linear-gradient(110deg, rgba(83, 148, 255, .25), rgba(255, 255, 255, .07)); transform: translateX(-4px); outline: 0; }
.graphic-select-option i { opacity: 0; color: #8fdfff; font-style: normal; transform: scale(.5) rotate(-20deg); transition: opacity .2s ease, transform .25s ease; }
.graphic-select-option.is-selected i { opacity: 1; transform: none; }
.portal-form-card { max-width: 72rem; margin-inline: auto; }
.profile-summary dl { display: grid; grid-template-columns: 6rem 1fr; gap: .65rem 1rem; margin: 1.2rem 0 0; }
.profile-summary dt { color: var(--muted); }
.profile-summary dd { margin: 0; overflow-wrap: anywhere; }
.portal-users-table th { color: #52637f; background: var(--blue-50); font-family: DadeNegarTitle; }
.portal-users-table td, .portal-users-table th { padding: .85rem 1rem; }
.balance-badge.is-disabled { color: #8a263a; background: #fff0f3; }
.dropdown-menu { z-index: 1400; border: 1px solid rgba(140, 177, 235, .4); border-radius: .9rem; box-shadow: 0 18px 46px rgba(0, 8, 27, .28); }
.account-dropdown .dropdown-menu { min-width: 15.5rem; margin-top: .6rem !important; padding: .55rem; overflow: hidden; color: #eef5ff; background: linear-gradient(145deg, rgba(4, 17, 40, .985), rgba(13, 54, 108, .975)); border-color: rgba(124, 179, 255, .3); box-shadow: 0 24px 60px rgba(0, 6, 22, .46), inset 0 1px 0 rgba(255, 255, 255, .08); backdrop-filter: blur(22px) saturate(145%); transform-origin: top left; }
body.account-menu-open .account-dropdown .dropdown-menu { box-shadow: 0 32px 85px rgba(0, 4, 18, .68), 0 0 35px rgba(67, 135, 242, .2), inset 0 1px 0 rgba(255, 255, 255, .1); }
.account-dropdown .dropdown-menu::before { content: ""; position: absolute; width: 9rem; height: 9rem; inset: -5.2rem auto auto -4rem; pointer-events: none; background: radial-gradient(circle, rgba(80, 147, 255, .3), transparent 68%); border-radius: 50%; animation: account-menu-glow 4.5s ease-in-out infinite alternate; }
.account-dropdown .dropdown-menu.show { animation: account-menu-in .38s cubic-bezier(.16, 1, .3, 1) both; }
.account-dropdown-title { display: grid; padding: .45rem .65rem .3rem; }
.account-dropdown-title small { color: rgba(210, 227, 255, .58); font-size: .72rem; }
.account-dropdown-title strong { color: #fff; font-size: .95rem; }
.account-dropdown .dropdown-divider { border-color: rgba(255, 255, 255, .12); }
.dropdown-item { padding: .55rem 1rem; font-family: DadeNegarText; border-radius: .65rem; }
.account-dropdown .dropdown-item { position: relative; display: grid; color: #eef5ff; background: transparent; transition: transform .24s ease, background .24s ease, color .24s ease; }
.account-dropdown .dropdown-item small { color: rgba(210, 227, 255, .56); font-size: .72rem; }
.account-dropdown .dropdown-item:hover, .account-dropdown .dropdown-item:focus { color: #fff; background: rgba(103, 164, 255, .15); transform: translateX(-4px); }
.account-dropdown .dropdown-item:hover small, .account-dropdown .dropdown-item:focus small { color: rgba(231, 241, 255, .78); }
.account-dropdown .account-login-history-trigger { width: 100%; border: 0; text-align: right; }
.account-dropdown form { margin: 0; }
.account-dropdown .account-logout { width: 100%; color: #ffbdc9; background: transparent; border: 0; text-align: right; }
.support-form-card .text-danger, .field-error { font-family: DadeNegarText, Tahoma, sans-serif; line-height: 1.8; }
.file-upload { display: grid; gap: .7rem; }
.file-upload-input { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.file-upload-dropzone { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 1rem; min-height: 6.5rem; padding: 1rem 1.15rem; color: var(--navy-800); background: linear-gradient(145deg, #fff, #f2f7ff); border: 1px dashed rgba(58, 112, 194, .42); border-radius: 1rem; box-shadow: inset 0 1px 0 #fff, 0 12px 30px rgba(13, 45, 95, .07); cursor: pointer; transition: transform .25s ease, border-color .25s ease, background .25s ease, box-shadow .25s ease; }
.file-upload-dropzone:hover, .file-upload.is-dragging .file-upload-dropzone { background: linear-gradient(145deg, #fff, #e7f1ff); border-color: var(--blue-600); box-shadow: 0 15px 34px rgba(20, 74, 157, .13), inset 0 1px 0 #fff; transform: translateY(-2px); }
.file-upload-icon { display: grid; width: 3rem; height: 3rem; place-items: center; color: #fff; background: linear-gradient(145deg, var(--blue-600), var(--navy-800)); border-radius: .9rem; box-shadow: 0 10px 22px rgba(13, 45, 95, .22); font-family: sans-serif; font-size: 1.45rem; }
.file-upload-dropzone > span:nth-child(2) { display: grid; gap: .25rem; }
.file-upload-dropzone strong { font-family: "DadeNegarTitle", "DadeNegarText", sans-serif; font-size: .95rem; }
.file-upload-dropzone small { color: var(--muted); font-size: .78rem; line-height: 1.7; }
.file-upload-dropzone .file-upload-description { color: #526783; }
.file-upload-dropzone .file-upload-limits { font-size: .72rem; opacity: .9; }
.file-upload-button { pointer-events: none; }
.file-upload-list { display: flex; flex-wrap: wrap; gap: .55rem; }
.file-upload-list:empty { display: none; }
.file-upload-item { display: inline-flex; max-width: 100%; align-items: center; gap: .75rem; padding: .5rem .65rem; color: #edf5ff; background: linear-gradient(135deg, var(--navy-800), #174c93); border: 1px solid rgba(120, 172, 244, .34); border-radius: .8rem; box-shadow: 0 8px 20px rgba(6, 21, 47, .13); }
.file-upload-item > span { display: grid; min-width: 0; }
.file-upload-item strong { overflow: hidden; font-family: "DadeNegarText", Tahoma, sans-serif; font-size: .78rem; font-weight: 400; text-overflow: ellipsis; white-space: nowrap; }
.file-upload-item small { color: rgba(235, 244, 255, .66); font-size: .66rem; }
.file-upload-remove { display: grid; flex: 0 0 auto; width: 1.55rem; height: 1.55rem; padding: 0; place-items: center; color: #fff; background: rgba(255, 255, 255, .12); border: 0; border-radius: .5rem; font-family: sans-serif; line-height: 1; }
.file-upload-remove:hover { background: rgba(255, 114, 141, .38); }
.ticket-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; }
.ticket-card { min-width: 0; padding: 1rem 1.1rem; border-radius: 1rem; }
.ticket-card:hover { border-color: #bdcbea; box-shadow: 0 16px 35px rgba(6, 21, 47, .1); }
.ticket-card-head { display: flex; align-items: start; justify-content: space-between; gap: 1rem; }
.ticket-card-head small { display: block; margin-top: .25rem; color: var(--muted); }
.ticket-card h2 { display: -webkit-box; margin: .65rem 0; overflow: hidden; white-space: pre-line; font-family: "DadeNegarText"; font-size: .95rem; line-height: 1.7; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.ticket-meta { display: flex; flex-wrap: wrap; gap: .35rem .8rem; color: var(--muted); font-size: .78rem; }
.ticket-details { margin-top: .6rem; border-top: 1px solid var(--border); }
.ticket-details summary { padding-top: .55rem; color: var(--blue-600); cursor: pointer; font-weight: 700; }
.ticket-card dl { display: grid; grid-template-columns: 5.5rem 1fr; gap: .3rem .7rem; margin: .6rem 0 0; }
.ticket-card dt { color: var(--muted); font-size: .84rem; }
.ticket-card dd { margin: 0; white-space: pre-line; }
.rating-form { display: grid; grid-template-columns: 8rem 1fr auto; gap: .6rem; margin-top: 1rem; }

.history-status-filter { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .7rem; margin-bottom: 1rem; }
.history-status-filter > a { display: flex; min-width: 0; align-items: center; gap: .75rem; padding: .7rem .85rem; color: #dbeaff; background: rgba(5, 25, 58, .72); border: 1px solid rgba(122, 173, 241, .2); border-radius: .9rem; box-shadow: 0 10px 25px rgba(0, 7, 25, .14); text-decoration: none; transition: transform .22s ease, border-color .22s ease, background .22s ease, box-shadow .22s ease; }
.history-status-filter > a:hover { color: #fff; border-color: rgba(140, 192, 255, .62); transform: translateY(-2px); }
.history-status-filter > a.active { color: #fff; background: linear-gradient(135deg, rgba(27, 79, 156, .98), rgba(12, 47, 99, .98)); border-color: rgba(147, 198, 255, .75); box-shadow: 0 12px 28px rgba(0, 20, 60, .26), inset 0 1px 0 rgba(255, 255, 255, .13); }
.history-status-filter i { display: grid; flex: 0 0 auto; width: 2rem; height: 2rem; place-items: center; background: rgba(255, 255, 255, .1); border-radius: .65rem; font-family: sans-serif; font-style: normal; }
.history-filter-open i { color: #ffd47b; }
.history-filter-done i { color: #79edc1; }
.history-status-filter span { display: grid; min-width: 0; }
.history-status-filter strong { font-family: "DadeNegarTitle", "DadeNegarText", sans-serif; font-size: .88rem; }
.history-status-filter small { margin-top: .1rem; color: rgba(220, 234, 255, .62); font-size: .66rem; }
.history-ticket-list { grid-template-columns: minmax(0, 1fr); gap: .65rem; }
.history-ticket-row { position: relative; display: grid; grid-template-columns: minmax(0, 1fr); gap: .7rem; overflow: hidden; padding: .8rem 1rem .7rem; border-radius: .9rem; transform: none; }
.history-ticket-row::before { content: ""; position: absolute; width: .3rem; inset: 0 0 0 auto; background: #f0b744; }
.history-ticket-row.history-ticket-completed::before { background: #21a77a; }
.history-ticket-row:hover { transform: translateY(-1px); box-shadow: 0 13px 30px rgba(6, 21, 47, .13); }
.history-ticket-head { display: flex; min-width: 0; align-items: center; justify-content: space-between; gap: 1rem; }
.history-ticket-identity { display: flex; min-width: 0; align-items: center; flex-wrap: wrap; gap: .4rem .65rem; }
.history-ticket-identity strong { color: var(--navy-800); font-family: "DadeNegarTitle", "DadeNegarText", sans-serif; font-size: .92rem; }
.history-ticket-identity time { color: var(--muted); font-size: .72rem; }
.history-status-badge, .history-emergency-badge { padding: .25rem .55rem; border-radius: 999px; font-size: .68rem; font-weight: 700; white-space: nowrap; }
.history-ticket-open .history-status-badge { color: #815608; background: #fff1ca; border: 1px solid #f1d27b; }
.history-ticket-completed .history-status-badge { color: #086348; background: #dff8ee; border: 1px solid #a8e2cd; }
.history-emergency-badge { color: #9a2840; background: #ffe7ec; border: 1px solid #f4b6c4; }
.history-rating-summary { display: inline-flex; flex: 0 0 auto; align-items: baseline; gap: .2rem; min-height: 1.75rem; padding: .28rem .6rem; color: #16447f; background: rgba(225, 237, 255, .8); border: 1px solid rgba(50, 105, 185, .13); border-radius: .65rem; }
.history-rating-summary strong { font-family: "DadeNegarTitle", "DadeNegarText", sans-serif; font-size: .92rem; }
.history-rating-summary small { color: #6f83a0; font-size: .62rem; }
.history-rating-stars { color: #e9a918; font-family: sans-serif; }
.history-rating-pending { color: #9b6500; font-size: .7rem; font-weight: 700; }
.history-rating-empty { color: #7789a0; font-size: .68rem; }
.history-ticket-content { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: .65rem; }
.history-ticket-content section { min-width: 0; padding: .55rem .7rem; background: rgba(255, 255, 255, .58); border: 1px solid rgba(59, 105, 170, .09); border-radius: .7rem; }
.history-ticket-content small, .history-ticket-meta small { display: block; color: #7085a3; font-size: .65rem; }
.history-ticket-content p { display: -webkit-box; min-height: 2.75rem; margin: .15rem 0 0; overflow: hidden; color: #233b5d; white-space: pre-line; font-size: .78rem; line-height: 1.7; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.history-ticket-meta { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .4rem; }
.history-ticket-meta > span { min-width: 0; padding-inline: .55rem; border-inline-start: 1px solid rgba(69, 106, 160, .14); }
.history-ticket-meta > span:last-child { border-inline-start: 0; }
.history-ticket-meta b { display: block; overflow: hidden; margin-top: .08rem; color: #314967; font-size: .7rem; font-weight: 400; text-overflow: ellipsis; white-space: nowrap; }
.history-ticket-details { margin-top: 0; }
.history-ticket-details summary { display: flex; align-items: center; justify-content: flex-start; gap: .4rem; width: max-content; padding-top: .45rem; font-size: .72rem; list-style: none; }
.history-ticket-details summary::-webkit-details-marker { display: none; }
.history-ticket-details summary i { font-family: sans-serif; font-style: normal; transition: transform .2s ease; }
.history-ticket-details[open] summary i { transform: rotate(180deg); }
.history-ticket-details dl { padding: .7rem; background: rgba(226, 237, 253, .52); border-radius: .7rem; }

.required-rating-modal .modal-dialog { transform: translateY(1.5rem) scale(.96); transition: transform .38s cubic-bezier(.16, 1, .3, 1); }
.required-rating-modal.show .modal-dialog { transform: none; }
.required-rating-modal .modal-content { overflow: hidden; color: #eaf3ff; background: linear-gradient(145deg, rgba(4, 18, 43, .99), rgba(12, 49, 99, .99)); border: 1px solid rgba(121, 182, 255, .35); border-radius: 1.5rem; box-shadow: 0 38px 100px rgba(0, 5, 22, .7), inset 0 1px 0 rgba(255, 255, 255, .09); }
.required-rating-modal .modal-header { padding: 1.3rem 1.5rem 1rem; background: radial-gradient(circle at 85% 0, rgba(72, 148, 255, .25), transparent 48%); border-bottom-color: rgba(255, 255, 255, .1); }
.required-rating-modal .modal-header p { margin: .35rem 0 0; color: rgba(226, 239, 255, .7); }
.required-rating-modal .modal-title { color: #fff; font-size: 1.45rem; }
.required-rating-modal .modal-body { display: block; min-height: 0; padding: 1.15rem 1.4rem; overflow-x: hidden; overflow-y: auto; scrollbar-gutter: stable; }
.rating-management-note { position: relative; isolation: isolate; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .8rem; margin-bottom: 1rem; padding: .8rem .9rem; overflow: hidden; color: #eaf7ff; background: linear-gradient(115deg, rgba(34, 104, 187, .34), rgba(36, 178, 170, .16)); border: 1px solid rgba(133, 211, 239, .27); border-radius: 1rem; box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 12px 28px rgba(0, 9, 31, .18); }
.rating-management-note::after { content: ""; position: absolute; z-index: -1; width: 8rem; height: 8rem; inset: -5rem auto auto -2rem; background: rgba(76, 211, 207, .13); border-radius: 50%; filter: blur(3px); }
.rating-management-note > span { display: grid; width: 2.55rem; height: 2.55rem; place-items: center; color: #9fe8ff; background: rgba(255,255,255,.09); border: 1px solid rgba(179, 228, 255, .22); border-radius: .8rem; box-shadow: 0 8px 18px rgba(0, 12, 40, .2); }
.rating-management-note svg { width: 1.45rem; height: 1.45rem; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.rating-management-note strong { display: block; margin-bottom: .15rem; color: #fff; font-family: "DadeNegarTitle", Tahoma, sans-serif; font-size: .8rem; }
.rating-management-note p { margin: 0; color: rgba(229, 244, 255, .78); font-size: .75rem; line-height: 1.8; }
.required-rating-card { position: relative; width: 100%; height: auto; min-height: 0; max-height: none; overflow: hidden; padding: 1.05rem; background: linear-gradient(145deg, rgba(255, 255, 255, .97), rgba(234, 243, 255, .95)); border: 1px solid rgba(156, 196, 246, .38); border-radius: 1.15rem; box-shadow: 0 16px 34px rgba(0, 8, 30, .2); }
.required-rating-card + .required-rating-card { margin-top: 1rem; }
.required-rating-card.is-completing { pointer-events: none; animation: rating-card-complete .56s cubic-bezier(.65, 0, .35, 1) forwards; }
.required-rating-card.is-completing::after { content: "✓ ثبت شد"; position: absolute; inset: 0; z-index: 4; display: grid; place-items: center; color: #fff; background: linear-gradient(120deg, rgba(21, 139, 103, .94), rgba(35, 91, 181, .94)); font-family: "DadeNegarTitle"; font-size: 1.35rem; animation: rating-success-reveal .46s cubic-bezier(.16, 1, .3, 1) both; }
.required-rating-card::before { content: ""; position: absolute; width: 8rem; height: 8rem; inset: -5rem auto auto -3rem; background: radial-gradient(circle, rgba(54, 122, 224, .22), transparent 70%); }
.required-rating-card header { position: relative; display: flex; justify-content: space-between; gap: 1rem; color: #17427c; }
.required-rating-card header span { font-family: "DadeNegarTitle"; }
.required-rating-card header time { color: #69809e; font-size: .75rem; }
.required-rating-summary { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; margin-top: .85rem; }
.required-rating-summary > div { padding: .75rem; color: #172f51; background: rgba(255, 255, 255, .68); border: 1px solid rgba(39, 91, 166, .1); border-radius: .8rem; }
.required-rating-summary small { color: #6380a8; }
.required-rating-summary p { margin: .25rem 0 0; white-space: pre-line; font-size: .86rem; line-height: 1.7; }
.required-rating-meta { display: flex; flex-wrap: wrap; gap: .5rem 1rem; margin: .7rem 0; color: #607896; font-size: .76rem; }
.required-rating-form { display: grid; grid-template-columns: auto minmax(14rem, 1fr) auto; align-items: center; gap: .7rem; }
.required-rating-form textarea { min-height: 3.25rem; resize: vertical; }
.required-rating-form button .spinner-border { display: none; margin-inline-start: .45rem; }
.required-rating-form button.is-loading .spinner-border { display: inline-block; }
.rating-score-control { align-self: center; min-width: 10.5rem; }
.low-rating-notice { max-width: 15rem; max-height: 0; margin-top: 0; padding: 0 .55rem; overflow: hidden; opacity: 0; color: #922c45; background: linear-gradient(125deg, rgba(255, 236, 241, .96), rgba(255, 247, 249, .98)); border: 0 solid rgba(207, 62, 96, .24); border-radius: .7rem; font-size: .68rem; line-height: 1.75; transform: translateY(-.3rem) scale(.97); transition: max-height .34s ease, margin-top .34s ease, padding .34s ease, opacity .25s ease, transform .34s cubic-bezier(.16, 1, .3, 1), border-width .2s ease; }
.low-rating-notice.is-visible { max-height: 5rem; margin-top: .4rem; padding: .42rem .55rem; opacity: 1; border-width: 1px; transform: none; box-shadow: 0 7px 16px rgba(148, 33, 64, .08); }
.required-rating-modal .modal-content.is-all-complete { animation: rating-modal-complete .58s cubic-bezier(.16, 1, .3, 1) forwards; }
@keyframes rating-success-reveal { from { opacity: 0; transform: scale(.82); } to { opacity: 1; transform: scale(1); } }
@keyframes rating-card-complete { 0%, 45% { opacity: 1; transform: scale(1); } 100% { opacity: 0; transform: translateX(-4rem) scale(.92); } }
@keyframes rating-modal-complete { 0% { opacity: 1; transform: scale(1); } 65% { opacity: 1; transform: scale(1.02); } 100% { opacity: 0; transform: translateY(-1.5rem) scale(.96); } }
.star-rating { display: flex; flex-direction: row-reverse; margin: 0; padding: 0; border: 0; }
.star-rating input { position: absolute; opacity: 0; pointer-events: none; }
.star-rating label { padding: .06rem; color: #c8d2df; cursor: pointer; font-family: Tahoma, sans-serif; font-size: 1.75rem; line-height: 1; text-shadow: 0 2px 8px rgba(7, 32, 69, .12); transition: color .18s ease, transform .18s ease, text-shadow .18s ease; }
.star-rating label:hover, .star-rating label:hover ~ label, .star-rating input:checked ~ label { color: #ffbd31; text-shadow: 0 4px 12px rgba(255, 176, 28, .34); transform: translateY(-2px) scale(1.06); }
.required-rating-footer { justify-content: center; color: rgba(226, 239, 255, .72); background: rgba(0, 9, 28, .2); border-top-color: rgba(255, 255, 255, .08); font-size: .78rem; }

.feedback-heading { align-items: center; }
.feedback-summary { display: flex; gap: .7rem; }
.feedback-summary > span { display: grid; min-width: 7.5rem; padding: .7rem 1rem; color: #eaf4ff; background: rgba(255, 255, 255, .08); border: 1px solid rgba(151, 197, 255, .18); border-radius: 1rem; text-align: center; box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08); }
.feedback-summary small { color: rgba(226, 239, 255, .68); font-size: .7rem; }
.feedback-summary strong { margin-top: .2rem; font-size: 1.35rem; }
.feedback-summary .is-critical { background: linear-gradient(145deg, rgba(175, 42, 70, .32), rgba(91, 16, 39, .24)); border-color: rgba(255, 135, 157, .28); }
.feedback-filter-card { display: flex; align-items: end; gap: .75rem; margin: -1rem 0 1.1rem; padding: .9rem 1rem; color: #eaf4ff; background: linear-gradient(120deg, rgba(7, 27, 62, .9), rgba(16, 61, 116, .72)); border: 1px solid rgba(134, 187, 255, .22); border-radius: 1.1rem; box-shadow: 0 16px 38px rgba(0, 8, 30, .2), inset 0 1px 0 rgba(255, 255, 255, .07); backdrop-filter: blur(12px); }
.feedback-filter-field { display: grid; min-width: 12rem; gap: .35rem; }
.feedback-filter-field > span:first-child { color: #cfe5ff; font-family: "DadeNegarTitle"; font-size: .8rem; }
.feedback-number-input { display: flex; align-items: center; overflow: hidden; background: rgba(255, 255, 255, .97); border: 1px solid rgba(149, 190, 244, .48); border-radius: .8rem; box-shadow: inset 0 2px 6px rgba(21, 59, 113, .06); }
.feedback-number-input:focus-within { border-color: #6ba8ff; box-shadow: 0 0 0 .2rem rgba(75, 143, 245, .18); }
.feedback-number-input input { width: 7rem; min-width: 0; padding: .58rem .7rem; color: #102f5d; background: transparent; border: 0; outline: 0; font-family: "DadeNegarTitle"; font-size: 1rem; text-align: center; }
.feedback-number-input small { align-self: stretch; display: grid; min-width: 4.5rem; padding-inline: .65rem; place-items: center; color: #55749d; background: #edf4fd; border-inline-start: 1px solid #d7e4f4; font-size: .7rem; white-space: nowrap; }
.feedback-filter-select { min-height: 2.7rem; padding: .55rem 2.2rem .55rem .75rem; color: #102f5d; background-color: rgba(255, 255, 255, .97); border: 1px solid rgba(149, 190, 244, .48); border-radius: .8rem; outline: 0; font-family: "DadeNegarText", Tahoma, sans-serif; font-size: .84rem; cursor: pointer; }
.feedback-filter-select:focus { border-color: #6ba8ff; box-shadow: 0 0 0 .2rem rgba(75, 143, 245, .18); }
.feedback-text-input { min-height: 2.7rem; padding: .55rem .8rem; color: #102f5d; background: rgba(255, 255, 255, .97); border: 1px solid rgba(149, 190, 244, .48); border-radius: .8rem; outline: 0; font-family: "DadeNegarText", Tahoma, sans-serif; font-size: .84rem; transition: border-color .2s ease, box-shadow .2s ease; }
.feedback-text-input:focus { border-color: #6ba8ff; box-shadow: 0 0 0 .2rem rgba(75, 143, 245, .18); }
.feedback-text-input::placeholder { color: #8498b2; }
.feedback-filter-submit, .feedback-filter-reset { min-height: 2.7rem; padding-inline: 1.1rem; white-space: nowrap; }
.feedback-filter-reset { color: #eaf4ff; border-color: rgba(207, 229, 255, .46); }
.feedback-filter-reset:hover { color: #092653; background: #eef6ff; border-color: #eef6ff; }
.feedback-legend { display: flex; justify-content: space-between; gap: 1rem; margin: 0 0 1rem; padding: .7rem 1rem; color: #dceaff; background: rgba(8, 31, 69, .72); border: 1px solid rgba(139, 188, 255, .17); border-radius: .9rem; font-size: .76rem; }
.feedback-legend i { display: inline-block; width: .55rem; height: .55rem; margin-left: .3rem; background: #ff758e; border-radius: 50%; box-shadow: 0 0 .7rem rgba(255, 84, 118, .7); }
.feedback-review-list { display: grid; gap: .65rem; }
.feedback-review-card { overflow: hidden; color: #213754; background: linear-gradient(145deg, rgba(255,255,255,.99), rgba(242,247,255,.97)); border: 1px solid rgba(174, 198, 231, .72); border-radius: 1rem; box-shadow: 0 12px 28px rgba(0, 11, 35, .14), inset 0 1px 0 #fff; }
.feedback-review-card.needs-follow-up { border-color: rgba(220, 70, 101, .45); box-shadow: inset -4px 0 #dc4665, 0 12px 28px rgba(91, 16, 39, .14); }
.feedback-review-head { display: grid; grid-template-columns: minmax(13rem, 1fr) minmax(30rem, 2.5fr) auto; align-items: center; gap: .7rem; padding: .62rem .8rem; background: linear-gradient(90deg, rgba(230, 239, 252, .8), rgba(249, 252, 255, .96)); border-bottom: 1px solid #dce6f3; }
.feedback-review-card.needs-follow-up .feedback-review-head { background: linear-gradient(90deg, rgba(255, 232, 237, .78), rgba(252, 248, 250, .96)); }
.feedback-review-identity { display: flex; min-width: 0; align-items: baseline; flex-wrap: wrap; gap: .18rem .5rem; }
.feedback-review-identity strong { color: #163d70; font-family: "DadeNegarTitle"; font-size: .88rem; }
.feedback-review-identity span { color: #57718f; font-size: .72rem; }
.feedback-review-identity em { flex-basis: 100%; overflow: hidden; color: #4772aa; font-size: .66rem; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }
.feedback-review-meta { display: flex; min-width: 0; align-items: center; justify-content: center; flex-wrap: wrap; gap: .38rem; }
.feedback-meta-chip, .feedback-date-chip { display: flex; min-height: 2.15rem; align-items: center; gap: .38rem; padding: .32rem .55rem; background: rgba(255, 255, 255, .82); border: 1px solid #d7e3f2; border-radius: .65rem; white-space: nowrap; }
.feedback-meta-chip small, .feedback-date-chip small { color: #7187a2; font-size: .58rem; }
.feedback-meta-chip b, .feedback-date-chip b { color: #25486f; font-size: .7rem; font-weight: 600; }
.feedback-date-chip.is-completed { background: rgba(231, 244, 255, .9); border-color: #c9e0f5; }
.feedback-date-chip.is-rated { background: rgba(235, 248, 241, .94); border-color: #c8e6d5; }
.feedback-phone { display: inline-block; direction: ltr; unicode-bidi: isolate; color: #173f76; font-family: "DadeNegarTitle", Tahoma, sans-serif; font-size: .78rem; white-space: nowrap; }
.feedback-score { display: grid; grid-template-columns: auto auto; min-width: 4.2rem; padding: .32rem .48rem; place-items: center; color: #fff; background: linear-gradient(145deg, #2464ba, #123f7e); border-radius: .72rem; box-shadow: 0 7px 16px rgba(18, 63, 126, .2); }
.feedback-score.is-low { background: linear-gradient(145deg, #e45370, #9b2442); box-shadow: 0 7px 18px rgba(157, 39, 68, .25); }
.feedback-score.is-excellent { background: linear-gradient(145deg, #21a17d, #11654f); box-shadow: 0 7px 18px rgba(17, 101, 79, .22); }
.feedback-score b { font-family: "DadeNegarTitle"; font-size: 1.08rem; line-height: 1; }
.feedback-score i { color: #ffe28a; font-family: Arial, sans-serif; font-size: .85rem; font-style: normal; }
.feedback-score small { grid-column: 1 / -1; margin-top: .12rem; color: rgba(255, 255, 255, .78); font-size: .54rem; }
.feedback-wide-row { display: grid; grid-template-columns: 7rem minmax(0, 1fr); align-items: start; gap: .65rem; padding: .38rem .8rem; border-top: 1px solid rgba(213, 225, 240, .72); }
.feedback-wide-row:first-of-type { border-top: 0; }
.feedback-wide-row > strong { padding-top: .1rem; color: #44688f; font-family: "DadeNegarTitle"; font-size: .68rem; white-space: nowrap; }
.feedback-wide-row > p { min-width: 0; margin: 0; color: #2b405b; font-size: .72rem; line-height: 1.55; overflow-wrap: anywhere; white-space: pre-line; }
.feedback-wide-row.is-action { background: rgba(235, 243, 253, .45); }
.feedback-wide-row.is-comment { background: linear-gradient(90deg, rgba(236, 249, 243, .62), rgba(250, 253, 255, .7)); }
.feedback-wide-row.is-comment > strong { color: #1c775c; }
.feedback-empty-state { padding: 2.5rem; color: #617a98; background: rgba(248, 251, 255, .98); border: 1px solid rgba(179, 202, 235, .55); border-radius: 1rem; text-align: center; }

.login-audit-heading { align-items: center; }
.login-audit-filter { justify-content: flex-start; }
.login-audit-user-filter { min-width: min(21rem, 100%); }
.login-audit-note { display: flex; justify-content: space-between; gap: 1rem; margin: 0 0 1rem; padding: .7rem 1rem; color: #dceaff; background: rgba(8, 31, 69, .72); border: 1px solid rgba(139, 188, 255, .17); border-radius: .9rem; font-size: .76rem; }
.login-audit-note i { display: inline-block; width: .55rem; height: .55rem; margin-left: .3rem; background: #69d4ff; border-radius: 50%; box-shadow: 0 0 .7rem rgba(73, 185, 255, .65); }
.login-audit-table-shell { overflow: hidden; background: rgba(248, 251, 255, .99); border: 1px solid rgba(174, 198, 231, .68); border-radius: 1.1rem; box-shadow: 0 16px 38px rgba(0, 10, 34, .18), inset 0 1px 0 #fff; }
.login-audit-table { width: 100%; min-width: 70rem; color: #29415f; border-collapse: separate; border-spacing: 0; font-size: .76rem; }
.login-audit-table th { padding: .72rem .65rem; color: #244b79; background: linear-gradient(180deg, #eaf2fd, #dfeaf9); border-bottom: 1px solid #cad9ec; font-family: "DadeNegarTitle"; font-weight: 400; text-align: center; white-space: nowrap; }
.login-audit-table td { padding: .62rem .65rem; background: rgba(255, 255, 255, .9); border-bottom: 1px solid #e0e9f4; text-align: center; vertical-align: middle; }
.login-audit-table tbody tr:last-child td { border-bottom: 0; }
.login-audit-table tbody tr:hover td { background: #f0f6ff; }
.login-audit-table td strong { color: #173f71; font-family: "DadeNegarTitle"; font-size: .8rem; font-weight: 400; }
.login-audit-row-number { display: grid; width: 1.8rem; height: 1.8rem; margin-inline: auto; place-items: center; color: #fff; background: linear-gradient(145deg, #2d75d4, #123f7c); border-radius: .55rem; box-shadow: 0 5px 12px rgba(25, 75, 145, .2); }
.login-audit-phone { color: #155392; font-family: "DadeNegarTitle", Tahoma, sans-serif; font-size: .82rem; }

.settings-heading { align-items: center; }
.settings-security-badge { display: flex; align-items: center; gap: .7rem; padding: .7rem 1rem; color: #e8f5ff; background: rgba(87, 162, 255, .12); border: 1px solid rgba(133, 195, 255, .24); border-radius: 1rem; box-shadow: inset 0 1px 0 rgba(255,255,255,.08); }
.settings-security-badge > span { display: grid; width: 2.25rem; height: 2.25rem; place-items: center; color: #72d8ff; background: rgba(101, 189, 255, .13); border-radius: .72rem; }
.settings-security-badge div { display: grid; }
.settings-security-badge strong { font-family: "DadeNegarTitle"; font-size: .8rem; }
.settings-security-badge small { color: rgba(224, 239, 255, .68); font-size: .65rem; }
.settings-editor { display: grid; gap: 1rem; }
.settings-toolbar { position: sticky; z-index: 20; top: .75rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .8rem 1rem; color: #eaf4ff; background: linear-gradient(120deg, rgba(5, 24, 56, .96), rgba(18, 69, 130, .94)); border: 1px solid rgba(133, 190, 255, .24); border-radius: 1rem; box-shadow: 0 16px 38px rgba(0, 8, 30, .28), inset 0 1px 0 rgba(255,255,255,.08); backdrop-filter: blur(14px); }
.settings-toolbar > div { display: grid; }
.settings-toolbar strong { font-family: "DadeNegarTitle"; font-size: .8rem; }
.settings-toolbar small, .settings-toolbar > span { color: rgba(225, 238, 255, .7); font-size: .7rem; }
.settings-toolbar-bottom { position: static; }
.settings-save-button { display: inline-flex; min-width: 10rem; align-items: center; justify-content: center; gap: .45rem; white-space: nowrap; }
.settings-save-button > span { display: grid; width: 1.4rem; height: 1.4rem; place-items: center; background: rgba(255,255,255,.14); border-radius: .45rem; font-family: Arial, sans-serif; }
.settings-section { overflow: hidden; background: linear-gradient(145deg, rgba(255,255,255,.99), rgba(240,247,255,.98)); border: 1px solid rgba(171, 198, 234, .62); border-radius: 1.15rem; box-shadow: 0 16px 36px rgba(0, 10, 34, .16), inset 0 1px 0 #fff; }
.settings-category-nav { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem; padding: .75rem; color: #dbeaff; background: rgba(7, 31, 69, .72); border: 1px solid rgba(132, 184, 245, .2); border-radius: 1rem; box-shadow: 0 12px 30px rgba(0, 8, 30, .18); }
.settings-category-nav > span { margin-inline-end: .25rem; color: rgba(225, 238, 255, .68); font-size: .7rem; }
.settings-category-nav button { padding: .38rem .62rem; color: #dcecff; background: rgba(255,255,255,.06); border: 1px solid rgba(151, 196, 249, .2); border-radius: 999px; font-family: "DadeNegarText", Tahoma, sans-serif; font-size: .68rem; transition: color .2s ease, background .2s ease, transform .2s ease; }
.settings-category-nav button:hover, .settings-category-nav button:focus { color: #fff; background: rgba(69, 139, 230, .35); transform: translateY(-1px); }
.settings-section > summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .75rem 1rem; cursor: pointer; list-style: none; user-select: none; background: linear-gradient(90deg, rgba(218, 233, 253, .72), rgba(247, 251, 255, .9)); border-bottom: 1px solid transparent; transition: background .22s ease, border-color .22s ease; }
.settings-section > summary::-webkit-details-marker { display: none; }
.settings-section[open] > summary { background: linear-gradient(90deg, rgba(207, 227, 253, .88), rgba(247, 251, 255, .96)); border-bottom-color: #d9e5f3; }
.settings-section > summary > span { display: inline-flex; align-items: center; gap: .55rem; }
.settings-section > summary > span:first-child > i { display: grid; width: 2rem; height: 2rem; place-items: center; color: #fff; background: linear-gradient(145deg, #174e91, #2d80e5); border-radius: .62rem; box-shadow: 0 7px 15px rgba(24, 83, 158, .2); font-family: "DadeNegarTitle", Tahoma, sans-serif; font-size: .64rem; font-style: normal; }
.settings-section h2 { margin: 0; color: #123d73; font-family: "DadeNegarTitle"; font-size: 1rem; }
.settings-section summary > span:last-child { padding: .24rem .55rem; color: #446b98; background: rgba(255,255,255,.72); border: 1px solid #d5e2f1; border-radius: 999px; font-size: .62rem; }
.settings-section summary b { width: .48rem; height: .48rem; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg) translateY(-2px); transition: transform .22s ease; }
.settings-section[open] summary b { transform: rotate(225deg) translate(-1px, -1px); }
.settings-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; padding: .9rem; overflow: hidden; transform-origin: top center; }
.settings-field { display: grid; min-width: 0; align-content: start; gap: .35rem; padding: .75rem; background: rgba(255,255,255,.75); border: 1px solid #dce7f4; border-radius: .85rem; }
.settings-field-wide { grid-column: 1 / -1; }
.settings-field > label:not(.settings-switch) { color: #224d7d; font-family: "DadeNegarTitle"; font-size: .76rem; }
.settings-field > input, .settings-field > textarea { width: 100%; min-width: 0; padding: .62rem .72rem; color: #183b65; background: #fff; border: 1px solid #cadbef; border-radius: .68rem; outline: 0; font-family: "DadeNegarText", Tahoma, sans-serif; font-size: .85rem; transition: border-color .2s ease, box-shadow .2s ease; }
.settings-field > textarea { min-height: 5.2rem; resize: vertical; line-height: 1.65; }
.settings-field > input:focus, .settings-field > textarea:focus { border-color: #4d91ed; box-shadow: 0 0 0 .2rem rgba(55, 126, 226, .12); }
.settings-field > small { color: #758ba4; font-size: .63rem; line-height: 1.65; }
.settings-list-help { color: #3972b3 !important; }
.settings-field-save { justify-self: end; display: inline-flex; align-items: center; gap: .35rem; margin-top: .25rem; padding: .38rem .65rem; color: #285d99; background: #edf5ff; border: 1px solid #cbdff6; border-radius: .6rem; font-family: "DadeNegarTitle", Tahoma, sans-serif; font-size: .67rem; transition: transform .2s ease, color .2s ease, background .2s ease, box-shadow .2s ease; }
.settings-field-save:hover, .settings-field-save:focus { color: #fff; background: linear-gradient(135deg, #164f9a, #2d7fe5); box-shadow: 0 8px 18px rgba(27, 91, 174, .2); transform: translateY(-1px); }
.settings-field-save:disabled { cursor: wait; opacity: .65; transform: none; }
.settings-date-limit { display: grid; grid-template-columns: minmax(14rem, .8fr) minmax(16rem, 1.2fr); gap: .75rem; align-items: end; }
.settings-date-limit select, .settings-specific-date input { width: 100%; min-height: 2.8rem; padding: .58rem .72rem; color: #183b65; background: #fff; border: 1px solid #cadbef; border-radius: .68rem; outline: 0; font-family: "DadeNegarText", Tahoma, sans-serif; font-size: .85rem; }
.settings-date-limit select:focus, .settings-specific-date input:focus { border-color: #4d91ed; box-shadow: 0 0 0 .2rem rgba(55, 126, 226, .12); }
.settings-specific-date { display: grid; gap: .28rem; margin: 0; transition: opacity .2s ease, transform .2s ease; }
.settings-specific-date > span { color: #54769d; font-size: .66rem; }
.settings-specific-date[hidden] { display: none; }
.settings-switch { display: flex; min-height: 3rem; align-items: center; justify-content: space-between; gap: 1rem; cursor: pointer; }
.settings-switch > span:first-child { display: grid; }
.settings-switch strong { color: #224d7d; font-family: "DadeNegarTitle"; font-size: .76rem; }
.settings-switch small { color: #758ba4; font-size: .63rem; line-height: 1.6; }
.settings-switch-control { position: relative; flex: 0 0 auto; width: 3.1rem; height: 1.7rem; }
.settings-switch-control input[type="checkbox"] { position: absolute; width: 1px; height: 1px; opacity: 0; }
.settings-switch-control i { position: absolute; inset: 0; background: #b6c5d8; border-radius: 999px; box-shadow: inset 0 2px 5px rgba(21, 49, 84, .18); transition: background .25s ease, box-shadow .25s ease; }
.settings-switch-control i::after { content: ""; position: absolute; width: 1.3rem; height: 1.3rem; top: .2rem; right: .2rem; background: #fff; border-radius: 50%; box-shadow: 0 3px 8px rgba(9, 42, 83, .28); transition: transform .28s cubic-bezier(.2,.8,.2,1); }
.settings-switch-control input:checked ~ i { background: linear-gradient(90deg, #1a5eb4, #2d85ed); box-shadow: 0 0 0 .18rem rgba(47, 132, 237, .1), inset 0 2px 5px rgba(11, 53, 111, .2); }
.settings-switch-control input:checked ~ i::after { transform: translateX(-1.4rem); }
.settings-switch-control input:focus-visible ~ i { outline: 3px solid rgba(54, 132, 235, .24); outline-offset: 2px; }

@keyframes navigation-pulse { 50% { opacity: .55; transform: scale(.78); box-shadow: 0 0 0 .35rem rgba(112, 213, 255, .06), 0 0 .4rem #70d5ff; } }
@keyframes identifier-boxes-out { to { opacity: 0; transform: translateY(.45rem) scale(.96); filter: blur(4px); } }
@keyframes identifier-boxes-in { from { opacity: 0; transform: translateY(-.5rem) scale(.96); filter: blur(5px); } to { opacity: 1; transform: none; filter: none; } }
@keyframes identifier-title-out { to { opacity: 0; transform: translateX(-.65rem); } }
@keyframes identifier-title-in { from { opacity: 0; transform: translateX(.65rem); } to { opacity: 1; transform: none; } }
.lock-card { margin-inline: auto; }
.lock-serial, .activation-code { letter-spacing: .18rem; }
.lock-serial-select { min-height: 4.4rem; padding: .8rem 1.15rem; color: var(--navy-800); background-color: #f8fbff; border: 1px solid rgba(39, 91, 166, .24); border-radius: 1rem; font-family: "DadeNegarTitle", "DadeNegarText", sans-serif; font-size: 1.35rem; font-weight: 700; letter-spacing: .1rem; text-align: center; box-shadow: inset 0 1px 0 rgba(255, 255, 255, .9), 0 10px 24px rgba(7, 42, 101, .08); transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.lock-serial-select:focus { border-color: #4e91ef; box-shadow: 0 0 0 .24rem rgba(46, 112, 219, .14), 0 14px 28px rgba(7, 42, 101, .11); transform: translateY(-1px); }
.lock-empty-state { margin-top: .8rem; padding: .8rem 1rem; color: #6b7f9d; background: rgba(230, 238, 250, .7); border: 1px dashed rgba(55, 101, 169, .25); border-radius: .85rem; text-align: center; }
.activation-code { display: block; margin-top: .7rem; direction: rtl; unicode-bidi: isolate; font-family: "DadeNegarTitle", "DadeNegarText", sans-serif; font-size: 1.35rem; font-weight: 400; }

.auth-shell { display: grid; min-height: 65vh; place-items: center; }
.auth-card { width: min(100%, 31rem); padding: 2rem; border-radius: var(--radius); }

.login-experience {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(24rem, .95fr);
  min-height: calc(100vh - 12rem);
  overflow: hidden;
  background: rgba(255, 255, 255, .985);
  border: 1px solid rgba(151, 190, 252, .32);
  border-radius: 2rem;
  box-shadow: 0 34px 90px rgba(0, 0, 0, .34), inset 0 1px 0 rgba(255, 255, 255, .16);
}
.login-intro { position: relative; isolation: isolate; display: flex; flex-direction: column; justify-content: center; padding: clamp(2rem, 6vw, 5.5rem); overflow: hidden; color: #fff; background: linear-gradient(145deg, rgba(6, 21, 47, .98), rgba(20, 61, 121, .96)); }
.login-intro::before { content: ""; position: absolute; z-index: -1; width: 28rem; height: 28rem; inset: -13rem auto auto -12rem; border: 1px solid rgba(255, 255, 255, .09); border-radius: 50%; box-shadow: 0 0 0 4rem rgba(255, 255, 255, .025), 0 0 0 8rem rgba(255, 255, 255, .02); }
.login-intro::after { content: ""; position: absolute; z-index: -1; width: 17rem; height: 17rem; inset: auto -7rem -7rem auto; background: rgba(40, 100, 220, .45); border-radius: 4rem; transform: rotate(24deg); filter: blur(3px); }
.login-intro > :not(.login-scene-canvas) { position: relative; z-index: 2; }
.login-scene-canvas { position: absolute; z-index: 1; inset: 0; width: 100%; height: 100%; pointer-events: none; mix-blend-mode: screen; }
.login-brand-logo { display: block; width: 4.15rem; height: auto; margin-bottom: 1.6rem; filter: drop-shadow(0 12px 18px rgba(0, 8, 28, .3)); }
.eyebrow { color: var(--blue-600); font-family: "DadeNegarTitle"; font-size: .85rem; letter-spacing: .01rem; }
.login-intro .eyebrow { color: rgba(255, 255, 255, .68); }
.login-intro h1 { margin: .8rem 0 1.2rem; font-size: clamp(2.2rem, 5vw, 4.4rem); line-height: 1.35; }
.login-intro .login-intro-title { display: flex; align-items: center; justify-content: space-between; gap: clamp(.55rem, 2vw, 1.25rem); width: 100%; font-size: clamp(1.05rem, 2.55vw, 2.05rem); line-height: 1.3; }
.login-intro-title span { display: inline-flex; align-items: center; justify-content: center; padding: .55rem clamp(.65rem, 1.6vw, 1rem); white-space: nowrap; background: linear-gradient(145deg, rgba(255, 255, 255, .13), rgba(111, 164, 243, .08)); border: 1px solid rgba(173, 210, 255, .2); border-radius: 1rem; box-shadow: 0 13px 28px rgba(0, 7, 27, .25), inset 0 1px 0 rgba(255, 255, 255, .16), inset 0 -1px 0 rgba(50, 111, 204, .14); text-shadow: 0 4px 13px rgba(0, 5, 20, .45); }
.login-title-services { color: #fff; }
.login-title-speed { color: #bad3ff; }
.login-intro > p { max-width: 37rem; color: rgba(255, 255, 255, .72); font-size: 1.12rem; line-height: 2; }
.login-feature-list { display: grid; gap: .75rem; margin-top: 1.2rem; }
.login-feature-list span { display: flex; align-items: center; gap: .65rem; color: rgba(255, 255, 255, .82); }
.login-feature-list i { display: grid; width: 1.5rem; height: 1.5rem; place-items: center; color: var(--navy-800); background: #fff; border-radius: 50%; font-family: sans-serif; font-size: .75rem; font-style: normal; }
.shekaste-signature { margin-top: 2rem; color: rgba(255, 255, 255, .82); font-family: "DadeNegarSignature"; font-size: 2.3rem; transform: rotate(-2deg); }
.login-panel { display: grid; place-items: center; padding: clamp(1.5rem, 5vw, 4.5rem); }
.login-card-modern { width: min(100%, 28rem); }

.kinetic-entry {
  animation: kinetic-settle .9s cubic-bezier(.16, 1, .3, 1) both;
  animation-delay: var(--entry-delay, 0ms);
}

@keyframes kinetic-settle {
  from {
    opacity: 0;
    transform: perspective(900px) translate3d(var(--entry-x, 0), var(--entry-y, .75rem), 0) rotate(var(--entry-r, 0deg)) rotateY(var(--entry-ry, 0deg)) scale(.955);
    filter: blur(4px);
  }
  to {
    opacity: 1;
    transform: perspective(900px) translate3d(0, 0, 0) rotate(0) rotateY(0) scale(1);
    filter: blur(0);
  }
}

.payment-card,
.ticket-card,
.summary-card,
.auth-card,
.login-card-modern {
  transform-style: preserve-3d;
  will-change: transform;
}

.payment-card:hover,
.ticket-card:hover,
.summary-card:hover {
  transform: translateY(-4px) perspective(700px) rotateX(1deg);
  box-shadow: 0 24px 55px rgba(6, 21, 47, .14);
}
.login-steps { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .7rem; margin-bottom: 3rem; color: #9aa7ba; font-size: .82rem; }
.login-steps > i { height: 1px; background: var(--border); }
.login-steps span { display: flex; align-items: center; gap: .4rem; }
.login-steps b { display: grid; width: 1.75rem; height: 1.75rem; place-items: center; background: #edf1f7; border-radius: 50%; font-family: "DadeNegarText"; }
.login-steps .is-active, .login-steps .is-done { color: var(--navy-800); }
.login-steps .is-active b { color: #fff; background: var(--navy-800); box-shadow: 0 0 0 .3rem var(--blue-100); }
.login-steps .is-done b { color: var(--navy-800); background: var(--blue-100); }
.form-stage h2 { margin: .35rem 0; color: var(--navy-950); font-size: 2rem; }
.form-stage > p { margin-bottom: 1.6rem; color: var(--muted); line-height: 1.8; }
.floating-field { position: relative; margin-bottom: 1.25rem; }
.floating-field input { width: 100%; height: 3.65rem; padding: 1.1rem .95rem .35rem; color: var(--text); background: #fff; border: 1px solid #cbd5e5; border-radius: .9rem; outline: 0; font-family: "DadeNegarText"; font-size: 1.08rem; text-align: center; direction: ltr; }
.floating-field label { position: absolute; top: 1.05rem; right: 1rem; padding: 0 .25rem; color: #78869c; background: #fff; pointer-events: none; transform-origin: right; }
.floating-field input:focus { border-color: var(--blue-600); box-shadow: 0 0 0 .25rem rgba(40, 100, 220, .1); }
.floating-field input:focus + label, .floating-field input:not(:placeholder-shown) + label { top: -.55rem; color: var(--blue-600); font-size: .78rem; }
.customer-kind-switch { display: grid; grid-template-columns: 1fr 1fr; gap: .55rem; margin: 0 0 1.15rem; padding: .28rem; background: #edf3fb; border: 1px solid #d8e4f3; border-radius: 1rem; box-shadow: inset 0 2px 7px rgba(19, 58, 108, .06); }
.customer-kind-switch legend { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.customer-kind-switch > input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.customer-kind-switch > label { position: relative; display: flex; min-width: 0; min-height: 3.25rem; align-items: center; justify-content: center; gap: .5rem; margin: 0; padding: .45rem .6rem; cursor: pointer; color: #607793; background: transparent; border: 1px solid transparent; border-radius: .78rem; transition: color .25s ease, background .25s ease, border-color .25s ease, box-shadow .25s ease, transform .25s ease; }
.customer-kind-switch > label > i { display: grid; flex: 0 0 auto; width: 1.65rem; height: 1.65rem; place-items: center; color: #7895b7; background: rgba(255,255,255,.58); border-radius: .55rem; font-family: Arial, sans-serif; font-size: .55rem; font-style: normal; transition: color .25s ease, background .25s ease, transform .25s ease; }
.customer-kind-switch > label > i svg { width: 1.05rem; height: 1.05rem; overflow: visible; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.customer-kind-switch > label > span { display: grid; min-width: 0; }
.customer-kind-switch strong { font-family: "DadeNegarTitle", Tahoma, sans-serif; font-size: .76rem; white-space: nowrap; }
.customer-kind-switch small { color: #8a9bb0; font-size: .57rem; white-space: nowrap; }
.customer-kind-switch > input:checked + label { color: #fff; background: linear-gradient(135deg, #103f7e, #2876dc); border-color: #397fdd; box-shadow: 0 9px 20px rgba(24, 80, 158, .22), inset 0 1px 0 rgba(255,255,255,.17); transform: translateY(-1px); }
.customer-kind-switch > input:checked + label > i { color: #16539f; background: #fff; transform: rotate(-5deg) scale(1.04); }
.customer-kind-switch > input:checked + label small { color: rgba(235,245,255,.72); }
.customer-kind-switch > input:focus-visible + label { outline: 3px solid rgba(45, 125, 229, .22); outline-offset: 2px; }
.identifier-field { position: relative; margin-bottom: 1.25rem; }
.identifier-field-title { display: block; margin: 0 0 .45rem; color: #234f83; font-family: "DadeNegarTitle", Tahoma, sans-serif; font-size: .78rem; text-align: right; }
.identifier-boxes { --identifier-count: 10; display: grid; grid-template-columns: repeat(var(--identifier-count), minmax(0, 1fr)); direction: ltr; gap: .3rem; cursor: text; }
.identifier-boxes > span { display: grid; min-width: 0; height: 3.45rem; padding-top: .2rem; place-items: center; overflow: visible; color: #15375f; background: linear-gradient(145deg, #fff, #edf4ff); border: 1px solid #c7d7eb; border-radius: .68rem; box-shadow: inset 0 1px 0 #fff, 0 6px 14px rgba(18, 59, 111, .06); font-family: "DadeNegarTitle", Tahoma, sans-serif; font-size: 1.35rem; line-height: 1.4; transition: color .2s ease, background .2s ease, border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.identifier-boxes > span.is-filled { color: #fff; background: linear-gradient(145deg, #123f7c, #286fc8); border-color: #4387dc; box-shadow: 0 8px 17px rgba(24, 76, 148, .18), inset 0 1px 0 rgba(255,255,255,.18); transform: translateY(-2px); }
.identifier-field:focus-within .identifier-boxes > span { border-color: #75a3df; box-shadow: 0 0 0 .12rem rgba(40, 100, 220, .07); }
.identifier-field:not(.is-complete):focus-within .identifier-boxes > span.is-filled + span:not(.is-filled),
.identifier-field:not(.is-complete):focus-within .identifier-boxes > span:not(.is-filled):first-child { border-color: #2873d3; box-shadow: 0 0 0 .2rem rgba(40, 100, 220, .12); transform: translateY(-2px); }
.identifier-field .national-identifier-input { position: absolute; z-index: 2; inset: 1.55rem 0 auto; width: 100%; height: 3.55rem; opacity: .01; border: 0; outline: 0; direction: ltr; caret-color: transparent; cursor: text; }
.identifier-field > .field-error { min-height: 1.15rem; margin-top: .45rem; text-align: center; }
.identifier-field.is-switching-out { pointer-events: none; }
.identifier-field.is-switching-out .identifier-field-title { animation: identifier-title-out .18s ease both; }
.identifier-field.is-switching-out .identifier-boxes { animation: identifier-boxes-out .18s ease both; }
.identifier-field.is-switching-in .identifier-field-title { animation: identifier-title-in .34s cubic-bezier(.16, 1, .3, 1) both; }
.identifier-field.is-switching-in .identifier-boxes { animation: identifier-boxes-in .42s cubic-bezier(.16, 1, .3, 1) both; }
.field-error { display: block; margin-top: .3rem; color: var(--danger); font-size: .78rem; }
.inline-hint { display: flex; gap: .55rem; align-items: center; margin: -.45rem 0 1rem; color: var(--muted); font-size: .82rem; }
.inline-hint span { display: grid; width: 1.25rem; height: 1.25rem; place-items: center; color: #fff; background: var(--navy-700); border-radius: 50%; font-family: serif; }
.btn-action { display: flex; width: 100%; min-height: 3.65rem; align-items: center; justify-content: space-between; margin-top: .5rem; padding: .75rem 1.2rem; color: #fff; background: linear-gradient(100deg, var(--navy-800), var(--blue-600)); border: 0; border-radius: .9rem; box-shadow: 0 12px 24px rgba(13, 45, 95, .2); }
.btn-action.btn-otp-request { display: inline-flex; width: auto; min-width: 15rem; min-height: 3rem; gap: 1rem; padding: .55rem .85rem; font-size: .84rem; }
.btn-otp-request i { display: grid; width: 1.7rem; height: 1.7rem; place-items: center; background: rgba(255, 255, 255, .13); border-radius: .55rem; }
.identifier-auto-status,
.otp-auto-status { display: flex; min-height: 2rem; align-items: center; justify-content: center; gap: .55rem; margin-top: .35rem; color: #547294; font-size: .7rem; opacity: 0; visibility: hidden; transform: translateY(.35rem); transition: opacity .25s ease, visibility .25s ease, transform .25s ease; }
.identifier-auto-status i,
.otp-auto-status i { width: 1rem; height: 1rem; border: 2px solid rgba(39, 105, 199, .18); border-top-color: #2d73d5; border-radius: 50%; animation: identifier-status-spin .7s linear infinite; }
.action-form.is-identifier-submitting .identifier-auto-status,
.action-form.is-otp-submitting .otp-auto-status { opacity: 1; visibility: visible; transform: none; }
@keyframes identifier-status-spin { to { transform: rotate(360deg); } }
.btn-action:hover { transform: translateY(-2px); box-shadow: 0 16px 30px rgba(13, 45, 95, .28); }
.btn-action i { font-family: sans-serif; font-size: 1.25rem; font-style: normal; }
.btn-action.is-loading { opacity: .75; }
.btn-action.is-loading i { width: 1.15rem; height: 1.15rem; border: 2px solid rgba(255, 255, 255, .35); border-top-color: #fff; border-radius: 50%; font-size: 0; animation: spin .7s linear infinite; }
.otp-field { position: relative; margin-bottom: 1.25rem; text-align: center; }
.otp-boxes { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); direction: ltr; gap: .55rem; cursor: text; }
.otp-boxes > span { display: grid; min-width: 0; height: 3.8rem; place-items: center; color: var(--navy-950); background: linear-gradient(145deg, #fff, var(--blue-50)); border: 1px solid #c3d0e5; border-radius: .82rem; box-shadow: inset 0 1px 0 #fff, 0 7px 16px rgba(20, 61, 121, .06); font-family: "DadeNegarTitle", Tahoma, sans-serif; font-size: 1.7rem; transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease, background .2s ease; }
.otp-boxes > span.is-filled { color: #fff; background: linear-gradient(145deg, var(--navy-700), var(--blue-600)); border-color: #4f8be8; box-shadow: 0 9px 19px rgba(27, 79, 156, .2), inset 0 1px 0 rgba(255, 255, 255, .18); transform: translateY(-2px); }
.otp-field:focus-within .otp-boxes > span { border-color: #6f9fe8; box-shadow: 0 0 0 .16rem rgba(40, 100, 220, .08); }
.otp-field:focus-within .otp-boxes > span:not(.is-filled):first-of-type,
.otp-field:not(.is-complete):focus-within .otp-boxes > span.is-filled + span:not(.is-filled) { border-color: var(--blue-600); box-shadow: 0 0 0 .22rem rgba(40, 100, 220, .13); transform: translateY(-2px); }
.otp-code-input { position: absolute; z-index: 2; inset: 0 0 auto; width: 100%; height: 3.8rem; opacity: .01; border: 0; outline: 0; direction: ltr; caret-color: transparent; cursor: text; }
.floating-field input.national-identifier-input { padding-top: 1.2rem; padding-bottom: .25rem; font-family: "DadeNegarTitle", Tahoma, sans-serif; font-weight: 700; line-height: 1.45; }
.otp-field > small { display: block; margin-top: .5rem; color: var(--muted); font-size: .78rem; }
.otp-countdown { position: relative; isolation: isolate; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .85rem; margin: .15rem 0 1rem; padding: .65rem .8rem; overflow: hidden; color: #244b80; background: linear-gradient(135deg, rgba(237, 245, 255, .98), rgba(250, 252, 255, .96)); border: 1px solid rgba(93, 145, 222, .25); border-radius: 1rem; box-shadow: 0 10px 24px rgba(17, 57, 116, .09), inset 0 1px 0 #fff; transition: color .35s ease, background .35s ease, border-color .35s ease, transform .35s ease, box-shadow .35s ease; }
.otp-countdown::before { content: ""; position: absolute; width: 7rem; height: 7rem; inset: -4.5rem auto auto -2rem; pointer-events: none; background: radial-gradient(circle, rgba(66, 139, 238, .2), transparent 68%); border-radius: 50%; transition: background .35s ease; }
.otp-countdown::after { content: ""; position: absolute; z-index: -1; width: 32%; height: 180%; inset: -40% auto auto -42%; pointer-events: none; background: linear-gradient(90deg, transparent, rgba(255,255,255,.72), transparent); transform: rotate(18deg); animation: otp-countdown-sheen 4.8s ease-in-out infinite; }
.otp-countdown-dial { position: relative; z-index: 1; width: 4rem; height: 4rem; flex: 0 0 auto; border-radius: 50%; background: repeating-conic-gradient(from -2deg, rgba(42, 105, 205, .25) 0 1.2deg, transparent 1.2deg 12deg); box-shadow: 0 0 0 .2rem rgba(255,255,255,.8), 0 .45rem 1rem rgba(25, 74, 145, .14); }
.otp-countdown-dial::after { content: ""; position: absolute; z-index: -1; inset: .48rem; background: radial-gradient(circle at 35% 28%, #fff, #edf5ff 72%); border-radius: 50%; box-shadow: inset 0 0 .8rem rgba(34, 93, 178, .1); }
.otp-countdown-dial svg { width: 100%; height: 100%; overflow: visible; transform: rotate(-90deg); }
.otp-countdown-dial circle { fill: none; stroke-width: 5; }
.otp-countdown-track { stroke: rgba(35, 82, 146, .12); }
.otp-countdown-progress { stroke: #2c6ddd; stroke-linecap: round; transition: stroke-dashoffset .28s linear, stroke .35s ease; filter: drop-shadow(0 0 3px rgba(44, 109, 221, .35)); }
.otp-countdown-dial strong { position: absolute; z-index: 2; inset: 0; display: grid; place-items: center; direction: ltr; color: #123d78; font-family: "DadeNegarTitle", Tahoma, sans-serif; font-size: .86rem; letter-spacing: .02em; text-shadow: 0 1px 0 #fff; }
.otp-countdown-orbit { position: absolute; z-index: 3; inset: -.13rem; pointer-events: none; border-radius: 50%; animation: otp-countdown-orbit 3.5s linear infinite; }
.otp-countdown-orbit::after { content: ""; position: absolute; width: .38rem; height: .38rem; inset: .25rem auto auto .58rem; background: #41bfe9; border: 2px solid #fff; border-radius: 50%; box-shadow: 0 0 .65rem #39aee2; }
.otp-countdown-copy { position: relative; z-index: 1; display: grid; min-width: 0; gap: .12rem; text-align: right; }
.otp-countdown-copy span { color: #173f76; font-family: "DadeNegarTitle", "DadeNegarText", sans-serif; font-size: .82rem; }
.otp-countdown-copy small { overflow: hidden; color: #7086a5; font-size: .66rem; text-overflow: ellipsis; white-space: nowrap; }
.otp-countdown-pulse { position: relative; width: .58rem; height: .58rem; background: #36b3e6; border-radius: 50%; box-shadow: 0 0 0 .28rem rgba(54, 179, 230, .12), 0 0 .9rem rgba(54, 179, 230, .52); animation: otp-countdown-pulse 1.7s ease-in-out infinite; }
.otp-countdown.is-ending { color: #9a5a0b; background: linear-gradient(135deg, #fff8e9, #fffdf8); border-color: rgba(232, 161, 54, .42); box-shadow: 0 10px 24px rgba(144, 86, 12, .1), inset 0 1px 0 #fff; }
.otp-countdown.is-ending .otp-countdown-progress { stroke: #efa62f; filter: drop-shadow(0 0 4px rgba(239, 166, 47, .4)); }
.otp-countdown.is-ending .otp-countdown-dial strong, .otp-countdown.is-ending .otp-countdown-copy span { color: #8b540d; }
.otp-countdown.is-ending .otp-countdown-pulse { background: #efa62f; box-shadow: 0 0 0 .28rem rgba(239, 166, 47, .13), 0 0 .9rem rgba(239, 166, 47, .55); }
.otp-countdown.is-expired { color: #9b2942; background: linear-gradient(135deg, #fff0f3, #fff9fa); border-color: rgba(218, 67, 98, .38); transform: scale(.985); }
.otp-countdown.is-expired .otp-countdown-progress { stroke: #d94262; }
.otp-countdown.is-expired .otp-countdown-dial strong, .otp-countdown.is-expired .otp-countdown-copy span { color: #982943; }
.otp-countdown.is-expired .otp-countdown-pulse { background: #d94262; animation: none; }
.login-secondary-actions { display: flex; justify-content: space-between; margin-top: 1.2rem; font-size: .82rem; }
.login-secondary-actions form { display: inline; }
.login-secondary-actions button, .login-secondary-actions a { padding: 0; color: var(--blue-600); background: transparent; border: 0; text-decoration: none; }
.reveal-field { animation: reveal-field .35s ease both; }
.stage-enter { animation: stage-enter .4s ease both; }
.login-card-modern.stage-leaving > * { pointer-events: none; animation: login-stage-out .22s ease both; }

@keyframes rise-in { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@keyframes reveal-field { from { opacity: 0; max-height: 0; transform: translateY(-8px); } to { opacity: 1; max-height: 6rem; transform: none; } }
@keyframes stage-enter { from { opacity: 0; transform: translateX(12px); } to { opacity: 1; transform: none; } }
@keyframes login-stage-out { to { opacity: 0; transform: translateX(-22px) scale(.97); filter: blur(6px); } }
@keyframes spin { to { transform: rotate(360deg); } }
@keyframes otp-countdown-pulse { 50% { opacity: .45; transform: scale(.72); box-shadow: 0 0 0 .5rem rgba(54, 179, 230, .04), 0 0 .45rem rgba(54, 179, 230, .3); } }
@keyframes otp-countdown-orbit { to { transform: rotate(360deg); } }
@keyframes otp-countdown-sheen { 0%, 64% { transform: translateX(0) rotate(18deg); opacity: 0; } 72% { opacity: .65; } 100% { transform: translateX(470%) rotate(18deg); opacity: 0; } }
@keyframes ambient-orbit { to { transform: rotate(360deg) scale(1.08); } }
@keyframes account-menu-in { from { opacity: 0; translate: 0 -12px; scale: .94; filter: blur(5px); } to { opacity: 1; translate: 0 0; scale: 1; filter: none; } }
@keyframes account-menu-glow { to { transform: translate(1.2rem, 1rem) scale(1.18); opacity: .72; } }
@keyframes payment-history-reveal { from { opacity: 0; transform: perspective(900px) translate3d(-3rem, 2rem, 0) rotateY(-8deg) scale(.9); filter: blur(8px); } to { opacity: 1; transform: none; filter: none; } }
@keyframes payment-modal-orbit { to { transform: translate(2rem, 1.2rem) scale(1.2); opacity: .65; } }
@keyframes user-login-history-row-in { from { opacity: 0; transform: translateY(.55rem); } to { opacity: 1; transform: none; } }

body.page-welcome { display: grid; height: 100dvh; min-height: 0; overflow: hidden; grid-template-rows: auto minmax(0, 1fr) auto; }
body.page-welcome > .app-shell { width: 100%; min-height: 0; padding-top: clamp(.75rem, 1.8vh, 1.35rem); padding-bottom: clamp(.75rem, 1.8vh, 1.35rem); }
body.page-welcome > .app-shell > main { height: 100%; min-height: 0; }
body.page-welcome .app-footer { padding: .55rem 0 .65rem; }
.welcome-experience { position: relative; isolation: isolate; display: grid; height: 100%; min-height: 26rem; overflow: hidden; place-items: center; color: #fff; background: radial-gradient(circle at 18% 14%, rgba(59, 124, 231, .28), transparent 34%), radial-gradient(circle at 82% 78%, rgba(45, 196, 236, .13), transparent 31%), linear-gradient(145deg, rgba(4, 18, 43, .99), rgba(12, 48, 99, .98)); border: 1px solid rgba(136, 185, 255, .26); border-radius: 2rem; box-shadow: 0 32px 90px rgba(0, 7, 27, .38), inset 0 1px 0 rgba(255, 255, 255, .1); }
.welcome-experience::before { content: ""; position: absolute; z-index: -1; width: min(40rem, 75vw); aspect-ratio: 1; background: conic-gradient(from 20deg, transparent, rgba(73, 139, 241, .17), transparent 38%, rgba(74, 214, 243, .1), transparent 72%); border-radius: 50%; animation: welcome-halo 10s linear infinite; filter: blur(2px); }
.welcome-experience::after { content: ""; position: absolute; z-index: -1; width: 19rem; height: 19rem; right: -7rem; bottom: -8rem; background: rgba(46, 103, 220, .28); border-radius: 4rem; transform: rotate(24deg); filter: blur(6px); }
.welcome-canvas { position: absolute; z-index: -1; inset: 0; width: 100%; height: 100%; pointer-events: none; mix-blend-mode: screen; }
.welcome-content { position: relative; z-index: 2; display: grid; width: min(48rem, calc(100% - 3rem)); justify-items: center; padding: 2rem; text-align: center; animation: welcome-content-in .75s cubic-bezier(.16, 1, .3, 1) both; }
.welcome-salutation { display: block; margin-bottom: .55rem; color: #d8e9ff; font-family: "DadeNegarSignature", cursive; font-size: clamp(2rem, 3vw, 2.65rem); line-height: 1.3; text-align: center; text-shadow: 0 9px 24px rgba(0, 7, 28, .42); transform: translateY(-1.4rem); }
.welcome-content .welcome-customer-name { display: grid; min-width: 19rem; min-height: 5.5rem; margin: 0 0 .15rem; padding: .55rem 2rem; place-items: center; color: #fff; background: linear-gradient(145deg, rgba(255, 255, 255, .12), rgba(91, 151, 239, .07)); border: 1px solid rgba(177, 211, 255, .24); border-radius: 1.65rem; box-shadow: 0 20px 48px rgba(0, 8, 30, .3), 0 0 0 .5rem rgba(124, 177, 255, .045), inset 0 1px 0 rgba(255, 255, 255, .13); backdrop-filter: blur(12px); font-family: "DadeNegarTitle", Tahoma, sans-serif; font-size: clamp(1.75rem, 3.3vw, 2.75rem); line-height: 1.5; text-align: center; text-shadow: 0 12px 30px rgba(0, 7, 28, .38); animation: welcome-mark-float 2.2s ease-in-out infinite alternate; }
.welcome-content .welcome-message { margin: .2rem 0 1.65rem; color: rgba(233, 242, 255, .88); font-family: "DadeNegarText", Tahoma, sans-serif; font-size: clamp(1.05rem, 2vw, 1.4rem); line-height: 2; text-align: center; }
.welcome-loader { position: relative; display: block; width: min(19rem, 70vw); height: .32rem; overflow: hidden; background: rgba(255, 255, 255, .12); border-radius: 999px; }
.welcome-loader i { position: absolute; inset: 0 auto 0 0; width: 0; background: linear-gradient(90deg, #62d8ff, #78a7ff, #fff); border-radius: inherit; box-shadow: 0 0 1rem rgba(104, 199, 255, .8); animation: welcome-progress 3.35s cubic-bezier(.2, .8, .2, 1) forwards; }
.welcome-orbit { position: absolute; z-index: 0; border: 1px solid rgba(141, 196, 255, .13); border-radius: 50%; pointer-events: none; }
.welcome-orbit-one { width: 24rem; height: 24rem; top: -12rem; left: -7rem; box-shadow: 0 0 0 3rem rgba(255, 255, 255, .018), 0 0 0 7rem rgba(255, 255, 255, .012); }
.welcome-orbit-two { width: 12rem; height: 12rem; right: 8%; bottom: -6rem; box-shadow: 0 0 0 2.2rem rgba(74, 159, 255, .025); }
.welcome-experience.is-leaving { pointer-events: none; animation: welcome-experience-out .48s cubic-bezier(.7, 0, .84, 0) both; }
.farewell-experience { background: radial-gradient(circle at 20% 16%, rgba(52, 183, 202, .24), transparent 34%), radial-gradient(circle at 82% 78%, rgba(55, 216, 171, .12), transparent 31%), linear-gradient(145deg, rgba(4, 18, 43, .99), rgba(9, 55, 87, .98)); }
.farewell-experience::after { background: rgba(31, 170, 173, .2); }
.farewell-content { gap: .2rem; }
.farewell-security-mark { display: grid; width: 7rem; height: 7rem; margin-bottom: .75rem; place-items: center; color: #a9ffe4; background: linear-gradient(145deg, rgba(255, 255, 255, .14), rgba(57, 208, 178, .08)); border: 1px solid rgba(168, 255, 228, .32); border-radius: 2rem; box-shadow: 0 22px 55px rgba(0, 10, 32, .35), 0 0 0 .55rem rgba(103, 240, 205, .045), inset 0 1px 0 rgba(255, 255, 255, .18); backdrop-filter: blur(12px); animation: farewell-mark-in .75s cubic-bezier(.16, 1, .3, 1) both, farewell-mark-float 2.2s .75s ease-in-out infinite alternate; }
.farewell-security-mark svg { width: 4.4rem; height: 4.4rem; overflow: visible; fill: rgba(97, 231, 199, .08); stroke: currentColor; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; filter: drop-shadow(0 8px 18px rgba(64, 225, 190, .28)); }
.farewell-salutation { margin-bottom: .45rem; color: #d9fff4; font-family: "DadeNegarSignature", "DadeNegarText", Tahoma, sans-serif; font-size: clamp(1.8rem, 3vw, 2.5rem); line-height: 1.5; text-shadow: 0 9px 24px rgba(0, 7, 28, .42); }
.farewell-title { min-width: min(24rem, 100%); margin: 0 0 .15rem; padding: .55rem 2rem .7rem; color: #fff; background: linear-gradient(145deg, rgba(255, 255, 255, .12), rgba(54, 205, 175, .06)); border: 1px solid rgba(174, 255, 232, .22); border-radius: 1.5rem; box-shadow: 0 18px 42px rgba(0, 8, 30, .28), inset 0 1px 0 rgba(255, 255, 255, .13); font-family: "DadeNegarTitle", Tahoma, sans-serif; font-size: clamp(1.65rem, 3vw, 2.5rem); line-height: 1.6; }
.farewell-content .farewell-message { margin-bottom: 1rem; }
.farewell-loader i { background: linear-gradient(90deg, #5ee9c5, #62d8ff, #fff); box-shadow: 0 0 1rem rgba(94, 233, 197, .8); }
.farewell-redirect-note { margin-top: .65rem; color: rgba(218, 243, 245, .65); font-family: "DadeNegarText", Tahoma, sans-serif; font-size: .82rem; }

@keyframes welcome-content-in { from { opacity: 0; transform: translateY(2rem) scale(.92); filter: blur(10px); } to { opacity: 1; transform: none; filter: none; } }
@keyframes welcome-experience-out { to { opacity: 0; transform: translateX(-4rem) scale(.96); filter: blur(10px); } }
@keyframes welcome-progress { to { width: 100%; } }
@keyframes welcome-mark-float { to { transform: translateY(-.45rem) rotate(-1.5deg); } }
@keyframes welcome-halo { to { transform: rotate(360deg); } }
@keyframes farewell-mark-in { from { opacity: 0; transform: translateY(1.4rem) scale(.72) rotate(-8deg); filter: blur(8px); } to { opacity: 1; transform: none; filter: none; } }
@keyframes farewell-mark-float { to { transform: translateY(-.4rem); } }

@media (max-width: 1199.98px) {
  .navigation-hub-label { display: none; }
  .navigation-hub { margin-inline: .35rem; }
  .app-navigation .nav-link { padding-inline: .4rem !important; font-size: .78rem; }
  .account-menu-toggle { min-width: auto; }
  .account-menu-toggle > span { display: none; }
}

@media (min-width: 992px) and (max-height: 820px) {
  html { font-size: 15px; }
  body > header .container, body > .app-shell, body > .app-footer .container { width: calc(100% - 2rem); max-width: 100%; }
  .app-navbar { min-height: 4.25rem; padding-block: .4rem; }
  .brand-logo { width: 7.35rem; }
  .app-shell { padding-top: 1rem; padding-bottom: 1.75rem; }
  .app-footer { padding: .65rem 0 .85rem; }
  .page-heading { gap: 1.25rem; margin-bottom: 1rem; padding: 1rem 1.2rem; border-radius: 1rem; }
  .page-heading h1 { margin: .35rem 0 .1rem; font-size: 1.9rem; }
  .hero-card { gap: 1.25rem; padding: 1.65rem 2rem; border-radius: 1.4rem; }
  .hero-card h1 { margin-block: .5rem; font-size: 2.6rem; }
  .module-card, .payment-card { padding: 1.1rem; }
  .login-experience { min-height: calc(100vh - 8.5rem); border-radius: 1.4rem; }
  .login-intro { padding: 2rem 3rem; }
  .login-brand-logo { width: 3.5rem; margin-bottom: .8rem; }
  .login-intro .login-intro-title { margin-block: .35rem .75rem; font-size: 1.55rem; }
  .login-intro > p { margin-bottom: .5rem; font-size: .95rem; line-height: 1.7; }
  .login-feature-list { gap: .4rem; margin-top: .55rem; }
  .shekaste-signature { margin-top: .75rem; font-size: 1.8rem; }
  .login-panel { padding: 1.5rem 2.25rem; }
  .login-steps { margin-bottom: 1.6rem; }
  .form-stage h2 { font-size: 1.7rem; }
  .form-stage > p { margin-bottom: 1rem; }
  .floating-field { margin-bottom: .9rem; }
  .floating-field input { height: 3.3rem; }
  .btn-action { min-height: 3.25rem; }
  .otp-boxes > span, .otp-code-input { height: 3.35rem; }
  .otp-boxes > span { font-size: 1.5rem; }
}

@media (max-width: 991.98px) {
  .floating-field input.national-identifier-input { padding-top: 1.05rem; padding-bottom: .2rem; line-height: 1.55; }
  .navbar-collapse { padding-top: 1rem; }
  .navigation-hub { display: grid; margin: 0; padding: .75rem; }
  .navigation-hub-label { display: inline-flex; width: max-content; }
  .app-navigation { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: .3rem 0 0; background: transparent; border-radius: 1rem; }
  .app-navigation .nav-link { padding: .65rem !important; }
  .navbar-account { justify-content: space-between; padding: .75rem .5rem 0; }
  .navbar-account { margin-inline-start: 0; }
  .account-menu-toggle { width: 100%; }
  .account-menu-toggle > span { display: grid; }
  .account-dropdown, .account-dropdown .dropdown-menu { width: 100%; }
  .login-experience { grid-template-columns: 1fr; }
  .login-intro { min-height: 22rem; padding: 2.5rem; }
  .login-intro h1 { font-size: 2.6rem; }
  .login-intro .login-feature-list, .login-intro .shekaste-signature { display: none; }
}

@media (max-width: 767.98px) {
  html { font-size: 16px; }
  .floating-field input.national-identifier-input {
    height: 4.15rem;
    padding: .78rem 1rem .08rem;
    font-size: 1.65rem;
    line-height: 1.45;
    -webkit-appearance: none;
    appearance: none;
  }
  .app-shell { padding-top: 1.25rem; }
  .hero-card { grid-template-columns: 1fr; border-radius: 1.35rem; }
  .hero-symbol { display: none; }
  .hero-login-actions { align-items: stretch; flex-direction: column; }
  .hero-login-button { width: 100%; }
  .page-heading { align-items: stretch; flex-direction: column; gap: 1rem; }
  .page-heading .debt-card { width: 100%; }
  .rating-form { grid-template-columns: 1fr; }
  .required-rating-summary, .required-rating-form { grid-template-columns: 1fr; }
  .required-rating-form .btn { width: 100%; }
  .feedback-summary { width: 100%; }
  .settings-security-badge { width: 100%; }
  .settings-grid { grid-template-columns: 1fr; }
  .settings-field-wide { grid-column: auto; }
  .feedback-summary > span { flex: 1; min-width: 0; }
  .feedback-filter-card { display: grid; grid-template-columns: 1fr 1fr; margin-top: 0; }
  .feedback-filter-field { min-width: 0; }
  .feedback-legend { align-items: start; flex-direction: column; }
  .login-audit-note { align-items: start; flex-direction: column; }
  .user-login-history-modal .modal-dialog { width: calc(100% - 1rem); margin-inline: auto; }
  .user-login-history-modal .modal-header { padding: 1rem; }
  .user-login-history-modal .modal-body { padding: .8rem; }
  .user-login-history-summary { align-items: flex-start; flex-direction: column; }
  .ticket-list { grid-template-columns: 1fr; }
  .ticket-card dl { grid-template-columns: 1fr; gap: .2rem; }
  .ticket-card-head { align-items: stretch; flex-direction: column; }
  .history-status-filter { grid-template-columns: 1fr; }
  .history-status-filter > a { padding-block: .6rem; }
  .history-ticket-head { align-items: flex-start; flex-direction: column; gap: .55rem; }
  .history-rating-summary { align-self: stretch; justify-content: center; }
  .history-ticket-content { grid-template-columns: 1fr; }
  .history-ticket-content p { min-height: auto; }
  .history-ticket-meta { grid-template-columns: 1fr 1fr; gap: .55rem 0; }
  .history-ticket-meta > span:nth-child(odd) { border-inline-start: 0; }
  .app-footer .container { align-items: center; flex-direction: column; text-align: center; }
  .footer-company, .footer-meta { flex: 0 0 auto; }
  .footer-meta { justify-items: center; }
  .login-experience { min-height: auto; border-radius: 1.25rem; }
  .login-intro { min-height: 16rem; padding: 1.7rem; }
  .login-brand-logo { width: 3.65rem; margin-bottom: 1rem; }
  .login-intro h1 { margin-bottom: .6rem; font-size: 2rem; }
  .login-intro > p { margin: 0; font-size: .95rem; line-height: 1.8; }
  .login-panel { padding: 1.7rem 1.25rem 2rem; }
  .login-steps { margin-bottom: 2rem; }
  .otp-boxes { gap: .35rem; }
  .otp-boxes > span, .otp-code-input { height: 3.35rem; }
  .otp-boxes > span { border-radius: .65rem; font-size: 1.45rem; }
  .otp-countdown { gap: .65rem; padding: .58rem .65rem; }
  .otp-countdown-dial { width: 3.65rem; height: 3.65rem; }
  .otp-countdown-copy span { font-size: .77rem; }
  .otp-countdown-copy small { font-size: .61rem; }
  .ledger-table-wrap { border-radius: 1rem; }
  .ledger-table { min-width: 78rem; }
  .report-viewer-shell { min-height: 34rem; }
  .report-viewer-shell > div { min-width: 52rem !important; }
  .feedback-review-head { grid-template-columns: 1fr auto; }
  .feedback-review-identity { grid-column: 1; }
  .feedback-review-meta { grid-column: 1 / -1; grid-row: 2; justify-content: flex-start; }
  .feedback-score { grid-column: 2; grid-row: 1; }
  .payment-card-heading { align-items: stretch; flex-direction: column; }
  .payment-card-actions { display: grid; grid-template-columns: 1fr; }
  .payment-history-button, .payment-ledger-button { width: 100%; }
  .account-mini-ledger { min-width: 44rem; }
  .file-upload-dropzone { grid-template-columns: auto minmax(0, 1fr); }
  .file-upload-button { display: none; }
  .welcome-experience { min-height: 22rem; border-radius: 1.35rem; }
  .welcome-salutation { font-size: 2rem; transform: translateY(-1rem); }
  .welcome-content .welcome-customer-name { min-width: min(18rem, 82vw); min-height: 4.7rem; padding-inline: 1.25rem; border-radius: 1.4rem; font-size: 1.8rem; }
  .welcome-content { padding: 1.25rem; }
  .welcome-content .welcome-message { font-size: 1rem; }
}

@media (max-width: 575.98px) {
  .settings-toolbar { position: static; align-items: stretch; flex-direction: column; }
  .settings-save-button { width: 100%; }
  .settings-section > summary, .settings-grid { padding-inline: .65rem; }
  .settings-category-nav { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: thin; }
  .settings-category-nav > span, .settings-category-nav button { flex: 0 0 auto; }
  .customer-kind-switch { gap: .35rem; }
  .customer-kind-switch > label { gap: .3rem; padding-inline: .35rem; }
  .customer-kind-switch > label > i { width: 1.45rem; height: 1.45rem; }
  .customer-kind-switch strong { font-size: .7rem; }
  .customer-kind-switch small { font-size: .52rem; }
  .identifier-boxes { gap: .16rem; }
  .identifier-boxes > span { height: 3.25rem; padding-top: .26rem; border-radius: .48rem; font-size: 1.22rem; line-height: 1.5; }
  .identifier-field .national-identifier-input { height: 3.35rem; }
  .settings-date-limit { grid-template-columns: 1fr; }
  .settings-field-save { width: 100%; justify-content: center; }
  .rating-management-note { grid-template-columns: 1fr; text-align: center; }
  .rating-management-note > span { margin-inline: auto; }
  body.page-welcome > .app-shell { padding-inline: .75rem; }
  .welcome-experience { display: flex; align-items: center; justify-content: center; }
  .welcome-content { width: 100%; max-width: calc(100% - 1rem); margin-inline: auto; padding: 1rem .5rem; place-self: center; place-content: center; justify-items: center; }
  .welcome-content > * { justify-self: center; }
  .welcome-salutation { width: 100%; margin-inline: auto; text-align: center; }
  .welcome-content .welcome-customer-name { width: min(22rem, 100%); min-width: 0; max-width: 100%; margin-inline: auto; padding-inline: 1rem; box-sizing: border-box; }
  .welcome-content .welcome-message { width: 100%; margin-inline: auto; text-align: center; }
  .welcome-loader { margin-inline: auto; }
  .feedback-filter-card { grid-template-columns: 1fr; }
  .login-audit-filter .btn { width: 100%; }
  .feedback-review-head { gap: .5rem; padding: .6rem; }
  .feedback-review-meta { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
  .feedback-meta-chip, .feedback-date-chip { min-width: 0; justify-content: space-between; }
  .feedback-wide-row { grid-template-columns: 1fr; gap: .16rem; padding: .45rem .65rem; }
  .feedback-wide-row > strong { white-space: normal; }
  .feedback-wide-row > p { font-size: .7rem; }
}

@media (prefers-reduced-motion: reduce) {
  .welcome-experience::before, .welcome-customer-name, .welcome-loader i { animation-duration: .01ms; animation-iteration-count: 1; }
  .welcome-content { animation: none; }
}

.pwa-install-button { position: fixed; z-index: 1040; left: max(1rem, env(safe-area-inset-left)); bottom: max(1rem, env(safe-area-inset-bottom)); display: inline-flex; align-items: center; gap: .7rem; padding: .65rem .85rem; color: #fff; background: linear-gradient(135deg, rgba(14, 52, 108, .98), rgba(39, 102, 214, .98)); border: 1px solid rgba(174, 211, 255, .42); border-radius: 1rem; box-shadow: 0 18px 42px rgba(0, 10, 36, .38), inset 0 1px 0 rgba(255, 255, 255, .17); backdrop-filter: blur(12px); transition: transform .22s ease, box-shadow .22s ease, opacity .22s ease; }
.pwa-install-button[hidden] { display: none !important; }
.pwa-install-button:hover { color: #fff; transform: translateY(-3px); box-shadow: 0 22px 48px rgba(0, 10, 36, .46), 0 0 0 .2rem rgba(81, 151, 255, .12); }
.pwa-install-button > span:first-child { display: grid; width: 2rem; height: 2rem; place-items: center; background: rgba(255, 255, 255, .14); border-radius: .7rem; font-family: Arial, sans-serif; font-size: 1.15rem; }
.pwa-install-button > span:last-child { display: grid; gap: .05rem; text-align: right; }
.pwa-install-button strong { font-family: "DadeNegarTitle", "DadeNegarText", sans-serif; font-size: .84rem; }
.pwa-install-button small { color: rgba(232, 242, 255, .78); font-size: .68rem; }

@media (display-mode: standalone) {
  .pwa-install-button { display: none !important; }
  body { overscroll-behavior-y: none; }
}

@media (max-width: 575.98px) {
  .pwa-install-button { left: max(.7rem, env(safe-area-inset-left)); bottom: max(.7rem, env(safe-area-inset-bottom)); padding: .55rem .65rem; }
  .pwa-install-button small { display: none; }
}
