:root{--ecg-green:#00ff41;--spo2-cyan:#00e5ff;--nibp-white:#fff;--alarm-red:#ff1744;--alarm-yellow:#ffea00;--t7-toolbar-blue:#2e4897;--vital-hr-blue:#1976d2;--vital-hr-no-measurement:#0d0;--vital-nibp-bg:#555;--branding-red:#e82a30;--branding-model:#e0e0e0;--bg-primary:#0e0f1c;--bg-secondary:#14162a;--bg-panel:#1c1e36;--border:#2c2f55;--text-primary:#e8e9f3;--text-secondary:#7b7fa0;--accent:#5b8def;--accent-hover:#7aa3f5;--card-shadow:0 2px 8px #0006;--ui-green:#00ff41;color:var(--text-primary);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%}body{background-color:var(--bg-primary);overflow:hidden;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.app{display:flex;flex-direction:column;justify-content:center;align-items: center;width:100%;height:100%}.role-selector{text-align:center;display:flex;flex-direction:column;justify-content:center;align-items: center;width:100%;height:100%;padding:2rem}.role-selector-content{display:flex;flex-direction:column;flex:1;justify-content:center;align-items: center}.app-title{color:var(--ui-green);letter-spacing:.05em;display:inline-flex;align-items: center;gap:.35em;margin-bottom:.25rem;font-size:2.5rem;font-weight:700}.app-title-logo{display:block;border-radius:.2em;width:auto;height:1em}.app-subtitle{color:var(--text-secondary);margin-bottom:3rem;font-size:1rem}.role-buttons{display:flex;flex-wrap:wrap;justify-content:center;gap:1.5rem}.role-button{display:flex;border:2px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);cursor:pointer;box-shadow:var(--card-shadow);border-radius:16px;flex-direction:column;align-items: center;gap:.5rem;min-width:160px;padding:2rem 2.5rem;transition:all .2s}.role-button:hover{border-color:var(--accent);background:var(--bg-panel);transform:translateY(-2px)}.role-button:active{transform:translateY(0)}.role-icon{font-size:2.5rem}.role-icon-svg{font-size:unset;display:flex;justify-content:center;align-items: center}.role-svg{width:64px;height:64px}.role-label{font-size:1.2rem;font-weight:600}.role-desc{color:var(--text-secondary);font-size:.85rem}.connection-setup{text-align:center;width:100%;max-width:400px;padding:2rem}.connection-setup h2{color:var(--text-primary);margin-bottom:2rem;font-size:1.5rem}.back-button{position:absolute;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:.5rem;font-size:1rem;top:1rem;left:1rem}.back-button:hover{color:var(--text-primary)}.connection-panel{display:flex;flex-direction:column;align-items: center;gap:1rem}.btn-primary{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:12px;width:100%;max-width:280px;padding:.875rem 2rem;transition:background .2s;font-size:1rem;font-weight:600}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.room-code-display{display:flex;flex-direction:column;align-items: center;gap:.5rem}.room-code-copyable{cursor:pointer;position:relative;transition:border-color .2s}.room-code-copyable:hover{border-color:var(--accent)}.room-code-copyable:active{transform:scale(.97)}.room-code-copied{position:absolute;color:var(--ecg-green);letter-spacing:normal;animation:copied-fade 2s ease-out forwards;font-family:inherit;font-size:.75rem;top:-1.6rem;left:50%;transform:translate(-50%)}@keyframes copied-fade{0%{opacity:1;transform:translate(-50%)translateY(0)}70%{opacity:1}to{opacity:0;transform:translate(-50%)translateY(-.5rem)}}.room-label{color:var(--text-secondary);font-size:.9rem}.room-code{color:var(--ecg-green);letter-spacing:.3em;background:var(--bg-secondary);border:2px solid var(--border);border-radius:12px;padding:.5rem 1.5rem;font-family:SF Mono,Fira Code,monospace;font-size:3rem;font-weight:700}.room-status{color:var(--text-secondary);animation:pulse 2s ease-in-out infinite;font-size:.9rem}.room-input{background:var(--bg-secondary);border:2px solid var(--border);color:var(--text-primary);text-align:center;letter-spacing:.2em;outline:none;border-radius:12px;width:100%;max-width:280px;padding:.875rem 1rem;transition:border-color .2s;font-family:SF Mono,Fira Code,monospace;font-size:1.5rem}.room-input:focus{border-color:var(--accent)}.room-input::placeholder{color:var(--text-secondary);letter-spacing:normal;font-size:1rem}.status-error{color:var(--alarm-red);animation:none}.qr-display{display:flex;flex-direction:column;align-items: center;gap:.5rem;margin-top:.5rem}.qr-canvas{border-radius:12px}.qr-hint{color:var(--text-secondary);font-size:.75rem}.qr-scanner-section{display:flex;flex-direction:column;align-items: center;gap:.75rem;width:100%;max-width:280px}.qr-reader{overflow:hidden;border-radius:12px;width:100%}.qr-reader video{border-radius:12px}.qr-error{color:var(--alarm-red);font-size:.8rem}.btn-secondary{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border);cursor:pointer;border-radius:12px;width:100%;max-width:280px;padding:.75rem 1.5rem;transition:all .2s;font-size:.9rem}.btn-secondary:hover:not(:disabled){border-color:var(--accent);background:var(--bg-panel)}.btn-secondary:disabled{opacity:.4;cursor:not-allowed}.btn-small{padding:.5rem 1rem;font-size:.8rem}.connection-divider{display:flex;color:var(--text-secondary);align-items: center;gap:.75rem;width:100%;max-width:280px;font-size:.8rem}.connection-divider:before,.connection-divider:after{content:"";background:var(--border);flex:1;height:1px}.status-dot{display:inline-block;background:var(--alarm-red);border-radius:50%;flex-shrink:0;width:10px;height:10px}.status-dot.connected{background:var(--ecg-green)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.app-footer{text-align:center;flex-shrink:0;padding:1rem 2rem}.footer-credit{color:var(--text-secondary);margin-bottom:.5rem;font-size:.75rem}.footer-links{display:flex;justify-content:center;align-items: center;gap:.5rem}.footer-link{color:var(--text-secondary);text-decoration:none;transition:color .2s;font-size:.75rem}.footer-link:hover{color:var(--accent)}.footer-link-btn{cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit}.footer-separator{color:var(--border);font-size:.75rem}@media (max-width:480px){.app-title{font-size:2rem}.role-buttons{flex-direction:column;align-items: center}.role-button{width:100%;max-width:280px}.room-code{font-size:2.2rem}}.device-chassis-wrapper{display:flex;background:var(--bg-primary);justify-content:center;align-items: center;width:100%;height:100%;padding:.5rem}.device-chassis{position:relative;aspect-ratio:1460/820;width:100%;max-width:1460px}.app--simulator .device-chassis-wrapper{--sim-pad-top:max(.5rem,env(safe-area-inset-top));--sim-pad-right:max(.5rem,env(safe-area-inset-right));--sim-pad-bottom:max(.5rem,env(safe-area-inset-bottom));--sim-pad-left:max(.5rem,env(safe-area-inset-left));--sim-safe-vertical:calc(var(--sim-pad-top) + var(--sim-pad-bottom));--sim-compact-zoom:1;--t7-top-toolbar-padding:.1rem .25rem;--t7-top-toolbar-gap:.1rem;--t7-top-btn-width:clamp(28px,3.5vw,44px);--t7-top-btn-height:clamp(24px,3vw,36px);--t7-top-icon-size:20px;--t7-bottom-toolbar-gap:clamp(.15rem,.5vw,.35rem);--t7-bottom-toolbar-padding:.2rem .25rem;--t7-bottom-btn-gap:clamp(.15rem,.4vw,.3rem);--t7-bottom-btn-padding:clamp(.4rem,.92vw,.69rem).25rem;--t7-bottom-btn-font-size:clamp(.5rem,1vw,.75rem);--t7-bottom-icon-size:24px;--t7-vitals-width:clamp(120px,18vw,200px);--t7-ecg-label-size:clamp(.55rem,1vw,.8rem);--t7-vital-label-size:clamp(.55rem,1vw,.75rem);--t7-vital-unit-size:clamp(.45rem,.8vw,.65rem);--t7-vital-value-size:clamp(1.4rem,3.5vw,2.5rem);--t7-vital-sub-size:clamp(.6rem,1.2vw,1rem);--t7-vital-alarm-size:clamp(.48rem,1.1vw,.8rem);height:100vh;display:grid;overflow:hidden;padding:var(--sim-pad-top)var(--sim-pad-right)var(--sim-pad-bottom)var(--sim-pad-left);place-items: center;height:100dvh}.app--simulator .device-chassis{width:min(calc(100vw - var(--sim-pad-left) - var(--sim-pad-right)),calc((100vh - var(--sim-safe-vertical))*1460/820));max-height:calc(100vh - var(--sim-safe-vertical));transform:scale(var(--sim-compact-zoom));transform-origin:center;max-width:1460px}@supports (height: 100dvh){.app--simulator .device-chassis{width:min(calc(100vw - var(--sim-pad-left) - var(--sim-pad-right)),calc((100dvh - var(--sim-safe-vertical))*1460/820));max-height:calc(100dvh - var(--sim-safe-vertical))}}.app--simulator-compact .device-chassis-wrapper{--sim-pad-top:max(0px,env(safe-area-inset-top));--sim-pad-right:max(.15rem,env(safe-area-inset-right));--sim-pad-bottom:max(0px,env(safe-area-inset-bottom));--sim-pad-left:max(.15rem,env(safe-area-inset-left));--sim-compact-zoom:1.08;--t7-top-toolbar-padding:.08rem .2rem;--t7-top-toolbar-gap:.08rem;--t7-top-btn-width:clamp(24px,3vw,36px);--t7-top-btn-height:clamp(20px,2.6vw,30px);--t7-top-icon-size:17px;--t7-bottom-toolbar-gap:clamp(.08rem,.35vw,.2rem);--t7-bottom-toolbar-padding:.1rem .2rem;--t7-bottom-btn-gap:.12rem;--t7-bottom-btn-padding:clamp(.3rem,.75vw,.5rem).2rem;--t7-bottom-btn-font-size:clamp(.42rem,.85vw,.62rem);--t7-bottom-icon-size:20px;--t7-vitals-width:clamp(104px,16vw,170px);--t7-ecg-label-size:clamp(.48rem,.85vw,.66rem);--t7-vital-label-size:clamp(.48rem,.85vw,.66rem);--t7-vital-unit-size:clamp(.4rem,.7vw,.58rem);--t7-vital-value-size:clamp(1.05rem,2.9vw,2rem);--t7-vital-sub-size:clamp(.48rem,.95vw,.8rem);--t7-vital-alarm-size:clamp(.4rem,.9vw,.66rem)}.app--simulator-compact-tight .device-chassis-wrapper{--sim-compact-zoom:1.12;--t7-top-btn-width:clamp(21px,2.8vw,32px);--t7-top-btn-height:clamp(18px,2.4vw,26px);--t7-top-icon-size:15px;--t7-bottom-btn-font-size:clamp(.38rem,.75vw,.55rem);--t7-bottom-btn-padding:clamp(.24rem,.65vw,.42rem).16rem;--t7-bottom-icon-size:17px;--t7-vitals-width:clamp(94px,15vw,150px);--t7-vital-value-size:clamp(.9rem,2.6vw,1.7rem);--t7-vital-sub-size:clamp(.44rem,.85vw,.72rem);--t7-vital-alarm-size:clamp(.36rem,.8vw,.58rem)}.device-chassis-svg{position:absolute;width:100%;height:100%;top:0;left:0}.device-screen-container{position:absolute;top:var(--screen-top,19.76%);left:var(--screen-left,24.04%);width:var(--screen-width,51.92%);height:var(--screen-height,58.05%);overflow:hidden;border-radius:1px}.chassis-btn{cursor:pointer}.chassis-btn:hover{filter:brightness(1.2)}.chassis-btn-power:active .power-fill{fill:#5aa05a}.chassis-btn-power:active .power-ring{stroke:#3a9a3a}.chassis-btn-shock:active .shock-triangle{fill:#ff7a1a}.t7-screen{display:flex;background:#000;flex-direction:column;width:100%;height:100%}.screen-off{background:#000;width:100%;height:100%}.screen-branding{display:flex;flex-shrink:0;justify-content:space-between;align-items:baseline;padding:.15rem .5rem}.branding-name{color:var(--branding-red);letter-spacing:.02em;font-size:clamp(.7rem,1.4vw,1.1rem);font-style:italic;font-weight:700}.branding-model{color:var(--branding-model);font-size:clamp(.6rem,1.2vw,.95rem);font-style:italic}.boot-screen{display:flex;animation:boot-fade-in .8s ease-out;background:#000;justify-content:center;align-items: center;width:100%;height:100%}.boot-content{display:flex;flex-direction:column;align-items: center;gap:1.5rem}.boot-content .screen-branding{flex-direction:column;align-items: center;gap:.25rem}.boot-content .branding-name{font-size:clamp(1.5rem,4vw,2.5rem)}.boot-content .branding-model{font-size:clamp(1rem,2.5vw,1.5rem)}.boot-progress-track{overflow:hidden;background:#222;border-radius:2px;width:clamp(140px,40vw,280px);height:4px}.boot-progress-fill{animation:boot-progress-grow linear forwards;background:#d32f2f;border-radius:2px;width:0%;height:100%}.boot-label{color:#808090;font-size:clamp(.65rem,1.2vw,.85rem)}@keyframes boot-fade-in{0%{opacity:0}to{opacity:1}}@keyframes boot-progress-grow{0%{width:0%}to{width:100%}}.crt-shutdown{position:relative;overflow:hidden;transform-origin:center;animation:crt-off .5s ease-in forwards;width:100%;height:100%}.crt-shutdown:after{content:"";position:absolute;opacity:0;animation:crt-afterglow .3s .4s ease-out forwards;background:#fff;border-radius:50%;width:8px;height:8px;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes crt-off{0%{filter:brightness(1);transform:scaleY(1)scaleX(1)}40%{filter:brightness(1.8);transform:scaleY(.005)scaleX(1)}70%{filter:brightness(1.5);transform:scaleY(.005)scaleX(.3)}to{filter:brightness(0);transform:scaleY(.005)scaleX(0)}}@keyframes crt-afterglow{0%{opacity:1;box-shadow:0 0 15px 8px #ffffff80}to{opacity:0;box-shadow:0 0 4px 2px #fff0}}.top-toolbar{display:flex;padding:var(--t7-top-toolbar-padding);flex-shrink:0;justify-content:space-between;align-items: center}.toolbar-group{display:flex;gap:var(--t7-top-toolbar-gap)}.toolbar-icon-btn{display:flex;width:var(--t7-top-btn-width);height:var(--t7-top-btn-height);color:#ccc;cursor:default;background:#333;border:1px solid #444;border-radius:3px;justify-content:center;align-items: center;padding:0}.toolbar-icon-btn svg{width:var(--t7-top-icon-size);height:var(--t7-top-icon-size)}.toolbar-icon-alarm{cursor:pointer;background:#333}.toolbar-icon-alarm.active{color:#fff;background:#e65100;border-color:#ff8f00}.toolbar-icon-alarm:hover{filter:brightness(1.15)}.bottom-toolbar{display:flex;gap:var(--t7-bottom-toolbar-gap);padding:var(--t7-bottom-toolbar-padding);flex-shrink:0}.bottom-toolbar-btn{display:flex;justify-content:center;align-items: center;gap:var(--t7-bottom-btn-gap);padding:var(--t7-bottom-btn-padding);background:var(--t7-toolbar-blue);border:1px solid var(--t7-toolbar-blue);color:#fff;font-size:var(--t7-bottom-btn-font-size);cursor:default;white-space:nowrap;border-radius:0;flex:1;font-weight:500}.bottom-toolbar-btn svg{width:var(--t7-bottom-icon-size);height:var(--t7-bottom-icon-size);flex-shrink:0}.bottom-toolbar-btn-active{cursor:pointer}.bottom-toolbar-btn-active:hover{background:var(--t7-toolbar-blue);filter:brightness(1.05)}.bottom-toolbar-btn-active:active{background:var(--t7-toolbar-blue)}.bottom-toolbar-btn-disabled{opacity:.5;cursor:not-allowed}.t7-monitor{display:flex;flex:1;min-height:0}.t7-curves-area{display:flex;flex-direction:column;flex:1;gap:1px;min-width:0;min-height:0}.t7-curve-row{position:relative;flex:1;min-height:0;padding-left:1.5rem}.curve-lead-label{position:absolute;font-size:var(--t7-ecg-label-size);z-index:1;opacity:.7;font-weight:600;top:.3rem;left:.4rem}.curve-label-ecg{color:var(--ecg-green)}.curve-label-spo2{color:var(--spo2-cyan);writing-mode:vertical-lr;text-orientation:upright;letter-spacing:-.1em;background:#000;padding:.15rem .1rem;top:50%;transform:translateY(-50%)}.waveform-canvas{background:0 0}.t7-vitals-area{width:var(--t7-vitals-width);display:flex;flex-direction:column;flex-shrink:0}.vitals-panel{display:flex;flex-direction:column;gap:1px;height:100%}.vitals-panel .vital-block{display:flex;overflow:hidden;flex-direction:column;flex:1}.vitals-panel .vital-hr{flex:1.5}.vital-header{display:flex;background:#0006;flex-shrink:0;justify-content:space-between;align-items:baseline;padding:.1rem .4rem}.vital-label{font-size:var(--t7-vital-label-size);letter-spacing:.05em;color:#fff;font-weight:600}.vital-unit{font-size:var(--t7-vital-unit-size);color:#fff}.vital-unit-measuring{white-space:nowrap;font-weight:600}.vital-body{position:relative;display:flex;flex-direction:column;flex:1;justify-content:center;align-items: center;padding:.2rem}.vital-value{font-size:var(--t7-vital-value-size);color:#fff;font-family:SF Mono,Fira Code,monospace;font-weight:700;line-height:1}.vital-sub{font-size:var(--t7-vital-sub-size);color:#ffffffa6;font-family:SF Mono,Fira Code,monospace}.vital-alarm-col{position:absolute;display:flex;pointer-events:none;flex-direction:column;justify-content:space-between;padding:.15rem 0;top:0;bottom:0;left:.25rem}.vital-alarm-high,.vital-alarm-low{font-size:var(--t7-vital-alarm-size);color:#fff;font-family:SF Mono,Fira Code,monospace;font-weight:700;line-height:1}.vital-hr{background:var(--vital-hr-blue);position:relative}.vital-hr.no-measurement{background:var(--vital-hr-no-measurement)}.vital-nibp{background:var(--vital-nibp-bg)}.vital-spo2{background:var(--vital-hr-blue)}.hr-heart{position:absolute;font-size:calc(var(--t7-vital-value-size)*.8);color:#fff;pointer-events:none;line-height:1;top:.8em;right:.25em}@media (max-width:768px){.device-chassis-wrapper{padding:.25rem}.bottom-toolbar-btn span{font-size:.5rem}}@media (max-width:1024px) and (orientation:landscape){.app--simulator .device-chassis-wrapper{--sim-pad-top:max(.25rem,env(safe-area-inset-top));--sim-pad-right:max(.25rem,env(safe-area-inset-right));--sim-pad-bottom:max(.25rem,env(safe-area-inset-bottom));--sim-pad-left:max(.25rem,env(safe-area-inset-left))}}@media (max-width:480px){.device-chassis-wrapper{padding:0}}.controller-view{display:flex;overflow:hidden;flex-direction:column;width:100%;height:100%}.controller-header{display:flex;background:var(--bg-secondary);border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items: center;min-width:0;padding:.75rem 1rem;box-shadow:0 1px 4px #00000026}.controller-title{color:var(--text-primary);min-width:0;font-size:1rem;font-weight:600}.controller-title-group{display:inline-flex;align-items: center;gap:.4rem;min-width:0}.controller-title-logo{border-radius:.18em;flex-shrink:0;width:1.1em;height:1.1em}.controller-status,.header-group{display:flex;align-items: center;gap:.5rem;min-width:0}.header-divider{background:var(--border);flex-shrink:0;width:1px;height:1.5rem;margin:0 .25rem}.status-label{color:var(--text-secondary);font-size:.8rem;font-weight:500}.status-label.connected{color:var(--ecg-green)}.status-label.disconnected{color:var(--alarm-red)}.controller-alarm-btn{display:flex;border:1px solid var(--border);cursor:pointer;border-radius:10px;justify-content:center;align-items: center;width:44px;height:44px;padding:0}.vital-block-header-right{display:flex;align-items: center;gap:.5rem;margin-left:auto}.controller-cardiac-bip-btn{display:flex;border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:8px;flex-shrink:0;justify-content:center;align-items: center;width:36px;height:36px}.controller-cardiac-bip-btn.active{border-color:var(--ecg-green);color:var(--ecg-green);background:#00ff411a}.controller-cardiac-bip-btn:hover{filter:brightness(1.2)}.controller-spo2-btn{display:flex;border:1.5px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:8px;flex-shrink:0;justify-content:center;align-items: center;width:36px;height:36px;padding:0}.controller-spo2-btn.active{border-color:var(--spo2-cyan);color:var(--spo2-cyan);background:#00e5ff1a}.controller-spo2-btn:hover{filter:brightness(1.2)}.btn-disconnect,.btn-power{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;display:flex;background:0 0;border-radius:10px;justify-content:center;align-items: center;min-width:44px;min-height:44px;padding:.6rem 1rem;transition:all .15s;font-size:.9rem}.btn-disconnect:hover,.btn-disconnect:active{border-color:var(--alarm-red);color:var(--alarm-red)}.btn-power.off:hover,.btn-power.off:active,.btn-power.on{border-color:var(--ecg-green);color:var(--ecg-green)}.btn-power.on:hover,.btn-power.on:active{border-color:var(--alarm-red);color:var(--alarm-red)}.btn-label-short{display:none}.controller-body{overflow-y:auto;display:flex;flex-direction:column;flex:1;gap:1.75rem;padding:1rem}.controller-body .vital-block{background:var(--bg-secondary);border:1px solid var(--border);box-shadow:var(--card-shadow);border-radius:12px;padding:1rem 1rem 1.25rem}.controller-body .vital-block-fc{border-left:3px solid var(--ecg-green)}.controller-body .vital-block-nibp{border-left:3px solid var(--nibp-white)}.controller-body .vital-block-spo2{border-left:3px solid var(--spo2-cyan)}.vital-block-header{display:flex;align-items:baseline;gap:.5rem;margin-bottom:1rem}.vital-block-title{font-size:.9rem;font-weight:600}.vital-block-title-fc{color:var(--ecg-green)}.vital-block-title-nibp{color:var(--nibp-white)}.vital-block-title-spo2{color:var(--spo2-cyan)}.vital-block-value{font-size:1.8rem;font-weight:700}.vital-block-value-fc{color:var(--ecg-green)}.vital-block-value-nibp{color:var(--nibp-white)}.vital-block-value-spo2{color:var(--spo2-cyan)}.vital-block-value-unit{color:var(--text-secondary);margin-left:.25rem;font-size:.75rem;font-weight:400}.vital-block-disabled{opacity:.4;pointer-events:none}.vital-block-measuring{animation:nibp-border-pulse 1.5s ease-in-out infinite}.btn-curve-toggle-inline{display:flex;border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:8px;flex-shrink:0;justify-content:center;align-items: center;width:36px;height:36px;padding:0;transition:all .15s}.btn-curve-toggle-inline svg{width:20px;height:10px}.btn-curve-toggle-inline:disabled{opacity:.3;cursor:not-allowed}.btn-curve-toggle-inline.btn-curve-toggle-ecg.active{border-color:var(--ecg-green);color:var(--ecg-green);background:#00ff411a}.btn-curve-toggle-inline.btn-curve-toggle-spo2.active{border-color:var(--spo2-cyan);color:var(--spo2-cyan);background:#00e5ff1a}.btn-curve-toggle-inline:hover:not(:disabled):not(.active){border-color:var(--accent);color:var(--text-primary)}.vitals-controls{display:flex;flex-direction:column;gap:1.25rem}.control-group{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;padding:1rem 1rem 1.25rem}.control-label{display:block;margin-bottom:.75rem;font-size:1rem;font-weight:600}.control-label-hr{color:var(--ecg-green)}.control-label-spo2{color:var(--spo2-cyan)}.control-label-nibp{color:var(--nibp-white)}.control-slider{-webkit-appearance:none;appearance:none;outline:none;touch-action:none;background:0 0;width:100%;height:36px}.control-slider::-webkit-slider-runnable-track{background:var(--border);border-radius:6px;width:100%;height:12px}.control-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:var(--accent);cursor:pointer;border:2px solid var(--bg-primary);border-radius:50%;width:36px;height:36px;margin-top:-12px}.control-slider::-moz-range-thumb{background:var(--accent);cursor:pointer;border:2px solid var(--bg-primary);border-radius:50%;width:36px;height:36px}.control-slider::-moz-range-track{background:var(--border);border-radius:6px;height:12px}.bp-inputs{display:flex;flex-direction:column;gap:.75rem}.bp-field{display:flex;align-items: center;gap:.75rem}.bp-label{color:var(--text-secondary);flex-shrink:0;width:2.25rem;font-size:.85rem}.section-title{color:var(--text-primary);margin-bottom:.75rem;font-size:.9rem;font-weight:600}.rhythm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.6rem}.rhythm-button{display:flex;background:var(--bg-secondary);border:1px solid var(--border);color:var(--text-primary);cursor:pointer;text-align:left;border-radius:10px;flex-direction:column;align-items: flex-start;min-height:48px;padding:.85rem 1rem;transition:all .15s}.rhythm-button:hover{border-color:var(--accent)}.rhythm-button:active{background:var(--bg-panel)}.rhythm-button.active{border-color:var(--ecg-green);background:#00ff4114}.rhythm-name{font-size:.9rem;font-weight:500;line-height:1.2}.rhythm-code{color:var(--text-secondary);margin-top:.2rem;font-family:SF Mono,Fira Code,monospace;font-size:.7rem}@keyframes nibp-pulse{0%,to{opacity:1;color:#ffea00}50%{opacity:.5;color:#ffa000}}.nibp-measuring{color:#ffea00;animation:nibp-pulse 1.2s ease-in-out infinite}.nibp-control-section{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;padding:1rem;transition:border-color .3s}.nibp-control-section-disabled{opacity:.4;pointer-events:none}.nibp-control-section-measuring{animation:nibp-border-pulse 1.5s ease-in-out infinite}@keyframes nibp-border-pulse{0%,to{border-color:#ffa000;box-shadow:0 0 0 1px #ffa00040}50%{border-color:#ffea00;box-shadow:0 0 0 3px #ffea0030}}.nibp-control-header{display:flex;justify-content:space-between;align-items: center;margin-bottom:.75rem}.nibp-control-title{color:var(--nibp-white);font-size:.9rem;font-weight:600}.nibp-measuring-label{color:#ffea00;animation:nibp-pulse 1.5s ease-in-out infinite;font-size:.8rem;font-weight:600}.nibp-control-buttons{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.75rem}.btn-nibp-start,.btn-nibp-reset{cursor:pointer;border-radius:10px;flex:1;min-height:44px;padding:.6rem 1rem;transition:all .15s;font-size:.9rem}.btn-nibp-start{background:var(--bg-panel);border:1px solid var(--nibp-white);color:var(--nibp-white);font-weight:600}.btn-nibp-start:hover,.btn-nibp-start:active{background:#ffffff1a}.btn-nibp-reset{border:1px solid var(--border);color:var(--text-secondary);background:0 0}.btn-nibp-reset:hover,.btn-nibp-reset:active{border-color:var(--alarm-red);color:var(--alarm-red)}.alarm-thresholds{display:flex;border:none;border-top:2px solid #ffffff1a;border-radius:0;align-items: center;gap:1rem;margin-top:.75rem;padding:.6rem .75rem .5rem}.alarm-thresholds legend{color:var(--text-secondary);padding:0 .35rem;font-size:.75rem;font-weight:500}.alarm-thresholds-fc{border-top-color:#00ff4140}.alarm-thresholds-nibp{border-top-color:#fff3}.alarm-thresholds-spo2{border-top-color:#00e5ff40}.alarm-threshold-field{display:flex;align-items: center;gap:.35rem}.alarm-threshold-label{color:var(--text-secondary);white-space:nowrap;font-size:.7rem}.alarm-threshold-label-high{color:var(--alarm-red)}.alarm-threshold-label-low{color:var(--alarm-yellow,#ffea00)}.alarm-threshold-input{background:var(--bg-primary);border:1px solid var(--border);color:var(--text-primary);text-align:center;-moz-appearance:textfield;border-radius:6px;width:4.5rem;padding:.3rem .4rem;font-size:.85rem}.alarm-threshold-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.alarm-threshold-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.alarm-threshold-input:focus{outline:none;border-color:var(--accent)}.slider-with-marks{position:relative;width:100%}.slider-with-marks .control-slider{position:relative;z-index:1}.slider-marks-track{position:absolute;pointer-events:none;z-index:2;height:0;top:50%;left:18px;right:18px}.slider-mark{position:absolute;display:flex;pointer-events:none;flex-direction:column;align-items: center;transform:translate(-50%)}.slider-mark-line{border-radius:1px;width:2px;height:14px;margin-top:-7px}.slider-mark--high .slider-mark-line{background:var(--alarm-red)}.slider-mark--low .slider-mark-line{background:var(--alarm-yellow,#ffea00)}.slider-mark-label{white-space:nowrap;margin-top:2px;font-size:.6rem;font-weight:600;line-height:1}.slider-mark--high .slider-mark-label{color:var(--alarm-red)}.slider-mark--low .slider-mark-label{color:var(--alarm-yellow,#ffea00)}@media (max-width:768px){.controller-view{overflow-x:hidden}.controller-header{padding:calc(.55rem + env(safe-area-inset-top)).75rem .55rem;flex-direction:column;align-items:stretch;gap:.5rem}.controller-title{font-size:.95rem;line-height:1.25}.controller-status{flex-direction:column;align-items:stretch;gap:.4rem;width:100%}.header-group{gap:.4rem;width:100%}.header-group-session{flex-wrap:wrap;justify-content:space-between}.header-group-device{justify-content:flex-end}.header-divider{display:none}.status-label{font-size:.75rem}.btn-disconnect,.btn-power{min-height:40px;padding:.48rem .75rem;font-size:.84rem}.controller-alarm-btn{width:40px;height:40px}.controller-cardiac-bip-btn,.controller-spo2-btn{width:32px;height:32px}}@media (max-width:480px){.rhythm-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:400px){.btn-label-long{display:none}.btn-label-short{display:inline}.header-group-session,.header-group-device{gap:.35rem}}.info-page{overflow-y:auto;-webkit-user-select:text;user-select:text;width:100%;max-width:640px;height:100%;padding:2rem}.info-page h1{color:var(--ui-green);margin-bottom:1.5rem;font-size:1.5rem}.info-page h2{color:var(--text-primary);margin-top:1.5rem;margin-bottom:.5rem;font-size:1.1rem}.info-page p{color:var(--text-secondary);margin-bottom:.75rem;font-size:.9rem;line-height:1.7}.info-page a{color:var(--accent);text-decoration:none}.info-page a:hover{text-decoration:underline}.info-page ul{list-style:none;margin-bottom:.75rem;padding:0}.info-page li{color:var(--text-secondary);position:relative;padding-left:1rem;font-size:.9rem;line-height:1.7}.info-page li:before{content:"—";position:absolute;color:var(--border);left:0}.changelog{margin-top:.5rem}.changelog-version{color:var(--ui-green);margin-bottom:.25rem;font-size:1rem;font-weight:600}.changelog-date{color:var(--text-secondary);margin-left:.5rem;font-family:monospace;font-size:.85rem;font-weight:400}.about-logo{display:flex;justify-content:center;margin-top:2rem}.about-logo img{max-width:280px;height:auto}.info-page details{border-top:1px solid var(--border);margin-top:2rem}.info-page summary{cursor:pointer;color:var(--text-secondary);padding:1rem 0;font-size:1.1rem;font-weight:600}.info-page details[open] summary{margin-bottom:.5rem}
