/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/.pnpm/next@15.5.12_@playwright+test@1.58.2_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[2]!../../node_modules/.pnpm/next@15.5.12_@playwright+test@1.58.2_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[3]!./src/components/auth/ConnectSakartveloButton.module.css ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.ConnectSakartveloButton_wrap__6_eGw {
  width: 100%;
}

.ConnectSakartveloButton_divider__M0oT9 {
  display: flex;
  align-items: center;
  gap: var(--space-md);
  margin: var(--space-lg) 0;
  color: #94a3b8;
  font-size: 0.8125rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.ConnectSakartveloButton_divider__M0oT9::before,
.ConnectSakartveloButton_divider__M0oT9::after {
  content: '';
  flex: 1 1;
  height: 1px;
  background: #e2e8f0;
}

.ConnectSakartveloButton_button__VIC0L {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-sm);
  width: 100%;
  padding: var(--space-md);
  background: white;
  color: #1e293b;
  border: 1px solid #cbd5e1;
  border-radius: var(--radius-md);
  font-size: 1rem;
  font-weight: 600;
  cursor: pointer;
  transition:
    background 0.2s,
    border-color 0.2s,
    opacity 0.2s;
}

.ConnectSakartveloButton_button__VIC0L:hover:not(:disabled) {
  background: #f8fafc;
  border-color: #94a3b8;
}

.ConnectSakartveloButton_button__VIC0L:disabled {
  opacity: 0.7;
  cursor: not-allowed;
}

.ConnectSakartveloButton_flag__o0jpi {
  font-size: 1.25rem;
  line-height: 1;
}

.ConnectSakartveloButton_error__8IyMo {
  margin-top: var(--space-sm);
  color: #b91c1c;
  font-size: 0.875rem;
  text-align: center;
}

@media (prefers-color-scheme: dark) {
  .ConnectSakartveloButton_divider__M0oT9 {
    color: #64748b;
  }

  .ConnectSakartveloButton_divider__M0oT9::before,
  .ConnectSakartveloButton_divider__M0oT9::after {
    background: #334155;
  }

  .ConnectSakartveloButton_button__VIC0L {
    background: #0f172a;
    color: #f1f5f9;
    border-color: #334155;
  }

  .ConnectSakartveloButton_button__VIC0L:hover:not(:disabled) {
    background: #1e293b;
    border-color: #475569;
  }

  .ConnectSakartveloButton_error__8IyMo {
    color: #fca5a5;
  }
}

/* An attempt that went to Sakartvelo and never returned. Informational rather
   than an error: nothing broke on our side, and nothing was authorised. */
.ConnectSakartveloButton_notice__vlqqp {
  margin-top: var(--space-sm);
  padding: var(--space-sm) var(--space-md);
  border: 1px solid #fde68a;
  border-radius: var(--radius-md, 8px);
  background: #fffbeb;
  color: #92400e;
  font-size: 0.8125rem;
  line-height: 1.45;
}

@media (prefers-color-scheme: dark) {
  .ConnectSakartveloButton_notice__vlqqp {
    border-color: #78350f;
    background: #1c1917;
    color: #fcd34d;
  }
}

/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/.pnpm/next@15.5.12_@playwright+test@1.58.2_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[2]!../../node_modules/.pnpm/next@15.5.12_@playwright+test@1.58.2_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[3]!./src/components/kyc/KycStatusWidget.module.css ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * KYC Status Widget Styles
 */

.KycStatusWidget_widget__SsvAG {
  background: white;
  border-radius: 0.75rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
  overflow: hidden;
}

@media (prefers-color-scheme: dark) {
  .KycStatusWidget_widget__SsvAG {
    background: #1e293b;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
  }
}

.KycStatusWidget_widgetLink__ORzFa {
  text-decoration: none;
  display: block;
}

/* Loading state */
.KycStatusWidget_loading__CmKy8 {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 1.5rem;
  color: #6b7280;
}

.KycStatusWidget_spinner__A4xC1 {
  width: 1rem;
  height: 1rem;
  border: 2px solid #e5e7eb;
  border-top-color: #0f766e;
  border-radius: 50%;
  animation: KycStatusWidget_spin__B1QCJ 1s linear infinite;
}

@keyframes KycStatusWidget_spin__B1QCJ {
  to {
    transform: rotate(360deg);
  }
}

/* Error state */
.KycStatusWidget_error__MZgH9 {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 1rem;
  background: #fef2f2;
  color: #991b1b;
}

.KycStatusWidget_errorIcon__dxqaq {
  font-size: 1rem;
}

@media (prefers-color-scheme: dark) {
  .KycStatusWidget_error__MZgH9 {
    background: #450a0a;
    color: #fecaca;
  }
}

/* Compact view */
.KycStatusWidget_compact__OL1OA {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.75rem 1rem;
  transition:
    transform 0.2s,
    box-shadow 0.2s;
}

.KycStatusWidget_compact__OL1OA:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.KycStatusWidget_statusIcon__VQmVT {
  font-size: 1.25rem;
  line-height: 1;
}

.KycStatusWidget_statusLabel__6xtTv {
  font-weight: 600;
  font-size: 0.875rem;
}

