.agent-fab{position:fixed;bottom:calc(24px * var(--ui-scale));right:calc(24px * var(--ui-scale));z-index:var(--z-agentfab,250);width:calc(48px * var(--ui-scale));height:calc(48px * var(--ui-scale));border-radius:50%;border:0;background:linear-gradient(135deg,var(--gold),var(--ember));color:#1a0f06;font-size:calc(20px * var(--ui-scale));cursor:pointer;box-shadow:0 4px 20px rgba(227,176,102,.3);transition:transform .2s,box-shadow .2s;display:flex;align-items:center;justify-content:center;font-weight:700}
.agent-fab:hover{transform:scale(1.1);box-shadow:0 6px 30px rgba(227,176,102,.4)}
/* Поднимаем FAB над плеером на его фактическую высоту (--player-h ставит
   syncPlayerH). Раньше фикс. 76px проигрывал по специфичности мобильному
   правилу и FAB налезал на кнопки плеера. */
.player.active~.agent-fab{bottom:calc(var(--player-h, 92px) + 16px)}
.player-drawer.open~.agent-fab{display:none}
.agent-modal{position:fixed;inset:0;z-index:var(--z-agentmodal,260);background:rgba(0,0,0,.7);backdrop-filter:blur(4px);display:none;align-items:center;justify-content:center}
.agent-modal.open{display:flex}
.agent-panel{background:var(--bg2);border:1px solid var(--line);border-radius:calc(16px * var(--ui-scale));width:calc(560px * var(--ui-scale));max-width:94vw;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.6)}
.agent-head{padding:calc(20px * var(--ui-scale));border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}
.agent-head h2{font-family:var(--serif);font-size:calc(20px * var(--ui-scale));color:var(--gold);display:flex;align-items:center;gap:calc(8px * var(--ui-scale))}
.agent-head .close{background:none;border:0;color:var(--faint);font-size:calc(22px * var(--ui-scale));cursor:pointer;padding:4px;transition:color .2s}
.agent-head .close:hover{color:var(--ember)}
.agent-body{overflow-y:auto;padding:calc(16px * var(--ui-scale));flex:1}
.agent-section{margin-bottom:calc(20px * var(--ui-scale))}
.agent-section h3{font-size:calc(14px * var(--ui-scale));color:var(--cyan);font-weight:600;margin-bottom:calc(10px * var(--ui-scale));text-transform:uppercase;letter-spacing:.06em}
.agent-section textarea{width:100%;padding:calc(10px * var(--ui-scale));border-radius:calc(8px * var(--ui-scale));border:1px solid var(--line);background:rgba(255,255,255,.04);color:var(--ink);font-size:calc(13px * var(--ui-scale));outline:0;font-family:var(--sans);resize:vertical;min-height:calc(80px * var(--ui-scale));transition:border-color .2s}
.agent-section textarea:focus{border-color:var(--gold)}
.agent-section .hint{font-size:calc(11px * var(--ui-scale));color:var(--faint);margin-top:calc(4px * var(--ui-scale))}
.agent-section textarea.code{font-family:monospace;font-size:calc(12px * var(--ui-scale));min-height:calc(200px * var(--ui-scale));white-space:pre-wrap}
.agent-btn{display:inline-flex;align-items:center;gap:calc(6px * var(--ui-scale));padding:calc(8px * var(--ui-scale)) calc(16px * var(--ui-scale));border-radius:calc(6px * var(--ui-scale));border:0;font-weight:600;font-size:calc(12px * var(--ui-scale));cursor:pointer;transition:.2s;font-family:var(--sans);margin-top:calc(8px * var(--ui-scale))}
.agent-btn.primary{background:linear-gradient(120deg,var(--gold),var(--ember));color:#1a0f06}
.agent-btn.primary:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(227,176,102,.3)}
.agent-btn.outline{background:transparent;border:1px solid var(--line);color:var(--muted)}
.agent-btn.outline:hover{border-color:var(--gold);color:var(--gold)}
.agent-btn.sm{padding:calc(4px * var(--ui-scale)) calc(10px * var(--ui-scale));font-size:calc(11px * var(--ui-scale))}
.agent-btn.danger{border:1px solid var(--ember);color:var(--ember);background:transparent}
.agent-btn.danger:hover{background:rgba(226,96,58,.1)}
.agent-key-list{display:flex;flex-direction:column;gap:calc(6px * var(--ui-scale));margin-top:calc(8px * var(--ui-scale))}
.agent-key-item{display:flex;align-items:center;justify-content:space-between;padding:calc(8px * var(--ui-scale)) calc(10px * var(--ui-scale));border-radius:calc(6px * var(--ui-scale));border:1px solid var(--line);background:rgba(255,255,255,.02);font-size:calc(12px * var(--ui-scale))}
.agent-key-item .kid{color:var(--faint);font-family:monospace}
.agent-key-item .kdate{color:var(--faint);font-size:calc(10px * var(--ui-scale))}
.agent-key-new{display:flex;gap:calc(8px * var(--ui-scale));align-items:center;margin-top:calc(8px * var(--ui-scale));flex-wrap:wrap}
.agent-key-new input{flex:1;min-width:200px;padding:calc(8px * var(--ui-scale)) calc(10px * var(--ui-scale));border-radius:calc(6px * var(--ui-scale));border:1px solid var(--line);background:rgba(255,255,255,.04);color:var(--ink);font-size:calc(12px * var(--ui-scale));outline:0;font-family:monospace}
.agent-auth-needed{text-align:center;padding:calc(40px * var(--ui-scale));color:var(--faint)}
.agent-auth-needed p{margin-bottom:calc(12px * var(--ui-scale))}
