/* FileShare UI · css/ai.css · AI assistant panel. Loaded in the order listed in index.html. */
/* AI assistant panel */
.ai-panel { position: fixed; top: 0; right: 0; bottom: 0; width: min(480px, 100vw); z-index: 90; background: #fff; border-left: 1px solid var(--line);
  box-shadow: -10px 0 30px rgba(0,0,0,.15); display: grid; grid-template-rows: auto 1fr auto; }
.ai-panel[hidden] { display: none; }
.ai-head { display: flex; align-items: center; gap: 8px; padding: 12px 14px; background: #3B2E6E; color: #fff; }
.ai-head .ic { width: 20px; height: 20px; color: #F2D47A; }
.ai-head .muted { color: #C9C2E8; font-size: 12px; }
.ai-head .linklike { margin-left: auto; color: #E4DEFF; }
.ai-head #ai-close { border: 0; background: none; color: #fff; font-size: 24px; cursor: pointer; line-height: 1; }
.ai-log { overflow: auto; padding: 14px; display: flex; flex-direction: column; gap: 10px; background: #F7F6FB; }
.ai-msg { max-width: 92%; padding: 9px 12px; border-radius: 10px; font-size: 14px; line-height: 1.5; word-break: break-word; }
.ai-msg.user { align-self: flex-end; background: #3B2E6E; color: #fff; border-bottom-right-radius: 3px; white-space: pre-wrap; }
.ai-msg.bot { align-self: flex-start; background: #fff; border: 1px solid var(--line); border-bottom-left-radius: 3px; }
.ai-msg.bot table { border-collapse: collapse; margin: 6px 0; font-size: 12.5px; }
.ai-msg.bot th, .ai-msg.bot td { border: 1px solid var(--line); padding: 3px 6px; text-align: left; }
.ai-msg.bot p { margin: 0 0 6px; }
.ai-msg.err { background: #FDECEA; border-color: #F5C2BC; color: #8A1C12; }
.ai-steps { font-size: 12px; color: var(--muted); margin: 4px 0 0; padding-left: 16px; }
.ai-card { border: 1px solid #D8D1F2; background: #F3F0FF; border-radius: 8px; padding: 9px 11px; margin-top: 8px; font-size: 13.5px; }
.ai-card .row-actions { margin-top: 8px; }
.ai-card.done { background: #EAF6EF; border-color: #BFE3CC; } .ai-card.cancelled { opacity: .6; }
.ai-file { display: inline-flex; gap: 6px; align-items: center; margin: 6px 6px 0 0; }
.ai-examples { display: flex; flex-wrap: wrap; gap: 6px; }
.ai-examples button { border: 1px solid #D8D1F2; background: #fff; border-radius: 14px; padding: 4px 10px; font-size: 12.5px; cursor: pointer; color: #3B2E6E; }
.ai-form { display: flex; gap: 8px; padding: 10px; border-top: 1px solid var(--line); }
.ai-form textarea { flex: 1; resize: none; font: inherit; font-size: 14px; padding: 8px; border: 1px solid var(--line); border-radius: 6px; }
.ai-live { white-space: pre-wrap; }
.ai-live:empty { display: none; }
.ai-status { display: flex; align-items: center; gap: 7px; font-size: 12.5px; color: var(--muted); margin-top: 4px; }
.ai-dot { width: 8px; height: 8px; border-radius: 50%; background: #7B61D6; animation: aipulse 1s ease-in-out infinite; }
@keyframes aipulse { 50% { opacity: .25; transform: scale(.7); } }
.ai-timer, .ai-time { font-variant-numeric: tabular-nums; }
.ai-time { font-size: 11px; color: var(--muted); text-align: right; margin-top: 2px; }
.ai-step { font-size: 12px; color: #2E7D4F; }
