/* Roxiechat dual-theme UI foundation — Bright / Dark / Auto */
:root, html[data-resolved-theme="dark"] {
  color-scheme: dark;
  --font-body: 'Space Grotesk', 'Be Vietnam Pro', 'Noto Sans', system-ui, sans-serif;
  --bg-0: #120e12; --bg-1: #171217; --bg-2: #211920; --bg-3: #292026;
  --text-1: #f4e8ec; --text-2: #d9c4cd; --text-3: #ad94a0; --text-4: #876f7a; --text-5: #614d56;
  --chat-text: #e6d6de;
  --accent: #a62b3b; --accent-hover: #c4384b; --accent-subtle: rgba(166,43,59,.15);
  --accent-ring: rgba(166,43,59,.42); --accent-glow: rgba(166,43,59,.22); --on-accent: #fff5f6;
  --em-color: #b897a4; --quote-color: #fff0f3; --quote-glow: none;
  --border: rgba(240,216,225,.10); --border-hover: rgba(240,216,225,.22);
  --glass-0: rgba(18,14,18,.95); --glass-1: rgba(23,18,23,.96); --glass-2: rgba(33,25,32,.96); --glass-3: rgba(41,32,38,.96);
  --glass-panel: var(--glass-1); --glass-ai: var(--glass-2); --glass-user: #3b202c;
  --glass-border: var(--border); --glass-edge: none; --glass-shadow: 0 8px 28px rgba(0,0,0,.35); --glass-shadow-deep: 0 20px 56px rgba(0,0,0,.6); --glass-shadow-medium: 0 6px 20px rgba(0,0,0,.3);
  --solid-panel: #171217; --solid-card: #211920; --solid-input: #1a141a;
  --input-bg: #1a141a; --input-bg-focus: #211920; --input-border: var(--border); --input-border-hover: var(--border-hover); --input-focus: var(--accent); --input-ring: 0 0 0 3px var(--accent-subtle);
  --placeholder: #7f6672; --btn-bg: #211920; --btn-bg-hover: #292026; --btn-bg-active: #332730; --btn-border-hover: var(--accent); --btn-glow: none;
  --avatar-ring: 0 0 0 2px var(--bg-1), 0 0 0 3px var(--accent); --name-glow: none; --hero-accent: #fff0f3; --hero-accent-dim: #b897a4;
  --scrollbar-thumb: #4a3039; --scrollbar-thumb-hover: #a62b3b;
  --r-sm: 10px; --r-md: 14px; --r-lg: 18px; --r-xl: 24px; --r-bubble: 20px;
  --sidebar-w: 240px; --page-pad: clamp(16px, 2.5vw, 36px); --content-max: 1440px; --chat-max: 880px;
  --danger-bg: rgba(255,107,122,.12); --danger-text: #ff9daa; --error: #ff8c9b; --error-hover: #ffacb7;
  --success: #80c9a5; --warning: #e5bc75; --info: #91b9dc; --like: #ef8ca7;
}
html[data-resolved-theme="bright"] {
  color-scheme: light;
  --font-body: 'Space Grotesk', 'Be Vietnam Pro', 'Noto Sans', system-ui, sans-serif;
  --bg-0: #fbf7f0; --bg-1: #fffdf9; --bg-2: #f5ede4; --bg-3: #eadfd5;
  --text-1: #44352f; --text-2: #66524a; --text-3: #806c62; --text-4: #968279; --text-5: #ad998f;
  --chat-text: #514139;
  --accent: #a77539; --accent-hover: #8d602e; --accent-subtle: rgba(196,151,81,.13); --accent-ring: rgba(167,117,57,.32); --accent-glow: rgba(167,117,57,.12); --on-accent: #fffdf9;
  --em-color: #8a7165; --quote-color: #6f4828; --quote-glow: none;
  --border: rgba(104,76,52,.13); --border-hover: rgba(104,76,52,.25);
  --glass-0: rgba(251,247,240,.96); --glass-1: rgba(255,253,249,.97); --glass-2: rgba(249,243,235,.98); --glass-3: rgba(238,226,215,.98);
  --glass-panel: var(--glass-1); --glass-ai: #fffaf3; --glass-user: #f2e2ca;
  --glass-border: var(--border); --glass-edge: none; --glass-shadow: 0 8px 28px rgba(91,64,37,.07); --glass-shadow-deep: 0 20px 56px rgba(91,64,37,.14); --glass-shadow-medium: 0 6px 20px rgba(91,64,37,.07);
  --solid-panel: #fffdf9; --solid-card: #fffaf3; --solid-input: #fffaf3;
  --input-bg: #fffaf3; --input-bg-focus: #fffdf9; --input-border: var(--border); --input-border-hover: var(--border-hover); --input-focus: var(--accent); --input-ring: 0 0 0 3px var(--accent-subtle);
  --placeholder: #a18d81; --btn-bg: #f8f1e8; --btn-bg-hover: #f0e5d8; --btn-bg-active: #e9dac8; --btn-border-hover: var(--accent); --btn-glow: none;
  --avatar-ring: 0 0 0 2px var(--bg-1), 0 0 0 3px #c69a5c; --hero-accent: #573a27; --hero-accent-dim: #806c62;
  --scrollbar-thumb: #cdb9a5; --scrollbar-thumb-hover: #a77539;
  --danger-bg: rgba(183,62,72,.09); --danger-text: #a83e4b; --error: #ad4250; --error-hover: #8e3440;
  --success: #397b60; --warning: #966a22; --info: #47749c; --like: #bd5c76;
}
html, body { width: 100%; min-width: 0; }
body { font-size: 14px; line-height: 1.5; background: var(--bg-0); color: var(--text-1); }
button, input, textarea, select { font-family: inherit; }
button, a, input, textarea, select { -webkit-tap-highlight-color: transparent; }
button svg, a svg { flex-shrink: 0; }
img, svg, video, canvas, iframe { max-width: 100%; }
input, textarea, select { min-width: 0; font-size: 14px; }
select { color-scheme: light; }
html[data-resolved-theme="dark"] select { color-scheme: dark; }
::selection { background: var(--accent-subtle); color: var(--text-1); }