/* Full widget header */
.KycStatusWidget_header__RQ2JQ {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 1.25rem;
  border-bottom: 1px solid #e5e7eb;
}

@media (prefers-color-scheme: dark) {
  .KycStatusWidget_header__RQ2JQ {
    border-bottom-color: #374151;
  }
}

.KycStatusWidget_header__RQ2JQ h3 {
  font-size: 1rem;
  font-weight: 600;
  color: #1f2937;
  margin: 0;
}

@media (prefers-color-scheme: dark) {
  .KycStatusWidget_header__RQ2JQ h3 {
    color: #f9fafb;
  }
}

.KycStatusWidget_badge__QwR7_ {
  padding: 0.25rem 0.75rem;
  border-radius: 9999px;
  font-size: 0.75rem;
  font-weight: 600;
}

/* Content area */
.KycStatusWidget_content__JccAt {
  padding: 1.25rem;
}

.KycStatusWidget_statusDisplay__KYqY_ {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 1.5rem;
  border-radius: 0.5rem;
  text-align: center;
  margin-bottom: 1.25rem;
}

.KycStatusWidget_bigIcon__IqIvk {
  font-size: 2.5rem;
  line-height: 1;
  margin-bottom: 0.75rem;
}

.KycStatusWidget_message__HKOeQ {
  color: #4b5563;
  margin: 0;
  font-size: 0.875rem;
}

@media (prefers-color-scheme: dark) {
  .KycStatusWidget_message__HKOeQ {
    color: #d1d5db;
  }
}

/* Progress section */
.KycStatusWidget_progress___aU4D {
  margin-top: 1rem;
}

.KycStatusWidget_progressHeader__UYKFa {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 0.5rem;
  font-size: 0.75rem;
  color: #6b7280;
}

.KycStatusWidget_progressCount__qppTL {
  font-weight: 600;
}

.KycStatusWidget_progressBar__rIhnQ {
  height: 0.5rem;
  background: #e5e7eb;
  border-radius: 9999px;
  overflow: hidden;
  margin-bottom: 1rem;
}

@media (prefers-color-scheme: dark) {
  .KycStatusWidget_progressBar__rIhnQ {
    background: #374151;
  }
}

.KycStatusWidget_progressFill__OCC3n {
  height: 100%;
  border-radius: 9999px;
  transition: width 0.3s ease;
}

.KycStatusWidget_steps___yoqI {
  display: flex;
  justify-content: space-between;
  list-style: none;
  margin: 0;
  padding: 0;
}

.KycStatusWidget_steps___yoqI li {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
  font-size: 0.75rem;
  color: #9ca3af;
}

.KycStatusWidget_steps___yoqI li.KycStatusWidget_completed__hkSzM {
  color: #059669;
}

.KycStatusWidget_stepIcon__gPKMf {
  width: 1.5rem;
  height: 1.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f3f4f6;
  border-radius: 50%;
  font-size: 0.75rem;
}

.KycStatusWidget_steps___yoqI li.KycStatusWidget_completed__hkSzM .KycStatusWidget_stepIcon__gPKMf {
  background: #d1fae5;
  color: #059669;
}

@media (prefers-color-scheme: dark) {
  .KycStatusWidget_stepIcon__gPKMf {
    background: #374151;
  }

  .KycStatusWidget_steps___yoqI li.KycStatusWidget_completed__hkSzM .KycStatusWidget_stepIcon__gPKMf {
    background: #064e3b;
  }
}

/* Footer with CTA */
.KycStatusWidget_footer__DcDUQ {
  padding: 1rem 1.25rem;
  border-top: 1px solid #e5e7eb;
}

@media (prefers-color-scheme: dark) {
  .KycStatusWidget_footer__DcDUQ {
    border-top-color: #374151;
  }
}

