/* ECG Lab — lightweight floating Tutor v2. No backdrop filters or page reflow. */
.ft2-fab{position:fixed;right:22px;bottom:22px;z-index:10080;border:1px solid rgba(76,224,179,.32);background:#10243a;color:var(--text);box-shadow:0 12px 32px rgba(0,0,0,.28);border-radius:999px;padding:11px 15px;display:flex;align-items:center;gap:9px}.ft2-fab>span{width:28px;height:28px;border-radius:10px;display:grid;place-items:center;background:linear-gradient(135deg,var(--accent),var(--accent2));color:#04121a;font-weight:900}.ft2-fab>b{font-size:12px}.ft2-fab.open{opacity:.45}
.ft2-panel{position:fixed;top:14px;right:14px;bottom:14px;width:min(460px,42vw);z-index:10090;border:1px solid var(--line);border-radius:22px;background:#0b1a2b;box-shadow:0 22px 60px rgba(0,0,0,.38);display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden;transform:translateX(calc(100% + 32px));opacity:0;pointer-events:none;transition:transform .2s ease,opacity .16s ease}.ft2-panel.show{transform:none;opacity:1;pointer-events:auto}.ft2-panel.max{width:min(760px,72vw)}
.ft2-head{padding:13px 14px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:10px;background:#0f2237}.ft2-head>div{display:flex;align-items:center;gap:9px;min-width:0}.ft2-head strong{display:block;font-size:14px}.ft2-head small{display:block;color:var(--muted);font-size:10px;margin-top:2px;max-width:270px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ft2-mark{width:34px;height:34px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,var(--accent),var(--accent2));color:#04121a;font-weight:900}.ft2-head nav{display:flex;gap:5px}.ft2-head nav button,.ft2-history-head button{width:31px;height:31px;border:1px solid var(--line);border-radius:9px;background:rgba(255,255,255,.04);color:var(--text);display:grid;place-items:center}
#ft2Normal{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto auto;min-height:0}.ft2-controls{padding:9px 12px;display:flex;gap:12px;flex-wrap:wrap;border-bottom:1px solid var(--line)}.ft2-controls label{font-size:10px;color:var(--muted);display:flex;gap:6px;align-items:center}.ft2-controls input{accent-color:var(--accent)}.ft2-actions{padding:9px 11px;display:flex;gap:7px;overflow-x:auto;border-bottom:1px solid var(--line);scrollbar-width:none}.ft2-actions::-webkit-scrollbar{display:none}.ft2-actions button{flex:0 0 auto;border:1px solid rgba(110,168,255,.18);background:rgba(110,168,255,.07);color:#dce9ff;border-radius:999px;padding:7px 10px;font-size:10px}.ft2-chat{padding:13px;overflow:auto;display:flex;flex-direction:column;gap:9px;min-height:0}.ft2-msg{max-width:88%;padding:10px 12px;border-radius:14px;font-size:12px;line-height:1.5}.ft2-msg small{display:block;margin-top:5px;font-size:8px;color:var(--muted)}.ft2-msg.user{align-self:flex-end;background:rgba(110,168,255,.13);border:1px solid rgba(110,168,255,.2)}.ft2-msg.bot{align-self:flex-start;background:rgba(255,255,255,.045);border:1px solid var(--line)}.ft2-msg.thinking{display:flex;align-items:center;gap:5px}.ft2-msg.thinking span{width:5px;height:5px;border-radius:50%;background:var(--accent);animation:ft2dot 1s infinite}.ft2-msg.thinking span:nth-child(2){animation-delay:.15s}.ft2-msg.thinking span:nth-child(3){animation-delay:.3s}.ft2-msg.thinking em{font-style:normal;color:var(--muted);font-size:9px;margin-left:4px}@keyframes ft2dot{0%,80%,100%{opacity:.35}40%{opacity:1}}
.ft2-compose{padding:10px 11px;border-top:1px solid var(--line);display:grid;grid-template-columns:minmax(0,1fr) 42px 46px;gap:7px;align-items:end}.ft2-compose textarea{width:100%;min-height:44px;max-height:120px;resize:none;border-radius:12px;border:1px solid var(--line);background:#08182a;color:var(--text);padding:10px;outline:none}.ft2-compose textarea:focus{border-color:rgba(76,224,179,.45)}.ft2-compose>button{height:44px;border-radius:12px}.ft2-compose #ft2Voice{border:1px solid var(--line);background:rgba(255,255,255,.04);color:var(--text)}.ft2-compose #ft2Voice.listening{color:#ff9aa5;border-color:rgba(255,111,125,.4)}.ft2-privacy{padding:0 12px 9px;color:var(--muted);font-size:8px;line-height:1.4}
.ft2-locked{align-self:center;justify-self:center;max-width:340px;padding:30px;text-align:center}.ft2-locked>div{font-size:34px}.ft2-locked h3{margin:12px 0 8px}.ft2-locked p{color:var(--muted);font-size:12px;line-height:1.6}.ft2-locked small{color:var(--warn)}
.ft2-history{position:absolute;inset:0 0 0 16%;z-index:5;background:#081827;border-left:1px solid var(--line);padding:13px;transform:translateX(105%);transition:transform .16s ease;display:flex;flex-direction:column;gap:11px}.ft2-history.show{transform:none}.ft2-history-head{display:flex;align-items:center;justify-content:space-between}.ft2-history-list{display:grid;gap:7px;overflow:auto}.ft2-history-list>button{text-align:left;border:1px solid var(--line);background:rgba(255,255,255,.025);color:var(--text);padding:9px;border-radius:11px}.ft2-history-list>button.active{border-color:rgba(76,224,179,.35);background:rgba(76,224,179,.07)}.ft2-history-list strong,.ft2-history-list small{display:block}.ft2-history-list small{font-size:8px;color:var(--muted);margin-top:3px}
.ft2-exam-mode{margin:14px 0;padding:12px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.025);display:grid;gap:10px}.ft2-exam-mode>div:first-child{display:grid;gap:3px}.ft2-exam-mode small{color:var(--muted);font-size:10px;line-height:1.45}.ft2-segment{display:grid;grid-template-columns:1fr 1fr;background:rgba(1,8,15,.32);border:1px solid var(--line);padding:4px;border-radius:11px}.ft2-segment button{border:0;background:transparent;color:var(--muted);padding:8px;border-radius:8px;font-weight:800;font-size:11px}.ft2-segment button.active{background:rgba(76,224,179,.1);color:#ddfff4;box-shadow:inset 0 0 0 1px rgba(76,224,179,.2)}
@media(max-width:900px) and (min-width:721px){.ft2-panel{width:min(520px,78vw)}}
@media(max-width:720px){.ft2-fab{right:14px;bottom:86px;padding:10px 12px}.ft2-fab>b{display:none}.ft2-panel{top:auto;left:0;right:0;bottom:0;width:100%!important;height:68vh;border-radius:22px 22px 0 0;transform:translateY(105%)}.ft2-panel.show{transform:none}.ft2-panel.max{height:94vh}.ft2-head small{max-width:190px}.ft2-history{inset:0}.ft2-msg{max-width:92%}.ft2-compose{padding-bottom:max(10px,env(safe-area-inset-bottom))}.ft2-privacy{display:none}}
@media(prefers-reduced-motion:reduce){.ft2-panel,.ft2-history{transition:none}.ft2-msg.thinking span{animation:none}}
