/* OBSIDIAN BLACK V2 — presentation layer. Retains component geometry and hidden states. */

/* 01 / Foundation */
html { scroll-padding-block: 24px; }
body, body.inside-app {
  background: var(--noir-bg) !important;
  color: var(--noir-text) !important;
  font-size: var(--noir-text-base);
  line-height: 1.6;
  -webkit-text-size-adjust: 100%;
}
body, button, input, select, textarea { font-family: var(--noir-font) !important; }
::selection { background: #FFFFFF33; color: var(--noir-text); }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
button, a { touch-action: manipulation; }
svg { flex-shrink: 0; }
:where(h1, h2, h3, p, small, label, strong, b) { overflow-wrap: anywhere; }
:where(input, select, textarea) { max-width: 100%; accent-color: var(--noir-violet); }
:where(a, button, input, textarea, select, summary):focus-visible {
  outline: 3px solid var(--noir-blue) !important;
  outline-offset: 3px;
}
:where(input, textarea)::placeholder { color: var(--noir-muted); opacity: 1; }
:where(input, textarea, select):disabled { cursor: not-allowed; }
[hidden] { display: none !important; }
.brand { gap: 11px; color: var(--noir-text); letter-spacing: .14em; }
.brand-logo, .logo-square, .market-home .brand-logo, .inside-app .brand-logo {
  background: linear-gradient(145deg, #FFFFFF, #FFFFFF);
  color: #FFFFFF; border: 1px solid #FFFFFF33; border-radius: 12px;
  box-shadow: inset 0 1px 0 #FFFFFF24;
}
.brand-spark { color: #F5F5F5; }
.brand-word { font-size: 1rem; font-weight: 750; }
.green-dot, .ribbon-dot, .art-online { background: var(--noir-green); box-shadow: none; }
.eyebrow, .home-eyebrow { font-size: .6875rem; letter-spacing: .13em; }
.eyebrow.accent, .home-eyebrow { color: var(--noir-accent-text); }
.btn, .btn.large, .inside-app .btn {
  min-height: 44px; padding: 11px 18px; border-radius: var(--noir-radius-md);
  font-size: .875rem; font-weight: 650; line-height: 1.4; white-space: normal;
  background: var(--noir-raised); color: var(--noir-text);
  border: 1px solid var(--noir-line); box-shadow: none;
  transition: background-color var(--noir-transition), border-color var(--noir-transition), transform var(--noir-press);
}
.btn.primary, .inside-app .btn.primary, .inside-app button.btn.primary,
.btn.nav-cta, .market-home .btn.primary, .market-home .btn.nav-cta, .filter-button, .inside-app .filter-button, .send-button {
  background: var(--noir-violet); color: var(--noir-action-text); border: 1px solid transparent;
  box-shadow: inset 0 1px 0 #FFFFFF1A;
}
.btn.primary:hover:not(:disabled), .inside-app .btn.primary:hover:not(:disabled),
.btn.nav-cta:hover, .market-home .btn.primary:hover, .market-home .btn.nav-cta:hover, .filter-button:hover:not(:disabled), .send-button:hover:not(:disabled) {
  background: var(--noir-text); color: var(--noir-action-text); filter: none;
}
.btn.ghost, .btn.glass-button, .market-home .glass-button { background: var(--noir-surface); border-color: var(--noir-line); color: var(--noir-text); }
.btn.danger { color: var(--noir-danger-text); background: #DC555510; border-color: #DC555550; }
.btn:hover:not(:disabled) { transform: none; border-color: var(--noir-line-strong); }
.btn:active:not(:disabled) { transform: scale(.98); transition-duration: var(--noir-press); }
.btn:disabled, button:disabled { opacity: .55; }
.text-back, .back-home, .link-button { color: var(--noir-accent-text); min-height: 44px; }
.small-note, .muted-small, .legal-note { color: var(--noir-muted); font-size: .8125rem; line-height: 1.65; }
.notice, .notice.warning {
  background: var(--noir-raised); color: var(--noir-text); border-color: var(--noir-line);
  padding: 16px; border-radius: var(--noir-radius-md); font-size: .8125rem; flex-wrap: wrap;
}
.notice.warning { color: var(--noir-warning-text); border-color: #525252; }
.notice > span { min-width: 0; flex: 1 1 190px; }
.notice a { min-height: 32px; display: inline-flex; align-items: center; }
.toast {
  background: var(--noir-surface); color: var(--noir-text); border-color: var(--noir-line-strong);
  border-radius: var(--noir-radius-md); box-shadow: var(--noir-shadow-float);
  font-size: .875rem; padding: 16px 20px; overflow-wrap: anywhere;
  transition: opacity var(--noir-transition), transform var(--noir-transition);
}
.loading-panel, .empty-state {
  background: var(--noir-surface); border: 1px solid var(--noir-line);
  border-radius: var(--noir-radius-lg); color: var(--noir-muted); padding: 32px 20px;
  min-height: 180px; height: auto; font-size: .875rem; text-align: center;
}
.empty-state h3, .empty-state h2 { color: var(--noir-text); font-size: 1.25rem; }
.empty-state svg { color: var(--noir-accent-text); }
.spinner { border-color: var(--noir-line); border-top-color: var(--noir-accent-text); flex-shrink: 0; }

/* 02 / App navigation. The original six destinations remain available. */
.inside-app .app-shell {
  grid-template-columns: 236px minmax(0, 1fr); background: var(--noir-bg) !important;
  height: 100vh; height: 100dvh; min-height: 0;
}
.inside-app .app-main { background: var(--noir-bg) !important; height: 100vh; height: 100dvh; min-height: 0; }
.inside-app .app-content { background: var(--noir-bg) !important; color: var(--noir-text) !important; scrollbar-color: var(--noir-line-strong) transparent; }
.inside-app .app-sidebar {
  background: var(--noir-inset) !important; border-color: var(--noir-line) !important;
  padding: 30px 16px 20px; overflow-y: auto;
}
.inside-app .sidebar-head { padding: 0 9px 46px; }
.sidebar-group-label { color: var(--noir-muted); font-size: .625rem; letter-spacing: .12em; padding-inline: 13px; }
.inside-app .side-links { gap: 6px; }
.inside-app .side-links a {
  min-height: 48px; height: auto; margin: 0; padding: 13px;
  background: transparent; border: 1px solid transparent;
  color: var(--noir-muted) !important; font-size: .8125rem; font-weight: 550;
  border-radius: var(--noir-radius-md); transition: background-color var(--noir-transition), color var(--noir-transition);
}
.inside-app .side-links a svg { color: currentColor; }
.inside-app .side-links a:hover { background: var(--noir-hover); color: var(--noir-text) !important; }
.inside-app .side-links a.active {
  background: var(--noir-selected) !important; color: var(--noir-accent-text) !important;
  border-color: #FFFFFF22; box-shadow: none;
}
.inside-app .side-links a.active svg { color: var(--noir-accent-text); }
.side-separator { background: var(--noir-line); }
.inside-app .avatar, .inside-app .top-avatar {
  background: var(--noir-selected); color: var(--noir-accent-text);
  border: 1px solid #FFFFFF22; border-radius: 13px;
}
.inside-app .top-avatar { width: 44px; height: 44px; }
.profile-meta b { font-size: .8125rem; color: var(--noir-text); }
.profile-meta small, .sidebar-home { font-size: .75rem; color: var(--noir-muted); }
.profile-link { border-radius: var(--noir-radius-md); }
.profile-link.active, .profile-link:hover { background: var(--noir-hover); }
.sidebar-home { padding: 14px 9px; line-height: 1.5; }
.inside-app .app-topbar {
  background: var(--noir-glass) !important; border-color: var(--noir-line) !important;
  min-height: 82px; height: auto; flex: 0 0 auto; padding: 16px 32px;
  gap: 16px; box-shadow: var(--noir-inset-light);
}
.app-topbar > div:first-child { min-width: 0; }
.inside-app .app-topbar strong { color: var(--noir-text); font-size: 1.125rem; letter-spacing: -.02em; }
.inside-app .app-breadcrumb { color: var(--noir-muted) !important; font-size: .6875rem; letter-spacing: .02em; }
.app-breadcrumb span { color: var(--noir-line-strong); margin-inline: 7px; }
.status-inline { color: var(--noir-muted); font-size: .75rem; }
.topbar-right { flex-shrink: 0; gap: 18px; }
.inside-app .mobile-app-nav { background: var(--noir-glass) !important; border-color: var(--noir-line) !important; }
@supports ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .inside-app .app-topbar, .inside-app .mobile-app-nav {
    -webkit-backdrop-filter: none; backdrop-filter: none;
  }
}

/* 03 / Welcome site. Existing content, links and category actions are retained. */
.marketing.market-home { background: var(--noir-bg); color: var(--noir-text); }
.market-home .site-mesh { opacity: .15; }
.top-ribbon { background: var(--noir-inset); color: var(--noir-muted); border-color: var(--noir-line); }
.ribbon-inner, .ribbon-inner a { color: var(--noir-muted); font-size: .6875rem; }
.market-home .site-nav { border-color: var(--noir-line); }
.market-home .nav-links { color: var(--noir-muted); gap: 26px; }
.market-home .nav-links a:hover, .nav-signin:hover { color: var(--noir-text); }
.nav-signin { color: var(--noir-muted); min-height: 44px; align-items: center; }
.market-hero { padding-block: 72px 80px; }
.market-hero h1 { color: var(--noir-text); font-weight: 730; letter-spacing: -.055em; font-size: clamp(2.5rem, 4.8vw, 4.5rem); line-height: 1.08; white-space: normal; }
.market-gradient { background: none; color: var(--noir-accent-text); -webkit-text-fill-color: currentColor; }
.hero-kicker { color: var(--noir-muted); font-size: .625rem; letter-spacing: .12em; line-height: 1.8; white-space: normal; }
.market-hero-sub { color: var(--noir-muted); font-size: 1rem; line-height: 1.8; max-width: 34rem; }
.market-hero-actions { gap: 12px; }
.hero-metrics { gap: 22px; }
.hero-metrics strong { color: var(--noir-text); }
.hero-metrics span { color: var(--noir-muted); font-size: .6875rem; }
.hero-metrics i { background: var(--noir-line); }
.art-board { background: var(--noir-surface); border-color: var(--noir-line-strong); box-shadow: var(--noir-shadow-float); transform: rotate(-3deg); max-width: 100%; }
.art-window-top { color: var(--noir-muted); border-color: var(--noir-line); }
.art-feature { background: linear-gradient(140deg, #FFFFFF08, #FFFFFF04), var(--noir-inset); border-color: var(--noir-line); }
.art-feature-label { color: var(--noir-muted); }
.art-feature-bottom b { color: var(--noir-text); }
.art-feature-bottom small { color: var(--noir-muted); }
.art-arrow { background: var(--noir-selected); color: var(--noir-accent-text); }
.art-minicards > div, .art-floating { background: var(--noir-surface); border-color: var(--noir-line); color: var(--noir-text); box-shadow: var(--noir-shadow); backdrop-filter: none; }
.art-minicards small, .art-floating small { color: var(--noir-muted); }
.art-aura { opacity: .25; filter: none; }
.art-orbit { opacity: .25; }
.market-partners { border-color: var(--noir-line); color: var(--noir-muted); }
.market-partners > span { color: var(--noir-muted); }
.section-title-row h2, .bottom-action h2, .future-copy h2 { color: var(--noir-text); letter-spacing: -.045em; }
.section-title-row h2 em, .future-copy h2 span { color: var(--noir-accent-text); }
.section-title-row p, .bottom-action p, .future-copy p { color: var(--noir-muted); }
.text-link { color: var(--noir-accent-text); }
.category-mosaic .cat-tile { background: var(--noir-surface); border-color: var(--noir-line); box-shadow: var(--noir-inset-light); border-radius: var(--noir-radius-lg); }
.category-mosaic .cat-tile:hover { transform: translateY(-2px); border-color: var(--noir-line-strong); }
.cat-tile strong { color: var(--noir-text); }
.cat-tile small { color: var(--noir-muted); }
.cat-visual { color: var(--noir-accent-text); filter: none; }
.cat-vehicle .cat-visual { color: #BEBEBE; }
.cat-home .cat-visual { color: var(--noir-success-text); }
.home-process { background: var(--noir-inset); border-color: var(--noir-line); }
.process-grid article { background: var(--noir-surface); border-color: var(--noir-line); border-radius: var(--noir-radius-lg); }
.process-count, .process-grid p { color: var(--noir-muted); }
.process-grid h3 { color: var(--noir-text); }
.process-illustration { color: var(--noir-accent-text); background: var(--noir-selected); box-shadow: none; }
.future-card { background: var(--noir-hero); border-color: var(--noir-line); border-radius: var(--noir-radius-xl); }
.future-glow { opacity: .2; filter: none; }
.future-pill { background: var(--noir-selected); color: var(--noir-accent-text); border-color: #FFFFFF22; }
.future-orb { box-shadow: var(--noir-shadow); }
.footer, .footer p { color: var(--noir-muted); border-color: var(--noir-line); }
.footer .brand { color: var(--noir-text); }
.footer-links { flex-wrap: wrap; }

/* Responsive shell; all six existing mobile links fit from 320 px. */
@media (max-width: 1100px) and (min-width: 851px) {
  .inside-app .app-shell { grid-template-columns: 214px minmax(0, 1fr); }
  .inside-app .app-sidebar { padding-inline: 12px; }
  .inside-app .side-links a { padding-inline: 10px; gap: 9px; }
  .inside-app .app-topbar { padding-inline: 24px; }
  .market-home .nav-links { gap: 14px; font-size: .75rem; }
}
@media (max-width: 850px) {
  .inside-app .app-shell { display: flex; flex-direction: column; min-height: 0; }
  .inside-app .app-sidebar { display: none; }
  .inside-app .app-topbar { padding: max(12px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) 12px max(16px, env(safe-area-inset-left)); min-height: 72px; }
  .inside-app .app-topbar strong { font-size: 1.0625rem; }
  .inside-app .app-content { padding-bottom: calc(82px + env(safe-area-inset-bottom)) !important; }
  .status-inline { display: none; }
  .inside-app .mobile-app-nav {
    display: grid; grid-template-columns: repeat(6, minmax(0, 1fr));
    position: fixed; bottom: 0; left: 0; right: 0; z-index: 15;
    height: auto; min-height: calc(72px + env(safe-area-inset-bottom));
    padding: 5px max(4px, env(safe-area-inset-right)) calc(5px + env(safe-area-inset-bottom)) max(4px, env(safe-area-inset-left));
    gap: 1px; overflow-x: hidden; border-top: 1px solid var(--noir-line);
  }
  .inside-app .mobile-app-nav a {
    display: flex; flex-direction: column; justify-content: center; align-items: center;
    gap: 5px; min-width: 0; min-height: 60px; padding: 6px 1px;
    color: var(--noir-muted) !important; border-radius: 12px;
    font-weight: 550; white-space: normal; line-height: 1.25;
  }
  .inside-app .mobile-app-nav a span { font-size: .625rem; max-width: 100%; overflow-wrap: anywhere; }
  .inside-app .mobile-app-nav a.active { color: var(--noir-accent-text) !important; background: var(--noir-selected) !important; }
  .inside-app .mobile-app-nav a svg { width: 21px; height: 21px; }
  .toast { bottom: calc(88px + env(safe-area-inset-bottom)); left: 16px; right: 16px; max-width: none; }
  .market-hero { padding-top: 44px; }
}
@media (max-width: 590px) {
  .container { width: calc(100% - 32px); }
  .market-home .site-nav { flex-wrap: wrap; gap: 14px; height: auto; min-height: 80px; padding-block: 16px; }
  .market-home .nav-actions { gap: 12px; flex-wrap: wrap; }
  .market-home .nav-actions .btn { font-size: .75rem; min-height: 44px; }
  .market-home .nav-signin { font-size: .8125rem; }
  .market-hero { gap: 32px; }
  .market-hero h1 { font-size: clamp(2.125rem, 9.8vw, 3.25rem); }
  .market-hero-sub { font-size: .9375rem; }
  .market-hero-actions .btn { width: 100%; }
  .hero-metrics { flex-wrap: wrap; gap: 16px; }
  .hero-metrics span { font-size: .6875rem; }
  .market-art { max-width: 100%; height: auto; min-height: 0; padding-block: 32px; }
  .art-floating.art-top { left: 4px; top: 14px; transform: none; font-size: .6875rem; }
  .art-floating.art-bottom { right: 4px; bottom: 10px; transform: none; }
  .section-title-row { gap: 20px; flex-wrap: wrap; }
  .art-board { transform: none; }
}

/* 04 / Marketplace. Search geometry and price validation remain unchanged. */
.inside-app .market-layout { max-width: 1536px; padding: 32px 32px 48px; }
.market-welcome {
  min-height: 214px; padding: 32px; gap: 28px;
  background: var(--noir-hero) !important; color: var(--noir-text) !important;
  border: 1px solid var(--noir-line) !important; border-radius: var(--noir-radius-xl);
  box-shadow: var(--noir-inset-light); align-items: center;
}
.market-welcome::before { background: none; filter: none; }
.market-welcome > div:first-child { min-width: 0; }
.market-welcome .eyebrow { color: var(--noir-accent-text); font-size: .6875rem; letter-spacing: .12em; }
.market-welcome h1 { color: var(--noir-text) !important; font-size: var(--noir-heading); letter-spacing: -.045em; line-height: 1.15; font-weight: 720; margin: 14px 0 12px; }
.market-welcome h1 span { color: var(--noir-accent-text); }
.market-welcome p { color: var(--noir-muted); font-size: .875rem; line-height: 1.75; max-width: 36rem; }
.welcome-trust { font-size: .75rem; color: var(--noir-muted); margin-top: 22px; gap: 12px 20px; }
.welcome-trust svg { color: var(--noir-muted); }
.welcome-actions { gap: 12px; max-width: 100%; }
.welcome-actions .btn { box-shadow: var(--noir-inset-light); padding: 14px 20px; min-height: 48px; }
.welcome-actions > span { font-size: .75rem; color: var(--noir-muted); }
.brain-market-link { font-size: .8125rem; color: var(--noir-accent-text); line-height: 1.5; }
.welcome-decoration { color: #FFFFFF08; font-size: 240px; top: -80px; right: 14%; }
.market-discover { margin-top: 32px; }
.block-head { margin-bottom: 16px; align-items: center; }
.block-head h2 { color: var(--noir-text); font-size: 1.125rem; letter-spacing: -.02em; font-weight: 650; }
.block-head > span { color: var(--noir-muted); font-size: .75rem; }
.category-chips { gap: 10px; }
.category-chip {
  min-height: 88px; background: var(--noir-surface); border: 1px solid var(--noir-line);
  border-radius: var(--noir-radius-md); box-shadow: none; color: var(--noir-muted);
  gap: 10px; padding: 12px 6px; transition: background-color var(--noir-transition), border-color var(--noir-transition);
}
.category-chip svg { color: var(--noir-accent-text); }
.category-chip:nth-child(3n+2) svg { color: #BEBEBE; }
.category-chip:nth-child(3n) svg { color: var(--noir-success-text); }
.category-chip span { font-size: .75rem; font-weight: 550; color: var(--noir-text); line-height: 1.4; white-space: normal; }
.category-chip:hover, .category-chip.is-selected { transform: none; background: var(--noir-selected); border-color: #FFFFFF55; box-shadow: none; }
.market-search-panel { margin-top: 24px; background: var(--noir-surface); border: 1px solid var(--noir-line); border-radius: var(--noir-radius-lg); padding: 18px; box-shadow: none; }
.market-search-panel .searchbox {
  color: var(--noir-muted); background: var(--noir-inset); border: 1px solid var(--noir-line);
  border-radius: var(--noir-radius-md); min-height: 48px;
}
.market-search-panel .searchbox:focus-within { border-color: var(--noir-blue); }
.market-search-panel #market-search .searchbox input {
  background: transparent !important; color: var(--noir-text) !important;
  font-size: 1rem; border: 0 !important; padding: 12px 10px;
}
.market-search-panel select, .market-search-panel #market-search .market-price-field input {
  color: var(--noir-text) !important; background: var(--noir-inset) !important;
  border: 1px solid var(--noir-line) !important; border-radius: var(--noir-radius-md);
  min-height: 48px; font-size: .875rem; padding-inline: 12px;
}
.market-search-panel #market-search .market-price-field { color: var(--noir-muted); font-size: .75rem; font-weight: 500; }
.market-search-panel #market-search .market-price-field input[aria-invalid="true"] { border-color: var(--noir-danger-text) !important; }
.market-search-panel .market-price-error:not([hidden]) { color: var(--noir-danger-text); background: #DC555510; border-color: #DC555550; font-size: .8125rem; }
.market-price-hint { color: var(--noir-muted); font-size: .75rem; line-height: 1.6; margin-bottom: 0; }
.market-results-toolbar { margin-top: 24px; gap: 14px; }
.browse-modes { display: flex; flex-wrap: wrap; gap: 6px; padding: 4px; background: var(--noir-inset); border: 1px solid var(--noir-line); border-radius: var(--noir-radius-md); }
.browse-modes button { color: var(--noir-muted); font-size: .8125rem; font-weight: 550; background: transparent; border: 1px solid transparent; border-radius: 10px; min-height: 44px; padding: 10px 14px; }
.browse-modes button.selected { background: var(--noir-raised); color: var(--noir-text); border-color: var(--noir-line); box-shadow: var(--noir-inset-light); }
.browse-modes button:hover { color: var(--noir-text); }
.browse-modes button em { background: var(--noir-selected); color: var(--noir-accent-text); font-style: normal; }
.browse-helper, .market-favorites-sync { color: var(--noir-muted); font-size: .75rem; }
.market-favorites-sync { margin-top: 12px; }
.inside-app .market-results { margin-top: 20px; }
.inside-app .results-head { margin-bottom: 18px; padding: 0; flex-wrap: wrap; gap: 12px; }
.inside-app .results-head span { color: var(--noir-text); font-size: 1.1875rem; font-weight: 650; }
.inside-app .results-head small { color: var(--noir-muted); font-size: .75rem; }
.inside-app .results-head .results-tag { color: var(--noir-muted); font-size: .625rem; letter-spacing: .08em; background: transparent; border-color: var(--noir-line); }
.inside-app .listing-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.product-wrap { min-width: 0; }
.inside-app .market-v4 .listing-card {
  width: 100%; height: 100%; background: var(--noir-surface) !important; color: var(--noir-text) !important;
  border: 1px solid var(--noir-line) !important; border-radius: var(--noir-radius-lg);
  box-shadow: none; transition: border-color var(--noir-transition), box-shadow var(--noir-transition);
}
.inside-app .listing-card:hover { transform: none; box-shadow: var(--noir-shadow); }
.inside-app .market-v4 .listing-card:hover { border-color: var(--noir-line-strong) !important; }
.inside-app .listing-image { height: auto; aspect-ratio: 4 / 3; background: var(--noir-raised); }
.inside-app .listing-image img { height: 100%; width: 100%; object-fit: cover; transform: none; transition: none; }
.inside-app .listing-card:hover .listing-image img { transform: none; }
.placeholder-picture { background: var(--noir-raised); color: var(--noir-muted); }
.inside-app .listing-status { color: #F5F5F5; background: #080808F2; border: 1px solid #FFFFFF26; border-radius: 8px; padding: 5px 9px; top: 12px; left: 12px; font-size: .6875rem; max-width: calc(100% - 72px); overflow-wrap: anywhere; }
.inside-app .listing-detail { padding: 18px; }
.inside-app .listing-price { color: var(--noir-text); font-size: 1.5rem; font-weight: 720; line-height: 1.3; letter-spacing: -.035em; overflow-wrap: anywhere; }
.inside-app .listing-detail h3 { color: var(--noir-text); font-size: .9375rem; font-weight: 550; line-height: 1.5; margin: 8px 0; white-space: normal; overflow-wrap: anywhere; min-height: 0; }
.inside-app .listing-detail p { color: var(--noir-muted); font-size: .75rem; line-height: 1.5; margin-bottom: 16px; gap: 6px; }
.inside-app .listing-footer { color: var(--noir-muted); border-color: var(--noir-line); font-size: .6875rem; gap: 8px; flex-wrap: wrap; padding-top: 12px; }
.favorite-button {
  width: 44px; height: 44px; right: 10px; top: 10px; border-radius: 14px;
  background: #101010F2; color: #F5F5F5; border: 1px solid #FFFFFF26;
  backdrop-filter: none; -webkit-backdrop-filter: none; box-shadow: 0 3px 9px #0002;
  transition: background-color var(--noir-transition), transform var(--noir-press);
}
.favorite-button:hover, .favorite-button.is-favorite { background: #191919; color: #FFFFFF; border-color: #FFFFFF66; }
.favorite-button:active { transform: scale(.94); }
.favorite-button.is-favorite svg { fill: #FFFFFF33; }
.market-safety-note { color: var(--noir-muted); font-size: .75rem; align-items: flex-start; line-height: 1.75; }
.market-safety-note svg { margin-top: 3px; color: var(--noir-success-text); }
.inside-app .detail-grid { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 24px; align-items: start; }
.inside-app .detail-image { background: var(--noir-inset); border-color: var(--noir-line); border-radius: var(--noir-radius-lg); height: clamp(300px, 36vw, 520px); }
.gallery-thumb { background: var(--noir-surface); border-color: var(--noir-line); width: 80px; height: 72px; border-radius: 12px; }
.gallery-thumb.active { border-color: var(--noir-accent-text); }
.detail-tip { color: var(--noir-muted); font-size: .75rem; }
.inside-app .detail-info { background: var(--noir-surface); border-color: var(--noir-line); border-radius: var(--noir-radius-lg); padding: 28px; min-width: 0; }
.inside-app .detail-info h1 { color: var(--noir-text); font-size: clamp(1.5rem, 2.4vw, 2rem); letter-spacing: -.035em; line-height: 1.25; }
.inside-app .detail-price { color: var(--noir-text); font-size: 2.25rem; line-height: 1.3; overflow-wrap: anywhere; }
.inside-app .detail-location, .product-description { color: var(--noir-muted); font-size: .875rem; line-height: 1.8; }
.listing-info-pills { flex-wrap: wrap; }
.listing-info-pills span { color: var(--noir-muted); background: var(--noir-raised); font-size: .75rem; }
.inside-app .seller-chip { background: var(--noir-inset); border-color: var(--noir-line); border-radius: var(--noir-radius-md); }
.seller-chip > div { min-width: 0; }
.inside-app .seller-chip strong { font-size: .875rem; color: var(--noir-text); }
.inside-app .seller-chip small { font-size: .8125rem; color: var(--noir-muted); }
.detail-buttons { grid-template-columns: 1fr; }
.detail-buttons .btn { min-height: 48px; }
.inside-app .listing-form { background: var(--noir-surface); border-color: var(--noir-line); border-radius: var(--noir-radius-lg); gap: 20px; padding: 28px; }
.inside-app .listing-form > label, .inside-app .listing-form .form-row label { color: var(--noir-text); font-size: .875rem; }
.inside-app .listing-form :is(input, textarea, select) { color: var(--noir-text) !important; background: var(--noir-inset) !important; border: 1px solid var(--noir-line) !important; border-radius: 12px; font-size: 1rem; padding: 12px; }
.inside-app .listing-form .file-drop { background: var(--noir-inset); border-color: var(--noir-line-strong); color: var(--noir-accent-text); }
.file-drop small, .upload-preview { color: var(--noir-muted); font-size: .75rem; }
.market-media-fieldset { border-color: var(--noir-line); }
.market-media-fieldset legend, .market-photo-choice span { color: var(--noir-text); }
.inside-app .listing-form .market-photo-choice { background: var(--noir-inset); border-color: var(--noir-line); }
.inside-app .create-v4 > p { color: var(--noir-muted); }

@media (min-width: 1560px) { .inside-app .listing-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 851px) and (max-width: 1180px) { .inside-app .listing-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 1180px) {
  .market-welcome { flex-wrap: wrap; }
  .welcome-actions { align-items: flex-start; }
}
@media (max-width: 1000px) {
  .inside-app .detail-grid { grid-template-columns: 1fr; }
  .inside-app .detail-image { height: 420px; }
}
@media (max-width: 850px) {
  .inside-app .market-layout { padding: 24px 20px 32px; }
  .inside-app .listing-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
  .market-welcome { padding: 28px; }
  .market-welcome h1 { font-size: 2.25rem; }
}
@media (max-width: 590px) {
  .inside-app .market-layout { padding: 16px 16px 28px; }
  .market-welcome { display: block; min-height: 0; padding: 24px 20px; border-radius: var(--noir-radius-lg); }
  .market-welcome h1 { font-size: 2rem; line-height: 1.15; margin-block: 14px 12px; }
  .market-welcome p { font-size: .875rem; }
  .market-welcome .eyebrow { font-size: .625rem; }
  .welcome-actions { margin-top: 22px; align-items: stretch; gap: 10px; }
  .welcome-actions > span, .brain-market-link { text-align: center; }
  .welcome-actions .btn { min-height: 48px; font-size: .875rem; }
  .welcome-trust { display: flex; gap: 8px 14px; margin-top: 16px; font-size: .6875rem; }
  .welcome-decoration { font-size: 160px; right: -10px; top: -35px; }
  .market-discover { margin-top: 24px; }
  .block-head { gap: 12px; flex-wrap: wrap; margin-bottom: 14px; }
  .block-head h2 { font-size: 1rem; }
  .block-head > span { font-size: .75rem; }
  .category-chips { gap: 8px; padding: 2px 2px 10px; scroll-padding-inline: 2px; }
  .category-chip { flex: 0 0 94px; min-height: 86px; border-radius: 14px; }
  .category-chip span { font-size: .75rem; }
  .market-search-panel { margin-top: 16px; padding: 14px; }
  .market-search-panel #market-search { gap: 12px; }
  .market-search-panel select, .market-search-panel #market-search .market-price-field input { font-size: 1rem; }
  .market-price-hint, .market-search-panel .market-price-hint { font-size: .75rem; }
  .market-results-toolbar { margin-top: 18px; }
  .browse-modes { flex-wrap: wrap; justify-content: flex-start; width: 100%; gap: 4px; }
  .browse-modes button { flex: 1 1 auto; font-size: .75rem; padding: 9px 8px; gap: 5px; }
  .market-favorites-sync { font-size: .75rem; margin-bottom: 20px; }
  .inside-app .results-head { padding: 0; margin-bottom: 16px; }
  .inside-app .results-head span { font-size: 1.125rem; }
  .inside-app .results-head small { font-size: .75rem; }
  .inside-app .listing-grid { gap: 12px; }
  .inside-app .market-v4 .listing-card { border-radius: 16px; }
  .inside-app .listing-detail { padding: 14px 12px; }
  .inside-app .listing-price { font-size: 1.125rem; }
  .inside-app .listing-detail h3 { font-size: .875rem; margin-block: 8px; }
  .inside-app .listing-detail p { font-size: .75rem; }
  .inside-app .listing-footer { font-size: .6875rem; }
  .inside-app .listing-status { left: 8px; top: 8px; font-size: .625rem; padding: 4px 6px; }
  .favorite-button { top: 7px; right: 7px; width: 44px; height: 44px; }
  .favorite-button svg { width: 20px; height: 20px; }
  .inside-app .detail-image { height: 300px; }
  .inside-app .detail-info { padding: 20px; }
  .inside-app .detail-price { font-size: 2rem; }
  .inside-app .listing-form { padding: 18px; }
  .inside-app .listing-form .form-row { grid-template-columns: 1fr; gap: 16px; }
}
@media (max-width: 359px) {
  .inside-app .market-layout { padding-inline: 12px; }
  .market-welcome { padding: 22px 18px; }
  .market-welcome h1 { font-size: 1.875rem; }
  .inside-app .listing-grid { grid-template-columns: 1fr; }
  .inside-app .listing-detail { padding: 18px; }
  .inside-app .listing-price { font-size: 1.5rem; }
}

/* 05 / Market Chat and Messenger. Message text and read states are untouched. */
.chats-layout { grid-template-columns: minmax(260px, 320px) minmax(0, 1fr); min-height: 0; }
.chats-panel { background: var(--noir-inset); border-color: var(--noir-line); }
.chat-list-head { padding: 28px 24px 20px; border-color: var(--noir-line); }
.chat-list-head h2 { color: var(--noir-text); font-size: 1.625rem; font-weight: 680; letter-spacing: -.03em; }
.chat-list-head p, .chat-side-help, .chat-empty-line { color: var(--noir-muted); font-size: .8125rem; }
.chat-row { padding: 14px 12px; border-radius: var(--noir-radius-md); color: var(--noir-text); min-height: 72px; }
.chat-row:hover, .chat-row.active { background: var(--noir-selected); }
.chat-row strong { font-size: .875rem; font-weight: 600; }
.chat-row small { color: var(--noir-muted); font-size: .75rem; }
.chat-row .date-mini { color: var(--noir-muted); font-size: .6875rem; }
.chat-thread { background: var(--noir-bg); min-height: 0; }
.empty-chat { color: var(--noir-muted); font-size: .9375rem; line-height: 1.8; }
.empty-chat h3 { color: var(--noir-text); }
.empty-chat p { color: var(--noir-muted); font-size: .875rem; }
.huge-chat-icon, .soon-mark { background: var(--noir-selected); border: 1px solid #FFFFFF22; color: var(--noir-accent-text); box-shadow: none; }
.inside-app .chat-soon { background: var(--noir-bg); color: var(--noir-text); }
.soon-screen p { color: var(--noir-muted); font-size: .9375rem; }
.thread-head { height: auto; min-height: 80px; padding: 16px 24px; gap: 12px; border-color: var(--noir-line); background: var(--noir-surface); flex-wrap: wrap; }
.thread-head > div { min-width: 0; }
.thread-head strong { color: var(--noir-text); font-size: .9375rem; line-height: 1.5; }
.thread-head small { color: var(--noir-muted); font-size: .75rem; }
.thread-messages { padding: 28px; gap: 16px; min-height: 150px; scrollbar-color: var(--noir-line-strong) transparent; }
.chat-bubble { background: var(--noir-message); color: var(--noir-text); border: 1px solid var(--noir-line); padding: 14px 18px; border-radius: 18px 18px 18px 6px; font-size: .9375rem; line-height: 1.7; max-width: min(82%, 650px); }
.chat-bubble.mine { background: var(--noir-message-own); border-color: #FFFFFF22; border-radius: 18px 18px 6px 18px; }
.chat-bubble small { font-size: .6875rem; color: var(--noir-muted); margin-top: 8px; }
.thread-compose { background: var(--noir-surface); border-color: var(--noir-line); padding: 16px 20px; gap: 12px; }
.thread-compose input { background: var(--noir-inset) !important; color: var(--noir-text) !important; border: 1px solid var(--noir-line) !important; border-radius: var(--noir-radius-md); font-size: 1rem; min-height: 48px; }
.thread-compose .send-button { width: 48px; height: 48px; border-radius: 14px; }
.chat-realtime-state { background: var(--noir-inset); color: var(--noir-muted); border-color: var(--noir-line); font-size: .75rem; padding: 10px 20px; }
.chat-realtime-state[data-offline="true"] { color: var(--noir-warning-text); }
.chat-sync-error, .chat-block-info { color: var(--noir-danger-text); background: #DC555510; border-color: #DC555550; font-size: .8125rem; }
.chat-sync-error button { min-height: 44px; background: var(--noir-raised); color: var(--noir-text); border-color: var(--noir-line); }
.chat-block-toggle { min-height: 44px; padding: 10px 12px; background: var(--noir-inset); border-color: var(--noir-line); color: var(--noir-danger-text); font-size: .75rem; white-space: normal; }
.chat-block-toggle[aria-pressed="true"] { color: var(--noir-success-text); background: #46AA7B14; border-color: #46AA7B50; }
.voice-translate-action { min-height: 40px; color: var(--noir-accent-text); border-color: var(--noir-line-strong); font-size: .75rem; background: transparent; }
.voice-translation-result { color: var(--noir-muted); font-size: .875rem; }
.contact-search { border-color: var(--noir-line); }
.contact-search label { color: var(--noir-muted); font-size: .75rem; }
.contact-input input { color: var(--noir-text) !important; background: var(--noir-inset) !important; border: 1px solid var(--noir-line) !important; font-size: 1rem; }
.error-text { color: var(--noir-danger-text) !important; }

/* 06 / Existing Voice AI, Vision and retained text components. */
.voice-entry { color: var(--noir-text); padding-inline: 24px; }
.voice-entry h1 { color: var(--noir-text); font-weight: 650; letter-spacing: -.04em; }
.voice-entry p, .voice-entry .muted-small { color: var(--noir-muted); }
.entry-orb { background: var(--noir-selected); border-color: #FFFFFF33; box-shadow: var(--noir-inset-light); }
.entry-orb span { color: var(--noir-accent-text); text-shadow: none; }
.voice-overlay { background: var(--noir-bg); color: var(--noir-text); }
.voice-brand { color: var(--noir-text); font-size: 1.125rem; font-weight: 650; }
.voice-close { color: var(--noir-muted); min-width: 48px; min-height: 48px; font-size: 36px; border: 1px solid var(--noir-line); border-radius: 50%; background: var(--noir-surface); }
.voice-close:hover { color: var(--noir-text); }
.voice-orb { background: radial-gradient(ellipse at 40% 30%, #303030, #101010 65%, #000000); box-shadow: inset 0 1px 0 #FFFFFF19, 0 0 0 1px #FFFFFF33; animation: none; }
.voice-orb::before { filter: none; opacity: .6; }
.voice-orb-light { filter: none; opacity: .45; animation: none; }
.voice-letter-shapes { filter: none; }
.voice-letter-i { box-shadow: none; }
.voice-letter-v { filter: none; }
.voice-overlay[data-mode="listening"] .voice-orb { border-color: var(--noir-green); box-shadow: 0 0 0 2px #46AA7B60; }
.voice-overlay[data-mode="listening"] .voice-orb-light,
.voice-overlay[data-mode="thinking"] .voice-orb-light { filter: none; }
.voice-state { color: var(--noir-text); font-size: clamp(1.5rem, 4vw, 2.25rem); letter-spacing: -.025em; }
.voice-captions, .voice-language, .voice-action, .voice-ru-model { color: var(--noir-muted); }
.voice-captions.expanded { background: var(--noir-surface); box-shadow: inset 0 0 0 1px var(--noir-line); }
.voice-language select, .voice-ru-model select { background: var(--noir-surface) !important; color: var(--noir-text) !important; border-color: var(--noir-line) !important; min-height: 44px; border-radius: 12px; font-size: .875rem; }
.voice-language small, .voice-privacy, .vision-data-note { color: var(--noir-muted); font-size: .75rem; line-height: 1.6; }
.voice-circle { background: var(--noir-raised); border-color: var(--noir-line-strong); color: var(--noir-text); box-shadow: none; }
.voice-circle:hover { background: var(--noir-hover); filter: none; transform: none; }
.voice-circle.voice-red { background: #242424; color: #FFFFFF; border-color: #525252; }
.voice-show-full { color: var(--noir-accent-text); min-height: 44px; }
.voice-language-tests .voice-show-full { color: var(--noir-text); background: var(--noir-surface); border-color: var(--noir-line); min-height: 44px; font-size: .75rem; }
.voice-product, .vision-preview { background: var(--noir-surface); color: var(--noir-text); border-color: var(--noir-line); box-shadow: none; }
.voice-product small, .vision-preview-bottom label { color: var(--noir-muted); }
.vision-live-head { color: var(--noir-success-text); }
.vision-live-dot { background: var(--noir-green); box-shadow: none; }
.vision-live-head button { color: var(--noir-text); background: var(--noir-raised); border-color: var(--noir-line); min-height: 44px; }
#vision-analyze { background: var(--noir-violet); min-height: 44px; color: var(--noir-action-text); }
.brain-shell, .brain-header h1, .brain-aside h3 { color: var(--noir-text); }
.brain-main, .brain-aside, .ai-mock-chat { background: var(--noir-surface) !important; border-color: var(--noir-line); box-shadow: none; }
.brain-message, .brain-message.is-user { background: var(--noir-message) !important; border-color: var(--noir-line); }
.brain-message.is-user { background: var(--noir-message-own) !important; }
.brain-message p, .msg-text { color: var(--noir-text); font-size: .9375rem; line-height: 1.8; }
.brain-role, .brain-market-link { color: var(--noir-accent-text); }
.brain-empty p, .brain-aside p, .brain-header p { color: var(--noir-muted); }
.brain-form input { background: var(--noir-inset) !important; color: var(--noir-text) !important; border-color: var(--noir-line) !important; font-size: 1rem; }
.brain-suggestions { border-color: var(--noir-line); }
.brain-suggestions button { color: var(--noir-muted); background: var(--noir-raised); border-color: var(--noir-line); min-height: 44px; }
:is(.brain-message, .msg-text, .chat-bubble) pre { max-width: 100%; overflow-x: auto; background: var(--noir-inset); padding: 16px; border-radius: 12px; tab-size: 2; }
:is(.brain-message, .msg-text, .chat-bubble) code { font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: .875em; }

/* 07 / Auth, profile, settings and existing moderation views. */
.auth-shell { background: var(--noir-bg); min-height: 100vh; min-height: 100dvh; padding-block: 120px 48px; }
.auth-glow { background: none; filter: none; }
.auth-card { background: var(--noir-surface); border-color: var(--noir-line); border-radius: var(--noir-radius-xl); padding: 40px; box-shadow: var(--noir-shadow-float); }
.auth-icon { color: var(--noir-accent-text); background: var(--noir-selected); }
.auth-card h1 { color: var(--noir-text); font-size: 1.875rem; letter-spacing: -.035em; }
.auth-card > p { color: var(--noir-muted); font-size: .875rem; }
.auth-card label { color: var(--noir-text); font-size: .875rem; display: grid; gap: 8px; }
.auth-card form input { background: var(--noir-inset) !important; color: var(--noir-text) !important; border: 1px solid var(--noir-line) !important; border-radius: 12px; min-height: 48px; font-size: 1rem; }
.auth-card form .btn { min-height: 48px; height: auto; }
.auth-card .legal-note { color: var(--noir-muted); font-size: .75rem; line-height: 1.75; }
.auth-card .legal-note a { text-decoration: underline; text-underline-offset: 3px; }
.auth-card .link-button { font-size: .8125rem; padding: 14px 0 0; }
.inside-app .settings-page, .inside-app .profile-page { color: var(--noir-text); max-width: 960px; padding: 40px 32px 48px; }
.inside-app .settings-page h1, .inside-app .profile-page h1 { color: var(--noir-text) !important; font-size: var(--noir-heading); letter-spacing: -.04em; line-height: 1.2; margin: 12px 0 18px; }
.inside-app .settings-lead, .inside-app .settings-page p, .inside-app .settings-page small { color: var(--noir-muted) !important; font-size: .875rem; }
.inside-app .setting-section { background: var(--noir-surface) !important; color: var(--noir-text) !important; border-color: var(--noir-line) !important; padding: 28px; margin-top: 20px; border-radius: var(--noir-radius-lg); box-shadow: var(--noir-inset-light); }
.inside-app .setting-section h2 { color: var(--noir-text) !important; font-size: 1.125rem; font-weight: 650; }
.setting-section h2 svg { color: var(--noir-accent-text); }
.setting-control { border-color: var(--noir-line); min-height: 74px; gap: 20px; padding-block: 18px; }
.setting-control > span { min-width: 0; }
.setting-control b { color: var(--noir-text); font-size: .9375rem; font-weight: 550; }
.setting-control select, .setting-name input { background: var(--noir-inset) !important; color: var(--noir-text) !important; border: 1px solid var(--noir-line) !important; border-radius: 12px; font-size: 1rem; min-height: 48px; }
.setting-control select { min-width: 130px; }
.setting-control input[type="checkbox"] {
  -webkit-appearance: none; appearance: none; flex-shrink: 0;
  width: 44px; height: 26px; margin: 0; border-radius: 20px; border: 1px solid var(--noir-line-strong) !important;
  background: radial-gradient(circle at 12px 50%, #FFFFFF 0 8px, transparent 9px), #525252 !important;
  transition: background-color var(--noir-press);
}
.setting-control input[type="checkbox"]:checked { background: radial-gradient(circle at 30px 50%, #FFFFFF 0 8px, transparent 9px), #FFFFFF !important; border-color: #FFFFFF !important; }
.setting-control input:disabled { opacity: .55; }
.setting-current { color: var(--noir-success-text); overflow-wrap: anywhere; }
.settings-key-state { color: var(--noir-muted); font-size: .875rem; line-height: 1.8; }
.inside-app .profile-hero { background: var(--noir-hero); border-color: var(--noir-line); padding: 28px; border-radius: var(--noir-radius-lg); margin-top: 28px; }
.profile-hero > div { min-width: 0; }
.profile-hero h2 { font-size: 1.125rem; color: var(--noir-text); overflow-wrap: anywhere; }
.profile-hero p { font-size: .875rem; color: var(--noir-muted); }
.inside-app .profile-cards { background: var(--noir-surface); border-color: var(--noir-line); border-radius: var(--noir-radius-lg); }
.inside-app .profile-setting { padding: 24px; gap: 16px; background: var(--noir-surface) !important; color: var(--noir-text) !important; border-color: var(--noir-line) !important; }
.profile-setting > div { min-width: 0; }
.profile-setting strong { font-size: .875rem; }
.profile-setting small { color: var(--noir-muted); font-size: .8125rem; line-height: 1.7; }
.settings-ico { color: var(--noir-accent-text); background: var(--noir-selected); width: 42px; height: 42px; }
.settings-state { color: var(--noir-warning-text); font-size: .75rem; }
.settings-state.ok { color: var(--noir-success-text); }
.profile-actions { flex-wrap: wrap; justify-content: flex-start; }
.connection-diagnostics, .connection-diagnostics p { color: var(--noir-muted); }
.connection-diagnostics h3 { color: var(--noir-text); }
.connection-diagnostics li { background: var(--noir-surface); border-color: var(--noir-line); }
.diagnostic-ok { color: var(--noir-success-text); }.diagnostic-fail { color: var(--noir-danger-text); }.diagnostic-unknown { color: var(--noir-warning-text); }
.market-report-card, .moderation-report, .install-panel { background: var(--noir-surface); color: var(--noir-text); border-color: var(--noir-line); box-shadow: none; border-radius: var(--noir-radius-lg); }
.moderation-screen > p, .moderation-label, .moderation-report small, .moderation-report-top span { color: var(--noir-muted); }
.moderation-toolbar label, .moderation-decision-form label { color: var(--noir-text); }
.market-report-card :is(select, textarea), .moderation-toolbar select, .moderation-decision-form :is(select, textarea) { background: var(--noir-inset) !important; color: var(--noir-text) !important; border-color: var(--noir-line) !important; font-size: 1rem; }
.moderation-note { background: var(--noir-inset); }
.install-page { background: var(--noir-bg); color: var(--noir-text); }
.install-shell > p, .install-panel p, .install-panel li { color: var(--noir-muted); }
.install-overline, .install-shell h1 span { color: var(--noir-accent-text); }

@media (min-width: 591px) and (max-width: 1000px) {
  .chats-layout { grid-template-columns: 240px minmax(0, 1fr); }
  .chat-list-head { padding: 20px 16px; }
  .thread-head { padding: 16px; }
}
@media (max-width: 850px) {
  .inside-app .settings-page, .inside-app .profile-page { padding: 28px 20px 32px; }
}
@media (max-width: 590px) {
  .chats-layout { grid-template-columns: 1fr; }
  .chat-list-head { padding: 24px 20px; }
  .thread-head { padding: 12px; gap: 10px; min-height: 76px; }
  .thread-head strong, .thread-head small { max-width: 100%; overflow-wrap: anywhere; white-space: normal; }
  .thread-messages { padding: 20px 14px; }
  .chat-bubble { max-width: 90%; font-size: .9375rem; padding: 12px 14px; }
  .thread-compose { padding: 12px; gap: 8px; }
  .thread-compose input { padding: 12px; min-width: 0; }
  .thread-compose .btn { padding-inline: 12px; }
  .thread-head .chat-block-toggle { font-size: .75rem; margin-left: auto; }
  .inside-app .profile-page, .inside-app .settings-page { padding: 24px 16px 32px; }
  .inside-app .setting-section { padding: 20px; }
  .setting-control { gap: 14px; }
  .setting-control select { min-width: 112px; width: auto; padding-inline: 10px; }
  .inside-app .profile-hero { padding: 22px 18px; gap: 14px; flex-wrap: wrap; }
  .inside-app .profile-setting { padding: 20px 16px; align-items: flex-start; flex-wrap: wrap; gap: 12px; }
  .profile-setting > div { flex: 1 1 160px; }
  .profile-setting .settings-state { margin-left: 54px; }
  .profile-actions .btn { width: 100%; }
  .auth-shell { padding-inline: 16px; }
  .auth-card { padding: 28px 22px; }
  .voice-toolbar { padding-inline: 20px; }
  .voice-orb { --orbsize: min(64vw, 300px); }
  .voice-language select, .voice-ru-model select { font-size: 1rem; }
  .voice-language small, .voice-privacy { font-size: .75rem; max-width: 100%; }
  .voice-action { font-size: .75rem; min-width: 0; }
  .voice-actions { gap: 10px; }
  .voice-bottom { gap: 14px; }
}
@media (max-width: 359px) {
  .setting-control { flex-wrap: wrap; }
  .setting-control > span { flex: 1 1 150px; }
  .setting-control select { width: 100%; }
  .thread-compose { flex-wrap: wrap; }
  .thread-compose input { flex-basis: calc(100% - 60px); }
}

/* Compact preference stays functional; never shrink interaction targets. */
.vasluno-compact .inside-app .market-layout,
.vasluno-compact .inside-app .settings-page,
.vasluno-compact .inside-app .profile-page { padding-top: 16px; }
.vasluno-compact .market-welcome { min-height: 0; padding-block: 24px; }
.vasluno-compact .inside-app .setting-section { padding: 20px; margin-top: 14px; }
.vasluno-compact .setting-control { min-height: 60px; padding-block: 12px; }

/* Accessibility wins over legacy motion and custom control styling. */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
.vasluno-reduced-motion *, .vasluno-reduced-motion *::before, .vasluno-reduced-motion *::after {
  animation: none !important; transition: none !important; scroll-behavior: auto !important;
}
@media (forced-colors: active) {
  .setting-control input[type="checkbox"] { -webkit-appearance: auto; appearance: auto; width: 24px; height: 24px; background: none !important; }
  .btn, .category-chip, .favorite-button, .listing-card { border: 1px solid ButtonText !important; }
  .inside-app .side-links a.active, .inside-app .mobile-app-nav a.active { outline: 2px solid Highlight; outline-offset: -2px; }
}

/* V2 refinements. Monochrome navigation, reserved image space and quiet surfaces. */
html { scrollbar-gutter: stable; }
body { margin:0; }
*,*::before,*::after { box-sizing:border-box; }
.brand-logo, .market-home .brand-logo, .inside-app .brand-logo, .logo-square {
 background:var(--noir-bg); color:var(--noir-text); border:1px solid var(--noir-line); box-shadow:none; overflow:hidden;
}
.brand-logo svg { width:100%;height:100%;padding:5px; }
.brand-logo .brand-spark { color:inherit; }
.inside-app .side-links a.active { color:var(--noir-text)!important;border-color:var(--noir-line)!important; }
.inside-app .side-links a.active svg { color:currentColor; }
.inside-app .avatar,.inside-app .top-avatar { border-color:var(--noir-line);border-radius:50%; }
.inside-app .app-content > :is(.market-layout,.settings-page,.profile-page,.moderation-screen) { max-width:1440px;margin-inline:auto;width:100%; }
.inside-app .market-welcome { background:var(--noir-surface)!important;border:1px solid var(--noir-line)!important; }
.inside-app .product-wrap { min-width:0; }
.inside-app .listing-card { background:var(--noir-surface)!important;box-shadow:none!important; }
.inside-app .listing-card:hover { background:var(--noir-raised)!important;transform:translateY(-2px); }
.inside-app .listing-image { background:var(--noir-inset);aspect-ratio:4 / 3; }
.inside-app .favorite-button { color:#F5F5F5;background:#101010E6;border-color:#FFFFFF26; }
.inside-app .favorite-button.is-favorite { background:#F5F5F5;color:#000000;border-color:#FFFFFF; }
.inside-app .favorite-button.is-favorite svg { fill:currentColor; }
.category-chip svg,.category-chip:nth-child(3n+2) svg,.category-chip:nth-child(3n) svg,.cat-visual { color:var(--noir-muted)!important; }
.category-chip.is-selected svg { color:var(--noir-text)!important; }
.market-image-note { color:var(--noir-muted); }
.detail-image,.detail-image .market-photo { background:#000000!important; }
.detail-image { min-height:220px; }
.gallery-thumb { min-width:44px;min-height:44px; }
.market-image-retry:active { transform:translateX(-50%) scale(.98)!important; }
.market-image-retry:hover { transform:translateX(-50%)!important; }
.site-mesh,.art-aura,.art-orbit,.future-glow,.auth-glow,.welcome-decoration { display:none; }
.market-art .art-board { transform:rotate(-2deg); }
.market-home :is(.art-feature,.cat-tile,.future-card),.art-minicards > div { background:var(--noir-surface)!important; }
.future-orb,.entry-orb,.brain-orb { background:var(--noir-surface)!important;color:var(--noir-text)!important;border-color:var(--noir-line)!important;box-shadow:inset 0 1px 0 #FFFFFF15!important; }
.future-orb::before,.future-orb::after,.orb-glare { background:none!important;box-shadow:none!important; }
.voice-orb,.voice-overlay[data-mode] .voice-orb { background:radial-gradient(ellipse at 35% 25%,#383838,#101010 65%,#000000)!important;box-shadow:inset 0 1px 0 #FFFFFF33,0 0 0 1px #525252!important;animation:none!important; }
.voice-orb::before,.voice-orb::after,.voice-orb-light,.voice-orb-grid { background:none!important;box-shadow:none!important;border-color:#FFFFFF22!important;filter:none!important;animation:none!important; }
.voice-letter-shapes,.voice-letter-i,.voice-letter-v,.entry-orb span { color:var(--noir-text)!important;filter:none!important;box-shadow:none!important;text-shadow:none!important; }
.voice-letter-i,.voice-letter-v { background:var(--noir-text)!important; }
.voice-overlay,.voice-captions.expanded,.vision-preview,.voice-product { background:var(--noir-inset)!important;color:var(--noir-text)!important;border-color:var(--noir-line)!important; }
.voice-overlay :is(.voice-brand,.voice-state,.voice-circle,.voice-show-full,.voice-ru-model,.voice-ru-model select,.vision-live-head,.vision-live-head button) { color:var(--noir-text); }
.voice-circle,.voice-camera-button.vision-active,.vision-live-head button { background:var(--noir-raised)!important;border-color:var(--noir-line-strong)!important;box-shadow:none!important; }
.voice-camera-button.vision-active { outline:2px solid var(--noir-success-text); }
.voice-action,.voice-privacy,.vision-data-note,.voice-captions,.voice-language small { color:var(--noir-muted)!important; }
.voice-privacy { font-size:.75rem; }
.voice-translate-action { color:var(--noir-text);border-color:var(--noir-line);min-height:44px; }
.voice-language select,.voice-ru-model select { background:var(--noir-surface)!important;color:var(--noir-text)!important;border-color:var(--noir-line)!important; }
.chat-row .avatar,.thread-head .avatar { border-radius:50%; }
.chat-bubble { overflow-wrap:anywhere; }
.thread-compose { padding-bottom:max(12px,env(safe-area-inset-bottom)); }
.setting-control input[type="checkbox"]:checked { background:radial-gradient(circle at 30px 50%,var(--noir-action-text) 0 8px,transparent 9px),var(--noir-text)!important;border-color:var(--noir-text)!important; }
::selection { background:var(--noir-text);color:var(--noir-bg); }
.language-switch { display:inline-flex;flex-shrink:0;align-items:center;padding:3px;gap:2px;background:var(--noir-surface);border:1px solid var(--noir-line);border-radius:12px; }
.language-switch button { appearance:none;border:0;border-radius:8px;min-width:44px;min-height:44px;padding:8px;color:var(--noir-muted);background:transparent;font:600 .75rem/1 system-ui;cursor:pointer; }
.language-switch button[aria-pressed="true"] { color:var(--noir-action-text);background:var(--noir-text); }
.language-switch button:hover { color:var(--noir-text);background:var(--noir-hover); }
.language-switch button[aria-pressed="true"]:hover { color:var(--noir-action-text);background:var(--noir-text); }
.auth-top-brand,.install-brand-row { display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap; }
.topbar-right .status-inline { display:none; }
#pref-language { max-width:100%; }
.legal-language { display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:32px; }
.legal-page { background:var(--noir-bg);color:var(--noir-text); }
.legal-page :is(p,li) { color:var(--noir-muted); }
.legal-page a { color:var(--noir-text); }
.legal-page .alert,.legal-page .vision-policy { background:var(--noir-surface);border-color:var(--noir-line);color:var(--noir-text); }
@media (max-width:850px) {
 .inside-app .app-topbar { padding:12px 20px; }
 .topbar-right { gap:10px; }
 .inside-app .mobile-app-nav { padding-bottom:env(safe-area-inset-bottom);min-height:72px; }
 .inside-app .mobile-app-nav a { min-width:0;min-height:56px;padding-inline:2px; }
 .inside-app .mobile-app-nav a span { font-size:.625rem;white-space:normal;line-height:1.2;overflow-wrap:anywhere;text-align:center; }
 .inside-app .mobile-app-nav a.active { color:var(--noir-text)!important;background:var(--noir-selected)!important; }
 .inside-app .app-content { padding-bottom:calc(76px + env(safe-area-inset-bottom)); }
 .market-search-panel .market-filter-fields { min-width:0; }
}
@media (max-width:590px) {
 .inside-app .app-topbar { padding:10px 16px;gap:8px; }
 .inside-app .app-topbar strong { font-size:1rem; }
 .inside-app .top-avatar { display:none; }
 .topbar-right { flex-shrink:1; }
 .language-switch button { min-height:44px; }
 .site-nav { flex-wrap:wrap;gap:16px; }
 .market-home .nav-actions { width:100%;display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px; }
 .market-home .nav-signin { display:inline-flex; }
 .market-home .nav-cta { flex:1 1 160px; }
 .market-home .hero-metrics { flex-wrap:wrap; }
 .thread-head { flex-wrap:wrap; }
 .thread-head > div:nth-child(2) { flex:1 1 140px; }
 .thread-compose input { font-size:16px; }
 .setting-control select { min-width:112px; }
 .detail-grid,.form-row,.market-search-panel { min-width:0; }
}
@media (max-width:359px) {
 .inside-app .app-topbar { padding-inline:12px; }
 .app-breadcrumb { display:none; }
 .language-switch button { min-width:42px; }
 .inside-app .mobile-app-nav a span { font-size:.5625rem; }
 .brand-word { font-size:.875rem; }
}
@media (hover:none) { .inside-app .listing-card:hover { transform:none; } }
@media (prefers-reduced-motion:reduce) { .inside-app .listing-card:hover { transform:none; } }

.market-filter-reset { grid-column:1 / -1;justify-self:end;min-height:44px; }
.voice-toolbar .language-switch { margin-left:auto;margin-right:12px; }

/* V2.1 — compact product UI. Shared DOM and business handlers remain unchanged. */
.inside-app .app-shell { grid-template-columns:224px minmax(0,1fr); }
.inside-app .app-sidebar { padding:24px 14px 16px; }
.inside-app .sidebar-head { padding:0 10px 30px; }
.inside-app .side-links a { min-height:48px;padding:12px;gap:10px;font-size:.8125rem; }
.inside-app .side-links a span { white-space:nowrap;overflow-wrap:normal; }
.inside-app .side-links a.active { background:var(--noir-card)!important;box-shadow:inset 2px 0 var(--noir-text); }
.inside-app .app-topbar { min-height:72px;padding:12px 28px; }
.inside-app .market-layout { padding:24px 28px 32px; }
.inside-app .market-welcome { min-height:0;padding:24px 28px;gap:24px;border-radius:18px; }
.market-welcome h1 { font-size:clamp(1.75rem,2.7vw,2.5rem);line-height:1.15;margin:12px 0;letter-spacing:-.035em; }
.market-welcome p { max-width:42rem;margin:0;font-size:.875rem;line-height:1.65; }
.welcome-actions { gap:8px;align-items:stretch;flex-shrink:0; }
.welcome-actions > span { text-align:center; }
.welcome-trust { margin-top:14px;gap:16px; }
.welcome-decoration { display:none; }
.market-discover { margin-top:22px; }
.block-head { margin-bottom:12px; }
.block-head h2 { font-size:1rem; }
.category-chips { display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:8px;overflow:visible;padding:0; }
.category-chip { width:auto;min-width:0;min-height:86px;padding:12px 4px;gap:10px;border-radius:12px;background:var(--noir-surface); }
.category-chip svg { width:24px;height:24px;stroke-width:1.65; }
.category-chip span { font-size:.6875rem;line-height:1.3;hyphens:none;overflow-wrap:normal; }
.category-chip.is-selected { background:var(--noir-card);border-color:var(--noir-text); }
.category-chip.is-selected span { font-weight:700; }
.market-search-panel { margin-top:20px;padding:16px;border-radius:16px; }
.market-search-panel #market-search { display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:none;gap:14px; }
.market-searchbar { display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:stretch; }
.market-search-panel #market-search .searchbox { grid-column:auto;min-width:0;height:48px;padding-inline:14px;gap:4px; }
.market-search-panel #market-search .searchbox input { min-width:0;width:100%;height:46px;padding:10px 6px; }
.market-search-panel #market-search .filter-button { min-height:48px;grid-column:auto;white-space:nowrap; }
.market-search-panel .market-filter-toggle { display:none; }
.market-search-panel .market-filter-fields { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(220px,1.25fr) auto;align-items:start;gap:10px 12px;min-width:0; }
.market-select-field { display:flex;flex-direction:column;gap:8px;min-width:0;font-size:.75rem;font-weight:500;color:var(--noir-muted); }
.market-select-field > span { line-height:24px; }
.market-search-panel select { width:100%;height:48px;min-width:0;margin:0;padding-block:0;font-size:.875rem; }
.market-price-disclosure { min-width:0; }
.market-price-disclosure summary { display:flex;align-items:center;gap:6px;list-style:none;cursor:pointer;font-size:.75rem;line-height:24px;min-height:24px;color:var(--noir-muted);margin-bottom:8px; }
.market-price-disclosure summary::-webkit-details-marker { display:none; }
.market-price-disclosure summary svg { transform:rotate(0); }
.market-price-disclosure[open] summary svg { transform:rotate(90deg); }
.market-search-panel .market-price-range { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;min-width:0;grid-column:auto; }
.market-search-panel #market-search .market-price-field { position:relative;display:block;min-width:0; }
.market-price-field > span { position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap; }
.market-search-panel #market-search .market-price-field input { width:100%;min-width:0;height:48px;margin:0; }
.market-filter-actions { display:flex;align-items:center;gap:8px;padding-top:32px; }
.market-filter-actions .btn { min-height:48px;white-space:nowrap; }
.market-filter-actions .market-apply-filters { display:none; }
.market-search-panel .market-price-hint { grid-column:1/-1;margin:0;line-height:1.6; }
.market-search-panel .market-price-error { margin:0; }
.market-results-toolbar { margin-top:20px; }
.market-favorites-sync { margin-top:8px;margin-bottom:0; }
.inside-app .market-results { margin-top:18px; }
.inside-app .market-v4 .listing-card { display:flex;flex-direction:column;border-radius:16px;background:var(--noir-card)!important;transition:border-color 140ms ease,transform 140ms ease; }
.inside-app .listing-image { flex-shrink:0;width:100%;aspect-ratio:4 / 3;overflow:hidden; }
.inside-app .listing-detail { flex:1;display:flex;flex-direction:column;width:100%;padding:16px;text-align:left; }
.inside-app .listing-price { font-size:1.375rem;letter-spacing:-.025em; }
.inside-app .listing-detail h3 { font-size:.9375rem;line-height:1.5;margin:7px 0 6px;min-height:3em;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden; }
.inside-app .listing-detail p { display:flex;align-items:center;min-width:0;font-size:.75rem;margin:0 0 14px; }
.inside-app .listing-detail p > span { overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.inside-app .listing-footer { margin-top:auto;font-size:.6875rem;gap:4px 8px; }
.inside-app .listing-card:hover { transform:none; }
.gallery-thumbs { gap:8px;scroll-padding-inline:4px;overscroll-behavior-x:contain; }
.gallery-thumb { flex:0 0 76px;width:76px;height:64px; }
.gallery-thumb.active { outline:1px solid var(--noir-text);outline-offset:2px; }
.chats-layout { grid-template-columns:minmax(244px,296px) minmax(0,1fr); }
.chat-list-head { padding:22px 20px 18px; }
.chat-list-head h2 { font-size:1.375rem; }
.chats-list { padding:8px; }
.chat-row { min-height:76px;padding:12px;gap:12px;border:1px solid transparent; }
.chat-row.active { border-color:var(--noir-line);background:var(--noir-card); }
.chat-row strong { font-size:.875rem;line-height:1.4; }
.chat-row small { line-height:1.4; }
.thread-head { min-height:72px;padding:12px 20px; }
.thread-messages { padding:20px;gap:12px; }
.chat-bubble { padding:12px 16px;line-height:1.6; }
.thread-compose { gap:10px;padding:12px 16px max(12px,env(safe-area-inset-bottom)); }
.thread-compose input { min-width:0;height:48px; }
.thread-compose .send-button { flex:0 0 48px; }
.voice-entry { max-width:760px;margin-inline:auto; }
.voice-entry h1 { font-size:clamp(1.8rem,4vw,2.5rem);line-height:1.15; }
.voice-entry p { max-width:620px;line-height:1.7; }
.voice-overlay .voice-toolbar { gap:12px;flex-wrap:wrap; }
.voice-overlay :is(button,select) { min-height:44px; }
.voice-overlay .voice-captions { line-height:1.65; }
.market-home .market-hero { padding-block:48px 56px;gap:32px; }
.market-home .home-categories { padding-block:40px; }
.market-home .home-process { padding-block:48px; }
.market-home .cat-visual { height:88px; }
@media (hover:hover) and (pointer:fine) {
 .inside-app .market-v4 .listing-card:hover { transform:translateY(-2px);border-color:var(--noir-line-strong)!important; }
 .category-chip:hover { border-color:var(--noir-line-strong); }
 .category-chip.is-selected:hover { border-color:var(--noir-text); }
}
@media (min-width:851px) and (max-width:1180px) {
 .inside-app .app-shell { grid-template-columns:208px minmax(0,1fr); }
 .inside-app .app-sidebar { padding-inline:10px; }
 .inside-app .side-links a { padding:12px 10px;gap:8px; }
 .inside-app .market-layout { padding:20px; }
 .category-chips { grid-template-columns:repeat(4,minmax(0,1fr)); }
 .category-chip { min-height:72px;flex-direction:row;gap:8px; }
 .market-search-panel .market-filter-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .market-filter-actions { justify-content:flex-end; }
}
@media (max-width:850px) {
 .inside-app .app-topbar { padding:12px max(16px,env(safe-area-inset-right)) 12px max(16px,env(safe-area-inset-left)); }
 .inside-app .market-layout { padding:20px 16px 28px; }
 .inside-app .market-welcome { padding:22px; }
 .category-chips { grid-template-columns:repeat(4,minmax(0,1fr)); }
 .market-search-panel .market-filter-toggle { display:inline-flex; }
 .market-searchbar { grid-template-columns:minmax(0,1fr) auto; }
 .market-searchbar .searchbox { grid-column:1/-1!important; }
 .market-searchbar .filter-button { grid-column:1; }
 .market-searchbar .market-filter-toggle { grid-column:2; }
 .market-search-panel #market-search:not(.filters-open) .market-filter-fields { display:none; }
 .market-search-panel .market-filter-fields { grid-template-columns:repeat(2,minmax(0,1fr));padding-top:14px;border-top:1px solid var(--noir-line); }
 .market-price-disclosure,.market-filter-actions { grid-column:1/-1; }
 .market-price-disclosure summary { min-height:44px;margin-bottom:4px; }
 .market-filter-actions { padding-top:4px; }
 .market-filter-actions .market-apply-filters { display:inline-flex;flex:1; }
 .market-filter-actions .btn { white-space:normal; }
 .market-filter-actions .market-filter-reset span { max-width:8rem; }
 .market-search-panel select,.market-search-panel #market-search .market-price-field input { font-size:1rem; }
 .inside-app .mobile-app-nav { padding:4px max(4px,env(safe-area-inset-right)) calc(4px + env(safe-area-inset-bottom)) max(4px,env(safe-area-inset-left));min-height:68px; }
 .inside-app .mobile-app-nav a { min-height:56px;gap:5px;border-radius:10px; }
 .inside-app .mobile-app-nav a span { font-size:.625rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;overflow-wrap:normal; }
 .inside-app .mobile-app-nav a.active { background:var(--noir-card)!important;box-shadow:inset 0 2px var(--noir-text); }
 .chats-layout { grid-template-columns:minmax(220px,260px) minmax(0,1fr); }
 .thread-head { padding-inline:16px; }
 .thread-messages { padding:16px; }
}
@media (max-width:590px) {
 .inside-app .app-topbar { gap:8px;padding-inline:12px;min-height:68px; }
 .inside-app .app-topbar strong { font-size:.9375rem;line-height:1.3; }
 .app-topbar .app-breadcrumb { display:none; }
 .topbar-right { gap:6px; }
 .inside-app .market-layout { padding:16px 12px 24px; }
 .inside-app .market-welcome { padding:20px; }
 .market-welcome h1 { margin:10px 0;font-size:1.75rem; }
 .market-welcome p { font-size:.8125rem; }
 .welcome-actions { margin-top:18px; }
 .welcome-trust { gap:8px 12px;margin-top:12px; }
 .market-discover { margin-top:20px; }
 .block-head > span { display:none; }
 .category-chips { grid-template-columns:repeat(4,minmax(0,1fr));gap:6px; }
 .category-chip { min-height:78px;padding:10px 2px;gap:8px; }
 .category-chip span { font-size:.625rem;line-height:1.3;overflow-wrap:anywhere; }
 .market-search-panel { margin-top:16px;padding:12px; }
 .market-search-panel #market-search { gap:12px; }
 .market-search-panel .market-filter-fields { gap:12px 8px; }
 .market-select-field { gap:6px; }
 .browse-modes { gap:2px;width:100%; }
 .browse-modes button { font-size:.75rem;min-height:44px;padding:8px; }
 .inside-app .listing-grid { gap:10px; }
 .inside-app .listing-detail { padding:12px; }
 .inside-app .listing-price { font-size:1.125rem; }
 .inside-app .listing-detail h3 { font-size:.8125rem;min-height:3em; }
 .inside-app .listing-detail p { font-size:.6875rem; }
 .inside-app .listing-footer { font-size:.625rem; }
 .inside-app .listing-status { max-width:calc(100% - 64px); }
 .chats-layout { grid-template-columns:1fr; }
 .chat-list-head { padding:18px 16px; }
 .thread-messages { padding:12px; }
 .chat-bubble { max-width:90%;padding:11px 13px;font-size:.9375rem; }
 .thread-compose { padding-inline:12px; }
 .market-home .market-hero { padding-block:32px 40px; }
}
@media (max-width:359px) {
 .inside-app .market-welcome { padding:18px; }
 .inside-app .listing-grid { grid-template-columns:1fr; }
 .inside-app .listing-price { font-size:1.375rem; }
 .inside-app .listing-detail h3 { font-size:.9375rem;min-height:0; }
 .market-search-panel .market-filter-fields { grid-template-columns:minmax(0,1fr); }
}
@media (prefers-reduced-motion:reduce) {
 .inside-app .market-v4 .listing-card,.category-chip { transition:none!important;transform:none!important; }
}
html.vasluno-reduced-motion .inside-app .market-v4 .listing-card { transition:none!important;transform:none!important; }

/* V2.2 Signature — palette, spacing and motion come from centralized tokens. */
.inside-app :is(.btn,.category-chip,.language-switch,.setting-control select) { border-radius:var(--noir-radius-md); }
.inside-app .btn.primary:hover:not(:disabled) { background:var(--signature-accent-hover); }
.inside-app :is(.small-note,.muted-small,.market-price-hint,.listing-footer,.settings-lead) { color:var(--noir-muted); }
.inside-app .market-welcome { background:var(--noir-inset)!important;border-radius:var(--signature-panel-radius); }
.inside-app .market-welcome .eyebrow { color:var(--noir-muted);letter-spacing:.16em; }
.inside-app .market-welcome h1 { max-width:22ch;font-weight:680; }
.inside-app .listing-grid { gap:var(--signature-space-6);align-items:stretch; }
.inside-app .market-v4 .listing-card { background:var(--noir-card)!important;border-radius:var(--signature-card-radius);box-shadow:var(--signature-shadow)!important; }
.inside-app .listing-image { aspect-ratio:4 / 3;border-bottom:var(--signature-divider);background:var(--noir-inset); }
.inside-app .listing-detail { padding:var(--signature-space-4);gap:var(--signature-space-1); }
.inside-app .listing-price { font-size:var(--signature-price);font-weight:740;letter-spacing:-.025em;font-variant-numeric:tabular-nums; }
.inside-app .listing-detail h3 { font-weight:550;font-size:var(--signature-body);line-height:1.45;min-height:2.9em;margin:var(--signature-space-1) 0; }
.inside-app .listing-detail p { margin:0 0 var(--signature-space-3);font-size:var(--signature-caption); }
.inside-app .listing-footer { border:0;padding-top:var(--signature-space-2);font-size:var(--signature-caption); }
.inside-app .listing-status { background:var(--noir-bg);color:var(--noir-text);border:var(--signature-divider);font-size:var(--signature-caption); }
.inside-app .favorite-button { border-radius:50%;background:var(--noir-inset);color:var(--noir-text);border:var(--signature-divider);box-shadow:none; }
.inside-app .favorite-button.is-favorite { background:var(--noir-text);color:var(--noir-bg);border-color:var(--noir-text); }
.inside-app .favorite-button:hover { border-color:var(--noir-line-strong); }
.inside-app .listing-card:focus-visible { outline-offset:var(--signature-space-1); }
@media(max-width:590px){
 .inside-app .listing-grid { gap:var(--signature-space-3); }
 .inside-app .listing-detail { padding:var(--signature-space-3); }
 .inside-app .listing-detail h3 { font-size:.875rem; }
 .inside-app .listing-price { font-size:1.25rem; }
 .inside-app .listing-footer { font-size:.6875rem; }
}
/* Signature product detail and accessible photo/profile dialogs. */
.inside-app .detail-grid { grid-template-columns:minmax(0,1.25fr) minmax(320px,1fr);gap:var(--signature-space-8); }
.inside-app .product-gallery { min-width:0; }
.inside-app .detail-image { height:auto;min-height:220px;aspect-ratio:1 / 1;border:var(--signature-divider);border-radius:var(--signature-panel-radius); }
.inside-app .detail-image .market-photo { border-radius:inherit; }
.inside-app .detail-info { padding:var(--signature-space-6);border-radius:var(--signature-panel-radius);background:var(--noir-surface); }
.inside-app .detail-info h1 { font-size:clamp(1.375rem,2vw,1.875rem);font-weight:550;line-height:1.35;margin:var(--signature-space-3) 0; }
.inside-app .detail-price { font-size:var(--signature-detail-price);font-weight:740;letter-spacing:-.035em;margin-top:var(--signature-space-3); }
.inside-app .detail-location { display:flex;gap:var(--signature-space-2);align-items:center; }
.inside-app .product-description { margin:var(--signature-space-6) 0 var(--signature-space-3);color:var(--noir-text);line-height:1.75; }
.inside-app .gallery-thumbs { padding:var(--signature-space-2) var(--signature-space-1);gap:var(--signature-space-3);overflow-x:auto; }
.inside-app .gallery-thumb { border-radius:var(--noir-radius-md);border:var(--signature-divider); }
.signature-gallery-open { width:100%;margin-top:var(--signature-space-3); }
.seller-chip { gap:var(--signature-space-3); }
.seller-chip > div:nth-child(2) { flex:1;min-width:0; }
.seller-chip small { overflow-wrap:anywhere; }
.avatar { position:relative;overflow:hidden;flex-shrink:0; }
.signature-avatar-initial { display:grid;place-items:center;position:absolute;inset:0;color:var(--noir-text);font-weight:600; }
.signature-avatar-image { position:absolute;inset:0;width:100%;height:100%;object-fit:cover; }
.signature-icon-button { display:inline-grid;place-items:center;min-width:var(--signature-touch);min-height:var(--signature-touch);padding:var(--signature-space-2);border:var(--signature-divider);border-radius:var(--noir-radius-md);background:var(--noir-inset);color:var(--noir-text);cursor:pointer; }
.signature-icon-button:hover:not(:disabled) { border-color:var(--noir-line-strong);background:var(--noir-hover); }
.signature-icon-button:disabled { cursor:default; }
.signature-modal-open { overflow:hidden; }
.signature-dialog { width:min(960px,calc(100% - 32px));max-width:calc(100% - 32px);max-height:calc(100dvh - 32px);padding:0;color:var(--noir-text);background:var(--noir-surface);border:1px solid var(--noir-line-strong);border-radius:var(--signature-panel-radius);overflow:auto;box-shadow:var(--signature-shadow); }
.signature-dialog::backdrop { background:var(--signature-backdrop); }
.signature-dialog-fallback { display:block;position:fixed;inset:0;margin:auto;height:fit-content;z-index:100;box-shadow:0 0 0 100vmax var(--signature-backdrop); }
.signature-dialog-head { display:flex;align-items:center;justify-content:space-between;gap:var(--signature-space-4);padding:var(--signature-space-4) var(--signature-space-6);border-bottom:var(--signature-divider); }
.signature-dialog-head h2 { margin:0;font-size:1rem;font-weight:600; }
.signature-viewer-image { width:100%;height:min(64dvh,680px);min-height:160px;overflow:auto;overscroll-behavior:contain;background:var(--noir-bg); }
.signature-viewer-image .market-photo img { object-fit:contain; }
.signature-viewer-image.is-zoomed .market-photo { width:200%;height:200%; }
.signature-viewer-controls { display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:var(--signature-space-3);padding:var(--signature-space-4); }
.signature-photo-counter { min-width:5rem;text-align:center;font-variant-numeric:tabular-nums;color:var(--noir-muted); }
.signature-profile-dialog { max-width:420px; }
.signature-seller-profile { display:flex;align-items:center;flex-direction:column;padding:var(--signature-space-8);gap:var(--signature-space-4);text-align:center; }
.signature-seller-profile h3,.signature-seller-profile p { margin:0;overflow-wrap:anywhere; }
.signature-seller-profile p { color:var(--noir-muted);font-size:var(--signature-caption); }
.signature-avatar-large { width:80px;height:80px;border-radius:50%;background:var(--noir-raised);border:var(--signature-divider); }
.signature-avatar-large .signature-avatar-initial { font-size:2rem; }
@media(max-width:1180px){.inside-app .detail-grid { grid-template-columns:minmax(0,1fr);gap:var(--signature-space-6); }.inside-app .detail-image { aspect-ratio:4 / 3; }}
@media(max-width:590px){
 .inside-app .detail-image { border-radius:var(--signature-card-radius);aspect-ratio:1 / 1; }
 .inside-app .detail-info { padding:var(--signature-space-4);border-radius:var(--signature-card-radius); }
 .inside-app .detail-buttons #write-seller { min-height:var(--signature-control); }
 .signature-dialog { width:calc(100% - 16px);max-width:calc(100% - 16px);max-height:calc(100dvh - 16px);border-radius:var(--signature-card-radius); }
 .signature-dialog-head { padding:var(--signature-space-3); }
 .signature-viewer-controls { padding-bottom:max(var(--signature-space-3),env(safe-area-inset-bottom)); }
}
/* Signature messaging: existing messages and delivery/read logic remain authoritative. */
.chats-panel { background:var(--noir-inset); }
.chat-list-head { padding:var(--signature-space-6); }
.chat-list-head .eyebrow { color:var(--noir-muted); }
.chat-row { border-radius:var(--signature-card-radius);padding:var(--signature-space-3);min-height:80px; }
.chat-row .avatar { width:44px;height:44px;border:var(--signature-divider);background:var(--noir-raised); }
.chat-row.active { border-color:var(--noir-line-strong);background:var(--noir-surface); }
.chat-row strong { font-size:var(--signature-body);font-weight:600; }
.chat-row small,.chat-row .date-mini { color:var(--noir-muted);font-size:var(--signature-caption); }
.chat-bubble { border-radius:var(--signature-card-radius) var(--signature-card-radius) var(--signature-card-radius) var(--signature-space-1);background:var(--noir-message);padding:var(--signature-space-3) var(--signature-space-4);border:var(--signature-divider); }
.chat-bubble.mine { border-radius:var(--signature-card-radius) var(--signature-card-radius) var(--signature-space-1) var(--signature-card-radius);background:var(--noir-message-own);border-color:var(--noir-line-strong); }
.chat-bubble > span { white-space:pre-wrap;overflow-wrap:anywhere;word-break:normal; }
.chat-bubble small { color:var(--noir-muted);font-size:var(--signature-caption);line-height:1.4; }
.chat-bubble .voice-translate-action { margin-top:var(--signature-space-2);background:transparent;min-height:var(--signature-touch); }
.thread-head { gap:var(--signature-space-3);background:var(--noir-inset); }
.thread-head > div:nth-of-type(2) { flex:1; }
.inside-app .thread-head > .avatar { width:44px;height:44px;flex:0 0 44px; }
.signature-chat-back { display:none; }
.thread-compose { background:var(--noir-inset);gap:var(--signature-space-3); }
.thread-compose input { border-radius:var(--noir-radius-md);min-height:var(--signature-control);font-size:1rem; }
.thread-compose .send-button { border-radius:var(--noir-radius-md);background:var(--noir-text);color:var(--noir-bg); }
.chat-image { max-width:100%;height:auto; }
@media(max-width:590px){
 .signature-chat-back { display:inline-grid; }
 .thread-head { gap:var(--signature-space-2);padding:var(--signature-space-3); }
 .thread-head .chat-block-toggle { margin-left:auto; }
 .chat-list-head { padding:var(--signature-space-4); }
 .chat-bubble { max-width:92%; }
}
/* Mobile viewport support leaves the browser's keyboard behavior enabled. */
.inside-app .mobile-app-nav a { transition:background-color var(--noir-transition),color var(--noir-transition); }
.inside-app .mobile-app-nav a.active { box-shadow:none;border:1px solid var(--noir-line-strong); }
@media(max-width:850px){
 html[data-signature-keyboard] .inside-app .mobile-app-nav { display:none; }
 html[data-signature-keyboard] .inside-app :is(.app-shell,.app-main) { height:var(--signature-viewport-height,100dvh);min-height:0; }
 html[data-signature-keyboard] .inside-app .app-content { padding-bottom:var(--signature-space-2)!important; }
 html[data-signature-keyboard] .voice-overlay { height:var(--signature-viewport-height,100dvh);min-height:0; }
 .inside-app .mobile-app-nav { background:var(--noir-inset)!important;border-top:var(--signature-divider); }
 .inside-app .mobile-app-nav a { min-height:var(--signature-touch);border:1px solid transparent; }
 .inside-app .mobile-app-nav a svg { width:22px;height:22px; }
 .inside-app .app-content { overscroll-behavior-y:contain; }
}
@media(prefers-reduced-motion:reduce){.inside-app .mobile-app-nav a{transition:none;}}
/* Profile and settings use existing account actions; no placeholder saves. */
.inside-app .settings-page { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--signature-space-6);align-items:start; }
.settings-page > :is(.eyebrow,h1,.settings-lead) { grid-column:1/-1;margin:0; }
.settings-page > h1,.profile-page > h1 { font-size:clamp(1.75rem,3vw,2.5rem);letter-spacing:-.035em; }
.settings-page .setting-section { min-width:0;margin:0;padding:var(--signature-space-6);border-radius:var(--signature-panel-radius);background:var(--noir-surface);border:var(--signature-divider); }
.setting-section h2 { font-size:1rem;line-height:1.4;margin:0 0 var(--signature-space-4);gap:var(--signature-space-3); }
.setting-section p,.settings-key-state { color:var(--noir-muted);font-size:var(--signature-body);line-height:1.65; }
.setting-control { gap:var(--signature-space-4); }
.setting-control > span { min-width:0; }
.setting-control small { color:var(--noir-muted);font-size:var(--signature-caption);line-height:1.55; }
.setting-control select { min-height:var(--signature-control); }
.setting-name { flex-direction:column;align-items:stretch;gap:var(--signature-space-3); }
.setting-name input { width:100%;min-width:0;min-height:var(--signature-control);font-size:1rem; }
.setting-name button { width:100%; }
.setting-current { overflow-wrap:anywhere; }
.settings-buttons { gap:var(--signature-space-3);flex-wrap:wrap; }
.profile-hero { display:flex;align-items:center;gap:var(--signature-space-6);padding:var(--signature-space-6);border-radius:var(--signature-panel-radius);background:var(--noir-surface);border:var(--signature-divider); }
.profile-hero > div:last-child { min-width:0; }
.profile-hero h2 { font-size:1.375rem;line-height:1.35;overflow-wrap:anywhere; }
.signature-profile-market { margin-block:var(--signature-space-6);padding:var(--signature-space-6);border:var(--signature-divider);border-radius:var(--signature-panel-radius);background:var(--noir-inset); }
.signature-profile-market h2 { margin:0;font-size:1.125rem; }
.signature-profile-market p { color:var(--noir-muted);line-height:1.6; }
.profile-setting { border:var(--signature-divider);background:var(--noir-surface);border-radius:var(--signature-card-radius); }
.profile-setting small { font-size:var(--signature-caption);line-height:1.65; }
.profile-actions { display:flex;gap:var(--signature-space-3);flex-wrap:wrap; }
@media(max-width:1100px){.inside-app .settings-page{grid-template-columns:minmax(0,1fr);}}
@media(max-width:590px){
 .settings-page .setting-section,.profile-hero,.signature-profile-market { padding:var(--signature-space-4);border-radius:var(--signature-card-radius); }
 .inside-app .settings-page { gap:var(--signature-space-4); }
 .profile-hero { gap:var(--signature-space-4); }
 .profile-hero h2 { font-size:1.125rem; }
 .signature-avatar-large { width:64px;height:64px; }
}
/* Signature Voice: only the existing idle/listening/thinking/speaking modes drive visuals. */
.voice-overlay { background:var(--noir-bg)!important; }
.voice-overlay .voice-toolbar { border-bottom:var(--signature-divider);padding:var(--signature-space-4) var(--signature-space-6);gap:var(--signature-space-3); }
.voice-overlay .voice-stage { padding:var(--signature-space-6);min-height:0; }
.voice-orb,.voice-overlay[data-mode] .voice-orb { background:radial-gradient(ellipse at 32% 20%,var(--signature-orb-highlight),var(--signature-orb-mid) 24%,var(--signature-orb-shadow) 70%)!important;box-shadow:inset 0 1px 0 var(--noir-line-strong),0 0 0 1px var(--noir-line)!important;animation:none!important; }
.voice-overlay[data-mode] .voice-orb::before,.voice-overlay[data-mode] .voice-orb::after { border-color:var(--noir-line-strong)!important;opacity:.35; }
.voice-overlay[data-mode="listening"] .voice-orb,.voice-overlay[data-mode="speaking"] .voice-orb { box-shadow:inset 0 1px 0 var(--noir-line-strong),0 0 0 2px var(--noir-line-strong)!important; }
.voice-overlay .voice-state { font-size:var(--signature-body);line-height:1.6;color:var(--noir-text); }
.voice-state::before { content:"";display:inline-block;width:30px;height:18px;margin-right:var(--signature-space-3);vertical-align:middle;background:repeating-linear-gradient(90deg,var(--noir-muted) 0 2px,transparent 2px 5px);clip-path:polygon(0 40%,16% 40%,16% 20%,33% 20%,33% 0,66% 0,66% 20%,83% 20%,83% 40%,100% 40%,100% 60%,83% 60%,83% 80%,66% 80%,66% 100%,33% 100%,33% 80%,16% 80%,16% 60%,0 60%);opacity:.4;transform:scaleY(.35);transition:transform var(--noir-transition),opacity var(--noir-transition); }
.voice-overlay[data-mode="listening"] .voice-state::before,.voice-overlay[data-mode="speaking"] .voice-state::before { opacity:1;transform:scaleY(1); }
.voice-overlay[data-mode="thinking"] .voice-state::before { opacity:.7;transform:scaleY(.6); }
.voice-overlay .voice-circle { min-width:var(--signature-control);min-height:var(--signature-control);border-radius:50%;background:var(--noir-surface)!important; }
.voice-overlay #voice-mic { border-color:var(--noir-line-strong)!important; }
.voice-overlay[data-mode="listening"] #voice-mic { color:var(--noir-bg)!important;background:var(--noir-text)!important; }
.voice-overlay .voice-captions { max-width:720px;font-size:1rem;line-height:1.7;color:var(--noir-text)!important; }
.voice-overlay :is(.voice-privacy,.vision-data-note) { font-size:var(--signature-caption);line-height:1.6; }
@media(max-width:590px){.voice-overlay .voice-toolbar,.voice-overlay .voice-stage{padding:var(--signature-space-4);}.voice-orb{--orbsize:min(60vw,260px);}}
@media(prefers-reduced-motion:reduce){.voice-state::before{transition:none!important;transform:none!important;}}
html.vasluno-reduced-motion .voice-state::before{transition:none!important;transform:none!important;}
/* Shared states: no synthetic success, connection, or delivery information. */
.inside-app :is(.empty-state,.loading-panel,.empty-chat,.chat-side-help) { color:var(--noir-muted);border-radius:var(--signature-panel-radius); }
.inside-app .empty-state { padding:var(--signature-space-8);background:var(--noir-inset); }
.inside-app .empty-state h3 { font-weight:600;font-size:1.25rem; }
#market-results > .loading-panel { display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:var(--signature-space-3);min-height:220px; }
#market-results > .loading-panel::after { content:"";display:block;flex-basis:100%;height:96px;border-radius:var(--noir-radius-md);background:repeating-linear-gradient(90deg,var(--noir-raised) 0 28%,transparent 28% 36%);opacity:.7; }
.signature-offline { position:fixed;z-index:60;left:50%;top:max(var(--signature-space-4),env(safe-area-inset-top));transform:translateX(-50%);width:max-content;max-width:calc(100% - 32px);padding:var(--signature-space-3) var(--signature-space-4);background:var(--noir-surface);border:1px solid var(--noir-warning-text);border-radius:var(--noir-radius-md);color:var(--noir-text);font-size:var(--signature-caption);box-shadow:var(--signature-shadow);pointer-events:none; }
.signature-busy::after { content:"";width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;flex:none;animation:signature-busy 800ms linear infinite; }
@keyframes signature-busy{to{transform:rotate(360deg);}}
.toast { max-width:min(560px,calc(100vw - 32px));border:1px solid var(--noir-line-strong);background:var(--noir-surface);color:var(--noir-text);padding:var(--signature-space-4);border-radius:var(--noir-radius-md);box-shadow:var(--signature-shadow); }
.market-image-retry { min-height:var(--signature-touch); }
@media(prefers-reduced-motion:reduce){.signature-busy::after{animation:none!important;}}
html.vasluno-reduced-motion .signature-busy::after{animation:none!important;}
@media(forced-colors:active){.signature-icon-button,.signature-dialog,.signature-offline{border:1px solid ButtonText;}.signature-avatar-image{forced-color-adjust:none;}}
