.wave-stage{position:fixed;inset:0;z-index:950;display:none;flex-direction:column;background:#fff;overflow:hidden;padding-bottom:env(safe-area-inset-bottom);touch-action:manipulation;}
.wave-stage.show{display:flex;}
.wave-stage [hidden]{display:none!important;}
.wave-header{display:flex;align-items:center;gap:16px;min-height:60px;padding:10px 24px;border-bottom:1px solid var(--line);background:#fff;flex-shrink:0;}
.wave-back{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink-2);font-size:13px;font-family:inherit;letter-spacing:.04em;cursor:pointer;transition:all .2s;flex-shrink:0;}
.wave-back:hover{border-color:rgba(0,0,0,.2);color:var(--ink);}
.wave-title-wrap{min-width:0;}
.wave-title{font-size:16px;font-weight:700;color:var(--ink);letter-spacing:.04em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.wave-meta{margin-top:2px;font-size:11.5px;color:var(--ink-3);letter-spacing:.03em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.wave-header-tools{margin-left:auto;display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end;}
.wave-sequence{display:flex;gap:4px;align-items:center;flex-shrink:0;}
.wave-seq{width:27px;height:24px;border-radius:5px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:12px;font-weight:700;}
.wave-seq.down{background:#F59E0B;}
.wave-seq.up{background:#2563EB;}
.wave-seq.active{outline:2px solid #0F172A;outline-offset:2px;}
.wave-btn{padding:8px 14px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink-2);font-size:12.5px;font-family:inherit;letter-spacing:.04em;cursor:pointer;transition:all .2s;white-space:nowrap;}
.wave-btn:hover:not(:disabled){border-color:rgba(0,0,0,.2);color:var(--ink);}
.wave-btn:disabled{opacity:.42;cursor:not-allowed;}
.wave-btn.primary{border-color:#2563EB;background:#2563EB;color:#fff;font-weight:700;box-shadow:0 4px 14px rgba(37,99,235,.24);}
.wave-btn.primary:hover:not(:disabled){background:#1D4ED8;border-color:#1D4ED8;color:#fff;}
.wave-btn.continue{border-color:#F59E0B;background:linear-gradient(135deg,#F59E0B,#FBBF24);color:#fff;font-weight:700;box-shadow:0 4px 14px rgba(245,158,11,.26);}
.wave-main{flex:1;min-height:0;display:flex;flex-direction:column;padding:12px 16px 10px;gap:10px;}
.wave-chart-card{position:relative;flex:1;min-height:320px;border:1px solid var(--line);border-radius:10px;background:#fff;box-shadow:0 5px 18px rgba(15,23,42,.04);padding:8px 8px 2px;}
.wave-legend{display:flex;gap:10px 14px;align-items:center;flex-wrap:wrap;padding:2px 7px 6px;font-size:11px;color:var(--ink-3);letter-spacing:.02em;}
.wave-legend i{display:inline-block;width:15px;height:3px;border-radius:2px;margin-right:4px;vertical-align:middle;}
.wave-legend i.dashed{height:0;background:transparent;border-top:2px dashed #64748B;}
.wave-chart-wrap{position:relative;width:100%;height:calc(100% - 25px);min-height:300px;overflow:hidden;}
.wave-chart{width:100%;height:100%;}
.wave-chart-tip{position:absolute;z-index:20;display:none;max-width:min(210px,calc(100vw - 28px));padding:6px 9px;border:1px solid rgba(15,23,42,.14);border-radius:6px;background:rgba(15,23,42,.9);color:#fff;font-size:11.5px;line-height:1.45;letter-spacing:.02em;pointer-events:none;box-shadow:0 6px 18px rgba(15,23,42,.18);}
.wave-bottom{flex-shrink:0;display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:10px;}
.wave-panel{border:1px solid var(--line);border-radius:10px;background:#fff;padding:12px 14px;min-width:0;}
.wave-panel.status{border-color:#BFDBFE;background:#EFF6FF;}
.wave-panel-title{font-size:13px;font-weight:700;color:#1E40AF;letter-spacing:.05em;margin-bottom:7px;}
.wave-step{font-size:12.5px;color:#334155;line-height:1.6;}
.wave-step b{color:#2563EB;}
.wave-help{margin-top:6px;font-size:11.5px;color:var(--ink-3);line-height:1.6;}
.wave-result{font-size:12.5px;line-height:1.65;color:#334155;white-space:pre-line;}
.wave-result.good{color:#047857;font-weight:700;}
.wave-result.bad{color:#B91C1C;}
.wave-view-switch{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px;}
.wave-view-switch button{padding:6px 10px;border:1px solid rgba(37,99,235,.28);border-radius:7px;background:#fff;color:#334155;font-size:11.5px;font-family:inherit;cursor:pointer;transition:all .2s;}
.wave-view-switch button.active{border-color:#2563EB;color:#2563EB;background:#fff;font-weight:700;}
.wave-answer-note{display:none;margin-top:9px;padding:9px 10px;border-left:3px solid #D97706;border-radius:6px;background:#FFFBEB;color:#92400E;font-size:11.8px;line-height:1.65;}
.wave-answer-note.show{display:block;}
@media (max-width:1000px){
.wave-header{align-items:flex-start;flex-wrap:wrap;padding:10px 14px;gap:10px 12px;}
.wave-header-tools{margin-left:0;width:100%;justify-content:flex-start;}
.wave-title{white-space:normal;}
.wave-main{padding:10px 12px;overflow-y:auto;}
.wave-chart-card{min-height:430px;flex:0 0 auto;}
.wave-chart-wrap{height:400px;min-height:400px;}
.wave-bottom{grid-template-columns:1fr;}
}
@media (max-width:640px){
.wave-header-tools{gap:6px;}
.wave-title{font-size:14.5px;}
.wave-meta,.wave-help{font-size:11px;}
.wave-sequence{order:3;width:100%;}
.wave-btn{padding:7px 10px;font-size:11.8px;}
.wave-chart-card{padding:6px;}
.wave-chart-wrap{height:330px;min-height:330px;}
.wave-legend{gap:7px 9px;font-size:10.5px;}
.wave-panel{padding:10px 11px;}
.wave-result,.wave-step{font-size:12px;}
}
@media (max-width:920px) and (max-height:560px){
.wave-header{min-height:48px;padding:6px 10px;gap:8px 10px;}
.wave-back{min-height:38px;padding:6px 10px;font-size:12px;}
.wave-title{font-size:13.5px;}
.wave-meta{font-size:10.5px;}
.wave-btn{min-height:38px;padding:6px 9px;font-size:11.5px;}
.wave-seq{width:100%;order:0;}
.wave-seq .wave-seq{width:24px;height:21px;}
.wave-main{padding:8px 10px calc(8px + env(safe-area-inset-bottom));gap:7px;overflow-y:auto;}
.wave-chart-card{flex:0 0 54%;min-height:185px;padding:5px 5px 1px;}
.wave-chart-wrap{height:calc(100% - 22px);min-height:165px;}
.wave-legend{gap:5px 8px;font-size:10px;padding:2px 4px 4px;}
.wave-bottom{grid-template-columns:1fr 1fr;gap:7px;}
.wave-panel{padding:8px 9px;}
.wave-panel-title{font-size:11.5px;margin-bottom:4px;}
.wave-step,.wave-result,.wave-help,.wave-answer-note{font-size:10.8px;line-height:1.45;}
.wave-answer-note.show{margin-top:5px;padding:6px 7px;}
}
/* ===== 手机端触摸适配 ===== */
/* 拖动松手后的「确定」按钮 */
.wave-touch-confirm{position:fixed;z-index:970;display:none;align-items:center;justify-content:center;min-width:96px;min-height:46px;padding:10px 20px;border:none;border-radius:999px;background:#2563EB;color:#fff;font-size:14.5px;font-weight:700;letter-spacing:.1em;font-family:inherit;box-shadow:0 8px 22px rgba(37,99,235,.42);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:rgba(37,99,235,.2);}
.wave-touch-confirm.show{display:inline-flex;}
.wave-touch-confirm:active{transform:scale(.95);}
/* 竖屏提醒泡泡 */
.wave-rotate-tip{position:fixed;left:50%;bottom:calc(18px + env(safe-area-inset-bottom));transform:translateX(-50%);padding:10px 18px;border-radius:999px;background:rgba(15,23,42,.92);color:#fff;font-size:13px;letter-spacing:.04em;white-space:nowrap;opacity:0;transition:opacity .35s;pointer-events:none;z-index:960;max-width:calc(100vw - 32px);}
.wave-rotate-tip.show{opacity:1;}
/* 提交判定后的顶部提示（手机竖屏：判定结果在下方，不滚动看不到） */
.wave-result-toast{position:fixed;left:50%;top:70px;transform:translateX(-50%);z-index:975;max-width:calc(100vw - 24px);padding:11px 18px;border-radius:999px;background:rgba(15,23,42,.94);color:#fff;font-size:13.5px;font-weight:600;letter-spacing:.04em;white-space:nowrap;opacity:0;transition:opacity .3s;pointer-events:none;}
.wave-result-toast.pass{background:rgba(4,120,87,.95);}
.wave-result-toast.show{opacity:1;}
