#soh-chart-analyzer{
max-width:920px;
margin:0 auto;
padding:24px;
background:#f7f7f7;
border-radius:10px;
}

#soh-chart-analyzer button{
padding:10px 14px;
background:#0073aa;
color:#fff;
border:0;
border-radius:6px;
cursor:pointer;
}

#soh-chart-analyzer button[disabled]{
opacity:.5;
cursor:not-allowed;
}

.soh-upload-wrap{
display:flex;
gap:10px;
margin-bottom:10px;
}

.soh-status{
background:#fff;
padding:10px;
margin-bottom:15px;
border-left:4px solid #0073aa;
}

.soh-chart-wrap{
position:relative;
display:inline-block;
}

#soh-chart-img{
max-width:100%;
display:block;
border:1px solid #ccc;
}

#soh-overlay{
position:absolute;
left:0;
top:0;
width:100%;
height:100%;
pointer-events:none;
}

.soh-support{
stroke:#00aa55;
stroke-width:2;
}

.soh-resistance{
stroke:#ff8800;
stroke-width:2;
}

.soh-breakout{
stroke:#0066ff;
stroke-width:2;
stroke-dasharray:4 4;
}

.soh-pattern{
fill:#ff0000;
font-size:14px;
font-weight:bold;
}

.soh-report{
background:#fff;
padding:15px;
border-radius:8px;
margin-top:15px;
}

.soh-report h3{
margin-top:0;
}