.td-ai-btn{--td-primary:var(--primary);display:inline-flex;align-items:center;gap:0.5rem;border:1.5px solid var(--td-primary);border-radius:var(--radius);padding:0.55rem 0.9rem;background:transparent;color:var(--td-primary);font-weight:600;cursor:pointer;position:relative;transition:transform 0.12s ease,opacity 0.2s ease,background 0.15s ease,box-shadow 0.15s ease;user-select:none}.td-ai-btn:hover{background:rgba(14,165,233,0.12)}.td-ai-btn:focus-visible{outline:0;box-shadow:0 0 0 3px rgba(14,165,233,0.25)}.td-ai-btn[disabled]{opacity:0.6;cursor:not-allowed}.td-ai-btn .td-ai-label{line-height:1;white-space:nowrap}.td-ai-btn .td-ai-icon{width:1.2rem;height:1.2rem;display:inline-grid;place-items:center;position:relative}.td-ai-btn .td-ai-ico{font-size:1.2rem;line-height:1}.td-ai-btn .td-ai-sparks{position:absolute;inset:0;pointer-events:none}.td-ai-btn:not([data-loading="1"]):active{transform:translateY(1px)}.td-ai-btn[data-loading="1"]{pointer-events:none;opacity:0.95}.td-ai-btn[data-loading="1"] .td-ai-ico{animation:td-ai-rotate 0.8s linear infinite}.td-ai-btn[data-loading="1"] .td-ai-sparks::before,.td-ai-btn[data-loading="1"] .td-ai-sparks::after{content:"";position:absolute;border-radius:50%;background:var(--td-primary);filter:blur(1px);animation:td-ai-spark 0.8s ease-in-out infinite}.td-ai-btn[data-loading="1"] .td-ai-sparks::before{width:0.35rem;height:0.35rem;top:-0.15rem;right:-0.1rem}.td-ai-btn[data-loading="1"] .td-ai-sparks::after{width:0.25rem;height:0.25rem;bottom:-0.1rem;left:-0.05rem;animation-delay:0.2s}.td-ai-btn[data-icon-only="1"]{width:40px;height:40px;padding:0;justify-content:center}.td-ai-btn[data-icon-only="1"] .td-ai-label{display:none}@keyframes td-ai-rotate{to{transform:rotate(360deg)}}@keyframes td-ai-spark{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(0.12rem,-0.12rem) scale(1.25)}}.td-ai-modal{position:fixed;inset:0;display:none;align-items:center;justify-content:center;z-index:4000}.td-ai-modal.show{display:flex}.td-ai-modal-overlay{position:absolute;inset:0;background:rgba(0,0,0,0.55)}.td-ai-modal-box{position:relative;width:100%;max-width:560px;background:var(--card-bg,var(--header-bg));color:var(--text);border:1px solid var(--border);border-radius:10px;padding:0.75rem;z-index:1;box-shadow:0 20px 50px rgba(0,0,0,0.55)}.td-ai-modal-header{display:flex;align-items:center;justify-content:space-between;padding:0.25rem 0.25rem 0.35rem;border-bottom:1px solid var(--border);color:var(--text-heading)}.td-ai-modal-body{padding:0.75rem 0.25rem 0.25rem;font-size:0.95rem;line-height:1.35rem}.td-ai-modal-actions{display:flex;gap:0.5rem;justify-content:flex-end;padding:0.9rem 0.25rem 0.25rem}.td-ai-modal .btn,.td-ai-modal .btn:hover,.td-ai-modal .btn:focus{text-decoration:none;box-shadow:none;transform:none}.td-ai-modal .btn.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}.td-ai-modal .btn.btn-primary:hover,.td-ai-modal .btn.btn-primary:focus{background:var(--primary);border-color:var(--primary);color:#fff}.td-ai-modal .btn.btn-outline{background:transparent;border:1px solid var(--border);color:var(--text)}.td-ai-modal .btn.btn-outline:hover,.td-ai-modal .btn.btn-outline:focus{background:transparent;border-color:var(--primary);color:var(--primary)}.td-ai-modal-close{padding:0.25rem 0.35rem;border:1px solid transparent;background:transparent;color:var(--text-muted);display:inline-grid;place-items:center;border-radius:var(--radius);cursor:pointer;transition:background 0.15s ease,color 0.15s ease,border-color 0.15s ease}.td-ai-modal-close i{transform:none;font-size:1rem;line-height:1}.td-ai-modal-close:hover,.td-ai-modal-close:focus{background:var(--primary);color:#fff;border-color:var(--primary);outline:0;box-shadow:none}.td-ai-modal .td-ai-field{display:grid;gap:0.35rem}.td-ai-modal .td-ai-textarea{width:100%;min-height:140px;padding:0.6rem 0.75rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--card-bg);color:var(--text);resize:vertical}.td-ai-modal .td-ai-hint{display:flex;justify-content:flex-end;font-size:0.8rem;color:var(--text-muted);margin-top:0.25rem}