.coach{--bg:#f3f4f3;--surface:#fff;--raised:#e9eeec;--text:#1c2625;--secondary:#566661;--border:#cbd4d0;--accent:#006957;--accent-soft:#e0eee8;--success:#287449;--warning:#836000;--danger:#a33440;--left:#8b640d;--right:#006f80;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--radius:6px;min-height:100dvh;background:var(--bg);color:var(--text);font-family:Segoe UI,Malgun Gothic,system-ui,sans-serif;font-size:16px;letter-spacing:0;line-height:1.5}.coach[data-theme=dark]{--bg:#171c1a;--surface:#222a27;--raised:#303b36;--text:#edf2ef;--secondary:#b2c2b9;--border:#4a5951;--accent:#98d9b6;--accent-soft:#253e32;--success:#99d7af;--warning:#ebc65c;--danger:#ffb1b6;--left:#e0b552;--right:#8bd3df}.coach h1,.coach h2,.coach p{margin:0}.coach h1{font-size:28px;font-weight:650;line-height:1.4}.coach h2{font-size:20px;font-weight:650}.coach .button,.coach button{min-height:48px;min-width:48px;padding:10px 16px;display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);text-decoration:none;cursor:pointer;font-weight:600;line-height:1.4;flex-shrink:0;touch-action:manipulation}.coach .button:hover,.coach button:hover:not(:disabled){border-color:var(--accent)}.coach button:disabled{opacity:.45;cursor:default}.coach :focus-visible{outline:3px solid var(--right);outline-offset:3px}.coach .primary{color:var(--surface);background:var(--accent);border-color:var(--accent)}.coach .primary-large{width:100%;min-height:60px;font-size:18px;justify-content:flex-start}.coach .primary-large svg:last-child{margin-left:auto}.coach input[type=number],.coach select,.coach textarea{min-height:48px;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:8px 12px;max-width:100%;font:inherit}.coach input[type=checkbox]{width:22px;height:22px;accent-color:var(--accent)}.coach label{display:flex;align-items:center;gap:12px}.coach .eyebrow,.coach .muted,.coach .source-notice{color:var(--secondary);font-size:14px}.coach .eyebrow{display:block;font-weight:650;margin-bottom:8px}.coach-header{height:80px;padding:0 32px;display:flex;align-items:center;justify-content:space-between;gap:24px;background:var(--surface);border-bottom:1px solid var(--border)}.coach .wordmark{border:0;padding:0;gap:12px;background:transparent;text-align:left;line-height:1.2;font-size:18px}.wordmark span span{display:block;font-size:12px;color:var(--secondary);font-weight:500;margin-top:4px}.coach-header nav{display:flex;gap:8px}.coach-header nav button{border-color:transparent;background:transparent;color:var(--secondary)}.coach-header nav [aria-current=page]{background:var(--accent-soft);color:var(--accent)}.coach .midi-status{border:0;background:transparent;font-size:14px;font-weight:500;padding:8px}.status-dot{width:8px;height:8px;border-radius:50%;background:#8b9691}.connected .status-dot{background:var(--success)}.is-hidden{visibility:hidden}.page-content{max-width:1280px;margin:0 auto;padding:40px 48px}.song-heading{display:flex;align-items:center;justify-content:space-between;padding-bottom:32px;border-bottom:1px solid var(--border);gap:24px}.song-heading h1{font-size:36px}.song-heading p{color:var(--secondary);margin-top:8px}.separator{margin:0 12px;color:var(--border)}.song-progress{text-align:right;display:grid;gap:4px}.song-progress strong{font-size:32px;font-weight:500}.song-progress span{color:var(--secondary);font-size:14px}.today-layout{display:grid;grid-template-columns:minmax(320px,.85fr) minmax(0,1.15fr);gap:48px;padding-top:32px}.section-heading,.view-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.section-heading>span,.view-heading>span{color:var(--secondary);font-size:14px}.plan-list{list-style:none;padding:0;margin:12px 0 24px}.plan-list li{display:flex;align-items:center;gap:16px;padding:16px 0;border-bottom:1px solid var(--border)}.plan-number{font-variant-numeric:tabular-nums;color:var(--secondary);font-size:18px}.plan-list li>div{flex:1;min-width:0}.plan-list div span,.plan-list strong{display:block}.plan-list div span,.plan-list li>span:last-child{color:var(--secondary);font-size:14px;margin-top:4px}.score-footer{margin-top:24px;padding-top:16px;border-top:1px solid var(--border);display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between;font-size:14px;color:var(--secondary)}.score-surface{position:relative;background:white;color:#202725;min-height:248px;overflow:auto;padding:8px 16px}.notation{width:100%;min-width:280px}.notation svg{display:block;max-width:100%}.score-placeholder{position:absolute;inset:0;display:grid;place-items:center;background:#f8faf9;color:#566661;z-index:1}.practice-view{max-width:1440px;margin:0 auto;padding:20px 32px 16px}.practice-heading{display:flex;align-items:center;gap:24px;margin-bottom:12px}.practice-heading>div:first-child{flex:1}.practice-heading h1{font-size:24px}.practice-heading .eyebrow{margin-bottom:0}.practice-location{display:grid;text-align:right}.practice-location span{color:var(--secondary)}.guidance{display:flex;align-items:center;gap:16px;min-height:56px;padding:8px 16px;border-top:1px solid var(--border);background:var(--surface)}.hand-label{font-weight:650}.hand-label.left{color:var(--left)}.hand-label.right{color:var(--right)}.feedback{margin:auto;text-align:center;color:var(--accent);font-weight:700;font-size:24px;min-width:120px}.stage-caption{color:var(--secondary);font-size:16px}.practice-view .score-surface{height:250px}.recall-surface{height:250px;display:flex;flex-direction:column;justify-content:center;align-items:center;background:var(--surface);gap:16px}.recall-surface>span{font-size:14px;color:var(--secondary)}.recall-surface strong{font-size:28px;font-weight:500}.keyboard-area{padding:8px 0 12px}.keyboard-caption{display:flex;justify-content:space-between;font-size:14px;color:var(--secondary);padding-bottom:8px}.left-mark,.right-mark{display:inline-block;width:14px;height:4px;vertical-align:middle;margin:0 8px;background:var(--left)}.right-mark{background:var(--right)}.focus-keys{height:114px;position:relative;background:#1a2320;overflow:hidden;border:2px solid #4a5c55;border-radius:0 0 8px 8px;box-shadow:inset 0 3px 8px rgba(0,0,0,.4),0 8px 24px rgba(0,0,0,.12)}.piano-key{position:absolute;top:0;height:100%;border-right:1px solid #c2cdc8;background:linear-gradient(180deg,#ffffff,#fdfefd 72%,#e5edea);color:#495752;text-align:center;border-bottom:5px solid #a8b8b1;border-radius:0 0 4px 4px;box-shadow:inset 0 1px 0 #fff,inset -1px 0 2px rgba(0,0,0,.04);transition:transform 70ms ease,background .12s ease,border-bottom 70ms ease,box-shadow 70ms ease;-webkit-user-select:none;-moz-user-select:none;user-select:none}.piano-key.white:hover{background:linear-gradient(180deg,#fff,#f8fbf9 72%,#deece6)}.piano-key.black{height:66%;z-index:3;background:linear-gradient(180deg,#242c28,#151b18 70%,#0c100e);color:#fff;border:1px solid #080b09;border-bottom:4px solid #000;border-radius:0 0 4px 4px;box-shadow:0 4px 8px rgba(0,0,0,.5),inset 0 1px 1px rgba(255,255,255,.22)}.piano-key.black:hover{background:linear-gradient(180deg,#2d3833,#1e2622 70%,#0c100e)}.piano-key.pressed{transform:translateY(3px) scale(.995);border-bottom-width:1px;box-shadow:inset 0 3px 6px rgba(0,0,0,.25)!important;background:#96ddb2!important;color:#0e2b1b!important}.piano-key.black.pressed{transform:translateY(2px);border-bottom-width:1px;background:#568f70!important}.piano-key.wrong-pressed{background:#ff7675!important;color:#fff!important;box-shadow:0 0 18px rgba(255,60,60,.8)!important;animation:wrongShake .16s ease}@keyframes wrongShake{0%,to{transform:translateY(2px)}25%{transform:translateY(2px) translateX(-2px)}75%{transform:translateY(2px) translateX(2px)}}.piano-key.left{background:linear-gradient(180deg,#fdf8eb,#faeecd 65%,#ebd79a);color:#422d05;border-bottom-color:#d1b86e}.piano-key.right{background:linear-gradient(180deg,#eef9fb,#d4f0f5 65%,#a6dce6);color:#083740;border-bottom-color:#79bfcc}.piano-key.black.left{background:linear-gradient(180deg,#443717,#2f250b 70%,#1b1505);color:#ffd67a;border-bottom-color:#1a1405;box-shadow:0 4px 10px rgba(189,140,16,.35)}.piano-key.black.right{background:linear-gradient(180deg,#16363d,#0d272c 70%,#051417);color:#9bebf8;border-bottom-color:#030d0f;box-shadow:0 4px 10px rgba(0,168,194,.35)}.key-target-beam{position:absolute;top:0;left:0;right:0;height:16px;opacity:.85;pointer-events:none;border-radius:2px 2px 0 0}.key-target-beam.left{background:linear-gradient(180deg,rgba(235,175,50,.9),transparent)}.key-target-beam.right{background:linear-gradient(180deg,rgba(0,180,216,.9),transparent)}.finger-badge{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;font-size:15px;font-weight:700;border-radius:50%;background:rgba(255,255,255,.85);box-shadow:0 2px 6px rgba(0,0,0,.15)}.piano-key.black .finger-badge{background:rgba(0,0,0,.85);color:#fff;box-shadow:0 2px 6px rgba(0,0,0,.4)}.pitch-name{position:absolute;bottom:4px;left:0;width:100%;font-size:12px;font-weight:600;color:#72837d}.key-bottom-lip{position:absolute;bottom:0;left:0;right:0;height:3px;background:rgba(0,0,0,.06);border-radius:0 0 3px 3px}.keyboard-overview{display:flex;height:14px;width:260px;max-width:85%;margin:8px auto 0;gap:1px;border-radius:4px;overflow:hidden;padding:2px;background:var(--surface);border:1px solid var(--border)}.keyboard-overview i{flex:1;background:#c5cec9;height:100%;border-radius:1px}.keyboard-overview .black{height:70%;background:#67756f}.keyboard-overview .in-range{background:var(--accent);box-shadow:0 0 6px var(--accent)}.transport{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--border);padding-top:12px}.button-row,.tempo-control,.transport-primary{display:flex;align-items:center;gap:8px}.tempo-control>span{font-variant-numeric:tabular-nums;min-width:52px;text-align:center;font-size:18px;font-weight:650}.segmented{display:inline-flex;align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:3px}.coach .segmented button{border:0;border-radius:3px;background:transparent;padding:8px 12px;min-height:42px}.coach .segmented button[aria-pressed=true],.coach [aria-pressed=true]{background:var(--accent-soft);color:var(--accent)}.hint-control{font-size:14px}.coach .session-end{padding:8px;border-color:transparent;background:transparent;color:var(--secondary);font-size:14px}.result-surface~.transport .hint-control,.result-surface~.transport .segmented,.result-surface~.transport .tempo-control,.result-surface~.transport .transport-primary{display:none}.result-surface~.transport{justify-content:flex-end}.coach .plan-list div span,.coach .practice-heading .eyebrow,.coach .score-footer{font-size:16px}.coach .keyboard-caption{color:var(--text)}.practice-overrides{display:flex;flex-wrap:wrap;gap:16px;padding:12px 0}.connection-help{color:var(--secondary);font-size:14px;margin-top:12px!important}.result-surface{min-height:360px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;background:var(--surface);padding:32px;text-align:center}.result-surface h2{max-width:660px;font-size:24px}.result-surface p{color:var(--secondary)}.result-metrics,.summary-metrics{display:flex;justify-content:center;gap:48px;margin-bottom:12px}.result-metrics div,.summary-metrics div{display:grid;gap:4px}.result-metrics strong,.summary-metrics strong{font-size:36px;font-weight:500;font-variant-numeric:tabular-nums}.result-metrics span,.summary-metrics span{color:var(--secondary)}.session-summary{display:flex;min-height:540px;flex-direction:column;align-items:center;justify-content:center;gap:24px;text-align:center}.session-summary>svg{color:var(--success)}.map-row{display:grid;grid-template-columns:64px minmax(0,1fr) auto 56px;align-items:center;gap:24px;border-bottom:1px solid var(--border);padding:28px 0}.map-row p{margin-top:4px;font-size:14px}.map-index,.map-row p{color:var(--secondary)}.map-index{font-size:28px}.measure-track{display:flex;gap:8px;margin-top:16px}.measure-track>span{width:56px;height:36px;background:var(--raised);font-size:14px;display:grid;place-items:center}.measure-track [data-status=MASTERED]{background:var(--accent-soft);border-color:var(--success)}.measure-track .has-hotspot{border-color:var(--warning)}.song-map>.muted{margin-top:24px}.settings-view{max-width:1120px}.setting-row{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:24px 0;border-bottom:1px solid var(--border)}.setting-row h2{font-size:18px}.setting-row p{color:var(--secondary);font-size:14px;margin-top:4px}.error-banner,.offline-bar,.success-banner{padding:12px 24px;font-size:16px;overflow-wrap:anywhere}.coach .error-banner{background:#fae8e8;color:#8a2733}.coach .success-banner{background:var(--accent-soft);color:var(--accent)}.offline-bar{display:flex;gap:12px;align-items:center;background:var(--raised)}.authoring-back{max-width:1280px;margin:16px auto 0;padding:0 48px}.authoring-view{padding-top:16px}.authoring-tools{display:flex;gap:24px;align-items:center;padding:24px 0}.authoring-tools>span{font-size:14px;color:var(--secondary)}.authoring-columns{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.8fr);gap:32px}.authoring-score{min-width:0}.event-editor{border-left:1px solid var(--border);padding-left:24px}.event-editor>p{overflow-wrap:anywhere;margin:8px 0 16px}.editor-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.editor-grid label{flex-direction:column;align-items:stretch;gap:8px;font-size:14px;min-width:0}.editor-grid input,.editor-grid select{width:100%}.verification{border:0;padding:16px 0 0;margin:24px 0 0;border-top:1px solid var(--border);display:grid;grid-template-columns:1fr 1fr;gap:8px}.verification label{min-height:44px;font-size:14px}.verification legend{font-size:16px;padding-right:12px}.note-picker{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;max-height:248px;overflow-y:auto;padding:4px}.coach .note-picker button{display:grid;gap:4px;font-size:14px;min-width:88px;padding:8px}.note-picker small{color:var(--secondary);font-size:12px}.reference-pdf{width:100%;height:540px;border:1px solid var(--border)}.authoring-detail{border-top:1px solid var(--border);padding:16px 0;margin-top:24px}.authoring-detail summary{cursor:pointer;min-height:44px;display:list-item;padding:8px 0;font-weight:600}.authoring-detail p{overflow-wrap:anywhere;padding:8px 0;font-size:14px}.json-editor{width:100%;height:400px;font-family:monospace!important;font-size:14px!important}.developer-controls{border-top:1px solid var(--border);margin-top:24px;padding-top:16px;display:flex;flex-wrap:wrap;gap:12px;align-items:center;font-size:14px}.developer-controls select{max-width:240px}.developer-controls details{width:100%}.developer-controls pre{overflow:auto;max-height:360px;font-size:13px}@media (max-width:480px){.coach .coach-header nav button{flex:1;min-width:0;flex-direction:column;font-size:14px;gap:4px;padding:8px 4px}.coach .segmented button{min-height:44px}}@media (max-width:1100px){.coach-header{padding:0 20px;gap:12px}.coach-header nav{gap:0}.page-content{padding:28px}.today-layout{gap:28px}.transport{flex-wrap:wrap;justify-content:flex-start}.transport .session-end{margin-left:auto}.authoring-columns{gap:20px}.button-row{flex-wrap:wrap}.practice-view{padding:16px 24px}.coach .midi-status{max-width:180px}}@media (max-width:760px){.coach-header{height:auto;min-height:72px;padding:12px 16px;flex-wrap:wrap}.coach-header nav{order:3;width:100%;justify-content:space-between}.coach-header nav button{min-width:64px}.coach .midi-status{margin-left:auto}.page-content{padding:24px 20px}.song-heading{align-items:flex-start}.song-heading h1{font-size:28px}.song-heading .eyebrow{font-size:12px}.song-progress{max-width:120px}.today-layout{grid-template-columns:1fr}.today-score{border-top:1px solid var(--border);padding-top:24px}.practice-view{padding:16px}.practice-heading{gap:12px}.practice-heading h1{font-size:20px}.practice-location{font-size:14px}.guidance{gap:8px;padding:8px}.feedback{font-size:20px;min-width:72px}.stage-caption{font-size:14px}.practice-view .score-surface{height:280px}.transport{gap:8px}.hint-control{margin-left:auto}.result-surface{padding:24px 16px}.result-metrics,.summary-metrics{gap:24px}.result-metrics strong,.summary-metrics strong{font-size:28px}.map-row{grid-template-columns:32px minmax(0,1fr) 48px;gap:12px}.map-row>div:nth-last-child(2){grid-column:2}.map-row>button{grid-column:3;grid-row:auto}.setting-row,.view-heading{flex-wrap:wrap;gap:16px}.authoring-columns{grid-template-columns:1fr}.event-editor{border-left:0;padding:24px 0 0;border-top:1px solid var(--border)}.authoring-tools{flex-wrap:wrap;gap:12px}.authoring-back{padding:0 20px}.coach h1{overflow-wrap:anywhere}.practice-overrides label{flex-wrap:wrap}.session-summary h1{font-size:24px}}@media (prefers-reduced-motion:reduce){.coach *,.coach :after,.coach :before{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.coach{--surface:#fafdff;--raised:#e3eae8;--border:#bccbc8;--secondary:#4c605c;--glass:rgba(255,255,255,.58);--glass-edge:rgba(255,255,255,.9);--glass-shadow:0 8px 28px rgba(28,57,51,.07);background:linear-gradient(120deg,#dbe8e1,#edf0f4 46%,#e2e8ed 77%,#e9e2e1);background-attachment:fixed;font-family:Malgun Gothic,Apple SD Gothic Neo,Noto Sans KR,Segoe UI,system-ui,sans-serif}.coach[data-theme=dark]{--surface:#26342f;--raised:#303f38;--border:#52675d;--glass:rgba(30,43,37,.8);--glass-edge:rgba(198,230,210,.2);--glass-shadow:0 8px 28px rgba(0,0,0,.14);--secondary:#b9cbc2;background:linear-gradient(120deg,#192b23,#232a30 60%,#302b2e)}.coach-header{background:var(--glass);border-bottom:1px solid var(--glass-edge);backdrop-filter:blur(18px) saturate(125%);box-shadow:0 1px 0 rgba(39,72,62,.08)}.coach-header nav{padding:4px;border:1px solid var(--glass-edge);border-radius:8px;background:rgba(255,255,255,.16)}.coach-header nav [aria-current=page]{background:var(--surface);box-shadow:0 2px 8px rgba(26,68,56,.08)}.coach .button,.coach button,.coach input[type=number],.coach select{background:var(--glass);border-color:var(--glass-edge);box-shadow:inset 0 1px 0 rgba(255,255,255,.24),0 2px 5px rgba(26,68,56,.04);transition:background-color .18s ease,border-color .18s ease}.coach .primary{background:#006957;border-color:#006957;color:#fff;box-shadow:0 4px 12px rgba(0,105,87,.16)}.coach .primary:hover:not(:disabled){background:#005749}.coach[data-theme=dark] .primary{background:#98d9b6;border-color:#98d9b6;color:#102a1e}.coach[data-theme=dark] .primary:hover:not(:disabled){background:#b5e8ce}.coach .midi-status,.coach .wordmark{background:transparent;border:0;box-shadow:none}.coach .wordmark>svg{padding:4px;width:40px;height:40px;border:1px solid var(--glass-edge);border-radius:8px;background:var(--glass)}.song-heading{border-bottom-color:rgba(99,129,118,.22)}.coach .today .score-surface{border:1px solid var(--glass-edge);box-shadow:var(--glass-shadow);background:rgba(255,255,255,.94)}.score-footer{border-top-color:rgba(99,129,118,.22)}.guidance{background:var(--glass);backdrop-filter:blur(12px);border:1px solid var(--glass-edge);border-bottom:0;border-radius:8px 8px 0 0}.practice-view .score-surface{border:1px solid rgba(255,255,255,.95);border-top:0;background:#faf9f4;box-shadow:inset 0 1px 4px rgba(0,0,0,.04)}.coach[data-theme=dark] .practice-view .score-surface{background:#fbfbf8;color:#151d1a}.keyboard-area{padding-top:12px}.transport{padding:12px;border:1px solid var(--glass-edge);border-radius:8px;background:var(--glass);backdrop-filter:blur(12px) saturate(120%);box-shadow:var(--glass-shadow)}.coach .segmented{border-color:var(--glass-edge);background:rgba(255,255,255,.24)}.coach .segmented button{box-shadow:none}.coach .segmented button[aria-pressed=true]{background:var(--surface);color:var(--accent);box-shadow:0 1px 5px rgba(26,68,56,.1)}.result-surface{background:rgba(255,255,255,.84);border-bottom:1px solid var(--glass-edge)}.coach[data-theme=dark] .result-surface{background:rgba(30,43,37,.88)}.result-surface~.transport{margin-top:16px;background:transparent;box-shadow:none;backdrop-filter:none;border-color:transparent}.authoring-detail,.map-row,.setting-row{border-color:rgba(99,129,118,.27)}.measure-track>span{border:1px solid var(--glass-edge);border-bottom:3px solid var(--border);background:var(--glass);border-radius:4px}@supports not (backdrop-filter:blur(12px)){.coach-header,.guidance,.transport{background:var(--surface)}}@media (max-width:760px){.coach-header{gap:12px}.coach-header nav{gap:0}.transport{padding:8px}.coach .coach-header nav button{min-width:0}}.practice-stage-container{position:relative;width:100%}.count-in-overlay{position:absolute;inset:0;z-index:10;display:flex;flex-direction:column;align-items:center;justify-content:center;background:rgba(245,248,246,.75);backdrop-filter:blur(8px);border-radius:0 0 8px 8px;pointer-events:none}.coach[data-theme=dark] .count-in-overlay{background:rgba(20,30,26,.75)}.count-in-ring{position:absolute;width:120px;height:120px;border-radius:50%;border:3px solid var(--accent);animation:countInPulse .9s cubic-bezier(.1,.8,.3,1) infinite}@keyframes countInPulse{0%{transform:scale(.65);opacity:1}to{transform:scale(1.6);opacity:0}}.count-in-number{font-size:76px;font-weight:850;color:var(--accent);text-shadow:0 4px 16px rgba(0,105,87,.25);line-height:1;z-index:2;font-variant-numeric:tabular-nums}.count-in-caption{margin-top:8px;font-size:15px;font-weight:600;color:var(--secondary);z-index:2;letter-spacing:.5px}.score-header-bar{display:flex;align-items:center;justify-content:space-between;padding:4px 8px 8px;font-size:13px}.score-measure-badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:12px;background:rgba(0,105,87,.08);color:var(--accent);font-weight:700;font-size:12px;border:1px solid rgba(0,105,87,.18)}.score-loading-indicator{color:var(--secondary);font-size:12px}.score-spinner{width:28px;height:28px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;margin-bottom:8px}@keyframes spin{to{transform:rotate(1turn)}}.connected .status-dot{animation:breathePulse 2.4s ease-in-out infinite}@keyframes breathePulse{0%,to{transform:scale(1);opacity:.9;box-shadow:0 0 0 0 rgba(40,116,73,.4)}50%{transform:scale(1.15);opacity:1;box-shadow:0 0 0 5px rgba(40,116,73,0)}}