/* GENESIS Messenger real-use readiness · app chrome, typing, routing, palette.
   VISUAL RESTORATION: styled exclusively from the verified Messenger token
   contract (genesis-messenger.css · Apple-neutral dark, SF typography, Apple
   blue accent #0a84ff, system status colors, pill controls). No foreign
   palettes — legacy --gm-panel/--gm-line/--gm-ink vocabulary retired. */

/* ---- Menu bar (desktop-style menus — quiet, native density; the era target
   carries no menubar chrome, so the restored treatment minimizes its presence) ---- */
.gm-menubar { display: flex; gap: 1px; padding: 3px 10px; background: var(--gm-bg, #000); border-bottom: 1px solid var(--gm-border-subtle, rgba(255,255,255,.09)); position: relative; z-index: 40; }
.gm-menu { position: relative; }
.gm-menu > button { background: none; border: 0; color: var(--gm-secondary, #c7c7cc); font: 500 13px/1.4 var(--gm-font-sans, -apple-system, "system-ui", "Helvetica Neue", Arial, sans-serif); padding: 3px 9px; border-radius: 7px; cursor: pointer; }
.gm-menu > button:hover, .gm-menu > button[aria-expanded="true"] { background: var(--gm-hover, #242426); color: var(--gm-text, #f5f5f7); }
.gm-menu-list { position: absolute; top: calc(100% + 6px); left: 0; min-width: 260px; background: var(--gm-raised, #2c2c2e); border: 1px solid var(--gm-border, #3a3a3c); border-radius: var(--gm-radius, 16px); padding: 6px; box-shadow: 0 12px 32px rgba(0,0,0,.45); z-index: 50; }
.gm-menu-item { display: block; width: 100%; text-align: left; padding: 7px 12px; border: 0; background: none; color: var(--gm-text, #f5f5f7); font: 400 14px/1.4 var(--gm-font-sans, -apple-system, "system-ui", "Helvetica Neue", Arial, sans-serif); border-radius: 8px; cursor: pointer; }
.gm-menu-item:hover:not(.disabled) { background: var(--gm-accent-soft, rgba(10,132,255,.15)); }
.gm-menu-item.disabled { color: var(--gm-muted, #8e8e93); cursor: default; opacity: .65; }
.gm-menu-item:focus-visible, .gm-menu > button:focus-visible { outline: 3px solid var(--gm-accent, #0a84ff); outline-offset: 2px; }
.gm-menu-item small { display: block; font-size: 11px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: var(--gm-muted, #8e8e93); }

/* ---- Settings dialog ---- */
.gm-settings-backdrop { position: fixed; inset: 0; background: rgba(0,0,0,.55); display: flex; align-items: center; justify-content: center; z-index: 60; }
.gm-settings { width: min(640px, 92vw); max-height: 80vh; overflow: auto; background: var(--gm-surface, #1c1c1e); border: 1px solid var(--gm-border, #3a3a3c); border-radius: var(--gm-radius-lg, 20px); padding: 22px 26px; }
.gm-settings h2 { margin: 0 0 14px; font-size: 24px; font-weight: 650; letter-spacing: -0.48px; color: var(--gm-text, #f5f5f7); }
.gm-settings-sections { display: grid; gap: 14px; }
.gm-settings-section { border: 1px solid var(--gm-border-subtle, rgba(255,255,255,.09)); border-radius: var(--gm-radius, 16px); padding: 12px 16px; background: var(--gm-raised, #2c2c2e); }
.gm-settings-section h3 { margin: 0 0 8px; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .09em; color: var(--gm-muted, #8e8e93); }
.gm-settings-row { display: flex; gap: 10px; align-items: flex-start; font: 400 15px/1.5 var(--gm-font-sans, -apple-system, "system-ui", "Helvetica Neue", Arial, sans-serif); color: var(--gm-text, #f5f5f7); }
.gm-settings-row input { margin-top: 3px; width: 18px; height: 18px; accent-color: var(--gm-accent, #0a84ff); }
.gm-settings-note { color: var(--gm-muted, #8e8e93); font-size: 13px; margin: 4px 0 0; }
.gm-settings-close { margin-top: 16px; padding: 8px 22px; border-radius: var(--gm-radius-pill, 999px); border: 0; background: var(--gm-accent, #0a84ff); color: #fff; font: 650 14px/1.4 var(--gm-font-sans, -apple-system, "system-ui", "Helvetica Neue", Arial, sans-serif); cursor: pointer; }
.gm-settings-close:focus-visible { outline: 3px solid var(--gm-accent, #0a84ff); outline-offset: 2px; }

/* ---- Named typing indicator (subtle dots, reduced-motion static) ---- */
.gm-typing { padding: 8px 24px 0; font-size: 15px; color: var(--gm-secondary, #c7c7cc); }
.gm-typing[hidden] { display: none; }
.gm-typing-dots { display: inline-flex; gap: 4px; margin-left: 8px; }
.gm-typing-dots i { width: 6px; height: 6px; border-radius: 50%; background: currentColor; opacity: .35; animation: gmTypingPulse 1.2s ease-in-out infinite; }
.gm-typing-dots i:nth-child(2) { animation-delay: .2s; }
.gm-typing-dots i:nth-child(3) { animation-delay: .4s; }
@keyframes gmTypingPulse { 0%, 100% { opacity: .35; } 50% { opacity: .95; } }
@media (prefers-reduced-motion: reduce) { .gm-typing-dots i { animation: none; opacity: .8; } }

/* ---- Routing status (calm, single line) ---- */
.gm-routing-status { padding: 4px 24px 0; font: 650 13px/1.4 var(--gm-font-sans, -apple-system, "system-ui", "Helvetica Neue", Arial, sans-serif); color: var(--gm-text, #f5f5f7); }
.gm-routing-status[hidden] { display: none; }

/* ---- Command palette ---- */
.gm-palette-backdrop { position: fixed; inset: 0; background: rgba(0,0,0,.55); display: flex; align-items: flex-start; justify-content: center; padding-top: 10vh; z-index: 60; }
.gm-palette { width: min(640px, 92vw); max-height: 70vh; display: flex; flex-direction: column; background: var(--gm-surface, #1c1c1e); border: 1px solid var(--gm-border, #3a3a3c); border-radius: var(--gm-radius-lg, 20px); padding: 14px; }
.gm-palette input { width: 100%; box-sizing: border-box; padding: 10px 14px; border-radius: 12px; border: 1px solid var(--gm-border, #3a3a3c); background: var(--gm-raised, #2c2c2e); color: var(--gm-text, #f5f5f7); font: 400 15px/1.4 var(--gm-font-sans, -apple-system, "system-ui", "Helvetica Neue", Arial, sans-serif); }
.gm-palette-list { overflow: auto; margin-top: 10px; display: grid; gap: 2px; min-height: 48px; }
.gm-palette-section { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .09em; color: var(--gm-muted, #8e8e93); padding: 8px 6px 2px; }
.gm-palette-item { display: flex; gap: 8px; align-items: center; border-radius: 8px; padding: 2px 4px; }
.gm-palette-item.active { background: var(--gm-accent-soft, rgba(10,132,255,.15)); }
.gm-palette-main { flex: 1; text-align: left; padding: 8px 10px; border: 0; background: none; color: var(--gm-text, #f5f5f7); border-radius: 8px; cursor: pointer; font: 400 14px/1.4 var(--gm-font-sans, -apple-system, "system-ui", "Helvetica Neue", Arial, sans-serif); }
.gm-palette-main small { display: block; color: var(--gm-muted, #8e8e93); font-size: 12px; }
.gm-palette-fav { background: none; border: 0; color: #ffd60a; font-size: 16px; cursor: pointer; width: 32px; height: 32px; }
.gm-palette-empty { color: var(--gm-muted, #8e8e93); font-size: 14px; padding: 10px 6px; }
.gm-palette-footer { color: var(--gm-muted, #8e8e93); font-size: 12px; margin: 8px 0 0; padding: 0 6px; }
.gm-palette :focus-visible { outline: 3px solid var(--gm-accent, #0a84ff); outline-offset: 2px; }

/* Sidebar hide + forced narrow helpers (View / Window menus) */
body.gm-sidebar-hidden .gm-sidebar { display: none; }
@media (max-width: 720px) { .gm-menubar { overflow-x: auto; } }

/* ---- Message actions (Phase F scaffolding) ---- */
.gm-msg-actions-btn { background: none; border: 0; color: var(--gm-muted, #8e8e93); font-size: 16px; line-height: 1; padding: 2px 6px; border-radius: 6px; cursor: pointer; opacity: 0; transition: opacity .12s ease-out; }
article.message:hover .gm-msg-actions-btn,
article.message:focus-within .gm-msg-actions-btn { opacity: 1; }
.gm-msg-actions-btn:focus-visible { opacity: 1; outline: 3px solid var(--gm-accent, #0a84ff); outline-offset: 2px; }
.gm-msg-menu { position: absolute; z-index: 70; min-width: 200px; background: var(--gm-raised, #2c2c2e); border: 1px solid var(--gm-border, #3a3a3c); border-radius: var(--gm-radius, 16px); padding: 6px; box-shadow: 0 12px 32px rgba(0,0,0,.45); }
.gm-msg-menu [role="menuitem"] { display: block; width: 100%; text-align: left; padding: 7px 12px; border: 0; background: none; color: var(--gm-text, #f5f5f7); font: 400 14px/1.4 var(--gm-font-sans, -apple-system, "system-ui", "Helvetica Neue", Arial, sans-serif); border-radius: 8px; cursor: pointer; }
.gm-msg-menu [role="menuitem"]:hover:not([disabled]), .gm-msg-menu [role="menuitem"]:focus-visible:not([disabled]) { background: var(--gm-accent-soft, rgba(10,132,255,.15)); outline: none; }
.gm-msg-menu [role="menuitem"][disabled] { color: var(--gm-muted, #8e8e93); cursor: default; opacity: .65; }
@media (prefers-reduced-motion: reduce) { .gm-msg-actions-btn { transition: none; } }
