.vai-row .col-xl-4,.vai-row .col-xl-8,.vai-row .col-lg-5,.vai-row .col-lg-7{min-height:0}.vai-settings-card{min-height:480px;background-color:var(--card-bg);border:0;border-top:3px solid var(--color-primary, #0d6efd);box-shadow:var(--card-shadow)!important;border-radius:.5rem}.vai-settings-card>.card-header{border-bottom:1px solid var(--border-light, #dee2e6);background-color:var(--bg-secondary, #f8f9fa);border-radius:.5rem .5rem 0 0}.vai-settings-body{overflow-y:auto;display:flex;flex-direction:column;gap:.75rem}.vai-field-group{display:flex;flex-direction:column;gap:.3rem}.vai-label{font-size:.8rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.4px;margin-bottom:0}.vai-label-row{display:flex;justify-content:space-between;align-items:center}.vai-range-val{font-size:.8rem;font-weight:600;color:var(--color-primary, #0d6efd);min-width:2rem;text-align:right}.vai-hint{font-size:.75rem;color:var(--text-secondary);line-height:1.3}.vai-secret-input{position:relative}.vai-secret-input input{padding-right:4rem}.vai-secret-toggle{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);background:none;border:0;padding:0;cursor:pointer;color:var(--text-secondary);line-height:1;font-size:.95rem}.vai-secret-toggle:hover{color:var(--text-primary)}.vai-validate-btn{right:2rem}.vai-validate-btn .bi-arrow-clockwise{animation:vai-spin .8s linear infinite}.vai-validate-btn.is-ok,.vai-validate-btn.is-ok:hover{color:#198754}.vai-validate-btn.is-warn,.vai-validate-btn.is-warn:hover{color:#fd7e14}.vai-validate-btn.is-err,.vai-validate-btn.is-err:hover{color:#dc3545}.vai-key-tooltip{position:absolute;bottom:100%;right:0;margin-bottom:.5rem;background:var(--card-bg, #fff);border:1px solid var(--border-light, #dee2e6);border-radius:.375rem;padding:.625rem .875rem;font-size:.8rem;line-height:1.55;max-width:360px;min-width:200px;white-space:normal;word-break:break-word;box-shadow:0 4px 16px #00000024;z-index:1050;color:var(--text-primary);cursor:text;user-select:text;pointer-events:none;opacity:0;transition:opacity .15s}.vai-key-tooltip:after{content:"";position:absolute;top:100%;left:0;right:0;height:.75rem}.vai-key-tooltip.is-visible{opacity:1;pointer-events:auto}.vai-system-textarea{resize:vertical;min-height:80px;font-size:.825rem;font-family:inherit}.vai-conversation-card{display:flex;flex-direction:column;min-height:480px;background-color:var(--card-bg);border:0;box-shadow:var(--card-shadow)!important;border-radius:.5rem}.vai-conversation-card>.card-header{background:linear-gradient(135deg,#6c93e8,#9065d0,#c06090);background-size:200% 200%;animation-name:vai-gradient-flow;animation-duration:10s;animation-timing-function:ease;animation-iteration-count:infinite;border-bottom:0;border-radius:.5rem .5rem 0 0}.vai-conversation-card>.card-header:has(.vai-status-dot.connecting){animation-duration:5s}.vai-conversation-card>.card-header:has(.vai-status-dot.speaking){animation-duration:2s}.vai-conversation-card>.card-header:has(.vai-status-dot.error){background:linear-gradient(135deg,#c0392b,#e74c3c);animation:none}.vai-conversation-card>.card-footer{border-top:0}.vai-card-header{display:flex;align-items:center;min-height:2.75rem}.vai-card-header .btn-tool{color:#ffffffb3}.vai-card-header .btn-tool:hover{color:#fff}.vai-status-bar{display:flex;align-items:center;gap:.5rem;flex:1}.vai-transcript-body{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column;background-color:var(--bg-secondary, #f8f9fa);background-image:radial-gradient(circle,var(--border-light, #e0e0e0) 1px,transparent 1px);background-size:20px 20px}.vai-status-dot{width:.6rem;height:.6rem;border-radius:50%;background:#ffffff73;flex-shrink:0;transition:background .3s ease}.vai-status-dot.connected{background:#28a745;box-shadow:0 0 0 3px #28a74533}.vai-status-dot.connecting{background:#ffc107;animation:vai-pulse 1s infinite}.vai-status-dot.speaking{background:#fff;box-shadow:0 0 0 3px #ffffff4d;animation:vai-pulse .6s infinite}.vai-status-dot.error{background:#fffc}@keyframes vai-pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes vai-gradient-flow{0%,to{background-position:0% 0%}50%{background-position:100% 100%}}.vai-status-text{font-size:.825rem;color:#ffffffe6;font-weight:500}.vai-transcript{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:.75rem;min-height:0}.vai-transcript-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--text-secondary);text-align:center;gap:.5rem;padding:2rem}.vai-empty-icon{font-size:2.5rem;opacity:.3}.vai-empty-sub{font-size:.8rem;opacity:.7;margin:0}.vai-message{display:flex;flex-direction:column;max-width:80%;animation:vai-fade-in .2s ease}.vai-message.vai-user{align-self:flex-end;align-items:flex-end}.vai-message.vai-ai{align-self:flex-start;align-items:flex-start}.vai-message.vai-system{align-self:center;align-items:center;max-width:95%}@keyframes vai-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.vai-bubble{padding:.5rem .875rem;border-radius:1rem;font-size:.875rem;line-height:1.5;white-space:pre-wrap;word-break:break-word}.vai-user .vai-bubble{background:var(--color-primary, #0d6efd);color:#fff;border-bottom-right-radius:.25rem}.vai-ai .vai-bubble{background:var(--bg-secondary, #f8f9fa);color:var(--text-primary);border:1px solid var(--border-light, #dee2e6);border-bottom-left-radius:.25rem}.vai-system .vai-bubble{background:transparent;color:var(--text-secondary);font-size:.775rem;font-style:italic;border:0;padding:.2rem .5rem}.vai-bubble-meta{font-size:.7rem;color:var(--text-secondary);margin-top:.2rem;padding:0 .25rem}.vai-typing-indicator .vai-bubble{display:flex;gap:.3rem;align-items:center;padding:.6rem .875rem}.vai-typing-indicator .vai-bubble span{display:inline-block;width:.45rem;height:.45rem;border-radius:50%;background:var(--text-secondary);animation:vai-typing .8s infinite}.vai-typing-indicator .vai-bubble span:nth-child(2){animation-delay:.15s}.vai-typing-indicator .vai-bubble span:nth-child(3){animation-delay:.3s}@keyframes vai-typing{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-5px)}}@keyframes vai-spin{to{transform:translateY(-50%) rotate(360deg)}}.vai-visualiser-wrap{padding:.25rem 1rem;border-top:1px solid var(--border-light, #dee2e6);flex-shrink:0}.vai-visualiser{width:100%;height:48px;display:block;border-radius:.25rem}.vai-controls{display:flex;align-items:center;gap:.75rem;flex-shrink:0}.vai-connect-btn{background:var(--color-success, #28a745);color:#fff;font-weight:600;border:0;padding:.5rem 1.25rem;border-radius:2rem;display:flex;align-items:center;gap:.4rem;transition:all .2s ease}.vai-connect-btn:hover{filter:brightness(1.1);color:#fff}.vai-disconnect-btn{background:#dc3545;color:#fff;font-weight:600;border:0;padding:.5rem 1.25rem;border-radius:2rem;display:flex;align-items:center;gap:.4rem;transition:all .2s ease}.vai-disconnect-btn:hover{filter:brightness(1.1);color:#fff}.vai-mic-btn{width:2.75rem;height:2.75rem;border-radius:50%;background:var(--btn-default-bg, #fff);border:2px solid var(--btn-default-border, #dee2e6);color:var(--text-primary);display:flex;align-items:center;justify-content:center;font-size:1.1rem;transition:all .2s ease;flex-shrink:0}.vai-mic-btn:disabled{opacity:.4;cursor:not-allowed}.vai-mic-btn.active{background:#dc3545;border-color:#dc3545;color:#fff;box-shadow:0 0 0 4px #dc354533;animation:vai-pulse .8s infinite}.vai-mic-level-wrap{flex:1;height:.4rem;background:var(--border-light, #dee2e6);border-radius:1rem;overflow:hidden}.vai-mic-level-bar{height:100%;width:0%;background:linear-gradient(90deg,#28a745,#0d6efd 60%,#dc3545);border-radius:1rem;transition:width .05s linear}body[data-auth=pending]{visibility:hidden}body[data-page=voice-ai] .app-content{padding-top:1rem}.vai-settings-card,.vai-conversation-card{height:calc(100vh - 85px)}
