@layer reset, tokens, base, layout, components, utilities;

@layer reset {
  html:has(.app-page) {
    background: #071522;
    scrollbar-gutter: auto;
  }

  *,
  *::before,
  *::after {
    box-sizing: border-box;
  }

  html,
  body {
    block-size: 100%;
  }

  body,
  h1,
  h2,
  h3,
  p,
  ul,
  ol {
    margin: 0;
  }

  button,
  textarea,
  input {
    font: inherit;
  }

  button {
    color: inherit;
  }

  a {
    color: inherit;
    text-decoration: none;
  }

  ul,
  ol {
    padding: 0;
    list-style: none;
  }

  img,
  svg {
    display: block;
    max-inline-size: 100%;
  }
}

@layer tokens {
  .app-page {
    --app-bg: #071522;
    --panel: #0a1c2d;
    --panel-2: #0d2236;
    --panel-3: #112b43;
    --surface: #0f263b;
    --surface-2: #14314c;
    --line: rgb(255 255 255 / 0.09);
    --line-strong: rgb(255 255 255 / 0.16);
    --text: #edf4fa;
    --text-2: #b8c8d7;
    --text-3: #8298ad;
    --gold: #d3ad68;
    --gold-soft: #f0d6a3;
    --cyan: #67c8d8;
    --green: #75d7aa;
    --red: #ee8d88;
    --amber: #e8bd6b;
    --shadow: 0 28px 80px -40px rgb(0 0 0 / 0.72);
    --radius-sm: 8px;
    --radius-md: 12px;
    --radius-lg: 18px;
    --sans: "Microsoft YaHei", "PingFang SC", "Hiragino Sans GB", "Noto Sans CJK SC", system-ui, sans-serif;
    --mono: "Cascadia Mono", "SFMono-Regular", Consolas, "Liberation Mono", monospace;
    --ease: cubic-bezier(0.22, 1, 0.36, 1);
    --focus: 0 0 0 3px var(--app-bg), 0 0 0 6px var(--cyan);
  }
}

@layer base {
  .app-page {
    min-inline-size: 320px;
    overflow: hidden;
    color: var(--text);
    background:
      radial-gradient(900px 600px at 60% -12%, rgb(34 86 122 / 0.22), transparent 62%),
      var(--app-bg);
    color-scheme: dark;
    font-family: var(--sans);
    font-size: 16px;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
  }

  .app-page h1,
  .app-page h2,
  .app-page h3 {
    line-height: 1.25;
    letter-spacing: -0.02em;
  }

  .app-page p {
    color: var(--text-2);
  }

  .app-page button {
    border: 0;
  }

  .app-page :focus-visible {
    outline: none;
    box-shadow: var(--focus);
  }

  .app-page ::selection {
    color: #071522;
    background: var(--gold-soft);
  }

  .app-page [hidden] {
    display: none !important;
  }

  .app-page .sr-only {
    position: absolute !important;
    inline-size: 1px !important;
    block-size: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
  }

  .app-page .icon {
    inline-size: 20px;
    block-size: 20px;
    flex: 0 0 auto;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.7;
  }

  .app-page .sr-only-focusable:not(:focus):not(:focus-within) {
    position: absolute !important;
    inline-size: 1px !important;
    block-size: 1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
  }
}

@layer layout {
  .app-shell {
    display: grid;
    grid-template-columns: 258px minmax(0, 1fr) 300px;
    inline-size: 100%;
    block-size: 100dvh;
    overflow: hidden;
  }

  .app-main {
    position: relative;
    display: grid;
    grid-template-rows: 62px minmax(0, 1fr) auto;
    min-inline-size: 0;
    min-block-size: 0;
    background:
      linear-gradient(180deg, rgb(255 255 255 / 0.018), transparent 22%),
      #071522;
  }

  .messages-scroll {
    min-block-size: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
  }

  .messages-inner {
    inline-size: min(100% - 36px, 880px);
    min-block-size: 100%;
    margin-inline: auto;
    padding-block: 32px 28px;
  }

  @media (max-width: 1180px) {
    .app-shell {
      grid-template-columns: 238px minmax(0, 1fr);
    }

    .context-panel {
      position: fixed;
      inset-block: 0;
      inset-inline-end: 0;
      z-index: 110;
      inline-size: min(360px, 92vw);
      transform: translateX(105%);
      visibility: hidden;
      pointer-events: none;
      transition:
        transform 280ms var(--ease),
        visibility 0s linear 280ms;
    }

    .app-page.context-open .context-panel {
      transform: none;
      visibility: visible;
      pointer-events: auto;
      transition-delay: 0s;
    }
  }

  @media (max-width: 760px) {
    .app-shell {
      display: block;
      block-size: 100dvh;
    }

    .app-main {
      block-size: 100dvh;
      grid-template-rows: 58px minmax(0, 1fr) auto;
    }

    .sidebar {
      position: fixed;
      inset-block: 0;
      inset-inline-start: 0;
      z-index: 112;
      inline-size: min(300px, 88vw);
      transform: translateX(-105%);
      visibility: hidden;
      pointer-events: none;
      transition:
        transform 280ms var(--ease),
        visibility 0s linear 280ms;
    }

    .app-page.sidebar-open .sidebar {
      transform: none;
      visibility: visible;
      pointer-events: auto;
      transition-delay: 0s;
    }

    .messages-inner {
      inline-size: min(100% - 24px, 820px);
      padding-block-start: 20px;
    }
  }
}

