.has-connection-dock{padding-bottom:76px!important;scroll-padding-bottom:76px}
.connection-dock{position:fixed;inset:auto 16px 10px;z-index:900;display:flex;align-items:center;gap:16px;min-height:48px;padding:5px 16px;border:1px solid #dbe5ee;border-radius:16px;background:rgba(255,255,255,.97);box-shadow:0 6px 28px #1b36551a;backdrop-filter:blur(16px);font:13px/1.3 system-ui,sans-serif;color:#42536a}
.conn-caption{font-weight:700;padding-right:14px;border-right:1px solid #e0e8f0}.conn-list{display:flex;align-items:center;gap:8px;overflow-x:auto;scrollbar-width:thin}
.connection-dock .conn-button{display:flex;align-items:center;gap:8px;flex-shrink:0;min-height:36px;padding:7px 12px;border:1px solid transparent;border-radius:10px;background:#f4f7fb;color:#35485f;font:inherit;cursor:pointer;white-space:nowrap;box-shadow:none;transition:background .2s,border-color .2s}
.connection-dock .conn-button:hover{background:#eaf2ff;border-color:#cadcfa}.connection-dock .conn-button:focus-visible{outline:3px solid #87b5ff;outline-offset:2px}.connection-dock .conn-button:disabled{cursor:wait;opacity:.7}
.conn-icon{color:#637d9d;font-weight:750;width:19px;text-align:center}.conn-dot{width:7px;height:7px;border-radius:50%;background:#aab5c4;margin-left:4px}.conn-button[data-state=ok]{background:#edf9f2}.conn-button[data-state=ok] .conn-dot{background:#16a56b}.conn-button[data-state=error] .conn-dot{background:#e55a67}.conn-button[data-state=not_configured] .conn-dot{background:#e6a52c}.conn-button[data-state=testing] .conn-dot{width:11px;height:11px;background:transparent;border:2px solid #cbdcf9;border-top-color:#2478ef;animation:conn-spin .7s linear infinite}
.conn-live{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.conn-dialog{box-sizing:border-box;width:min(490px,calc(100vw - 32px));max-height:85vh;overflow:auto;padding:28px;border:1px solid #e1e8f1;border-radius:24px;box-shadow:0 28px 100px #14264030;color:#263b55;font:15px/1.55 system-ui,sans-serif;background:white}.conn-dialog::backdrop{background:#16283b65;backdrop-filter:blur(4px)}.conn-dialog-head{display:flex;align-items:center;gap:12px}.conn-dialog h2{font-size:20px;line-height:1.3;margin:0;flex:1}.conn-warning{display:grid;place-items:center;background:#fff3dc;color:#b47700;min-width:38px;height:38px;border-radius:12px;font-weight:800;font-size:23px}.conn-dialog .conn-close{border:0;background:#f0f4f8;color:#586980;font-size:23px;border-radius:9px;padding:0;width:30px;height:30px;cursor:pointer}.conn-service{color:#6b7f98;font-size:13px;margin-top:20px}.conn-message{font-weight:650;margin:6px 0 12px}.conn-hint{padding:14px;background:#f5f8fc;border-radius:12px;color:#63748b;font-size:14px}.conn-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.conn-actions button{padding:10px 15px;border-radius:10px;cursor:pointer;font:600 14px system-ui;border:1px solid #d8e2ee}.conn-retry{background:#1769ee;color:#fff}.conn-done{background:#fff;color:#42536a}
.conn-success{position:fixed;inset:0;z-index:1100;display:grid;place-items:center;background:#effbf5ed;backdrop-filter:blur(8px);pointer-events:none;font-family:system-ui,sans-serif;text-align:center;color:#155c41}.conn-success[hidden]{display:none}.conn-success-card{padding:30px;max-width:560px;animation:conn-appear .25s ease-out}.conn-check{margin:0 auto 24px;width:140px;height:140px;background:#19ac70;border-radius:50%;box-shadow:0 0 0 18px #c9f1df,0 0 0 36px #dff7eb;display:grid;place-items:center}.conn-check svg{width:100px;height:100px}.conn-check path{stroke:white;stroke-width:7;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:65;stroke-dashoffset:65;animation:conn-tick .5s .1s forwards}.conn-success h2{font-size:32px;letter-spacing:-.6px;margin:8px 0 12px}.conn-success-name{margin-top:44px;font-weight:650;color:#38826a}.conn-success-message{font-size:17px}.conn-success-hint{font-size:13px;color:#5c7d70;line-height:1.5}
@keyframes conn-spin{to{transform:rotate(360deg)}}@keyframes conn-tick{to{stroke-dashoffset:0}}@keyframes conn-appear{from{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}
@media(max-width:700px){.connection-dock{inset:auto 6px 6px;padding:5px 8px;gap:8px;border-radius:12px}.conn-caption{font-size:11px;padding-right:8px}.connection-dock .conn-button{padding:7px 9px}.conn-success h2{font-size:26px}}
@media(prefers-reduced-motion:reduce){.conn-success-card,.conn-check path,.conn-dot{animation:none!important}.conn-check path{stroke-dashoffset:0}}
