/* EP 精靈：沿用工作台色彩。 */
#page-genie { max-width: 1200px; }
.gn-head { margin-bottom: 14px; }
.gn-hello { font-size: 18px; font-weight: 700; color: var(--navy); }
.gn-block { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 10px 14px; margin-bottom: 12px; }
.gn-sub { font-size: 14px; margin: 0 0 6px; }
.gn-line { font-size: 13.5px; padding: 2px 0; overflow-wrap: anywhere; }
.gn-quote { font-size: 13px; color: var(--text); background: var(--bg); border-left: 3px solid var(--border); padding: 6px 10px; margin-top: 6px; overflow-wrap: anywhere; }

.gn-chat { display: flex; flex-direction: column; gap: 10px; }
.gn-log { display: flex; flex-direction: column; gap: 10px; max-height: 60vh; overflow-y: auto; padding: 4px 2px; }
.gn-msg { border-radius: 10px; padding: 10px 12px; font-size: 14px; max-width: 100%; overflow-wrap: anywhere; }
.gn-user { align-self: flex-end; background: var(--navy); color: #fff; max-width: 85%; }
.gn-assistant { align-self: flex-start; background: var(--surface); border: 1px solid var(--border); }
.gn-thinking { color: var(--muted); font-style: italic; }
.gn-text { white-space: pre-wrap; }
.gn-text + .gn-text, .gn-draft + .gn-text, .gn-text + .gn-draft { margin-top: 8px; }
.gn-draft { border: 1px solid var(--teal); background: #eef8f7; border-radius: var(--radius); padding: 10px 12px; margin-top: 8px; }
.gn-draft-label { font-size: 12px; font-weight: 600; color: var(--teal-dark); margin-bottom: 4px; }
.gn-draft-text { white-space: pre-wrap; margin-bottom: 8px; }
.gn-form textarea { width: 100%; resize: vertical; }
.gn-action { border: 1px solid var(--navy); background: var(--bg); border-radius: var(--radius); padding: 10px 12px; margin-top: 8px; }
.gn-action-done { border-color: var(--teal); }
.gn-action-failed { border-color: var(--danger); }
.gn-action-cancelled { opacity: .7; }
.gn-action-text { width: 100%; resize: vertical; margin-top: 6px; font: inherit; }

/* 查產品資料（直接搜尋，唔經 AI） */
.gn-kb-form { display: grid; gap: 6px; max-width: 520px; margin-bottom: 12px; }
.gn-kb-form input, .gn-kb-form select { width: 100%; }
.gn-kb-hit { border: 1px solid var(--border); border-radius: var(--radius); padding: 10px 12px; margin-bottom: 10px; background: var(--surface); }
.gn-kb-src { font-weight: 600; color: var(--navy); overflow-wrap: anywhere; }
.gn-kb-text { white-space: pre-wrap; font-size: 13px; margin-top: 6px; max-height: 320px; overflow-y: auto; overflow-wrap: anywhere; }

/* 精靈回覆：易讀格式 */
.gn-rich { line-height: 1.6; overflow-wrap: anywhere; }
.gn-rich > :first-child { margin-top: 0; }
.gn-p { margin: 0 0 8px; }
.gn-h { font-weight: 700; color: var(--navy); margin: 12px 0 4px; font-size: 14.5px; }
.gn-list { margin: 0 0 8px; padding-left: 20px; }
.gn-list li { margin: 3px 0; }
.gn-row { border-left: 3px solid var(--teal); padding: 4px 10px; margin: 6px 0; background: var(--bg); }
.gn-row-title { font-weight: 600; }
.gn-row-line { font-size: 13.5px; }
.gn-src { margin-top: 10px; font-size: 12.5px; color: var(--muted); }
.gn-src summary { cursor: pointer; font-weight: 600; }

/* 對話記錄（server）＋ 繼續上次對話 */
.gn-history { border: 1px solid var(--border); border-radius: var(--radius); padding: 8px 12px; background: var(--bg); }
.gn-history summary { cursor: pointer; font-weight: 600; color: var(--navy); }
#genie-history-list { margin-top: 8px; max-height: 50vh; overflow-y: auto; }
.gn-hist-item { display: flex; align-items: center; gap: 8px; border-top: 1px solid var(--border); padding: 6px 0; }
.gn-hist-current .gn-hist-title { color: var(--teal-dark); }
.gn-hist-open { flex: 1; min-width: 0; text-align: left; background: none; border: 0; padding: 6px 2px; cursor: pointer; font: inherit; color: inherit; min-height: 44px; }
.gn-hist-title { font-weight: 600; overflow-wrap: anywhere; }
.gn-hist-del { flex: none; }
.gn-continue { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.gn-action-expired { opacity: .7; }
