/* Substi brand theme: gray surfaces, white type and restrained blue accents. */
:root {
  color-scheme: dark;
  --ink: #f3f6fa;
  --muted: #a9b5c1;
  --line: #46505b;
  --cream: #2b3037;
  --sidebar: #20242a;
  --sidebar-soft: #2a3038;
  --green: #5aaaff;
  --green-dark: #1f4672;
  --white: #fff;
  --accent: #5aaaff;
  --accent-hover: #78bbff;
  --surface: #2b3037;
  --surface-raised: #343b44;
  --surface-deep: #20242a;
  --shadow: 0 20px 60px rgba(0, 0, 0, .3);
  background: var(--surface);
  color: var(--ink);
}

body, .app-shell, .main-area, .chat-view, .composer-wrap,
.auth-shell, .auth-form-wrap, .auth-card { background: var(--surface); color: var(--ink); }
button, input, textarea, select { color: var(--ink); }
button:focus-visible, a:focus-visible, input:focus-visible,
textarea:focus-visible, select:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.eyebrow, .eyebrow.light, .brand span { color: var(--accent); }
.brand, .auth-card h2, .chat-heading h1, .empty-view h1,
.chat-intro h2, .panel-head h2, .admin-header h1, .modal-head h2 { color: #fff; }
.button.primary, .new-chat { background: #458fdd; color: #fff; box-shadow: none; }
.button.primary:hover, .new-chat:hover { background: #62a7ed; color: #fff; box-shadow: 0 7px 22px rgba(70, 150, 230, .22); }
.button.outline, .button.subtle { background: var(--surface-raised); border: 1px solid #56616e; color: #f4f7fa; }
.button.outline:hover, .button.subtle:hover { background: #3d4752; }
.icon-button { background: #3a424b; color: #e4ebf2; }
.icon-button:hover { background: #4b5865; }

/* Entry screen */
.auth-art { background: #23282f; color: #fff; }
.auth-art:before { border-color: rgba(90,170,255,.2); box-shadow: 0 0 0 100px rgba(90,170,255,.035),0 0 0 200px rgba(90,170,255,.025); }
.auth-art:after { color: rgba(90,170,255,.23); }
.auth-copy p, .auth-footer { color: #b8c3ce; }
.auth-card > p, .auth-note { color: var(--muted) !important; }
.field { color: #dfe6ee; }
.field input, .field textarea, .field select,
.editor-row input, .editor-row select {
  background: #363d46; border-color: #58636e; color: #f5f7fa;
}
.field input::placeholder, .field textarea::placeholder,
.editor-row input::placeholder, .composer textarea::placeholder { color: #a3afba; }
.field input:focus, .field textarea:focus, .field select:focus, .composer textarea:focus {
  border-color: var(--accent); box-shadow: 0 0 0 3px rgba(90,170,255,.18);
}
.form-error { background: #5a3034; color: #ffe2e3; }
.mobile-brand { color: #fff; }

/* Navigation */
.sidebar { background: var(--surface-deep); color: #e5ebf2; }
.sidebar-search { border-color: #48535f; color: #a9bbca; }
.sidebar-search input { color: #f4f7fa; }
.sidebar-search input::placeholder, .sidebar-label, .sidebar-client,
.chat-item .chat-item-meta, .sidebar-action, .user-card small { color: #a5b1bd; }
.chat-item { color: #e0e6ec; }
.chat-item:hover, .sidebar-action:hover { background: #2f3842; }
.chat-item.active { background: #33455a; color: #fff; border-left: 3px solid var(--accent); padding-left: 9px; }
.chat-item.active .chat-item-meta { color: #c2d5e7; }
.sidebar-bottom, .user-card { border-color: #3c4650; }
.avatar { background: #274d75; color: #e4f2ff; }
.user-card strong { color: #fff; }

/* Dossier and conversation */
.empty-view { background: radial-gradient(circle at 50% 31%, #334458 0%, #2b3037 42%); }
.empty-mark { background: #334a61; border-color: #557da5; color: #a9d3ff; }
.empty-steps { color: #adb8c2; }
.empty-steps b { color: var(--accent); }
.chat-header, .document-bar, .composer-wrap { border-color: var(--line); }
.client-avatar { background: #315071; color: #dbeeff; }
.chat-client, .document-bar-label { color: #a8b9c9; }
.document-bar { background: #292f36; }
.doc-tab { background: #343b44; border-color: #59636e; color: #f0f4f8; }
.doc-tab:hover, .doc-tab.active { background: #364b63; border-color: var(--accent); }
.doc-tab small { color: #bbcad7; }
.doc-icon { color: #8bc4ff; }
.chat-scroll { scrollbar-color: #5b6876 transparent; }
.transcript-card { background: #313d49; border-color: #526d87; }
.transcript-icon { background: #395a79; color: #d6ebff; }
.transcript-copy strong, .readiness strong { color: #fff; }
.transcript-copy p, .chat-intro p, .readiness p, .empty-view p { color: #b8c4ce; }
.readiness { background: #343b44; border-color: #515c68; }
.readiness.good { background: #2f4155; border-color: #5c8dbd; }
.readiness ul { color: #e3c7a3; }
.message.user { background: #315273; color: #fff; }
.message.system, .message-meta { color: #a9b7c4; }
.assistant-icon { background: #36597a; color: #d6eaff; }
.composer { background: #343b44; border-color: #5c6773; box-shadow: none; }
.composer:focus-within { border-color: var(--accent); }
.composer textarea { color: #fff; }
.send-button { background: #458fdd; color: #fff; }
.send-button:hover { background: #68adf0; }
.composer-wrap p { color: #acb8c4; }

/* Document preview and administration */
.document-panel { background: #23282e; border-color: var(--line); }
.panel-head, .panel-tools { background: #2d333a; border-color: var(--line); }
.panel-tools select { background: #363f48; color: #fff; border-color: #5d6873; }
.panel-warning { background: #514435; color: #ffdfb4; }
.document-panel iframe { background: #22262c; }
.admin-view { background: var(--surface); }
.stat-card, .admin-section { background: #343b44; border-color: #515b66; }
.stat-card strong, .admin-section-head h2 { color: #fff; }
.stat-card span, .admin-header p { color: #b6c2cd; }
.admin-section-head, .admin-table td { border-color: #505a65; }
.admin-table th { background: #303841; color: #c3d0dc; }
.admin-table button, .text-button { color: #92c8ff; }
.pill { background: #315475; color: #d9edff; }

/* Dialogs and editor */
.modal-overlay { background: rgba(8, 11, 15, .72); }
.modal, .process-editor { background: #2d343c; color: #f3f6fa; }
.modal-head, .section-title { border-color: #505b65; }
.modal-help, .process-editor-head span, .tiny-note { color: #b7c3ce; }
.process-editor { border-color: #535e69; }
.editor-row label { color: #c5d0db; }
.editor-row button { background: #584047; color: #ffdce1; }
.text-button.danger { color: #ffa6aa; }
.transcript-preview { background: #232a31; border-color: #4e5965; color: #eff4f8; }
.toast { background: #3c5772; color: #fff; }
