.aimcode-terra-modal-open body > *:not(#aimcode-terra-modal) { filter: blur(1.6px); transition: filter .2s ease; }
.aimcode-terra-modal { position: fixed; inset: 0; z-index: 2147483000; opacity: 0; pointer-events: none; transition: opacity .22s ease; }
.aimcode-terra-modal.is-visible { opacity: 1; pointer-events: auto; }
.aimcode-terra-backdrop { position: absolute; inset: 0; background: rgba(5, 7, 18, .56); backdrop-filter: blur(5px); }
.aimcode-terra-dialog { position: absolute; left: 50%; top: 50%; width: min(920px, calc(100vw - 28px)); transform: translate(-50%, -47%) scale(.98); overflow: hidden; border: 1px solid rgba(154, 111, 255, .56); border-radius: 24px; background: #090b18; box-shadow: 0 28px 100px rgba(0,0,0,.62), 0 0 70px rgba(110,76,255,.22); transition: transform .22s ease; }
.aimcode-terra-modal.is-visible .aimcode-terra-dialog { transform: translate(-50%, -50%) scale(1); }
.aimcode-terra-close { position: absolute; right: 12px; top: 10px; z-index: 2; width: 38px; height: 38px; border: 1px solid rgba(255,255,255,.28); border-radius: 50%; background: rgba(4,6,14,.72); color: #fff; font-size: 28px; line-height: 1; cursor: pointer; }
.aimcode-terra-image-button { display: block; width: 100%; padding: 0; border: 0; background: transparent; cursor: pointer; }
.aimcode-terra-image-button img { display: block; width: 100%; height: auto; }
.aimcode-terra-dialog-actions { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 16px 20px 18px; color: #fff; background: linear-gradient(90deg, rgba(17,20,40,.98), rgba(24,10,45,.98)); }
.aimcode-terra-dialog-actions strong, .aimcode-terra-dialog-actions span { display: block; }
.aimcode-terra-dialog-actions strong { font-size: 16px; }
.aimcode-terra-dialog-actions span { margin-top: 4px; color: rgba(255,255,255,.68); font-size: 13px; }
.aimcode-terra-cta { flex: 0 0 auto; border: 0; border-radius: 999px; padding: 12px 18px; background: linear-gradient(100deg, #10d8ff, #9c46ff); color: #fff; font-weight: 800; cursor: pointer; box-shadow: 0 8px 28px rgba(92,96,255,.35); }
.aimcode-terra-cta span { display: inline; margin: 0 0 0 6px; color: #fff; font-size: 18px; }
.aimcode-terra-dashboard-row { grid-column: 1 / -1; display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(280px, .72fr); gap: 18px; align-items: stretch; width: 100%; }
.aimcode-terra-dashboard-row > .telegram-dashboard-banner { min-width: 0; }
.aimcode-terra-dashboard-card { position: relative; min-height: 220px; overflow: hidden; padding: 0; border: 1px solid rgba(111,124,255,.48); border-radius: 18px; background: #090b18; cursor: pointer; box-shadow: 0 16px 44px rgba(0,0,0,.24); text-align: left; }
.aimcode-terra-dashboard-card:hover { border-color: rgba(104,224,255,.9); transform: translateY(-2px); }
.aimcode-terra-dashboard-card img { display: block; width: 100%; height: 100%; min-height: 220px; object-fit: cover; object-position: center; }
.aimcode-terra-dashboard-label { position: absolute; inset: auto 0 0; padding: 12px 15px; color: #fff; font-size: 14px; font-weight: 800; background: linear-gradient(transparent, rgba(5,6,18,.92)); }
.aimcode-terra-dashboard-label b { float: right; color: #72e8ff; font-size: 20px; }
@media (max-width: 900px) { .aimcode-terra-dashboard-row { grid-template-columns: 1fr; } .aimcode-terra-dialog-actions { align-items: stretch; flex-direction: column; } .aimcode-terra-cta { width: 100%; } }

/* Terra/support usability override: keep chat inside a stable viewport. */
body:has(.support-window) { overflow: hidden !important; overscroll-behavior: none !important; }
.support-window {
  z-index: 2000 !important;
  width: min(440px, calc(100vw - 24px)) !important;
  height: min(760px, calc(100dvh - 96px)) !important;
  max-height: calc(100dvh - 96px) !important;
  right: 16px !important;
  bottom: 76px !important;
  border-radius: 20px !important;
  grid-template-rows: auto minmax(0, 1fr) auto !important;
  overflow: hidden !important;
}
.support-window > header { position: relative !important; z-index: 2; flex: 0 0 auto; min-height: 70px !important; }
.support-window > footer { position: relative !important; z-index: 2; min-height: 48px; background: rgba(11,14,22,.98) !important; }
.support-new, .support-thread-view { min-height: 0 !important; overflow: hidden !important; }
.support-new { align-content: start !important; overflow-y: auto !important; overscroll-behavior: contain; scrollbar-gutter: stable; padding: 18px 18px 22px !important; }
.support-messages { min-height: 0 !important; overflow-y: auto !important; overscroll-behavior: contain; scrollbar-gutter: stable; }
.support-compose { position: relative !important; z-index: 2; background: #10131a !important; }
.support-new textarea { min-height: 112px !important; max-height: 220px !important; }
.support-new input, .support-new textarea { border-radius: 12px !important; border-color: rgba(255,255,255,.16) !important; }
.support-payment-tip { border-radius: 12px !important; }
.support-attach-button { border-radius: 12px !important; min-height: 46px !important; }
.support-primary { min-height: 48px !important; border-radius: 14px !important; }
.support-window button, .support-window a { -webkit-tap-highlight-color: transparent; }
@media (max-width: 640px) {
  .support-launcher { right: 16px !important; bottom: max(14px, env(safe-area-inset-bottom)) !important; }
  .support-window {
    inset: max(10px, env(safe-area-inset-top)) 10px max(72px, calc(env(safe-area-inset-bottom) + 62px)) 10px !important;
    width: auto !important;
    height: auto !important;
    max-height: none !important;
    border-radius: 18px !important;
  }
  .support-window > header { min-height: 66px !important; padding-inline: 14px !important; }
  .support-new { padding: 14px 14px 18px !important; gap: 12px !important; }
  .support-new > span { font-size: 17px !important; }
  .support-window > footer { padding: 9px 12px !important; }
}