@layer components {
  .sidebar {
    display: grid;
    grid-template-rows: auto auto auto minmax(0, 1fr) auto;
    gap: 14px;
    min-block-size: 0;
    padding: 16px 13px max(14px, env(safe-area-inset-bottom));
    background:
      radial-gradient(320px 240px at 0% 0%, rgb(200 160 90 / 0.08), transparent 65%),
      #091927;
    border-inline-end: 1px solid var(--line);
  }

  .sidebar-head {
    display: flex;
    min-block-size: 44px;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding-inline: 5px;
  }

  .app-brand {
    display: inline-flex;
    min-block-size: 44px;
    align-items: center;
    gap: 10px;
    color: var(--text);
    font-weight: 800;
    letter-spacing: 0.01em;
  }

  .app-brand img {
    inline-size: 31px;
    block-size: 31px;
    object-fit: contain;
  }

  .app-brand small {
    display: block;
    color: var(--text-3);
    font-family: var(--mono);
    font-size: 0.56rem;
    font-weight: 500;
    letter-spacing: 0.08em;
  }

  .icon-button {
    display: grid;
    inline-size: 44px;
    block-size: 44px;
    place-items: center;
    flex: 0 0 auto;
    color: var(--text-2);
    background: transparent;
    border-radius: 10px;
    cursor: pointer;
    transition:
      color 150ms ease,
      background 150ms ease,
      transform 150ms ease;
  }

  .icon-button:hover {
    color: var(--text);
    background: rgb(255 255 255 / 0.06);
  }

  .icon-button:active {
    transform: scale(0.96);
  }

  .new-chat-button {
    display: flex;
    min-block-size: 48px;
    align-items: center;
    justify-content: center;
    gap: 8px;
    color: #f8fbfe;
    background: linear-gradient(120deg, #173b5c, #102b45);
    border: 1px solid rgb(255 255 255 / 0.11);
    border-radius: 11px;
    box-shadow: 0 14px 30px -22px rgb(0 0 0 / 0.8);
    cursor: pointer;
    font-size: 0.9rem;
    font-weight: 700;
    transition:
      background 150ms ease,
      border-color 150ms ease;
  }

  .new-chat-button:hover {
    background: linear-gradient(120deg, #1a456c, #12334f);
    border-color: rgb(255 255 255 / 0.18);
  }

  .sidebar-label {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-block-size: 30px;
    padding-inline: 8px;
    color: var(--text-3);
    font-family: var(--mono);
    font-size: 0.66rem;
    letter-spacing: 0.06em;
  }

  .history-list {
    min-block-size: 0;
    min-inline-size: 0;
    overflow-x: hidden;
    overflow-y: auto;
    scrollbar-width: thin;
  }

  .history-list ul {
    display: grid;
    gap: 4px;
  }

  .history-item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 44px;
    align-items: center;
    border-radius: 9px;
  }

  .history-item:hover,
  .history-item.is-active {
    background: rgb(255 255 255 / 0.055);
  }

  .history-open {
    min-inline-size: 0;
    min-block-size: 44px;
    padding: 8px 7px 8px 10px;
    overflow: hidden;
    color: var(--text-2);
    background: transparent;
    border-radius: 9px;
    cursor: pointer;
    font-size: 0.8rem;
    text-align: start;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .history-open:hover {
    color: var(--text);
  }

  .history-actions {
    opacity: 0;
    transition: opacity 150ms ease;
  }

  .history-item:hover .history-actions,
  .history-item:focus-within .history-actions {
    opacity: 1;
  }

  .history-delete {
    display: grid;
    inline-size: 44px;
    block-size: 44px;
    place-items: center;
    color: var(--text-3);
    background: transparent;
    border-radius: 7px;
    cursor: pointer;
  }

  .history-delete:hover {
    color: var(--red);
    background: rgb(238 141 136 / 0.08);
  }

  .history-delete .icon {
    inline-size: 16px;
    block-size: 16px;
  }

  .history-empty {
    padding: 18px 10px;
    color: var(--text-3);
    font-size: 0.78rem;
    text-align: center;
  }

  .sidebar-foot {
    display: grid;
    gap: 9px;
    padding-block-start: 12px;
    border-block-start: 1px solid var(--line);
  }

  .credit-mini {
    padding: 12px;
    background: rgb(200 160 90 / 0.075);
    border: 1px solid rgb(211 173 104 / 0.18);
    border-radius: 10px;
  }

  .credit-mini-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    color: var(--text-3);
    font-size: 0.72rem;
  }

  .credit-mini strong {
    color: var(--gold-soft);
    font-family: var(--mono);
    font-size: 1.08rem;
    font-variant-numeric: tabular-nums;
  }

  .sidebar-link {
    display: flex;
    min-block-size: 44px;
    align-items: center;
    gap: 9px;
    padding: 8px 10px;
    color: var(--text-2);
    background: transparent;
    border-radius: 9px;
    cursor: pointer;
    font-size: 0.82rem;
    text-align: start;
  }

  .sidebar-link:hover {
    color: var(--text);
    background: rgb(255 255 255 / 0.05);
  }

  .sidebar-link .icon {
    inline-size: 18px;
    block-size: 18px;
  }

  .app-topbar {
    display: flex;
    min-inline-size: 0;
    align-items: center;
    gap: 12px;
    padding: 0 18px;
    background: rgb(7 21 34 / 0.78);
    border-block-end: 1px solid var(--line);
    backdrop-filter: blur(15px);
  }

  .mobile-sidebar-toggle {
    display: none;
  }

  .topbar-title {
    min-inline-size: 0;
  }

  .topbar-title strong {
    display: block;
    overflow: hidden;
    color: var(--text);
    font-size: 0.9rem;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .topbar-title span {
    display: block;
    margin-block-start: 1px;
    color: var(--text-3);
    font-size: 0.67rem;
  }

  .topbar-status {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-inline-start: auto;
  }

  .status-pill {
    display: inline-flex;
    min-block-size: 30px;
    align-items: center;
    gap: 7px;
    padding: 5px 10px;
    color: var(--text-2);
    background: var(--panel-2);
    border: 1px solid var(--line);
    border-radius: 999px;
    font-size: 0.7rem;
    white-space: nowrap;
  }

  .status-pill::before {
    inline-size: 6px;
    block-size: 6px;
    background: var(--green);
    border-radius: 50%;
    box-shadow: 0 0 0 3px rgb(117 215 170 / 0.1);
    content: "";
  }

  .status-pill[data-kind="demo"]::before {
    background: var(--amber);
    box-shadow: 0 0 0 3px rgb(232 189 107 / 0.1);
  }

  .status-pill[data-kind="busy"]::before {
    background: var(--red);
    box-shadow: 0 0 0 3px rgb(238 141 136 / 0.1);
  }

  .context-toggle {
    display: none;
  }

  .welcome {
    display: grid;
    min-block-size: 100%;
    align-content: center;
    padding-block: 32px 56px;
  }

  .welcome-mark {
    display: grid;
    inline-size: 52px;
    block-size: 52px;
    place-items: center;
    color: var(--gold-soft);
    background: linear-gradient(145deg, #173b59, #0c2134);
    border: 1px solid rgb(255 255 255 / 0.12);
    border-radius: 15px;
    box-shadow: 0 16px 40px -26px rgb(0 0 0 / 0.8);
  }

  .welcome-mark .icon {
    inline-size: 25px;
    block-size: 25px;
  }

  .welcome h1 {
    max-inline-size: 16ch;
    margin-block-start: 22px;
    color: var(--text);
    font-size: clamp(1.8rem, 1.3rem + 1.7vw, 2.8rem);
    letter-spacing: -0.035em;
  }

  .welcome > p {
    max-inline-size: 58ch;
    margin-block-start: 12px;
    font-size: 0.93rem;
  }

  .welcome-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 15px;
    margin-block-start: 16px;
    color: var(--text-3);
    font-size: 0.73rem;
  }

  .welcome-meta span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
  }

  .welcome-meta .icon {
    inline-size: 15px;
    block-size: 15px;
    color: var(--green);
  }

  .starter-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-block-start: 28px;
  }

  .starter-card {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr) 18px;
    gap: 10px;
    align-items: start;
    min-block-size: 100px;
    padding: 15px;
    color: var(--text-2);
    background: rgb(255 255 255 / 0.025);
    border: 1px solid var(--line);
    border-radius: 12px;
    cursor: pointer;
    text-align: start;
    transition:
      background 180ms ease,
      border-color 180ms ease,
      transform 180ms var(--ease);
  }

  .starter-card:hover {
    color: var(--text);
    background: rgb(255 255 255 / 0.045);
    border-color: var(--line-strong);
    transform: translateY(-2px);
  }

  .starter-number {
    color: var(--gold);
    font-family: var(--mono);
    font-size: 0.68rem;
    font-weight: 700;
  }

  .starter-copy b {
    display: block;
    color: var(--text);
    font-size: 0.84rem;
  }

  .starter-copy span {
    display: block;
    margin-block-start: 4px;
    color: var(--text-3);
    font-size: 0.73rem;
    line-height: 1.5;
  }

  .starter-card > .icon {
    inline-size: 16px;
    block-size: 16px;
    margin-block-start: 2px;
    color: var(--text-3);
  }

  .conversation {
    display: grid;
    gap: 28px;
    padding-block: 8px 30px;
  }

  .message {
    display: grid;
    gap: 8px;
    animation: message-in 230ms var(--ease);
  }

  @keyframes message-in {
    from {
      opacity: 0;
      transform: translateY(5px);
    }
  }

  .message-user {
    justify-items: end;
  }

  .message-user .message-bubble {
    max-inline-size: min(78%, 680px);
    padding: 12px 15px;
    color: #eff6fc;
    background: #143550;
    border: 1px solid rgb(255 255 255 / 0.08);
    border-radius: 14px 14px 4px;
    font-size: 0.91rem;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
  }

  .message-meta {
    color: var(--text-3);
    font-family: var(--mono);
    font-size: 0.63rem;
  }

  .message-assistant {
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 12px;
  }

  .assistant-avatar {
    display: grid;
    inline-size: 34px;
    block-size: 34px;
    place-items: center;
    color: var(--gold-soft);
    background: linear-gradient(145deg, #183d5e, #0c2237);
    border: 1px solid var(--line);
    border-radius: 10px;
  }

  .assistant-avatar .icon {
    inline-size: 18px;
    block-size: 18px;
  }

  .assistant-content {
    min-inline-size: 0;
  }

  .assistant-name {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 9px;
    min-block-size: 25px;
    color: var(--gold-soft);
    font-size: 0.78rem;
    font-weight: 700;
  }

  .message-note {
    color: var(--text-3);
    font-family: var(--mono);
    font-size: 0.62rem;
    font-weight: 400;
  }

  .answer-body {
    margin-block-start: 7px;
    color: #d6e2ec;
    font-size: 0.92rem;
    line-height: 1.78;
    overflow-wrap: anywhere;
  }

  .answer-body h2,
  .answer-body h3 {
    margin-block: 20px 8px;
    color: #f1f6fa;
    font-size: 1rem;
  }

  .answer-body h2:first-child,
  .answer-body h3:first-child {
    margin-block-start: 4px;
  }

  .answer-body p + p {
    margin-block-start: 10px;
  }

  .answer-body ul,
  .answer-body ol {
    display: grid;
    gap: 6px;
    margin-block: 10px;
    padding-inline-start: 1.2rem;
    list-style: disc;
  }

  .answer-body ol {
    list-style: decimal;
  }

  .answer-body li::marker {
    color: var(--gold);
  }

  .answer-body strong {
    color: #fff;
  }

  .answer-body code {
    padding: 1px 5px;
    color: #f0d6a3;
    background: rgb(255 255 255 / 0.06);
    border-radius: 4px;
    font-family: var(--mono);
    font-size: 0.84em;
  }

  .answer-sources {
    margin-block-start: 14px;
    padding: 11px 13px;
    color: var(--text-3);
    background: rgb(255 255 255 / 0.025);
    border: 1px solid var(--line);
    border-radius: 9px;
    font-size: 0.72rem;
  }

  .answer-sources b {
    color: var(--text-2);
  }

  .answer-status {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    margin-block-start: 12px;
    color: var(--text-3);
    font-family: var(--mono);
    font-size: 0.65rem;
  }

  .answer-status .spinner {
    inline-size: 13px;
    block-size: 13px;
    border: 1.5px solid var(--gold);
    border-inline-end-color: transparent;
    border-radius: 50%;
    animation: spin 680ms linear infinite;
  }

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

  .answer-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-block-start: 9px;
  }

  .answer-action {
    display: inline-flex;
    min-block-size: 44px;
    align-items: center;
    gap: 6px;
    padding: 10px 12px;
    color: var(--text-3);
    background: transparent;
    border-radius: 7px;
    cursor: pointer;
    font-size: 0.72rem;
  }

  .answer-action:hover,
  .answer-action[aria-pressed="true"] {
    color: var(--text);
    background: rgb(255 255 255 / 0.055);
  }

  .answer-action .icon {
    inline-size: 15px;
    block-size: 15px;
  }

  .typing-cursor::after {
    display: inline-block;
    inline-size: 7px;
    block-size: 14px;
    margin-inline-start: 2px;
    background: var(--gold);
    content: "";
    vertical-align: -2px;
    animation: blink 900ms step-end infinite;
  }

  @keyframes blink {
    50% {
      opacity: 0;
    }
  }

  .error-answer {
    padding: 13px 14px;
    color: #f2c5c2;
    background: rgb(184 61 61 / 0.12);
    border: 1px solid rgb(238 141 136 / 0.22);
    border-radius: 10px;
    font-size: 0.84rem;
  }

  .composer-wrap {
    position: relative;
    padding: 10px 18px max(14px, env(safe-area-inset-bottom));
    background:
      linear-gradient(to top, #071522 68%, rgb(7 21 34 / 0.84) 86%, transparent);
  }

  .composer-inner {
    inline-size: min(100%, 880px);
    margin-inline: auto;
  }

  .upload-tray {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-block-end: 8px;
  }

  .upload-chip {
    display: inline-flex;
    max-inline-size: min(100%, 280px);
    min-block-size: 34px;
    align-items: center;
    gap: 7px;
    padding: 5px 6px 5px 10px;
    color: var(--text-2);
    background: var(--panel-2);
    border: 1px solid var(--line);
    border-radius: 9px;
    font-size: 0.72rem;
  }

  .upload-chip.is-error {
    color: #f2c5c2;
    border-color: rgb(238 141 136 / 0.28);
  }

  .upload-chip.is-parsing {
    color: var(--amber);
  }

  .upload-chip-name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .upload-chip .icon {
    inline-size: 15px;
    block-size: 15px;
  }

  .chip-remove {
    display: grid;
    inline-size: 44px;
    block-size: 44px;
    place-items: center;
    color: var(--text-3);
    background: transparent;
    border-radius: 6px;
    cursor: pointer;
  }

  .chip-remove:hover {
    color: var(--text);
    background: rgb(255 255 255 / 0.06);
  }

  .composer {
    overflow: hidden;
    background: #0d2235;
    border: 1px solid var(--line-strong);
    border-radius: 16px;
    box-shadow: var(--shadow);
    transition:
      border-color 180ms ease,
      box-shadow 180ms ease;
  }

  .composer:focus-within {
    border-color: rgb(103 200 216 / 0.45);
    box-shadow:
      0 0 0 3px rgb(103 200 216 / 0.07),
      var(--shadow);
  }

  .composer-main {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: 8px;
    padding: 10px 10px 8px;
  }

  .question-input {
    min-block-size: 48px;
    max-block-size: 180px;
    padding: 11px 8px 6px;
    overflow-y: auto;
    color: var(--text);
    background: transparent;
    border: 0;
    outline: none;
    resize: none;
    font-size: 0.94rem;
    line-height: 1.55;
  }

  .question-input::placeholder {
    color: #71889d;
  }

  .send-button {
    display: grid;
    inline-size: 44px;
    block-size: 44px;
    place-items: center;
    color: #241906;
    background: linear-gradient(145deg, var(--gold-soft), var(--gold));
    border-radius: 11px;
    cursor: pointer;
    transition:
      transform 150ms ease,
      filter 150ms ease,
      opacity 150ms ease;
  }

  .send-button:hover {
    filter: brightness(1.05);
    transform: translateY(-1px);
  }

  .send-button:disabled {
    cursor: not-allowed;
    opacity: 0.34;
    transform: none;
  }

  .send-button.is-stop {
    color: #f3d4d1;
    background: #592e31;
  }

  .send-button .icon {
    inline-size: 20px;
    block-size: 20px;
  }

  .composer-tools {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 8px;
    align-items: center;
    padding: 7px 9px;
    border-block-start: 1px solid var(--line);
    background: rgb(255 255 255 / 0.018);
  }

  .tool-button {
    display: inline-flex;
    min-inline-size: 44px;
    min-block-size: 44px;
    align-items: center;
    gap: 6px;
    padding: 5px 8px;
    color: var(--text-3);
    background: transparent;
    border-radius: 7px;
    cursor: pointer;
    font-size: 0.7rem;
  }

  .tool-button:hover {
    color: var(--text);
    background: rgb(255 255 255 / 0.05);
  }

  .tool-button .icon {
    inline-size: 16px;
    block-size: 16px;
  }

  .estimate-inline {
    display: flex;
    flex-wrap: wrap;
    gap: 5px 11px;
    align-items: center;
    margin-inline-start: auto;
    color: var(--text-3);
    font-family: var(--mono);
    font-size: 0.63rem;
  }

  .estimate-inline strong {
    color: var(--gold-soft);
    font-weight: 600;
  }

  .composer-footnote {
    margin-block-start: 7px;
    color: #6d8499;
    font-size: 0.65rem;
    text-align: center;
  }

  .context-panel {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    min-block-size: 0;
    background:
      radial-gradient(300px 200px at 100% 0%, rgb(200 160 90 / 0.07), transparent 65%),
      #091927;
    border-inline-start: 1px solid var(--line);
  }

  .context-head {
    display: flex;
    min-block-size: 62px;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding-inline: 16px;
    border-block-end: 1px solid var(--line);
  }

  .context-head strong {
    font-size: 0.86rem;
  }

  .context-close {
    display: none;
  }

  .context-scroll {
    min-block-size: 0;
    padding: 15px;
    overflow-y: auto;
  }

  .context-section + .context-section {
    margin-block-start: 16px;
    padding-block-start: 16px;
    border-block-start: 1px solid var(--line);
  }

  .context-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-block-size: 28px;
    color: var(--text-2);
    font-size: 0.75rem;
    font-weight: 700;
  }

  .context-title .icon {
    inline-size: 16px;
    block-size: 16px;
    color: var(--gold);
  }

  .context-title-note {
    color: var(--text-3);
    font-family: var(--mono);
    font-size: 0.59rem;
    font-weight: 500;
  }

  .validity-card {
    margin-block-start: 10px;
    padding: 13px;
    background: rgb(211 173 104 / 0.075);
    border: 1px solid rgb(211 173 104 / 0.18);
    border-radius: 11px;
  }

  .validity-card strong {
    display: flex;
    align-items: center;
    gap: 7px;
    color: var(--gold-soft);
    font-size: 0.79rem;
  }

  .validity-card strong .icon {
    inline-size: 16px;
    block-size: 16px;
  }

  .validity-card p {
    margin-block-start: 6px;
    color: var(--text-3);
    font-size: 0.7rem;
    line-height: 1.55;
  }

  .validity-card .countdown {
    display: block;
    margin-block-start: 8px;
    color: var(--text-2);
    font-family: var(--mono);
    font-size: 0.66rem;
  }

  .file-list {
    display: grid;
    min-inline-size: 0;
    overflow-x: hidden;
    gap: 7px;
    margin-block-start: 10px;
  }

  .file-row {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr) 44px;
    gap: 8px;
    align-items: center;
    min-block-size: 48px;
    padding: 7px 6px 7px 9px;
    background: rgb(255 255 255 / 0.025);
    border: 1px solid var(--line);
    border-radius: 9px;
  }

  .file-row > .icon {
    inline-size: 17px;
    block-size: 17px;
    color: var(--text-3);
  }

  .file-copy {
    min-inline-size: 0;
  }

  .file-copy b {
    display: block;
    overflow: hidden;
    color: var(--text-2);
    font-size: 0.7rem;
    font-weight: 600;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .file-copy span {
    display: block;
    margin-block-start: 1px;
    color: var(--text-3);
    font-family: var(--mono);
    font-size: 0.57rem;
  }

  .file-copy span[data-state="failed"] {
    color: var(--red);
  }

  .file-copy span[data-state="parsing"] {
    color: var(--amber);
  }

  .file-delete {
    display: grid;
    inline-size: 44px;
    block-size: 44px;
    place-items: center;
    color: var(--text-3);
    background: transparent;
    border-radius: 7px;
    cursor: pointer;
  }

  .file-delete:hover {
    color: var(--red);
    background: rgb(238 141 136 / 0.08);
  }

  .file-delete .icon {
    inline-size: 15px;
    block-size: 15px;
  }

  .context-empty {
    padding: 14px 10px;
    color: var(--text-3);
    background: rgb(255 255 255 / 0.018);
    border: 1px dashed var(--line-strong);
    border-radius: 9px;
    font-size: 0.7rem;
    text-align: center;
  }

  .usage-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    margin-block-start: 10px;
  }

  .usage-box {
    padding: 11px;
    background: rgb(255 255 255 / 0.025);
    border: 1px solid var(--line);
    border-radius: 9px;
  }

  .usage-box span {
    display: block;
    color: var(--text-3);
    font-size: 0.63rem;
  }

  .usage-box strong {
    display: block;
    margin-block-start: 3px;
    color: var(--text);
    font-family: var(--mono);
    font-size: 0.9rem;
    font-variant-numeric: tabular-nums;
  }

  .credit-progress {
    block-size: 6px;
    margin-block-start: 10px;
    overflow: hidden;
    background: #071522;
    border-radius: 999px;
  }

  .credit-progress span {
    display: block;
    block-size: 100%;
    background: linear-gradient(90deg, var(--gold), var(--gold-soft));
    border-radius: inherit;
    transition: inline-size 300ms var(--ease);
  }

  .context-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 7px;
    margin-block-start: 10px;
  }

  .context-btn {
    display: inline-flex;
    min-block-size: 44px;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 7px;
    color: var(--text-2);
    background: rgb(255 255 255 / 0.035);
    border: 1px solid var(--line);
    border-radius: 8px;
    cursor: pointer;
    font-size: 0.68rem;
  }

  .context-btn:hover {
    color: var(--text);
    background: rgb(255 255 255 / 0.06);
    border-color: var(--line-strong);
  }

  .context-btn .icon {
    inline-size: 15px;
    block-size: 15px;
  }

  .boundary-note {
    color: var(--text-3);
    font-size: 0.68rem;
    line-height: 1.65;
  }

  .boundary-note + .boundary-note {
    margin-block-start: 7px;
  }

  .saas-nudge {
    display: block;
    margin-block-start: 10px;
    padding: 11px;
    color: var(--text-2);
    background: linear-gradient(135deg, rgb(200 160 90 / 0.09), rgb(255 255 255 / 0.02));
    border: 1px solid rgb(211 173 104 / 0.16);
    border-radius: 9px;
    font-size: 0.69rem;
    line-height: 1.55;
  }

  .saas-nudge b {
    color: var(--gold-soft);
  }

  .scrim {
    position: fixed;
    inset: 0;
    z-index: 100;
    display: none;
    background: rgb(0 7 13 / 0.62);
    backdrop-filter: blur(2px);
  }

  .app-page.sidebar-open .scrim,
  .app-page.context-open .scrim {
    display: block;
  }

  .auth-required {
    padding: 18px;
    background: rgb(13 34 54 / 0.96);
    border: 1px solid var(--line);
    border-radius: 12px;
  }

  .auth-required h2 {
    color: var(--text);
    font-size: 1.15rem;
  }

  .auth-required p {
    margin-block-start: 7px;
    font-size: 0.82rem;
  }

  .auth-required-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-block-start: 14px;
  }

  .btn {
    display: inline-flex;
    min-block-size: 44px;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 9px 15px;
    color: var(--text);
    background: rgb(255 255 255 / 0.05);
    border: 1px solid var(--line);
    border-radius: 9px;
    cursor: pointer;
    font-size: 0.8rem;
    font-weight: 700;
  }

  .btn:hover {
    background: rgb(255 255 255 / 0.08);
    border-color: var(--line-strong);
  }

  .btn-primary {
    color: #251a08;
    background: linear-gradient(145deg, var(--gold-soft), var(--gold));
    border-color: transparent;
  }

  .btn-primary:hover {
    filter: brightness(1.05);
    background: linear-gradient(145deg, var(--gold-soft), var(--gold));
  }

  .modal-backdrop {
    position: fixed;
    inset: 0;
    z-index: 140;
    display: grid;
    place-items: center;
    padding: 18px;
    background: rgb(0 7 13 / 0.7);
    backdrop-filter: blur(4px);
  }

  .modal-card {
    inline-size: min(100%, 560px);
    max-block-size: min(88dvh, 720px);
    overflow-y: auto;
    color: var(--text);
    background: #0c2134;
    border: 1px solid var(--line-strong);
    border-radius: 16px;
    box-shadow: 0 40px 120px -36px rgb(0 0 0 / 0.8);
  }

  .modal-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding: 18px 20px 14px;
    border-block-end: 1px solid var(--line);
  }

  .modal-head h2 {
    color: var(--text);
    font-size: 1.12rem;
  }

  .modal-head p {
    margin-block-start: 4px;
    color: var(--text-3);
    font-size: 0.76rem;
  }

  .modal-body {
    padding: 18px 20px 20px;
  }

  .package-list {
    display: grid;
    gap: 9px;
  }

  .package-option {
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
    padding: 13px;
    background: rgb(255 255 255 / 0.025);
    border: 1px solid var(--line);
    border-radius: 10px;
    cursor: pointer;
  }

  .package-option:has(input:checked) {
    border-color: rgb(211 173 104 / 0.5);
    background: rgb(211 173 104 / 0.075);
  }

  .package-option input {
    inline-size: 17px;
    block-size: 17px;
    accent-color: var(--gold);
  }

  .package-option b {
    display: block;
    color: var(--text);
    font-size: 0.85rem;
  }

  .package-option span {
    display: block;
    margin-block-start: 2px;
    color: var(--text-3);
    font-size: 0.68rem;
  }

  .package-price {
    color: var(--gold-soft);
    font-family: var(--mono);
    font-size: 0.76rem;
  }

  .app-page .toast-region {
    z-index: 180;
  }

  .app-page .toast {
    color: var(--text);
    background: #0d2438;
    border-color: var(--line-strong);
  }

  .app-page .toast-copy span {
    color: var(--text-3);
  }

  .app-page .skeleton {
    background: rgb(255 255 255 / 0.04);
  }

  @media (max-width: 1180px) {
    .context-close,
    .context-toggle {
      display: grid;
    }
  }

  @media (max-width: 760px) {
    .mobile-sidebar-toggle {
      display: grid;
    }

    .app-topbar {
      padding-inline: 9px 12px;
    }

    .topbar-status .status-pill {
      display: none;
    }

    .starter-grid {
      grid-template-columns: 1fr;
    }

    .starter-card {
      min-block-size: 84px;
    }

    .message-user .message-bubble {
      max-inline-size: 88%;
    }

    .message-assistant {
      grid-template-columns: 30px minmax(0, 1fr);
      gap: 9px;
    }

    .assistant-avatar {
      inline-size: 30px;
      block-size: 30px;
    }

    .composer-wrap {
      padding-inline: 10px;
    }

    .composer-footnote {
      display: none;
    }

    .tools-label {
      display: none;
    }

    .estimate-inline {
      inline-size: 100%;
      justify-content: flex-end;
      margin-inline-start: 0;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    .app-page *,
    .app-page *::before,
    .app-page *::after {
      animation-duration: 0.01ms !important;
      animation-iteration-count: 1 !important;
      scroll-behavior: auto !important;
      transition-duration: 0.01ms !important;
    }
  }

  @media (prefers-contrast: more) {
    .app-page {
      --line: rgb(255 255 255 / 0.2);
      --line-strong: rgb(255 255 255 / 0.34);
      --text-3: #a8bacb;
    }
  }
}

