/* Scoped to the AI entry and dialog. */
.ai-entry{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:24px;padding:22px 26px;border:1px solid #dfe5ef;border-radius:20px;background:linear-gradient(110deg,#f3fbf8,#f6f5ff 70%,#f0f8fc)}
.ai-entry h3{margin:0 0 6px;font-size:18px;font-weight:400;line-height:1.45;letter-spacing:0;color:#3f4852}.ai-entry p{margin:0;color:#526579;font-size:14px}
.ai-entry button,.ai-dialog button{font:inherit;border:1px solid #d6e0ed;border-radius:12px;padding:10px 16px;background:#fff;color:#354c67;cursor:pointer}
.ai-entry button{white-space:nowrap;background:#697db0;color:white;border:0}
.ai-dialog{box-sizing:border-box;width:min(900px,calc(100% - 24px));max-height:88dvh;padding:0;border:1px solid #e0e8f1;border-radius:24px;color:#30415a;background:#fcfeff;box-shadow:0 24px 80px #334f7629;overflow:auto}
.ai-dialog::backdrop{background:#24375455;backdrop-filter:blur(5px)}
.ai-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:24px 28px;background:linear-gradient(115deg,#edf9f4,#edf1ff,#f3faff);border-bottom:1px solid #e1e9f3}
.ai-head h2{margin:4px 0 8px;font-size:27px;font-weight:550}.ai-head p{margin:0;color:#516780;font-size:14px}.ai-head span{font-size:12px;color:#546a83}
.ai-head button{font-size:22px;padding:4px 12px}.ai-body{padding:22px 28px}
.ai-dialog [hidden]{display:none!important}.ai-dialog label{display:block;font-size:14px}.ai-dialog textarea{box-sizing:border-box;width:100%;min-height:88px;resize:vertical;margin:8px 0 12px;padding:12px;border:1px solid #ccd9e8;border-radius:12px;background:white;color:#253c59;font:inherit}
.ai-dialog textarea::placeholder{color:#6e7e90}.ai-dialog input[type=file]{display:block;max-width:100%;margin:10px 0}.ai-tables{display:grid;gap:6px;max-height:150px;overflow:auto;margin:10px 0 16px}
.ai-tables label{display:flex;gap:8px;align-items:flex-start;overflow-wrap:anywhere}
.ai-note{font-size:12px;line-height:1.7;color:#576b81;margin:8px 0 14px}
.ai-consent{display:flex!important;gap:8px;align-items:flex-start;line-height:1.6;margin:12px 0}
.ai-dialog .ai-primary{background:#627aad;color:white;border-color:transparent}
.ai-dialog button:disabled{opacity:.55;cursor:wait}.ai-dialog :focus-visible{outline:2px solid #789ccc;outline-offset:3px}
.ai-message{font-size:14px;line-height:1.6;color:#375a77;min-height:22px;margin:14px 0}
.ai-plan,.ai-preview{border:1px solid #dce6f0;border-radius:16px;padding:18px;margin-top:16px;background:white}
.ai-plan h3,.ai-preview h3{margin:0 0 12px;font-size:18px;font-weight:550}
.ai-plan p,.ai-plan li{font-size:14px;line-height:1.7}.ai-plan ol{padding-left:22px}.ai-unsupported{color:#89583a}
.ai-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.ai-scroll{overflow:auto;max-height:260px;margin:12px 0}
.ai-dialog table{border-collapse:collapse;font-size:13px;min-width:100%}.ai-dialog th,.ai-dialog td{border-bottom:1px solid #e6ecf3;padding:8px 12px;text-align:left;white-space:nowrap;max-width:320px;overflow:hidden;text-overflow:ellipsis}
.ai-dialog th{background:#f1f6fb}.ai-dialog select{max-width:100%;padding:8px;border:1px solid #d5dfeb;border-radius:8px;background:white;color:inherit}
@media(max-width:600px){.ai-entry{padding:16px;gap:12px}.ai-entry h3{font-size:16px}.ai-entry p{font-size:12px}.ai-entry button{padding:10px;font-size:13px}.ai-head,.ai-body{padding:18px}.ai-head h2{font-size:23px}.ai-dialog{max-height:92dvh;border-radius:18px}.ai-plan,.ai-preview{padding:12px}}

.ai-head{position:sticky;top:0;z-index:2}

.ai-voice-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.ai-voice-controls span{font-size:13px;color:#546a83;overflow-wrap:anywhere}.ai-dialog #aiVoice[aria-pressed="true"]{color:#a13244;border-color:#ca8996;background:#fff3f5}

.ai-head h2{font-size:23px;font-weight:500;line-height:1.35;letter-spacing:.02em;margin:5px 0 8px}.ai-head p{font-size:13px;line-height:1.6}.ai-head span{font-size:12px;color:#738397}@media(max-width:600px){.ai-head h2{font-size:21px}}

#aiVoice{touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;min-width:120px}#aiVoice.voice-cancel{background:#fff0f1;color:#a13244;border-color:#ca8996}

/* Compact input flow; detailed guidance stays available on demand. */
.ai-dialog{width:min(760px,calc(100% - 24px));font-size:14px}
.ai-head{padding:16px 22px;gap:12px}.ai-head h2{font-size:21px;margin:0 0 4px}.ai-head p{font-size:12px}.ai-head button{min-width:36px;min-height:36px;padding:2px 9px}
.ai-body{padding:16px 22px}.ai-dialog label{font-size:13px}
.ai-dialog textarea{min-height:76px;margin:6px 0 8px;padding:10px 12px;font-size:15px;line-height:1.5}
.ai-dialog textarea::placeholder{font-size:13px;color:#8a95a3;font-weight:400;opacity:1}
.ai-dialog input[type=file]{margin:6px 0;font-size:13px}.ai-dialog input[type=file]::file-selector-button{padding:6px 10px;border:1px solid #d6e0ed;border-radius:8px;background:#fff;color:#354c67;margin-right:8px}
.ai-tables{margin:6px 0 10px;max-height:100px}.ai-tables:empty{display:none}
.ai-note{margin:5px 0 8px;font-size:12px;line-height:1.5}.ai-voice-controls{gap:8px}.ai-dialog #aiVoice{font-size:13px;min-width:108px;padding:9px 14px}
.ai-details{margin:10px 0;color:#66788c;font-size:12px;line-height:1.6}.ai-details summary{cursor:pointer;width:fit-content;padding:3px 0}.ai-details p{margin:8px 0}.ai-details>div{padding:2px 12px;background:#f3f6fa;border-radius:8px}
.ai-dialog .ai-consent{font-size:12px;line-height:1.5;margin:10px 0;align-items:center}.ai-consent input{margin:0;flex-shrink:0}
.ai-message{margin:8px 0 0;font-size:12px;min-height:0}.ai-message:empty{display:none}.ai-dialog .ai-primary{font-size:14px;padding:9px 16px}
@media(max-width:600px){.ai-head,.ai-body{padding:14px 16px}.ai-head h2{font-size:19px}.ai-dialog textarea{font-size:16px;min-height:72px}.ai-dialog textarea::placeholder{font-size:13px}.ai-dialog{max-height:94dvh}.ai-voice-controls span{font-size:12px}.ai-dialog .ai-primary[type=submit]{width:100%}}

/* The voice button keeps a stable footprint through hold/release. */
.ai-dialog #aiVoice{position:relative;width:120px;height:40px;display:inline-flex;align-items:center;justify-content:center;overflow:hidden}
#aiVoice .voice-wave{display:none;align-items:center;justify-content:center;gap:4px;height:24px;pointer-events:none}
#aiVoice[data-state=starting] .voice-label,#aiVoice[data-state=recording] .voice-label{display:none}
#aiVoice[data-state=starting] .voice-wave,#aiVoice[data-state=recording] .voice-wave{display:flex}
.ai-dialog #aiVoice[aria-pressed=true]{color:#507f78;background:#edf7f3;border-color:#a8ccc1}
#aiVoice .voice-wave i{display:block;width:3px;height:20px;border-radius:3px;background:currentColor;transform:scaleY(.3);animation:voice-flow .85s ease-in-out infinite;animation-delay:calc(var(--i) * -95ms)}
#aiVoice[data-state=starting] .voice-wave{opacity:.5}
.ai-dialog #aiVoice.voice-cancel{color:#ad6070;background:#fff1f3;border-color:#d7a6af}
#aiVoice.voice-cancel .voice-wave i{animation-play-state:paused}
#aiVoiceStatus:empty:not(.voice-loading){display:none}
#aiVoiceStatus.voice-loading::before{content:"";display:block;width:14px;height:14px;border:2px solid #dce4ec;border-top-color:#758aa9;border-radius:50%;animation:voice-spin .8s linear infinite}
@keyframes voice-flow{0%,100%{transform:scaleY(.25)}50%{transform:scaleY(1)}}
@keyframes voice-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){#aiVoice .voice-wave i{animation:none;transform:scaleY(.55)}#aiVoice .voice-wave i:nth-child(odd){transform:scaleY(.9)}#aiVoiceStatus.voice-loading::before{animation:none}}
