:root {
  --ai-app-height: 100dvh;
  --ai-vvh: 100dvh;
  --ai-keyboard-offset: 0px;
  --ai-dock-height: 156px;
  --ai-page-scroll-y: 0px;
}

html,
body,
#root {
  max-width: 100%;
  overflow-x: hidden;
}

@media (max-width: 767px) {
  html,
  body,
  #root {
    width: 100%;
    min-height: 100dvh;
    min-height: var(--ai-app-height);
    touch-action: manipulation;
  }

  html.ai-workspace-lock,
  html.ai-workspace-lock body {
    height: var(--ai-app-height) !important;
    min-height: var(--ai-app-height) !important;
    overflow: hidden !important;
    overscroll-behavior: none !important;
  }

  html.ai-workspace-lock body {
    inset-inline: 0 !important;
    touch-action: none;
  }

  html.ai-workspace-lock #root {
    height: var(--ai-app-height) !important;
    min-height: var(--ai-app-height) !important;
    overflow: hidden !important;
  }

  body {
    background:
      radial-gradient(circle at 50% -12%, rgba(54, 199, 212, 0.16), transparent 36%),
      linear-gradient(180deg, #101211 0%, #0d100f 100%) !important;
  }

  body [data-mobile-extra-tag="true"] {
    display: none !important;
  }

  body [data-ai-content-site-hidden="true"] {
    display: none !important;
  }

  section h1,
  section .neon-text-cyan,
  section .neon-text-pink {
    text-shadow: 0 0 8px rgba(54, 199, 212, 0.42), 0 0 18px rgba(124, 58, 237, 0.24) !important;
  }

  section h1 {
    font-size: clamp(2.55rem, 13vw, 3.35rem) !important;
    line-height: 0.98 !important;
    letter-spacing: -0.035em !important;
  }

  section h1 + p,
  section p.text-lg {
    max-width: 23rem !important;
    margin-left: auto !important;
    margin-right: auto !important;
    font-size: 0.98rem !important;
    line-height: 1.55 !important;
  }

  section p.font-mono {
    display: none !important;
  }

  .ai-workspace-overlay {
    position: fixed !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100dvh !important;
    height: var(--ai-app-height) !important;
    min-height: 100dvh !important;
    min-height: var(--ai-app-height) !important;
    max-height: var(--ai-app-height) !important;
    padding: 0 !important;
    overflow: hidden !important;
    align-items: stretch !important;
    justify-content: stretch !important;
    overscroll-behavior: none !important;
    touch-action: none;
  }

  .ai-workspace-shell {
    width: 100% !important;
    height: 100dvh !important;
    height: var(--ai-app-height) !important;
    min-height: 100dvh !important;
    min-height: var(--ai-app-height) !important;
    max-height: var(--ai-app-height) !important;
    border-radius: 0 !important;
    overflow: hidden !important;
    contain: layout paint size !important;
    touch-action: auto;
  }

  .ai-workspace-topbar {
    display: grid !important;
    grid-template-columns: 46px minmax(0, 1fr) 46px !important;
    grid-template-rows: auto auto !important;
    align-items: center !important;
    gap: 8px 10px !important;
    min-height: calc(92px + env(safe-area-inset-top)) !important;
    padding: calc(env(safe-area-inset-top) + 8px) 12px 10px !important;
    background: rgba(16, 18, 17, 0.86) !important;
  }

  .ai-workspace-topbar > div:first-child {
    grid-column: 2 !important;
    grid-row: 1 !important;
    justify-self: center !important;
    max-width: none !important;
    min-width: 0 !important;
    pointer-events: none !important;
  }

  .ai-workspace-topbar > div:first-child > div:first-child {
    display: none !important;
  }

  .ai-workspace-topbar h2 {
    max-width: none !important;
    overflow: visible !important;
    white-space: nowrap !important;
    text-overflow: clip !important;
    font-size: 15px !important;
    font-weight: 700 !important;
  }

  .ai-workspace-topbar h2::before {
    content: "Shijoe AI";
    display: inline;
  }

  .ai-workspace-topbar h2 {
    font-size: 0 !important;
  }

  .ai-workspace-topbar h2::before {
    font-size: 15px !important;
  }

  .ai-workspace-close {
    grid-column: 1 !important;
    grid-row: 1 !important;
    justify-self: start !important;
    width: 44px !important;
    height: 44px !important;
  }

  .ai-mobile-mode-segment {
    grid-column: 1 / -1 !important;
    grid-row: 2 !important;
    width: min(282px, 100%) !important;
    max-width: 282px !important;
    justify-self: center !important;
    margin: 0 !important;
    padding: 3px !important;
  }

  .ai-mobile-mode-segment button {
    min-height: 32px !important;
    font-size: 11px !important;
  }

  .ai-mobile-statusbar {
    padding: 7px 14px !important;
  }

  .ai-mobile-current-model {
    min-height: 32px !important;
    font-size: 12px !important;
  }

  .ai-mobile-reset {
    width: 44px !important;
    height: 44px !important;
    min-height: 44px !important;
  }

  .ai-workspace-scroll {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    max-height: none !important;
    padding: 14px 14px calc(var(--ai-dock-height) + 22px + env(safe-area-inset-bottom)) !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    -webkit-overflow-scrolling: touch !important;
    touch-action: pan-y;
    scroll-padding-bottom: calc(var(--ai-dock-height) + 22px + env(safe-area-inset-bottom)) !important;
  }

  .ai-workspace-scroll .chat-markdown {
    font-size: 0.9rem !important;
    line-height: 1.55 !important;
  }

  .ai-workspace-scroll .max-w-\[78\%\] {
    max-width: 86% !important;
    padding: 11px 13px !important;
  }

  .ai-workspace-scroll .md\:hidden.space-y-2 {
    gap: 7px !important;
  }

  .ai-workspace-scroll .md\:hidden.space-y-2 button {
    min-height: 46px !important;
    padding: 10px 12px !important;
    font-size: 15px !important;
    line-height: 1.2 !important;
  }

  .ai-workspace-input-area {
    position: fixed !important;
    left: 0 !important;
    right: 0 !important;
    bottom: var(--ai-keyboard-offset) !important;
    z-index: 220 !important;
    padding: 8px 12px 10px !important;
    padding-bottom: max(10px, env(safe-area-inset-bottom)) !important;
    background: linear-gradient(180deg, transparent, rgba(16, 18, 17, 0.86) 18%, rgba(16, 18, 17, 0.98)) !important;
    transform: translate3d(0, 0, 0);
    will-change: transform, bottom;
    overflow: visible !important;
    touch-action: auto;
    transition: bottom 120ms ease-out;
  }

  .ai-workspace-input-dock {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 8px !important;
    max-width: 680px !important;
    min-height: 0 !important;
    padding: 10px !important;
    border-radius: 26px !important;
    overflow: visible !important;
    background: rgba(37, 41, 39, 0.9) !important;
    border-color: rgba(255, 255, 255, 0.13) !important;
    box-shadow: 0 14px 44px rgba(0, 0, 0, 0.42), inset 0 1px rgba(255, 255, 255, 0.08) !important;
  }

  .ai-dock-textarea {
    order: 1 !important;
    flex: 0 0 100% !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 46px !important;
    max-height: min(28dvh, 128px) !important;
    padding: 12px 12px !important;
    border-radius: 18px !important;
    background: rgba(255, 255, 255, 0.055) !important;
    line-height: 1.35 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    box-sizing: border-box !important;
    -webkit-appearance: none !important;
    appearance: none !important;
    scroll-margin: 0 !important;
  }

  .ai-dock-icon-button,
  .ai-dock-model-button,
  .ai-dock-send-button {
    order: 2 !important;
    min-width: 44px !important;
    min-height: 44px !important;
    width: 44px !important;
    height: 44px !important;
    flex: 0 0 auto !important;
  }

  .ai-dock-model-button {
    width: auto !important;
    max-width: calc(100% - 156px) !important;
    padding: 0 12px !important;
    color: rgba(255, 255, 255, 0.76) !important;
  }

  .ai-dock-send-button {
    margin-left: auto !important;
  }

  .ai-mobile-model-sheet {
    height: clamp(55dvh, 63dvh, 70dvh) !important;
    border-radius: 30px 30px 0 0 !important;
    background: rgba(24, 27, 26, 0.94) !important;
  }

  .ai-mobile-model-header {
    padding: 0 20px 10px !important;
  }

  .ai-mobile-model-header h3 {
    font-size: 29px !important;
    letter-spacing: -0.035em !important;
  }

  .ai-mobile-model-list {
    height: calc(100% - 76px) !important;
    padding: 0 10px 12px !important;
  }

  .ai-mobile-model-item-wrap {
    border-radius: 24px !important;
  }

  .ai-mobile-model-item-wrap.is-active,
  .ai-selected-model-row {
    background: rgba(255, 255, 255, 0.075) !important;
  }

  .ai-mobile-model-item {
    min-height: 74px !important;
    padding: 9px 12px !important;
    gap: 12px !important;
    border-radius: 24px !important;
  }

  .ai-mobile-model-icon {
    width: 48px !important;
    height: 48px !important;
    flex-basis: 48px !important;
    border-radius: 17px !important;
  }

  .ai-mobile-model-name {
    font-size: 20px !important;
    line-height: 1.08 !important;
  }

  .ai-mobile-model-desc {
    font-size: 14px !important;
    line-height: 1.2 !important;
  }

  .ai-mobile-model-tag {
    max-width: 86px !important;
    padding: 4px 7px !important;
    font-size: 10px !important;
    background: rgba(54, 199, 212, 0.9) !important;
  }

  .ai-mobile-model-item-wrap.is-active .ai-mobile-model-tag,
  .ai-selected-model-row .ai-mobile-model-tag {
    display: none !important;
  }

  .ai-mobile-model-meta {
    gap: 6px !important;
  }

  .ai-mobile-zhipu-chips {
    padding-left: 70px !important;
  }
}

@media (max-width: 390px) {
  .ai-dock-model-button span {
    max-width: 54px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .ai-workspace-input-area {
    padding-left: 10px !important;
    padding-right: 10px !important;
  }

  .ai-workspace-topbar {
    padding-left: 10px !important;
    padding-right: 10px !important;
  }
}