/* Shell: stable viewport, adaptive rail and readable content measure. */
.app-shell {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  height: 100dvh;
  min-height: 0;
  isolation: isolate;
  background: transparent;
  display: flex;
}
.app-shell::before { position: absolute; z-index: 0; }
.content-area {
  position: relative;
  z-index: 1;
  flex: 1 1 auto;
  min-width: 0;
  min-height: 0;
  height: 100%;
  background: transparent;
}
.page { min-width: 0; min-height: 0; scrollbar-gutter: stable; }
.content-header, .chat-header {
  position: sticky;
  top: 0;
  z-index: 20;
  min-height: 68px;
  padding: calc(12px + env(safe-area-inset-top, 0)) var(--page-pad) 12px;
  gap: 14px;
  background: var(--solid-panel);
  border-color: var(--border);
  box-shadow: none;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
.content-header { flex-wrap: nowrap; }
.content-header h1 { font-size: clamp(19px, 2vw, 24px); font-weight: 600; letter-spacing: -.025em; }
.sidebar { width: var(--sidebar-w); max-width: min(290px, 88vw); padding: 20px 14px; background: var(--solid-panel); border-color: var(--border); box-shadow: none; }
.sb-brand { padding: 4px 8px 18px; gap: 12px; }
.sb-mark { width: 42px; height: 42px; border-radius: 14px; border: 1px solid var(--border); }
.sb-name { font-size: 17px; letter-spacing: -.02em; }
.sidebar-top { margin-bottom: 10px; }
.sb-nav { gap: 6px; overflow-y: auto; min-height: 0; }
.sb-item { min-height: 46px; padding: 11px 13px; border: 1px solid transparent; border-radius: 14px; font-size: 14px; }
.sb-item svg { width: 20px; height: 20px; stroke-linecap: round; stroke-linejoin: round; }
.sb-item.active { background: var(--accent-subtle); border-color: var(--accent-ring); color: var(--accent); }
.sb-item:hover { background: var(--btn-bg-hover); color: var(--text-1); }
.sb-bottom { display: block; padding-top: 12px; }

/* Shared controls */
.btn-primary, .btn-sm, .pm-btn, .bank-primary-btn, .bank-secondary-btn, .bank-danger-btn, .cm-new, .bg-upload-btn, .bg-remove-btn {
  min-height: 42px; border-radius: 12px; font-size: 13px; line-height: 1.35;
}
.btn-primary, .pm-btn-primary, .cm-new, .bank-primary-btn { box-shadow: none; }
.btn-sm, .pm-btn, .bank-secondary-btn, .bank-danger-btn { border-color: var(--border); }
.btn-primary:hover, .pm-btn-primary:hover, .cm-new:hover { box-shadow: none; }
.modal-card, .app-dialog-card, .profile-card, .checkin-card, .profile-section, .cf-section, .cf-avatar-upload, .cf-banner-upload, .persona-form, .import-card-section {
  background: var(--solid-card); border-color: var(--border); box-shadow: var(--glass-shadow); -webkit-backdrop-filter: none; backdrop-filter: none;
}
.modal-card { padding: 24px; border-radius: 24px; }
.modal-title { font-size: 19px; }
.modal-desc, .modal-label, .modal-input, .modal-error, .modal-fine, .app-dialog-msg, .app-dialog-input { font-size: 14px; }
.pm-input, .pm-label, .pm-textarea, .cf-field input, .cf-field textarea, .cf-field select, .pf-input, .modal-input, .msg-edit-input { font-size: 14px; }
.pm-input, .cf-field input, .cf-field select, .pf-input, .modal-input { min-height: 44px; }
input[type="range"] { height: 4px; }
input[type="range"]::-webkit-slider-thumb { width: 18px; height: 18px; border-radius: 50%; clip-path: none; }
input[type="range"]::-moz-range-thumb { width: 18px; height: 18px; border-radius: 50%; clip-path: none; }
.toggle { width: 44px; height: 24px; }
.toggle-slider { border-radius: 999px; }
.toggle-slider::before { width: 18px; height: 18px; left: 2px; bottom: 2px; }
.toggle input:checked + .toggle-slider::before { transform: translateX(20px); }

/* Explore */
.header-search { width: min(340px, 42vw); }
.header-search input { width: 100%; height: 44px; padding: 0 16px 0 42px; border-radius: 14px; cursor: text; font-size: 14px; }
.header-search svg { width: 40px; height: 44px; padding: 12px; }
.header-search:focus-within input, .header-search input:not(:placeholder-shown) { width: 100%; }
.home-tabs { gap: 8px; padding: 16px var(--page-pad) 8px; max-width: var(--content-max); width: 100%; margin: 0 auto; }
.htab { min-height: 40px; padding: 8px 17px; border-radius: 999px; font-size: 13px; }
.card-grid { grid-template-columns: repeat(auto-fill, minmax(min(190px, 42vw), 1fr)); gap: clamp(12px, 1.5vw, 22px); padding: 16px var(--page-pad) 48px; max-width: var(--content-max); margin: 0 auto; }
.char-card { padding: 0; border-radius: 20px; box-shadow: var(--glass-shadow); }
.char-card::before { display: none; }
.char-card:hover { transform: translateY(-3px); box-shadow: var(--glass-shadow-deep); border-color: var(--accent-ring); }
.cc-img-wrap { border-radius: 19px; }
.cc-bottom { padding: 14px; gap: 4px; background: rgba(20,13,17,.72); }
.cc-name { font-size: 17px; }
.cc-stat, .cc-creator { font-size: 12px; }
.cc-like-btn { top: 10px; right: 10px; border-radius: 999px; }
.cc-badge { top: 10px; left: 10px; border-radius: 999px; }

/* Conversations and forms */
.conv-list { width: 100%; max-width: 920px; margin: 0 auto; padding: 20px var(--page-pad) 48px; display: grid; gap: 8px; }
.conv-item-row { background: var(--bg-1); border: 1px solid var(--border); border-radius: 18px; }
.conv-item { min-height: 78px; padding: 14px 16px; }
.conv-item-avi { width: 50px; height: 50px; border-radius: 16px; }
.conv-item-name { font-size: 15px; }
.conv-item-preview, .conv-item-time { font-size: 12px; }
.create-form-wrap { max-width: 900px; padding: 22px var(--page-pad) 64px; }
.create-form { gap: 16px; }
.cf-section, .cf-avatar-upload, .cf-banner-upload, .import-card-section { padding: clamp(16px, 2.4vw, 26px); border-radius: 20px; }
.cf-section-title, .ps-title { color: var(--text-2); font-size: 14px; }
.cf-field label, .cf-hint, .lore-desc, .lore-entry-meta, .lore-entry-name, .lore-act { font-size: 13px; }
.cf-field input, .cf-field textarea, .cf-field select { padding: 12px 14px; }
.cf-field textarea { max-height: none; }
.cf-submit-wrap { padding: 8px 0 0; background: transparent; }
.cc-fancy-btn { animation: none; height: 50px; max-width: 320px; background: var(--accent); border: 0; color: var(--on-accent); }
.cc-fancy-btn:hover { transform: translateY(-1px); }
.cc-btn-label { color: var(--on-accent); letter-spacing: .04em; font-size: 14px; text-shadow: none; }
.cc-btn-stars, .cc-btn-glow { display: none; }

/* Profile */
.profile-content, .creator-content, .pm-content, .admin-content { width: 100%; max-width: 1080px; padding: 24px var(--page-pad) 64px; }
.profile-hero-card { padding: 22px; border-radius: 22px; }
.pf-avatar { width: 64px; height: 64px; font-size: 20px; }
.pf-name { font-size: 20px; }
.pf-email, .pf-balance-label { font-size: 13px; }
.pf-balance-val { font-size: 20px; }
.profile-tabs-bar { gap: 8px; border: 0; padding: 0; }
.profile-tab-btn { min-height: 42px; font-size: 13px; }
.profile-section { padding: 20px; border-radius: 20px; }
.pf-toggle-row { min-height: 50px; font-size: 14px; }
.checkin-title, .checkin-desc, .ck-cal-month { font-size: 13px; }
.persona-card-title, .persona-card-desc, .persona-card-btn { font-size: 13px; }
.theme-settings-desc { color: var(--text-3); font-size: 13px; margin: -4px 0 16px; }
.roxie-theme-options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.roxie-theme-option { min-height: 106px; padding: 12px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 9px; border: 1px solid var(--border); border-radius: 16px; background: var(--bg-1); color: var(--text-2); font-size: 13px; }
.roxie-theme-option:hover { border-color: var(--accent); background: var(--accent-subtle); }
.roxie-theme-option.active { border-color: var(--accent); box-shadow: 0 0 0 2px var(--accent-subtle); color: var(--accent); }
.theme-swatch { width: 48px; height: 40px; display: grid; place-items: center; overflow: hidden; border-radius: 12px; border: 1px solid var(--border); }
.theme-swatch img { width: 100%; height: 100%; object-fit: cover; }
.theme-swatch-bright { background: #f8efe2; }
.theme-swatch-dark { background: #191317; }
.theme-swatch-auto { background: var(--bg-2); color: var(--text-2); }

/* Chat: the header wraps its utilities instead of clipping them. */
.chat-header { min-height: 68px; padding: 10px var(--page-pad); flex-wrap: nowrap; }
.ch-char { max-width: 360px; }
.ch-avatar { width: 42px; height: 42px; border-radius: 14px; }
.ch-name { font-size: 15px; }
.ch-creator, .ch-status { font-size: 12px; }
.ch-selects { margin-left: auto; align-items: center; gap: 7px; overflow-x: auto; padding: 3px; scrollbar-width: none; }
.ch-selects::-webkit-scrollbar { display: none; }
.ch-model { min-height: 40px; max-width: 180px; padding: 7px 32px 7px 11px; font-size: 13px; }
.ch-letter, .ch-collapse { width: 40px; height: 40px; border-radius: 12px; }
.chat-intro { padding: 32px 20px 16px; }
.ci-avatar { width: 80px; height: 80px; border-radius: 24px; }
.ci-name { font-size: 20px; }
.ci-desc { font-size: 14px; max-width: 520px; }
.ci-tag { font-size: 12px; }
.chat-messages, .chat-composer { max-width: var(--chat-max); }
.chat-messages { padding: 20px var(--page-pad); gap: 14px; }
.msg { max-width: 82%; gap: 10px; }
.msg-avi, .avi-frame { width: 36px; height: 36px; }
.msg-text { padding: 13px 16px; font-size: var(--chat-fs, 14px); line-height: 1.7; }
.msg-time { font-size: 11px; }
.msg-user .msg-text, .msg-card { box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
.msg-user .msg-text { background: var(--glass-user); }
.msg-card { background: var(--glass-ai); }
.msg-action { width: 32px; min-width: 32px; height: 32px; }
.swipe-btn { width: 30px; height: 30px; }
.chat-composer { padding: 10px var(--page-pad) calc(14px + env(safe-area-inset-bottom, 0)); }
.container-ia-chat { display: grid; grid-template-columns: 88px minmax(0, 1fr) 46px; align-items: end; gap: 8px; }
textarea.input-text, textarea.input-text:focus, textarea.input-text:valid {
  grid-column: 2; grid-row: 1; width: 100%; min-height: 48px; margin: 0; padding: 13px 15px;
  border-radius: 16px; font-size: 14px; line-height: 21px; background: var(--input-bg); box-shadow: none; z-index: 1;
}
.container-upload-files { position: static; grid-column: 1; grid-row: 1; transform: none; align-self: center; gap: 4px; z-index: 2; }
.upload-file { width: 42px; height: 44px; border-radius: 12px; }
.label-text { position: static; grid-column: 3; grid-row: 1; width: 46px; height: 46px; transform: none; align-self: center; border-radius: 14px; }
.label-text .button-elem { margin: 16px; }
.label-text:hover .button-box, .label-text:focus .button-box { transform: none; }
.label-text .button-elem + .button-elem { display: none; }
.cmp-resend { right: 58px; top: auto; bottom: 7px; transform: none; }
.cmp-resend:hover { transform: none; }
.input-text:focus ~ .container-upload-files { pointer-events: auto; }
.card-action { font-size: 13px; }
.lock-notice { font-size: 13px; }

/* Prompt, regex and admin content uses the same readable scale. */
.pm-desc, .pm-card-name, .pm-card-description, .pm-card-state, .pm-details-btn, .pm-group-hint, .pm-chip, .rx-name, .rx-meta, .rx-badge, .rx-empty, .rx-fold-title, .rx-fold-hint, .admin-tab, .admin-row-main strong, .admin-row-main small, .admin-row-meta { font-size: 13px; }
.pm-group, .rx-fold, .rx-group { border-radius: 16px; }
.pm-card { border-radius: 14px; }
.pm-group-grid { grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr)); }
.pm-grid { grid-template-columns: 1fr; }
.admin-tabs, .admin-feat-tabs { overflow-x: auto; flex-wrap: nowrap; scrollbar-width: none; }
.admin-tab { white-space: nowrap; min-height: 44px; }
.toast { font-size: 13px; border-radius: 14px; background: var(--solid-panel); box-shadow: var(--glass-shadow-deep); }

@media (min-width: 768px) {
  .sidebar { width: var(--sidebar-w); }
  .content-header, .chat-header { padding-top: 12px; padding-bottom: 12px; }
  .page-home, .page-chats, .page-create, .page-profile, .page-creator, .page-prompts, .page-regex, .page-admin { background: var(--bg-0); }
  .card-grid { grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); }
  .my-chars-grid { grid-template-columns: repeat(auto-fill, minmax(125px, 1fr)); gap: 12px; }
  body.wide-view { --content-max: 1800px; --chat-max: 1160px; }
  body.wide-view .profile-content, body.wide-view .creator-content, body.wide-view .pm-content { max-width: 1280px; }
  .msg-card:has(.msg-banner) .msg-text { font-size: var(--chat-fs, 14px); }
}
@media (min-width: 1500px) {
  :root, html[data-resolved-theme="dark"], html[data-resolved-theme="bright"] { --sidebar-w: 256px; }
  .card-grid { grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); }
}
@media (max-width: 767px) {
  body { font-size: 14px; }
  .app-shell {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    height: 100%;
    height: 100dvh;
    padding-bottom: calc(68px + env(safe-area-inset-bottom, 0));
  }
  .mobile-tab-bar {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    top: auto;
    height: calc(68px + env(safe-area-inset-bottom, 0));
    background: var(--solid-panel);
    box-shadow: none;
    z-index: var(--z-tabbar, 50);
  }
  .content-header {
    position: sticky;
    top: 0;
    z-index: 20;
    min-height: 56px;
    padding: calc(12px + env(safe-area-inset-top, 0)) 16px 10px;
  }
  .content-header h1 { font-size: 19px; }
  .hamburger { width: 40px; height: 40px; }
  .header-search { width: 44px; }
  .header-search input { width: 44px; height: 42px; padding-left: 40px; cursor: pointer; }
  .header-search svg { height: 42px; }
  .header-search:focus-within { position: absolute; left: 66px; right: 16px; width: auto; z-index: 3; background: var(--solid-panel); }
  .header-search:focus-within input, .header-search input:not(:placeholder-shown) { width: 100%; cursor: text; }
  .home-tabs { padding: 10px 14px 8px; }
  .card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding: 12px 12px 32px; }
  .cc-bottom { padding: 10px; }
  .cc-name { font-size: 14px; }
  .cc-stat, .cc-creator { font-size: 11px; }
  .char-card:hover { transform: none; }
  .mtb-item { font-size: 11px; gap: 3px; }
  .mtb-item svg { width: 22px; height: 22px; }
  .conv-list { padding: 12px 12px 32px; }
  .conv-item { padding: 12px; min-height: 72px; }
  .conv-item-avi { width: 46px; height: 46px; }
  .create-form-wrap, .profile-content, .creator-content, .pm-content, .admin-content { padding: 14px 12px 40px; }
  .profile-hero-card { padding: 16px; gap: 12px; flex-wrap: wrap; }
  .pf-balance-badge { margin-left: auto; padding: 8px 12px; }
  .pf-name { font-size: 17px; }
  .profile-section { padding: 16px; }
  .roxie-theme-options { gap: 8px; }
  .roxie-theme-option { min-height: 94px; padding: 9px 5px; font-size: 12px; }
  .persona-card-actions { padding-left: 0; }
  .chat-header {
    display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 8px 10px;
    min-height: 60px; padding: calc(8px + env(safe-area-inset-top, 0)) 12px 8px;
  }
  .ch-back { grid-column: 1; grid-row: 1; width: 38px; height: 38px; }
  .ch-char { grid-column: 2; grid-row: 1; max-width: none; }
  .ch-avatar { width: 38px; height: 38px; }
  .ch-name { font-size: 14px; }
  .ch-selects {
    grid-column: 1 / -1; grid-row: 2; width: 100%; margin: 0; justify-self: stretch;
    flex-wrap: nowrap; gap: 6px; overflow-x: auto; padding: 2px 0;
  }
  #chatPersona { flex: 1 0 132px; width: auto; min-width: 132px; height: 38px; padding: 6px 28px 6px 10px; color: var(--text-1); background-image: none; font-size: 13px; }
  .ch-letter, .ch-collapse { flex: 0 0 38px; width: 38px; height: 38px; }
  .chat-messages { padding: 14px 12px; gap: 12px; }
  .msg { max-width: 94%; gap: 7px; }
  .msg .msg-avi, .msg .avi-frame { width: 30px; height: 30px; }
  .msg-text { padding: 11px 13px; font-size: var(--chat-fs, 14px); }
  .msg-time { font-size: 10px; }
  .msg-action { width: 30px; min-width: 30px; height: 30px; }
  .chat-composer { padding: 8px 10px calc(10px + env(safe-area-inset-bottom, 0)); }
  .container-ia-chat { grid-template-columns: 76px minmax(0, 1fr) 44px; gap: 6px; }
  .upload-file { width: 36px; min-width: 36px; height: 44px; }
  .label-text { width: 44px; height: 44px; }
  .label-text .button-elem { margin: 15px; }
  textarea.input-text, textarea.input-text:focus, textarea.input-text:valid { min-height: 46px; padding: 12px; font-size: 16px; }
  .cmp-resend { right: 54px; }
  .msg-banner { height: 170px; }
  .page-chat.header-collapsed .chat-messages { padding-top: 70px; }
  .pm-edit-row { flex-wrap: wrap; }
  .modal-card { padding: 20px; }
}
@media (max-width: 380px) {
  .card-grid { gap: 9px; padding-left: 9px; padding-right: 9px; }
  .cc-name { font-size: 13px; }
  .cc-creator { display: none; }
  .container-ia-chat { grid-template-columns: 42px minmax(0, 1fr) 42px; }
  .container-upload-files #modelBtn { display: none; }
  .label-text { width: 42px; height: 42px; }
  .pf-balance-badge { width: 100%; margin: 0; text-align: left; }
}
@media (prefers-reduced-motion: reduce) {
  .char-card:hover, .cc-fancy-btn:hover { transform: none; }
}
