/* SPEC114 AV step 3: the AI chat window (owner toolbar «AI», technician header «AI»). Champagne tokens from main_y2.css. */
.ai-chat{display:grid;grid-template-rows:auto auto 1fr auto;gap:.6rem;min-height:min(70vh,560px);max-width:960px;margin:auto}
.ai-chat-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}
.ai-chat-provider{opacity:.78;font-size:.92rem}
.ai-chat-log{overflow:auto;display:grid;gap:.5rem;align-content:start;padding:.4rem;border:1px solid var(--line,#d7d0c2);border-radius:10px;min-height:220px;max-height:52vh}
.ai-chat-message{max-width:88%;padding:.55rem .75rem;border-radius:12px;background:rgba(212,178,91,.10)}
.ai-chat-message p{margin:0;white-space:pre-wrap;word-break:break-word}
.ai-chat-user{justify-self:end;background:rgba(212,178,91,.22)}
.ai-chat-assistant{justify-self:start}
.ai-chat-busy{opacity:.6}
.ai-chat-empty{opacity:.65;margin:.4rem}
.ai-chat-action{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;margin-top:.4rem;font-size:.86rem;opacity:.9}
.ai-chat-pending{padding:.35rem .5rem;border:1px dashed var(--champ,#d7b56d);border-radius:8px}
.ai-chat-refused{color:#8f3f12}
.ai-chat-form{display:grid;grid-template-columns:1fr auto;gap:.5rem;align-items:end}
.ai-chat-form textarea{width:100%;min-height:48px;resize:vertical}
.ai-chat-error{color:#8f3f12}
@media(max-width:760px){.ai-chat-form{grid-template-columns:1fr}.ai-chat-message{max-width:100%}}
/* Ledger 294–296: the «⋯» button and the AI allowance window (ai_quota.js) */
.ai-chat-tools{display:flex;gap:.4rem;align-items:center}
.ai-chat-more{min-width:2.4rem;font-size:1.2rem;line-height:1;padding:.3rem .6rem}
.ai-quota{display:grid;gap:.9rem;max-width:900px;margin:auto}
.ai-quota-head{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;flex-wrap:wrap}
.ai-quota-head h3{margin:0}
.ai-quota-month{opacity:.75;font-size:.92rem}
.ai-quota-meter{display:grid;gap:.45rem;padding:1rem 1.1rem;border:1px solid var(--line,#d7d0c2);border-radius:14px;background:rgba(215,181,109,.08)}
.ai-quota-meter.is-warning{border-color:#d7a13a}
.ai-quota-big{display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap}
.ai-quota-big strong{font-size:2.2rem;line-height:1}
.ai-quota-big span{opacity:.8}
.ai-quota-warning{margin-left:auto;padding:.15rem .55rem;border-radius:999px;background:#d7a13a;color:#1b1710;font-size:.8rem;font-weight:600}
.ai-quota-track{height:.65rem;border-radius:999px;background:rgba(0,0,0,.12);overflow:hidden}
.ai-quota-track span{display:block;height:100%;background:var(--champ,#d7b56d);border-radius:999px;transition:width .3s}
.ai-quota-line{display:flex;justify-content:space-between;gap:.75rem;margin:0;font-size:.92rem;opacity:.85}
.ai-quota-models ul{margin:.3rem 0 0;padding-left:1.1rem}
.ai-quota h4{margin:0 0 .35rem;font-size:.95rem;opacity:.85}
.ai-quota-chart{display:flex;align-items:flex-end;gap:2px;height:72px;padding:.3rem;border:1px solid var(--line,#d7d0c2);border-radius:10px}
.ai-quota-bar{flex:1;min-width:3px;background:var(--champ,#d7b56d);border-radius:2px 2px 0 0;opacity:.85}
.ai-quota-top{border-collapse:collapse;font-size:.92rem}
.ai-quota-top caption{text-align:left;font-weight:600;padding-bottom:.25rem}
.ai-quota-top td{padding:.2rem .6rem .2rem 0;border-bottom:1px solid var(--line,#d7d0c2)}
.ai-quota-top td:last-child{text-align:right}
.ai-quota-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.6rem}
.ai-quota-tile{display:grid;gap:.25rem;text-align:left;padding:.8rem .9rem;border:1px solid var(--line,#d7d0c2);border-radius:12px;background:transparent;color:inherit;cursor:pointer}
.ai-quota-tile:hover:not([disabled]){border-color:var(--champ,#d7b56d)}
.ai-quota-tile.is-current{border-color:var(--champ,#d7b56d);background:rgba(215,181,109,.12)}
.ai-quota-tile span{font-size:.88rem;opacity:.8}
.ai-quota-tile em{font-style:normal;font-size:.8rem;color:var(--champ-ink,#8a6a1e);font-weight:600}
.ai-quota-tile[disabled]{cursor:default;opacity:.7}
.ai-quota-actions{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}
.ai-quota-empty,.ai-quota-note{opacity:.7;margin:0}
.ai-quota-error{color:#b3261e;margin:0}