.KycStatusWidget_primaryButton__JTkQr {
  display: block;
  width: 100%;
  padding: 0.75rem 1rem;
  background: linear-gradient(135deg, #0f766e 0%, #0d9488 100%);
  color: white;
  text-align: center;
  text-decoration: none;
  font-weight: 600;
  font-size: 0.875rem;
  border-radius: 0.5rem;
  transition: all 0.2s;
}

.KycStatusWidget_primaryButton__JTkQr:hover {
  background: linear-gradient(135deg, #0d9488 0%, #14b8a6 100%);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(15, 118, 110, 0.3);
}

/* Responsive */
@media (max-width: 480px) {
  .KycStatusWidget_header__RQ2JQ {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.5rem;
  }

  .KycStatusWidget_steps___yoqI {
    flex-wrap: wrap;
    gap: 0.5rem;
  }

  .KycStatusWidget_steps___yoqI li {
    flex: 1 1 30%;
  }
}

/* Retry for a genuine lookup failure. Matches the portal's secondary buttons
 * rather than introducing another look. */
.KycStatusWidget_retryButton__0cOCO {
  margin-left: auto;
  padding: 0.25rem 0.625rem;
  border: 1px solid currentColor;
  border-radius: var(--radius-md, 8px);
  background: transparent;
  color: inherit;
  font-size: 0.8125rem;
  font-family: inherit;
  cursor: pointer;
}

.KycStatusWidget_retryButton__0cOCO:hover {
  background: rgba(0, 0, 0, 0.04);
}

/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/.pnpm/next@15.5.12_@playwright+test@1.58.2_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[2]!../../node_modules/.pnpm/next@15.5.12_@playwright+test@1.58.2_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[3]!./src/components/kyc/IdentityVerificationCard.module.css ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.IdentityVerificationCard_wrap__WRxRw {
  max-width: 480px;
  margin: 0 auto;
}

.IdentityVerificationCard_card__t3aTn {
  background: white;
  border: 1px solid #e2e8f0;
  border-radius: var(--radius-lg, 12px);
  padding: var(--space-lg);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

.IdentityVerificationCard_card__t3aTn h2 {
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--primary);
  margin-bottom: var(--space-md);
  padding-bottom: var(--space-md);
  border-bottom: 1px solid #e2e8f0;
}

.IdentityVerificationCard_status__ahb1k {
  font-size: 1.25rem;
  font-weight: 700;
  color: #b45309;
  margin-bottom: var(--space-sm);
}

.IdentityVerificationCard_message__6Y50E {
  color: #64748b;
  font-size: 0.9375rem;
  margin-bottom: var(--space-lg);
}

.IdentityVerificationCard_cta__v6Bho {
  display: inline-block;
  padding: var(--space-sm) var(--space-lg);
  border: 1px solid var(--color-primary, #2563eb);
  border-radius: var(--radius-md, 8px);
  background: var(--color-primary, #2563eb);
  color: white;
  font-size: 0.875rem;
  font-weight: 600;
  text-decoration: none;
  transition: all 0.2s;
}

.IdentityVerificationCard_cta__v6Bho:hover {
  background: #1d4ed8;
  border-color: #1d4ed8;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

@media (prefers-color-scheme: dark) {
  .IdentityVerificationCard_card__t3aTn {
    background: #1e293b;
    border-color: #334155;
  }

  .IdentityVerificationCard_card__t3aTn h2 {
    border-bottom-color: #334155;
    color: #f1f5f9;
  }

  .IdentityVerificationCard_message__6Y50E {
    color: #94a3b8;
  }
}

/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/.pnpm/next@15.5.12_@playwright+test@1.58.2_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[2]!../../node_modules/.pnpm/next@15.5.12_@playwright+test@1.58.2_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[3]!./src/components/layout/Sidebar.module.css ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Sidebar Styles
 */

/* Mobile toggle button */
.Sidebar_mobileToggle__EvbFG {
  display: none;
  position: fixed;
  top: var(--space-md);
  left: var(--space-md);
  z-index: 1001;
  width: 44px;
  height: 44px;
  border-radius: var(--radius-md);
  background: white;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
  align-items: center;
  justify-content: center;
}

@media (max-width: 768px) {
  .Sidebar_mobileToggle__EvbFG {
    display: flex;
  }
}

@media (prefers-color-scheme: dark) {
  .Sidebar_mobileToggle__EvbFG {
    background: #1e293b;
  }
}

.Sidebar_hamburger__di6PF {
  display: flex;
  flex-direction: column;
  gap: 5px;
  width: 20px;
}

.Sidebar_hamburger__di6PF span {
  display: block;
  height: 2px;
  background: var(--primary);
  border-radius: 1px;
  transition: all 0.3s ease;
}

@media (prefers-color-scheme: dark) {
  .Sidebar_hamburger__di6PF span {
    background: #f1f5f9;
  }
}

.Sidebar_hamburger__di6PF[data-open='true'] span:nth-child(1) {
  transform: rotate(45deg) translate(5px, 5px);
}

.Sidebar_hamburger__di6PF[data-open='true'] span:nth-child(2) {
  opacity: 0;
}

.Sidebar_hamburger__di6PF[data-open='true'] span:nth-child(3) {
  transform: rotate(-45deg) translate(5px, -5px);
}

/* Overlay */
.Sidebar_overlay__IyoXb {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  z-index: 999;
}

@media (max-width: 768px) {
  .Sidebar_overlay__IyoXb {
    display: block;
  }
}

/* Sidebar */
.Sidebar_sidebar__5oZEx {
  position: fixed;
  top: 0;
  left: 0;
  height: 100vh;
  /* Mobile browsers count the address bar in 100vh, so the last rows sat
     under the chrome. dvh tracks the visible viewport; vh stays as the
     fallback for browsers without it. */
  height: 100dvh;
  width: 260px;
  background: white;
  border-right: 1px solid #e2e8f0;
  display: flex;
  flex-direction: column;
  z-index: 1000;
  transition:
    width 0.3s ease,
    transform 0.3s ease;
}

.Sidebar_sidebar__5oZEx.Sidebar_collapsed__ZEY4R {
  width: 72px;
}

@media (max-width: 768px) {
  .Sidebar_sidebar__5oZEx {
    transform: translateX(-100%);
    width: 280px;
  }

  .Sidebar_sidebar__5oZEx.Sidebar_mobileOpen__sSGIP {
    transform: translateX(0);
  }

  .Sidebar_sidebar__5oZEx.Sidebar_collapsed__ZEY4R {
    width: 280px;
  }
}

@media (prefers-color-scheme: dark) {
  .Sidebar_sidebar__5oZEx {
    background: #0f172a;
    border-color: #1e293b;
  }
}

/* Brand section */
.Sidebar_brand__oukDJ {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--space-lg);
  border-bottom: 1px solid #e2e8f0;
  min-height: 72px;
  flex-shrink: 0;
}

@media (prefers-color-scheme: dark) {
  .Sidebar_brand__oukDJ {
    border-color: #1e293b;
  }
}

.Sidebar_brandLink__pglHT {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  text-decoration: none;
}

.Sidebar_brandIcon__wQZxg {
  font-size: 1.5rem;
}

.Sidebar_brandText__enw_k {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--primary);
}

@media (prefers-color-scheme: dark) {
  .Sidebar_brandText__enw_k {
    color: #f1f5f9;
  }
}

.Sidebar_collapseToggle__Jc2_q {
  width: 28px;
  height: 28px;
  border-radius: var(--radius-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #64748b;
  transition:
    background-color 0.2s,
    color 0.2s;
}

.Sidebar_collapseToggle__Jc2_q:hover {
  background: #f1f5f9;
  color: var(--primary);
}

@media (prefers-color-scheme: dark) {
  .Sidebar_collapseToggle__Jc2_q:hover {
    background: #1e293b;
    color: #f1f5f9;
  }
}

@media (max-width: 768px) {
  .Sidebar_collapseToggle__Jc2_q {
    display: none;
  }
}

/* Navigation */
.Sidebar_nav__yigU7 {
  flex: 1 1;
  overflow-y: auto;
  padding: var(--space-md) 0;
  /* Without this the nav never scrolls. A flex item defaults to
     min-height:auto, which refuses to shrink below its content, so twelve
     nav items simply made the column taller than the sidebar and pushed the
     user section — and the Logout button with it — past the bottom of the
     screen. overflow-y:auto cannot take effect until the item is allowed to
     be shorter than what is inside it. */
  min-height: 0;
}

.Sidebar_navList__J1mmG {
  list-style: none;
  padding: 0;
  margin: 0;
}

.Sidebar_navLink__YWfYH {
  display: flex;
  align-items: center;
  gap: var(--space-md);
  padding: var(--space-md) var(--space-lg);
  color: #475569;
  text-decoration: none;
  transition:
    background-color 0.2s,
    color 0.2s;
  border-left: 3px solid transparent;
}

.Sidebar_navLink__YWfYH:hover {
  background: #f8fafc;
  color: var(--primary);
}

.Sidebar_navLink__YWfYH.Sidebar_active__6EB_0 {
  background: #eff6ff;
  color: var(--primary);
  border-left-color: var(--primary);
  font-weight: 600;
}

@media (prefers-color-scheme: dark) {
  .Sidebar_navLink__YWfYH {
    color: #94a3b8;
  }

  .Sidebar_navLink__YWfYH:hover {
    background: #1e293b;
    color: #f1f5f9;
  }

  .Sidebar_navLink__YWfYH.Sidebar_active__6EB_0 {
    background: #1e3a5f;
    color: #60a5fa;
    border-left-color: #60a5fa;
  }
}

.Sidebar_navIcon__S5125 {
  font-size: 1.25rem;
  width: 24px;
  text-align: center;
  flex-shrink: 0;
}

.Sidebar_navLabel__c33cJ {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Collapsed state */
.Sidebar_collapsed__ZEY4R .Sidebar_navLink__YWfYH {
  justify-content: center;
  padding: var(--space-md);
}

.Sidebar_collapsed__ZEY4R .Sidebar_navLabel__c33cJ {
  display: none;
}

.Sidebar_collapsed__ZEY4R .Sidebar_brand__oukDJ {
  justify-content: center;
  padding: var(--space-md);
}

.Sidebar_collapsed__ZEY4R .Sidebar_brandText__enw_k {
  display: none;
}

.Sidebar_collapsed__ZEY4R .Sidebar_collapseToggle__Jc2_q {
  display: none;
}

/* User section */
.Sidebar_userSection__vuotg {
  border-top: 1px solid #e2e8f0;
  padding: var(--space-md) var(--space-lg);
  /* Always visible: whatever space is short, the nav gives it up, not the
     signed-in identity and the way out. */
  flex-shrink: 0;
}

@media (prefers-color-scheme: dark) {
  .Sidebar_userSection__vuotg {
    border-color: #1e293b;
  }
}

.Sidebar_userInfo__7eqTY {
  display: flex;
  align-items: center;
  gap: var(--space-md);
  margin-bottom: var(--space-md);
}

.Sidebar_userAvatar__bl4Y7 {
  width: 40px;
  height: 40px;
  border-radius: var(--radius-full);
  background: #f1f5f9;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.25rem;
  flex-shrink: 0;
}

@media (prefers-color-scheme: dark) {
  .Sidebar_userAvatar__bl4Y7 {
    background: #1e293b;
  }
}

.Sidebar_userDetails__t_Av_ {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.Sidebar_userName__q0Kk9 {
  font-weight: 600;
  color: var(--primary);
  font-size: 0.875rem;
}

.Sidebar_userEmail__eaX35 {
  font-size: 0.75rem;
  color: #64748b;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

@media (prefers-color-scheme: dark) {
  .Sidebar_userName__q0Kk9 {
    color: #f1f5f9;
  }

  .Sidebar_userEmail__eaX35 {
    color: #94a3b8;
  }
}

/* globals.css strips every button of its background and border, which left
   Logout as bare red text beside an emoji — easy to read as decoration rather
   than the control it is, and easy to miss entirely. It gets the borders and
   the tinted surface the rest of the portal's buttons have, so it reads as
   something you can press. */
.Sidebar_logoutButton___lcMT {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-sm);
  width: 100%;
  padding: var(--space-sm) var(--space-md);
  border: 1px solid #fecaca;
  border-radius: var(--radius-md, 8px);
  background: #fef2f2;
  color: #dc2626;
  font-size: 0.875rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s;
}

.Sidebar_logoutButton___lcMT:hover {
  background: #dc2626;
  border-color: #dc2626;
  color: white;
}

.Sidebar_logoutButton___lcMT:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.25);
}

@media (prefers-color-scheme: dark) {
  .Sidebar_logoutButton___lcMT {
    border-color: #7f1d1d;
    background: #1c1917;
    color: #f87171;
  }

  .Sidebar_logoutButton___lcMT:hover {
    background: #b91c1c;
    border-color: #b91c1c;
    color: white;
  }
}

.Sidebar_logoutIcon__GjB1M {
  font-size: 1rem;
}

/* Collapsed user section */
.Sidebar_collapsed__ZEY4R .Sidebar_userSection__vuotg {
  padding: var(--space-md);
}

.Sidebar_collapsed__ZEY4R .Sidebar_userInfo__7eqTY {
  justify-content: center;
}

.Sidebar_collapsed__ZEY4R .Sidebar_userDetails__t_Av_ {
  display: none;
}

.Sidebar_collapsed__ZEY4R .Sidebar_logoutButton___lcMT {
  justify-content: center;
  padding: var(--space-sm);
}

.Sidebar_collapsed__ZEY4R .Sidebar_logoutButton___lcMT span:last-child {
  display: none;
}

/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/.pnpm/next@15.5.12_@playwright+test@1.58.2_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[2]!../../node_modules/.pnpm/next@15.5.12_@playwright+test@1.58.2_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[3]!./src/components/sakartvelo/SakartveloHoldings.module.css ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
.SakartveloHoldings_card__z1Q7X {
  background: white;
  border: 1px solid #e2e8f0;
  border-radius: var(--radius-lg, 12px);
  padding: var(--space-lg);
  margin-bottom: var(--space-lg);
}

.SakartveloHoldings_head__l15bx {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--space-md);
}

.SakartveloHoldings_head__l15bx h2 {
  font-size: 1.125rem;
  font-weight: 600;
  color: #1e293b;
}

.SakartveloHoldings_stubBadge__pb5XH {
  font-size: 0.7rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #92400e;
  background: #fef3c7;
  border-radius: 999px;
  padding: 2px 10px;
}

.SakartveloHoldings_muted__byAqd {
  color: #64748b;
  font-size: 0.9375rem;
}

.SakartveloHoldings_error__EsVOr {
  color: #b91c1c;
  font-size: 0.9375rem;
}

.SakartveloHoldings_list__zMFxu {
  list-style: none;
  display: grid;
  grid-gap: var(--space-md);
  gap: var(--space-md);
}

.SakartveloHoldings_item__2f2hZ {
  border: 1px solid #e2e8f0;
  border-radius: var(--radius-md);
  padding: var(--space-md);
}

.SakartveloHoldings_itemHead__vOs6v {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-sm);
}

.SakartveloHoldings_propType__Ki_OP {
  font-weight: 600;
  color: #1e293b;
}

.SakartveloHoldings_tagFraction__8OJpb,
.SakartveloHoldings_tagWhole__EA2eJ {
  font-size: 0.7rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  border-radius: 999px;
  padding: 2px 10px;
}

.SakartveloHoldings_tagFraction__8OJpb {
  color: #065f46;
  background: #d1fae5;
}

.SakartveloHoldings_tagWhole__EA2eJ {
  color: #334155;
  background: #f1f5f9;
}

.SakartveloHoldings_cadastral__VP6jj {
  margin-top: 4px;
  font-family: var(--font-mono, monospace);
  font-size: 0.8125rem;
  color: #475569;
}

.SakartveloHoldings_meta__R1wxt {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-md);
  margin-top: var(--space-sm);
  color: #64748b;
  font-size: 0.875rem;
}

.SakartveloHoldings_encumbered__F2wTF {
  color: #b91c1c;
}

.SakartveloHoldings_holding__0C7bD {
  margin-top: var(--space-sm);
  padding-top: var(--space-sm);
  border-top: 1px dashed #e2e8f0;
  font-size: 0.9375rem;
  color: #334155;
}

.SakartveloHoldings_pct__VRU11 {
  margin-left: var(--space-sm);
  font-weight: 600;
  color: #2563eb;
}

/* ── Seller-supplied title media (GLR-250) ───────────────────────────────── */

.SakartveloHoldings_thumbStrip__C_QeP {
  display: flex;
  gap: 0.4rem;
  flex-wrap: wrap;
  margin-bottom: 0.6rem;
}

/* A picked photo, with its own discard control. Sellers who mis-click one of
 * eight must not have to re-pick the other seven. */
.SakartveloHoldings_thumbWrap__kIUPo {
  position: relative;
  line-height: 0;
}

.SakartveloHoldings_thumbRemove__FxF7V {
  position: absolute;
  top: -6px;
  right: -6px;
  width: 20px;
  height: 20px;
  padding: 0;
  border: 1px solid #e2e8f0;
  border-radius: 50%;
  background: #fff;
  color: #475569;
  font-size: 0.9rem;
  line-height: 1;
  cursor: pointer;
}

.SakartveloHoldings_thumbRemove__FxF7V:disabled {
  cursor: default;
  opacity: 0.5;
}

.SakartveloHoldings_thumb__CXkph {
  width: 84px;
  height: 62px;
  border-radius: 6px;
  border: 1px solid #e2e8f0;
  object-fit: cover;
  background: #f1f5f9;
  display: block;
}

/* Photos on a marketplace row.
 *
 * A grid rather than one full-bleed banner: a listing card is ~900px wide, and
 * a single image stretched across it reads as a letterboxed header rather than
 * a photo of a property. Fixed 4:3 cells keep portrait and landscape uploads
 * the same size, and every uploaded photo is shown rather than just the first. */
.SakartveloHoldings_gallery__wBqb1 {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  grid-gap: 0.5rem;
  gap: 0.5rem;
  max-width: 520px;
  margin-bottom: 0.6rem;
}

.SakartveloHoldings_galleryCell__E62NY {
  position: relative;
}

.SakartveloHoldings_galleryImg__ktf6m {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
  border-radius: 8px;
  border: 1px solid #e2e8f0;
  background: #f1f5f9;
}

/* Past the fourth photo the grid would dominate the card, so the rest are
 * counted on the last tile instead. */
.SakartveloHoldings_galleryMore__cg7pv {
  position: absolute;
  inset: 0;
  border-radius: 8px;
  background: rgba(15, 23, 42, 0.55);
  color: #fff;
  font-size: 1rem;
  font-weight: 600;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Stand-in when a title has no photos yet — a card must never look broken.
 * Same footprint as one photo, so rows with and without media line up. */
.SakartveloHoldings_coverPlaceholder__3GQHI {
  width: 100%;
  max-width: 200px;
  aspect-ratio: 4 / 3;
  border-radius: 8px;
  border: 1px dashed #cbd5e1;
  background: #f8fafc;
  color: #94a3b8;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 0 0.6rem;
  font-size: 0.78rem;
  line-height: 1.3;
  margin-bottom: 0.6rem;
}

.SakartveloHoldings_desc__qgd98 {
  font-size: 0.875rem;
  color: #475569;
  margin: 0 0 0.4rem;
}

/* These are the seller's own photos of their own property. Say so. */
.SakartveloHoldings_sellerNote__IXOvx {
  font-size: 0.72rem;
  color: #64748b;
  margin: 0 0 0.5rem;
}

.SakartveloHoldings_mediaActions__Lh_Eg {
  display: flex;
  gap: 0.5rem;
  align-items: center;
  flex-wrap: wrap;
}

@media (prefers-color-scheme: dark) {
  .SakartveloHoldings_card__z1Q7X {
    background: #1e293b;
    border-color: #334155;
  }

  .SakartveloHoldings_head__l15bx h2 {
    color: #f1f5f9;
  }

  .SakartveloHoldings_item__2f2hZ {
    border-color: #334155;
  }

  .SakartveloHoldings_propType__Ki_OP {
    color: #f1f5f9;
  }

  .SakartveloHoldings_cadastral__VP6jj {
    color: #94a3b8;
  }

  .SakartveloHoldings_meta__R1wxt {
    color: #94a3b8;
  }

  .SakartveloHoldings_holding__0C7bD {
    color: #cbd5e1;
    border-top-color: #334155;
  }

  .SakartveloHoldings_tagWhole__EA2eJ {
    color: #cbd5e1;
    background: #334155;
  }

  .SakartveloHoldings_thumb__CXkph,
  .SakartveloHoldings_galleryImg__ktf6m {
    border-color: #334155;
    background: #0f172a;
  }

  .SakartveloHoldings_coverPlaceholder__3GQHI {
    border-color: #334155;
    background: #0f172a;
    color: #64748b;
  }

  .SakartveloHoldings_desc__qgd98 {
    color: #cbd5e1;
  }

  .SakartveloHoldings_sellerNote__IXOvx {
    color: #94a3b8;
  }
}

/* ── Seller listing form ───────────────────────────────────────────────────
 *
 * Styled to the rest of the portal rather than to itself. Every value here is
 * one /properties already uses: white cards on #e2e8f0 borders, --space tokens
 * for padding, var(--color-primary, #2563eb) for the action, 0.875rem control
 * text, and the same `transition: all 0.2s` + lifted-shadow hover. The button
 * was #3b82f6 — a shade lighter than every other primary control on the site,
 * which is exactly the kind of near-miss that makes a tile read as bolted on.
 */
.SakartveloHoldings_form__kILYn {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.SakartveloHoldings_fieldRow__cdlKJ {
  display: flex;
  gap: var(--space-md);
  flex-wrap: wrap;
}

.SakartveloHoldings_field__6kEcu {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
  min-width: 0;
}

.SakartveloHoldings_fieldGrow__xycLQ {
  flex: 1 1 12rem;
}

.SakartveloHoldings_label__e9tBi {
  font-size: 0.75rem;
  font-weight: 600;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.SakartveloHoldings_input__Wjbc_,
.SakartveloHoldings_select__4E_H0 {
  width: 100%;
  padding: var(--space-sm) var(--space-md);
  border: 1px solid #e2e8f0;
  border-radius: var(--radius-md, 8px);
  background: white;
  color: #1e293b;
  font-size: 0.875rem;
  font-family: inherit;
  transition: all 0.2s;
}

.SakartveloHoldings_input__Wjbc_:hover:not(:disabled),
.SakartveloHoldings_select__4E_H0:hover:not(:disabled) {
  border-color: #cbd5e1;
}

/* Same focus treatment the rest of the portal uses: the primary border plus a
   soft ring, rather than the browser default outline. */
.SakartveloHoldings_input__Wjbc_:focus,
.SakartveloHoldings_select__4E_H0:focus {
  outline: none;
  border-color: var(--color-primary, #2563eb);
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12);
}

.SakartveloHoldings_input__Wjbc_:disabled,
.SakartveloHoldings_select__4E_H0:disabled {
  background: #f8fafc;
  color: #94a3b8;
  cursor: default;
}

.SakartveloHoldings_inputInvalid__jZbco,
.SakartveloHoldings_inputInvalid__jZbco:focus {
  border-color: #dc2626;
  box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.12);
}

.SakartveloHoldings_suffix__elJMS {
  font-size: 0.8125rem;
  color: #64748b;
}

.SakartveloHoldings_primaryButton__mVvpf {
  align-self: flex-start;
  padding: var(--space-sm) var(--space-lg);
  border: 1px solid var(--color-primary, #2563eb);
  border-radius: var(--radius-md, 8px);
  background: var(--color-primary, #2563eb);
  color: white;
  font-size: 0.875rem;
  font-weight: 600;
  font-family: inherit;
  cursor: pointer;
  transition: all 0.2s;
}

.SakartveloHoldings_primaryButton__mVvpf:hover:not(:disabled) {
  background: #1d4ed8;
  border-color: #1d4ed8;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.SakartveloHoldings_primaryButton__mVvpf:disabled {
  background: #cbd5e1;
  border-color: #cbd5e1;
  box-shadow: none;
  cursor: default;
}

.SakartveloHoldings_hint__vKCy1 {
  font-size: 0.8125rem;
  color: #64748b;
  margin: 0;
}

@media (prefers-color-scheme: dark) {
  .SakartveloHoldings_label__e9tBi {
    color: #cbd5e1;
  }

  .SakartveloHoldings_input__Wjbc_,
  .SakartveloHoldings_select__4E_H0 {
    background: #0f172a;
    border-color: #334155;
    color: #f1f5f9;
  }

  .SakartveloHoldings_input__Wjbc_:disabled,
  .SakartveloHoldings_select__4E_H0:disabled {
    background: #1e293b;
    color: #64748b;
  }

  .SakartveloHoldings_hint__vKCy1,
  .SakartveloHoldings_suffix__elJMS {
    color: #94a3b8;
  }
}

/* ── Marketplace listings, laid out like /properties ──────────────────────
 *
 * The listings used to be a <ul> of full-width rows carrying their own inline
 * styles — 6px radii, #d1d5db borders, a #1f7a3d green buy button — none of
 * which appear anywhere else in the portal. These classes restate the
 * /properties card: a fixed-height cover, a type chip, a three-up metric row
 * on hairline rules, and the action in a footer. Same fields, same data.
 */
.SakartveloHoldings_listingGrid__51bFq {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  grid-gap: var(--space-lg);
  gap: var(--space-lg);
}

.SakartveloHoldings_listingCard__sPl4f {
  background: white;
  border: 1px solid #e2e8f0;
  border-radius: var(--radius-lg, 12px);
  overflow: hidden;
  transition: all 0.2s;
}

.SakartveloHoldings_listingCard__sPl4f:hover {
  border-color: var(--color-primary, #2563eb);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  transform: translateY(-2px);
}

.SakartveloHoldings_listingImageWrap__aJxjX {
  position: relative;
  height: 180px;
  background: linear-gradient(135deg, #f1f5f9, #e2e8f0);
}

.SakartveloHoldings_listingImage__pWfBL {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.SakartveloHoldings_listingImageEmpty__3yXOA {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  padding: 0 var(--space-md);
  text-align: center;
  color: #94a3b8;
  font-size: 0.8125rem;
}

.SakartveloHoldings_listingPhotoCount__GRs0b {
  position: absolute;
  bottom: var(--space-sm);
  right: var(--space-sm);
  padding: 2px 8px;
  border-radius: var(--radius-sm, 4px);
  background: rgba(15, 23, 42, 0.65);
  color: white;
  font-size: 0.7rem;
  font-weight: 600;
}

.SakartveloHoldings_listingStatus__HUOo3 {
  position: absolute;
  top: var(--space-sm);
  right: var(--space-sm);
  padding: var(--space-xs) var(--space-sm);
  border-radius: var(--radius-sm, 4px);
  background: #16a34a;
  color: white;
  font-size: 0.7rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.SakartveloHoldings_listingBody__yP0Az {
  padding: var(--space-md);
}

.SakartveloHoldings_listingHeader__WVCMC {
  margin-bottom: var(--space-md);
}

.SakartveloHoldings_listingChip__Jc7nR {
  display: inline-block;
  padding: var(--space-xs) var(--space-sm);
  background: #f1f5f9;
  border-radius: var(--radius-sm, 4px);
  font-size: 0.75rem;
  color: #64748b;
  text-transform: uppercase;
  margin-bottom: var(--space-xs);
}

.SakartveloHoldings_listingName___InzT {
  font-family: var(--font-mono, monospace);
  font-size: 1.0625rem;
  font-weight: 600;
  color: #1e293b;
  margin-bottom: var(--space-xs);
}

.SakartveloHoldings_listingExpiry__IObn5 {
  font-size: 0.875rem;
  color: #64748b;
}

.SakartveloHoldings_listingMetrics__Pdq6h {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-gap: var(--space-sm);
  gap: var(--space-sm);
  padding: var(--space-md) 0;
  border-top: 1px solid #f1f5f9;
  border-bottom: 1px solid #f1f5f9;
}

.SakartveloHoldings_listingMetric__KUGbE {
  text-align: center;
  min-width: 0;
}

.SakartveloHoldings_listingMetricLabel__LYws5 {
  display: block;
  font-size: 0.75rem;
  color: #94a3b8;
  margin-bottom: var(--space-xs);
}

.SakartveloHoldings_listingMetricValue__2xvC_ {
  display: block;
  font-size: 0.875rem;
  font-weight: 600;
  color: #1e293b;
  overflow-wrap: anywhere;
}

.SakartveloHoldings_listingBuy__ExevE {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  padding-top: var(--space-md);
}

.SakartveloHoldings_listingQtyRow__Q9kGG {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  flex-wrap: wrap;
}

.SakartveloHoldings_listingQtyInput__PyqzH {
  width: 7rem;
}

.SakartveloHoldings_listingMaxButton__Wetwi {
  padding: var(--space-sm) var(--space-md);
  border: 1px solid #e2e8f0;
  border-radius: var(--radius-md, 8px);
  background: white;
  color: #64748b;
  font-size: 0.875rem;
  font-family: inherit;
  cursor: pointer;
  transition: all 0.2s;
}

.SakartveloHoldings_listingMaxButton__Wetwi:hover:not(:disabled) {
  border-color: #cbd5e1;
  background: #f8fafc;
}

.SakartveloHoldings_listingMaxButton__Wetwi:disabled {
  cursor: default;
  opacity: 0.6;
}

.SakartveloHoldings_listingQtyError__VO7sO {
  color: #b91c1c;
  font-size: 0.8125rem;
}

.SakartveloHoldings_listingTotal__4FDee {
  font-size: 0.875rem;
  font-weight: 600;
  color: #1e293b;
}

@media (prefers-color-scheme: dark) {
  .SakartveloHoldings_listingCard__sPl4f {
    background: #1e293b;
    border-color: #334155;
  }

  .SakartveloHoldings_listingName___InzT,
  .SakartveloHoldings_listingMetricValue__2xvC_,
  .SakartveloHoldings_listingTotal__4FDee {
    color: #f1f5f9;
  }

  .SakartveloHoldings_listingChip__Jc7nR {
    background: #334155;
    color: #cbd5e1;
  }

  .SakartveloHoldings_listingMetrics__Pdq6h {
    border-top-color: #334155;
    border-bottom-color: #334155;
  }

  .SakartveloHoldings_listingMaxButton__Wetwi {
    background: #0f172a;
    border-color: #334155;
    color: #cbd5e1;
  }
}

/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/.pnpm/next@15.5.12_@playwright+test@1.58.2_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[2]!../../node_modules/.pnpm/next@15.5.12_@playwright+test@1.58.2_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[3]!./src/components/layout/DashboardLayout.module.css ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Dashboard Layout Styles
 */

.DashboardLayout_layout__E_C0I {
  display: flex;
  min-height: 100vh;
}

.DashboardLayout_content__3scIU {
  flex: 1 1;
  margin-left: 260px;
  transition: margin-left 0.3s ease;
}

.DashboardLayout_content__3scIU.DashboardLayout_contentExpanded___C6Cm {
  margin-left: 72px;
}

@media (max-width: 768px) {
  .DashboardLayout_content__3scIU {
    margin-left: 0;
    padding-top: 60px; /* Space for mobile menu button */
  }

  .DashboardLayout_content__3scIU.DashboardLayout_contentExpanded___C6Cm {
    margin-left: 0;
  }
}

