/* DXED / shared product language. Keep semantic states separate from brand. */
:root {
  color-scheme: dark;
  --dx-bg:#101113; --dx-surface:#181a1e; --dx-surface-2:#22252b;
  --dx-border:#30343c; --dx-border-strong:#515764;
  --dx-text:#f1f2f4; --dx-muted:#b0b6c1; --dx-faint:#969eac;
  --dx-accent:#d89b78; --dx-accent-hover:#e8b597; --dx-accent-soft:#342820;
  --dx-on-accent:#231810; --dx-link:#e6b393;
  --dx-success:#88d7b4; --dx-warning:#e8c17a; --dx-danger:#f09c9c; --dx-info:#a9c1ed;
  --dx-font:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --dx-mono:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;
  --dx-radius-sm:6px; --dx-radius:10px; --dx-radius-lg:16px;
  --dx-space-1:4px; --dx-space-2:8px; --dx-space-3:12px; --dx-space-4:16px;
  --dx-space-5:24px; --dx-space-6:32px; --dx-space-7:48px; --dx-space-8:64px;
  --dx-type-xs:.75rem; --dx-type-sm:.875rem; --dx-type-body:1rem;
  --dx-type-title:1.5rem; --dx-type-display:clamp(2.5rem,6vw,5rem);
  --dx-shadow:0 16px 48px #0004; --dx-motion:150ms;
}
html[data-theme="light"] {
  color-scheme:light;
  --dx-bg:#f6f5f2; --dx-surface:#fff; --dx-surface-2:#eeefed;
  --dx-border:#dedfda; --dx-border-strong:#a9ada8;
  --dx-text:#202126; --dx-muted:#555b64; --dx-faint:#656c77;
  --dx-accent:#904821; --dx-accent-hover:#703518; --dx-accent-soft:#f5e8de;
  --dx-on-accent:#fff; --dx-link:#89431f;
  --dx-success:#176c4d; --dx-warning:#80550f; --dx-danger:#ac3341; --dx-info:#365e98;
  --dx-shadow:0 16px 48px #252b3312;
}
/* Bridge existing components so themes have one source of truth. */
html body.dx2, html[data-theme="light"] body.dx2 {
  --ui-bg:var(--dx-bg); --ui-surface:var(--dx-surface); --ui-raised:var(--dx-surface-2);
  --ui-line:var(--dx-border); --ui-line-strong:var(--dx-border-strong);
  --ui-text:var(--dx-text); --ui-secondary:var(--dx-muted); --ui-muted:var(--dx-faint);
  --ui-blue:var(--dx-accent); --ui-link:var(--dx-link); --ui-primary:var(--dx-accent);
  --ui-selected:var(--dx-accent-soft); --ui-on-primary:var(--dx-on-accent);
  --accent-2:var(--dx-accent-hover); --font:var(--dx-font);
  font-family:var(--dx-font); background:var(--dx-bg); color:var(--dx-text);
}
.dx-ui { margin:0; background:var(--dx-bg); color:var(--dx-text); font:400 16px/1.6 var(--dx-font); }
.dx-ui *, .dx-ui *::before, .dx-ui *::after { box-sizing:border-box; }
.dx-ui [hidden] { display:none!important; }
.dx-ui :is(button,input,textarea,select) { font:inherit; }
.dx-ui a { color:var(--dx-link); text-underline-offset:4px; }
.dx-ui :is(button,a,input,textarea,select,summary,[tabindex]):focus-visible,
body.dx2 :is(button,a,input,textarea,select,summary,[tabindex]):focus-visible {
  outline:2px solid var(--dx-accent); outline-offset:4px;
}
.dx-ui ::selection { background:var(--dx-accent-soft); color:var(--dx-text); }
/* Installation is optional Home context, never an overlay on a conversation. */
body.dx2:not([data-section="home"]) #dxInstallPill,
body.dx2:has(#post-modal:not(.hidden)) #dxInstallPill { display:none!important; }
html[data-theme="light"] body.dx2 #dxInstallPill { background:var(--dx-surface)!important; color:var(--dx-text)!important; border-color:var(--dx-border)!important; }
html body.dx2 .chat-input-row .btn-primary { background:var(--dx-accent); color:var(--dx-on-accent); }
html body.dx2 :is(.dx2-strip-btn,.site-search) { color:var(--dx-muted); }
.dx-skip { position:fixed; top:-100px; left:16px; z-index:99999; padding:12px 18px; background:var(--dx-surface); border:1px solid var(--dx-border-strong); border-radius:var(--dx-radius); }
.dx-skip:focus { top:12px; }
.dx-eyebrow { color:var(--dx-muted); font-size:var(--dx-type-xs); font-weight:650; letter-spacing:.1em; text-transform:uppercase; }
.dx-number { font-variant-numeric:tabular-nums; font-feature-settings:"tnum"; }
.dx-button { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:42px; padding:10px 16px; border:1px solid transparent; border-radius:var(--dx-radius); background:var(--dx-accent); color:var(--dx-on-accent)!important; font:600 .875rem/1.4 var(--dx-font); text-decoration:none; cursor:pointer; transition:background var(--dx-motion),border-color var(--dx-motion); }
.dx-button:hover { background:var(--dx-accent-hover); }
.dx-button.secondary { background:var(--dx-surface); border-color:var(--dx-border-strong); color:var(--dx-text)!important; }
.dx-button.secondary:hover { background:var(--dx-surface-2); }
.dx-button.quiet { background:transparent; color:var(--dx-muted)!important; }
.dx-button.quiet:hover { background:var(--dx-surface-2); color:var(--dx-text)!important; }
.dx-button:disabled { opacity:.6; cursor:wait; }
.dx-button svg,.dx-icon { width:18px; height:18px; flex:none; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.dx-field { display:grid; gap:7px; min-width:0; }
.dx-label { font-size:.875rem; font-weight:600; color:var(--dx-text); }
.dx-input { width:100%; min-height:44px; padding:10px 12px; background:var(--dx-bg); border:1px solid var(--dx-border-strong); border-radius:var(--dx-radius-sm); color:var(--dx-text); }
.dx-input::placeholder { color:var(--dx-faint); opacity:1; }
.dx-input[aria-invalid="true"] { border-color:var(--dx-danger); }
.dx-help { font-size:.8125rem; line-height:1.6; color:var(--dx-muted); margin:0; }
.dx-card { border:1px solid var(--dx-border); border-radius:var(--dx-radius-lg); background:var(--dx-surface); padding:var(--dx-space-5); }
.dx-empty { padding:var(--dx-space-7) var(--dx-space-5); text-align:center; color:var(--dx-muted); }
.dx-empty strong { display:block; margin-bottom:8px; color:var(--dx-text); font-size:1rem; }
.dx-status { display:inline-flex; align-items:center; gap:7px; max-width:100%; padding:4px 9px; border:1px solid var(--dx-border); border-radius:6px; color:var(--dx-muted); font-size:.75rem; font-weight:550; line-height:1.5; }
.dx-status[data-tone="success"] { color:var(--dx-success); }
.dx-status[data-tone="warning"] { color:var(--dx-warning); }
.dx-status[data-tone="danger"] { color:var(--dx-danger); }
.dx-status[data-tone="info"] { color:var(--dx-info); }
.dx-tabs { display:flex; gap:4px; overflow-x:auto; border-bottom:1px solid var(--dx-border); padding-bottom:8px; }
.dx-tabs :is(a,button) { flex:none; padding:9px 12px; border:0; background:transparent; border-radius:7px; color:var(--dx-muted); text-decoration:none; cursor:pointer; }
.dx-tabs [aria-selected="true"],.dx-tabs [aria-current="page"] { background:var(--dx-accent-soft); color:var(--dx-link); }
.dx-dialog { width:min(600px,calc(100vw - 32px)); max-height:calc(100dvh - 40px); overflow:auto; padding:24px; background:var(--dx-surface); color:var(--dx-text); border:1px solid var(--dx-border-strong); border-radius:var(--dx-radius-lg); box-shadow:var(--dx-shadow); }
.dx-dialog::backdrop { background:#08090bbd; }
.dx-dialog h2 { margin:0; font-size:1.5rem; line-height:1.3; letter-spacing:-.025em; }
.dx-menu { padding:6px; border:1px solid var(--dx-border); border-radius:var(--dx-radius); background:var(--dx-surface); box-shadow:var(--dx-shadow); }
.dx-tooltip { padding:6px 10px; border:1px solid var(--dx-border); border-radius:var(--dx-radius-sm); background:var(--dx-surface-2); color:var(--dx-text); font-size:.75rem; }
.dx-toast { padding:12px 16px; border:1px solid var(--dx-border-strong); border-radius:var(--dx-radius); background:var(--dx-surface-2); box-shadow:var(--dx-shadow); color:var(--dx-text); }
.dx-skeleton { background:var(--dx-surface-2); border-radius:6px; animation:dx-pulse 1.8s ease-in-out infinite; }
@keyframes dx-pulse { 50% { opacity:.45; } }
@media(max-width:600px) { .dx-button { min-height:44px; } .dx-dialog { padding:20px; } }
@media(prefers-reduced-motion:reduce) { :root { --dx-motion:0ms; } .dx-skeleton { animation:none; } .dx-ui { scroll-behavior:auto; } }
