:root{--fs-xs: clamp(9px, .6vw, 11px);--fs-sm: clamp(11px, .68vw, 13px);--fs-base: clamp(12px, .75vw, 14px);--fs-md: clamp(13px, .82vw, 15px);--fs-lg: clamp(14px, 1vw, 18px);--fs-xl: clamp(18px, 1.3vw, 24px);--fs-2xl: clamp(22px, 1.6vw, 30px);--fs-3xl: clamp(26px, 1.9vw, 36px);--sp-xs: clamp(4px, .28vw, 6px);--sp-sm: clamp(8px, .52vw, 12px);--sp-base: clamp(12px, .78vw, 18px);--sp-md: clamp(16px, 1.04vw, 24px);--sp-lg: clamp(20px, 1.4vw, 32px);--sp-xl: clamp(24px, 1.7vw, 40px)}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{--bg-app: #f8fafc;--bg-sidebar: #f1f5f9;--bg-card: #ffffff;--bg-card-alt: #f0f4f8;--bg-elevated: #f9fafb;--bg-input: #f1f5f9;--bg-toolbar: #e8edf4;--border-primary: #e2e8f0;--border-secondary: #cbd5e1;--border-subtle: #eef2f7;--text-primary: #0f172a;--text-secondary: #334155;--text-muted: #64748b;--text-dim: #94a3b8;--text-label: #4a6a8a}.ecg-sidebar{background:var(--bg-sidebar);border-right:1px solid var(--border-primary);color:var(--text-primary);display:flex;flex-direction:column;padding:20px 12px 16px;transition:width .3s ease;z-index:100;flex-shrink:0}.ecg-main-content{flex:1;padding:clamp(20px,1.8vw,36px) clamp(20px,2.2vw,40px);overflow-y:auto;background:var(--bg-app);box-sizing:border-box}.ecg-nav-item{display:flex;align-items:center;padding:4px;cursor:pointer;border-radius:10px;color:var(--text-muted);transition:.2s}.ecg-nav-item:hover{background:var(--border-primary)}.ecg-nav-item-active{display:flex;align-items:center;padding:4px;cursor:pointer;border-radius:10px;background:linear-gradient(90deg,#1e3a8a,#1e40af);color:#fff}.hr-dist-card{background:#fff;border:1px solid var(--border-primary);border-radius:12px;padding:18px 20px 14px;flex:1;display:flex;flex-direction:column}.hr-dist-title{font-size:var(--fs-md);color:var(--text-label);margin:0;font-weight:600}.hr-dist-count{font-size:var(--fs-sm);color:#7a96b0;font-weight:600}.hr-dist-chart-wrap{width:100%;overflow-x:auto;flex:1;min-height:0}.hr-dist-legend{display:flex;gap:14px;margin-top:6px;flex-wrap:wrap}.hr-dist-legend-item{display:flex;align-items:center;gap:5px}.hr-dist-legend-dot{width:8px;height:8px;border-radius:50%}.hr-dist-legend-label{font-size:var(--fs-sm);color:#6a8aaa}.hrv-card{background:#fff;border:1px solid var(--border-primary);border-radius:12px;overflow:hidden;flex:1}.hrv-card-header{padding:14px 18px;border-bottom:1px solid var(--border-primary);display:flex;align-items:baseline;justify-content:space-between}.hrv-card-title{font-size:var(--fs-md);font-weight:600;color:var(--text-label)}.hrv-card-subtitle{font-size:var(--fs-xs);color:#7a96b0;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.hrv-card-body{padding:4px 18px}.hrv-metric-row{display:flex;align-items:center;padding:10px 0;border-bottom:1px solid var(--border-primary)}.hrv-metric-bar{width:3px;height:32px;border-radius:2px;flex-shrink:0;margin-right:12px}.hrv-metric-info{flex:1;min-width:0}.hrv-metric-label{font-size:var(--fs-xs);font-weight:700;color:#7a96b0;text-transform:uppercase;letter-spacing:.6px}.hrv-metric-desc{font-size:var(--fs-xs);color:#6a8aaa;margin-top:1px}.hrv-metric-value-group{display:flex;align-items:baseline;gap:3px}.hrv-metric-value{font-size:var(--fs-xl);font-weight:800;color:var(--text-primary);letter-spacing:-.5px}.hrv-metric-unit{font-size:var(--fs-sm);color:#7a96b0;font-weight:600}.hrv-freq-label{font-size:var(--fs-xs);font-weight:700;color:#7a96b0;text-transform:uppercase;letter-spacing:.6px;padding:10px 0 4px}.arr-wrap{margin-top:var(--sp-md);background:var(--bg-elevated);padding:var(--sp-lg);border-radius:12px;border:1px solid var(--border-primary);box-shadow:0 4px 20px #0000000a}.arr-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;gap:12px;flex-wrap:wrap}.arr-title{margin:0;color:var(--text-primary);font-size:var(--fs-lg);font-weight:700;letter-spacing:.5px;display:flex;align-items:center;gap:10px}.arr-count{color:var(--text-dim);font-size:var(--fs-base);font-weight:600}.arr-filter-row{margin-bottom:12px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.arr-filter-label{color:var(--text-dim);font-size:var(--fs-base);font-weight:600}.arr-select{padding:6px 10px;border-radius:6px;border:1px solid var(--border-secondary);background:var(--bg-input);color:var(--text-primary);font-size:var(--fs-base);font-weight:700;outline:none;cursor:pointer}.arr-table-scroll{overflow-x:auto}.arr-table{width:100%;border-collapse:collapse;text-align:left;font-size:var(--fs-md)}.arr-thead{background:var(--bg-app);color:var(--text-muted);border-bottom:1px solid var(--border-secondary)}.arr-th{padding:12px 16px;font-weight:800;text-transform:uppercase;letter-spacing:1px;font-size:var(--fs-xs)}.arr-th-sr{width:72px}.arr-tr{border-bottom:1px solid var(--border-primary);transition:background .2s;cursor:pointer}.arr-tr:hover{background:var(--border-subtle)}.arr-td-sr{padding:14px 16px;color:var(--text-dim);font-weight:700;white-space:nowrap}.arr-td-type{padding:14px 16px;font-weight:700}.arr-td-time{padding:14px 16px;color:var(--text-secondary)}.arr-td-desc{padding:14px 16px;color:var(--text-dim)}.arr-td-empty{padding:16px;color:var(--text-dim);text-align:center}.arr-pagination{margin-top:16px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px}.arr-page-controls{display:flex;align-items:center;gap:8px}.arr-page-label{color:var(--text-dim);font-size:var(--fs-base);font-weight:600}.arr-page-btn{padding:6px 12px;border-radius:6px;border:1px solid var(--border-secondary);background:var(--bg-card-alt);color:var(--text-primary);cursor:pointer;font-weight:700;font-size:var(--fs-base);transition:background .2s}.arr-page-btn:hover{background:var(--border-primary)}.arr-page-btn-disabled{padding:6px 12px;border-radius:6px;border:1px solid var(--border-primary);background:var(--bg-app);color:var(--text-muted);cursor:not-allowed;font-weight:700;font-size:var(--fs-base)}.arr-page-info{color:var(--text-dim);font-size:var(--fs-base);font-weight:600}.ecg-legend{position:absolute;top:15px;right:15px;background:#ebf0f6;border:1px solid var(--border-primary);border-radius:6px;padding:10px 14px;box-shadow:0 4px 6px #0000000d;z-index:10;display:flex;flex-direction:column;gap:8px;min-width:130px;max-width:calc(100% - 30px);max-height:calc(100% - 30px);box-sizing:border-box;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-gutter:stable}.ecg-legend-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:4px;margin-bottom:2px}.ecg-legend-title{font-size:var(--fs-xs);font-weight:700;color:var(--text-primary);text-transform:uppercase;letter-spacing:.5px}.ecg-legend-minimize-btn{background:transparent;border:none;color:var(--text-muted);cursor:pointer;font-size:16px;line-height:1;padding:0 4px;font-weight:700}.ecg-legend-item{display:flex;align-items:center;gap:8px}.ecg-legend-label{font-size:var(--fs-base);color:var(--text-primary);font-weight:600}.ecg-legend-minimized-btn{position:absolute;top:15px;right:15px;background:#ebf0f6;border:1px solid var(--border-primary);border-radius:20px;padding:6px 12px;font-size:var(--fs-sm);font-weight:700;color:var(--text-primary);cursor:pointer;z-index:10;box-shadow:0 2px 4px #0000000d;display:flex;align-items:center;gap:6px;transition:all .2s ease}.cr-report{margin-top:var(--sp-lg);background:var(--bg-app);padding:var(--sp-xl);border-radius:16px;border:1px solid var(--border-primary)}.cr-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--sp-xl)}.cr-title{font-size:var(--fs-2xl);font-weight:800;color:var(--text-primary)}.cr-subtitle{font-size:var(--fs-md);color:var(--text-secondary);margin-top:4px}.cr-header-actions{display:flex;gap:12px;align-items:center}.cr-badge{font-size:var(--fs-sm);font-weight:700;background:var(--bg-card-alt);color:var(--text-dim);padding:6px 12px;border-radius:20px;border:1px solid var(--border-secondary)}.cr-download-btn{background:#3b82f6;color:#fff;border:none;border-radius:8px;padding:clamp(8px,.6vw,12px) clamp(14px,1.2vw,22px);font-weight:800;font-size:var(--fs-md);cursor:pointer;box-shadow:0 4px 14px #3b82f666}.cr-section{margin-bottom:32px}.cr-section-header{font-size:var(--fs-base);font-weight:800;letter-spacing:.15em;color:var(--text-secondary);margin-bottom:16px;text-transform:uppercase;display:flex;align-items:center;gap:10px}.cr-section-divider{flex:1;height:1px;background:var(--border-secondary)}.cr-section-cards{display:flex;flex-wrap:wrap;gap:16px}.cr-metric-card{flex:1 1 220px;background:#fff;border-radius:12px;padding:18px;border:1px solid var(--border-secondary);box-shadow:0 2px 8px #0000000a;cursor:default;transition:all .2s ease;position:relative;overflow:hidden}.cr-metric-card:hover{box-shadow:0 4px 12px #00000014}.cr-metric-accent{position:absolute;left:0;top:0;bottom:0;width:5px}.cr-metric-title{font-size:var(--fs-sm);color:var(--text-dim);font-weight:700;text-transform:uppercase;letter-spacing:.5px}.cr-metric-value-row{margin-top:10px;display:flex;align-items:baseline}.cr-metric-value{font-size:clamp(22px,1.7vw,32px);font-weight:800;color:var(--text-primary)}.cr-metric-unit{margin-left:6px;font-size:var(--fs-md);color:var(--text-muted);font-weight:600}.cr-metric-subtitle{margin-top:8px;font-size:var(--fs-base);color:#3b82f6;font-weight:600}.cr-time-list{flex:1 1 320px;background:#fff;border-radius:12px;padding:16px;border:1px solid var(--border-secondary)}.cr-time-list-title{font-size:var(--fs-base);font-weight:800;margin-bottom:12px;text-transform:uppercase}.cr-time-list-items{display:flex;flex-wrap:wrap;gap:8px}.cr-time-btn{background:var(--bg-app);border-radius:999px;padding:6px 10px;font-size:var(--fs-base);cursor:pointer;color:var(--text-primary)}.cr-time-empty{color:var(--text-dim);font-size:var(--fs-base)}.ecg-content-card{background:var(--bg-app);border-radius:12px;padding:24px}.ecg-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;background:var(--bg-toolbar);padding:12px;border-radius:8px;margin-bottom:15px}.ecg-playback-bar{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:center;background:var(--bg-elevated);border:1px solid var(--border-primary);padding:12px 20px;border-radius:8px;margin-bottom:15px;box-shadow:0 2px 4px #0000000a}.ecg-control-btn{background:#ebf0f6e6;color:var(--text-primary);border:1px solid var(--border-secondary);border-radius:20px;padding:clamp(4px,1vw,6px) clamp(8px,2vw,12px);font-size:clamp(10px,1vw,12px);font-weight:600;cursor:pointer;margin:0 4px;box-shadow:0 1px 2px #0000000f;transition:all .2s ease}.ecg-control-btn:hover{background:var(--border-primary)}.ecg-select-input{padding:6px 10px;border-radius:20px;border:none;background:#ebf0f6;color:var(--text-primary);font-size:var(--fs-base);font-weight:700;cursor:pointer;outline:none}.ecg-text-input{padding:6px 10px;border-radius:20px;border:none;background:#ebf0f6;color:var(--text-primary);font-size:var(--fs-base);font-weight:700;outline:none}.ecg-section-divider{display:flex;align-items:center;gap:12px;margin-bottom:16px;margin-top:8px}.ecg-section-divider-label{font-size:var(--fs-sm);font-weight:700;color:var(--text-muted);letter-spacing:1.5px;text-transform:uppercase}.ecg-section-divider-line{flex:1;height:1px;background:var(--border-primary)}.ecg-file-badge{font-size:var(--fs-md);color:var(--text-primary);font-weight:700;background:#ebf0f6;padding:4px 10px;border-radius:12px}.ecg-empty-title{margin-top:12px;font-size:var(--fs-xl);font-weight:600;color:var(--text-primary)}.ecg-empty-subtitle{font-size:var(--fs-md);opacity:.6;margin-top:4px;color:var(--text-muted)}.u-legend .u-label{color:#475569!important}.u-legend .u-value{color:#0f172a!important;font-weight:700}.u-legend .u-marker{border-color:#0f172a!important}@media(min-width:1600px){.ecg-sidebar{padding:24px 16px 20px}.arr-wrap{border-radius:16px}.cr-report{border-radius:20px}.cr-metric-card{flex:1 1 260px;padding:22px}.hrv-metric-row{padding:12px 0}.hrv-card-header{padding:16px 20px}.hrv-card-body{padding:6px 20px}.arr-th{padding:14px 18px}.arr-td-sr,.arr-td-type,.arr-td-time,.arr-td-desc{padding:16px 18px}}@media(min-width:1920px){.ecg-sidebar{padding:28px 20px 24px}.arr-wrap{border-radius:18px}.cr-metric-card{flex:1 1 300px;padding:26px}.arr-th{padding:16px 20px}.arr-td-sr,.arr-td-type,.arr-td-time,.arr-td-desc{padding:18px 20px}}.uplot,.uplot *,.uplot *:before,.uplot *:after{box-sizing:border-box}.uplot{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";line-height:1.5;width:min-content}.u-title{text-align:center;font-size:18px;font-weight:700}.u-wrap{position:relative;-webkit-user-select:none;user-select:none}.u-over,.u-under{position:absolute}.u-under{overflow:hidden}.uplot canvas{display:block;position:relative;width:100%;height:100%}.u-axis{position:absolute}.u-legend{font-size:14px;margin:auto;text-align:center}.u-inline{display:block}.u-inline *{display:inline-block}.u-inline tr{margin-right:16px}.u-legend th{font-weight:600}.u-legend th>*{vertical-align:middle;display:inline-block}.u-legend .u-marker{width:1em;height:1em;margin-right:4px;background-clip:padding-box!important}.u-inline.u-live th:after{content:":";vertical-align:middle}.u-inline:not(.u-live) .u-value{display:none}.u-series>*{padding:4px}.u-series th{cursor:pointer}.u-legend .u-off>*{opacity:.3}.u-select{background:#00000012;position:absolute;pointer-events:none}.u-cursor-x,.u-cursor-y{position:absolute;left:0;top:0;pointer-events:none;will-change:transform}.u-hz .u-cursor-x,.u-vt .u-cursor-y{height:100%;border-right:1px dashed #607D8B}.u-hz .u-cursor-y,.u-vt .u-cursor-x{width:100%;border-bottom:1px dashed #607D8B}.u-cursor-pt{position:absolute;top:0;left:0;border-radius:50%;border:0 solid;pointer-events:none;will-change:transform;background-clip:padding-box!important}.u-axis.u-off,.u-select.u-off,.u-cursor-x.u-off,.u-cursor-y.u-off,.u-cursor-pt.u-off{display:none}