@layer utilities {
  .app-page .muted {
    color: var(--text-3);
  }

  .app-page .mono {
    font-family: var(--mono);
  }

  .app-page .mt-1 {
    margin-block-start: 8px;
  }

  .app-page .mt-2 {
    margin-block-start: 16px;
  }

  .app-page .mt-3 {
    margin-block-start: 24px;
  }
}

@layer components {
  .mobile-diagnosis {
    display: none;
  }

  .diagnosis-section {
    padding: 12px;
    background: rgb(255 255 255 / 0.025);
    border: 1px solid var(--line);
    border-radius: 12px;
  }

  .diagnosis-state {
    display: inline-flex;
    min-block-size: 26px;
    align-items: center;
    padding: 2px 8px;
    color: var(--text-2);
    background: var(--surface-2);
    border: 1px solid var(--line);
    border-radius: 999px;
    font-family: var(--mono);
    font-size: 0.58rem;
    font-weight: 700;
    white-space: nowrap;
  }

  .diagnosis-state[data-state="active"] {
    color: var(--green);
    background: rgb(117 215 170 / 0.09);
    border-color: rgb(117 215 170 / 0.25);
  }

  .diagnosis-state[data-state="pending"] {
    color: var(--amber);
    background: rgb(232 189 107 / 0.1);
    border-color: rgb(232 189 107 / 0.26);
  }

  .diagnosis-state[data-state="expired"] {
    color: var(--text-2);
    background: var(--surface-2);
    border-style: dashed;
  }

  .diagnosis-panel {
    display: grid;
    min-inline-size: 0;
    gap: 10px;
    margin-block-start: 10px;
  }

  .diagnosis-heading {
    display: flex;
    flex-wrap: wrap;
    gap: 5px 8px;
    align-items: center;
  }

  .diagnosis-heading b {
    color: var(--text);
    font-size: 0.82rem;
  }

  .diagnosis-heading span {
    padding: 1px 7px;
    color: var(--cyan);
    background: rgb(103 200 216 / 0.08);
    border-radius: 999px;
    font-size: 0.61rem;
    font-weight: 700;
  }

  .diagnosis-summary {
    display: -webkit-box;
    overflow: hidden;
    color: var(--text-2);
    font-size: 0.69rem;
    line-height: 1.65;
    white-space: pre-line;
    overflow-wrap: anywhere;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 6;
  }

  .diagnosis-summary.is-expanded {
    display: block;
    overflow: visible;
  }

  .diagnosis-summary-toggle {
    justify-self: start;
    min-block-size: 44px;
    padding: 10px 6px;
    color: var(--cyan);
    background: transparent;
    font-size: 0.63rem;
    font-weight: 700;
    cursor: pointer;
  }

  .diagnosis-notice {
    padding: 8px 9px;
    color: var(--text-2);
    background: var(--surface-2);
    border: 1px dashed var(--line-strong);
    border-radius: 8px;
    font-size: 0.66rem;
    line-height: 1.55;
  }

  .diagnosis-block {
    min-inline-size: 0;
    padding-block-start: 9px;
    border-block-start: 1px solid var(--line);
  }

  .diagnosis-block h3 {
    margin-block-end: 6px;
    color: var(--text-2);
    font-size: 0.65rem;
  }

  .diagnosis-list {
    display: grid;
    gap: 6px;
    min-inline-size: 0;
  }

  .diagnosis-list li {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 6px;
    align-items: start;
    color: var(--text-2);
    font-size: 0.66rem;
    line-height: 1.55;
    overflow-wrap: anywhere;
  }

  .diagnosis-tag {
    padding: 1px 5px;
    color: var(--green);
    background: rgb(117 215 170 / 0.09);
    border-radius: 5px;
    font-size: 0.56rem;
    font-weight: 700;
    white-space: nowrap;
  }

  .diagnosis-tag.is-hypothesis {
    color: var(--amber);
    background: rgb(232 189 107 / 0.09);
  }

  .diagnosis-empty {
    color: var(--text-3);
    font-size: 0.65rem;
  }

  .diagnosis-data-state {
    display: grid;
    gap: 4px;
    padding: 8px 9px;
    color: var(--text-3);
    background: rgb(255 255 255 / 0.022);
    border-inline-start: 3px solid var(--line-strong);
    font-size: 0.61rem;
    line-height: 1.5;
  }

  .diagnosis-data-state[data-state="active"] {
    border-inline-start-color: var(--green);
  }

  .diagnosis-data-state[data-state="expired"] {
    border-inline-start-style: dashed;
  }

  .diagnosis-edit-button {
    display: inline-flex;
    min-block-size: 44px;
    align-items: center;
    justify-content: center;
    gap: 7px;
    inline-size: 100%;
    margin-block-start: 10px;
    color: var(--text-2);
    background: transparent;
    border: 1px solid var(--line) !important;
    border-radius: 8px;
    font-size: 0.67rem;
    font-weight: 700;
    cursor: pointer;
  }

  .diagnosis-edit-button:hover {
    color: var(--text);
    background: rgb(255 255 255 / 0.04);
  }

  .diagnosis-edit-button .icon {
    inline-size: 15px;
    block-size: 15px;
  }

  .file-insight {
    margin-block-start: 3px !important;
    color: var(--cyan) !important;
    font-family: var(--sans) !important;
    font-size: 0.59rem !important;
    line-height: 1.45;
    white-space: normal !important;
    overflow-wrap: anywhere;
  }

  .diagnosis-extras {
    display: grid;
    gap: 12px;
    min-inline-size: 0;
    margin-block-start: 15px;
  }

  .clarification-card {
    padding: 13px;
    background:
      linear-gradient(135deg, rgb(103 200 216 / 0.07), transparent 62%),
      rgb(255 255 255 / 0.025);
    border: 1px solid rgb(103 200 216 / 0.2);
    border-radius: 11px;
  }

  .clarification-card h3,
  .data-card-heading h3,
  .saas-context-card h3 {
    color: var(--text);
    font-size: 0.8rem;
  }

  .clarification-card p {
    margin-block-start: 5px;
    color: var(--text-2);
    font-size: 0.71rem;
    line-height: 1.6;
  }

  .clarification-options {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-block-start: 11px;
  }

  .clarification-option {
    min-block-size: 44px;
    padding: 8px 12px;
    color: var(--text-2);
    background: var(--surface);
    border: 1px solid var(--line-strong) !important;
    border-radius: 9px;
    font-size: 0.69rem;
    font-weight: 700;
    cursor: pointer;
  }

  .clarification-option:hover {
    color: var(--text);
    border-color: var(--cyan) !important;
  }

  .clarification-option:disabled {
    opacity: 0.55;
    cursor: wait;
  }

  .data-card-list {
    display: grid;
    gap: 9px;
    min-inline-size: 0;
  }

  .data-card-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding: 3px 2px 0;
  }

  .data-card-heading h3 {
    margin-block-start: 2px;
  }

  .data-card-eyebrow {
    color: var(--gold-soft);
    font-family: var(--mono);
    font-size: 0.56rem;
    font-weight: 700;
    letter-spacing: 0.08em;
  }

  .data-card-count {
    flex: 0 0 auto;
    color: var(--text-3);
    font-family: var(--mono);
    font-size: 0.59rem;
  }

  .data-card {
    min-inline-size: 0;
    background: rgb(255 255 255 / 0.025);
    border: 1px solid var(--line);
    border-radius: 10px;
  }

  .data-card[data-priority="key"] {
    border-color: rgb(211 173 104 / 0.3);
  }

  .data-card summary {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) 18px;
    gap: 8px;
    align-items: center;
    min-block-size: 52px;
    padding: 10px 11px;
    color: var(--text-2);
    cursor: pointer;
    list-style: none;
  }

  .data-card summary::-webkit-details-marker {
    display: none;
  }

  .data-card summary:hover {
    background: rgb(255 255 255 / 0.025);
  }

  .data-card summary > .icon {
    inline-size: 16px;
    block-size: 16px;
    color: var(--text-3);
    transition: transform 180ms var(--ease);
  }

  .data-card[open] summary > .icon {
    transform: rotate(90deg);
  }

  .data-card-priority {
    padding: 2px 6px;
    color: var(--text-3);
    background: var(--surface-2);
    border-radius: 5px;
    font-size: 0.56rem;
    font-weight: 700;
    white-space: nowrap;
  }

  .data-card[data-priority="key"] .data-card-priority {
    color: var(--gold-soft);
    background: rgb(211 173 104 / 0.1);
  }

  .data-card-title {
    min-inline-size: 0;
    color: var(--text);
    font-size: 0.74rem;
    font-weight: 700;
    overflow-wrap: anywhere;
  }

  .data-card-body {
    display: grid;
    gap: 10px;
    padding: 0 11px 11px;
  }

  .data-card-body > p {
    color: var(--text-2);
    font-size: 0.69rem;
    line-height: 1.6;
  }

  .data-card-meta {
    display: grid;
    gap: 8px;
    min-inline-size: 0;
    margin: 0;
  }

  .data-card-meta > div {
    display: grid;
    grid-template-columns: 68px minmax(0, 1fr);
    gap: 8px;
    align-items: start;
  }

  .data-card-meta dt {
    color: var(--text-3);
    font-size: 0.62rem;
    font-weight: 700;
  }

  .data-card-meta dd {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    min-inline-size: 0;
    margin: 0;
    color: var(--text-2);
    font-size: 0.66rem;
    line-height: 1.55;
    overflow-wrap: anywhere;
  }

  .field-chip {
    padding: 1px 6px;
    color: var(--text-2);
    background: var(--surface-2);
    border: 1px solid var(--line);
    border-radius: 5px;
    white-space: nowrap;
  }

  .data-step {
    display: block;
    flex-basis: 100%;
  }

  .data-step + .data-step {
    margin-block-start: 2px;
  }

  .data-card-actions,
  .saas-context-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
  }

  .card-action {
    display: inline-flex;
    min-block-size: 44px;
    align-items: center;
    justify-content: center;
    padding: 7px 11px;
    color: var(--text-2);
    background: var(--surface);
    border: 1px solid var(--line-strong) !important;
    border-radius: 8px;
    font-size: 0.67rem;
    font-weight: 700;
    cursor: pointer;
  }

  .card-action:hover {
    color: var(--text);
    border-color: var(--cyan) !important;
  }

  .card-action.is-primary {
    color: var(--app-bg);
    background: var(--gold-soft);
    border-color: transparent !important;
  }

  .card-action.is-primary:hover {
    color: var(--app-bg);
    filter: brightness(1.05);
  }

  .card-action.is-quiet {
    background: transparent;
    border-color: var(--line) !important;
  }

  .data-card-footnote {
    color: var(--text-3);
    font-size: 0.6rem !important;
    line-height: 1.5 !important;
  }

  .saas-context-card {
    display: grid;
    gap: 10px;
    padding: 13px;
    background:
      linear-gradient(135deg, rgb(211 173 104 / 0.09), transparent 68%),
      rgb(255 255 255 / 0.025);
    border: 1px solid rgb(211 173 104 / 0.22);
    border-radius: 11px;
  }

  .saas-context-card p {
    margin-block-start: 4px;
    color: var(--text-2);
    font-size: 0.69rem;
    line-height: 1.6;
  }

  .diagnosis-form {
    display: grid;
    gap: 15px;
    min-inline-size: 0;
  }

  .diagnosis-form label {
    display: grid;
    gap: 6px;
    min-inline-size: 0;
    color: var(--text);
    font-size: 0.78rem;
    font-weight: 700;
  }

  .diagnosis-form label small {
    color: var(--text-3);
    font-size: 0.65rem;
    font-weight: 400;
    line-height: 1.45;
  }

  .diagnosis-form-note {
    padding: 10px;
    color: var(--text-2);
    background: var(--surface-2);
    border-inline-start: 3px solid var(--gold);
    border-radius: 7px;
    font-size: 0.69rem;
    line-height: 1.55;
  }

  .manual-data-fields {
    display: grid;
    gap: 12px;
  }

  .diagnosis-edit-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }

  .diagnosis-edit-form .textarea {
    min-block-size: 70px;
    resize: vertical;
  }

  @media (max-width: 760px) {
    .messages-inner {
      display: grid;
      gap: 10px;
    }

    .mobile-diagnosis {
      display: grid;
      grid-template-columns: minmax(0, 1fr) 44px;
      gap: 8px;
      align-items: center;
      min-inline-size: 0;
      padding: 10px 8px 10px 12px;
      background: rgb(255 255 255 / 0.86);
      border: 1px solid var(--line);
      border-radius: 11px;
      box-shadow: 0 12px 32px -28px rgb(14 42 71 / 0.4);
    }

    .mobile-diagnosis-copy {
      min-inline-size: 0;
    }

    .mobile-diagnosis-head {
      display: flex;
      flex-wrap: wrap;
      gap: 4px 8px;
      align-items: center;
    }

    .mobile-diagnosis-head b {
      color: var(--text);
      font-size: 0.76rem;
    }

    .mobile-diagnosis-head span {
      color: var(--text-3);
      font-size: 0.6rem;
      font-weight: 700;
    }

    .mobile-diagnosis p {
      display: -webkit-box;
      margin-block-start: 3px;
      overflow: hidden;
      color: var(--text-2);
      font-size: 0.64rem;
      line-height: 1.45;
      white-space: pre-line;
      -webkit-box-orient: vertical;
      -webkit-line-clamp: 2;
    }

    .data-card-summary,
    .data-card summary {
      min-block-size: 54px;
    }

    .data-card-actions .card-action,
    .saas-context-actions .card-action {
      flex: 1 1 calc(50% - 7px);
    }

    .data-card-meta > div {
      grid-template-columns: 1fr;
      gap: 3px;
    }

    .diagnosis-edit-grid {
      grid-template-columns: 1fr;
    }
  }
}
