.sfc-tool{margin-bottom:2rem;}
.sfc-card{background:#fff;border-radius:12px;border:1px solid var(--border,#e2e8f0);box-shadow:0 1px 3px rgba(0,0,0,.06);overflow:hidden;}
.sfc-card-inner{display:flex;flex-direction:column;}
.sfc-panel-left{flex:0 0 auto;padding:1rem;}
.sfc-panel-right{flex:1 1 auto;min-width:0;padding:1rem;background:var(--surface-muted,#f8fafc);}
.sfc-canvas-wrap{width:100%;overflow:hidden;border-radius:8px;background:#fff;border:1px solid var(--border,#e2e8f0);}
.sfc-canvas-inner{position:relative;width:100%;display:flex;justify-content:center;align-items:center;min-height:280px;}
#curveCanvas{display:block;max-width:100%;height:auto;cursor:crosshair;}
.throbber-loader{display:none;position:absolute;inset:0;margin:auto;width:32px;height:32px;border:3px solid var(--border,#e2e8f0);border-top-color:var(--primary,#6366f1);border-radius:50%;animation:sfc-spin .8s linear infinite;}
@keyframes sfc-spin{to{transform:rotate(360deg);}}
.sfc-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;}
.sfc-btn{padding:.5rem 1rem;font-size:.875rem;font-weight:500;border-radius:8px;border:none;cursor:pointer;transition:background .2s,color .2s;}
.sfc-btn-primary{background:var(--primary,#6366f1);color:#fff;}
.sfc-btn-primary:hover{background:var(--primary-dark,#4f46e5);}
.sfc-btn-secondary{background:var(--surface-muted,#f1f5f9);color:var(--text-main,#1e293b);border:1px solid var(--border,#e2e8f0);}
.sfc-btn-secondary:hover{background:var(--border,#e2e8f0);}
.sfc-options-inner{display:grid;gap:.75rem;grid-template-columns:1fr;margin-bottom:1rem;}
.sfc-field{display:flex;flex-direction:column;gap:.25rem;}
.sfc-field-row{flex-direction:row;align-items:center;}
.sfc-field label{font-size:.8125rem;font-weight:500;color:var(--text-muted,#64748b);}
.sfc-value-inline{font-weight:600;color:var(--text-main,#1e293b);}
.sfc-input{width:100%;padding:.5rem .75rem;font-size:.875rem;border:1px solid var(--border,#e2e8f0);border-radius:8px;background:#fff;}
.sfc-range{width:100%;height:6px;accent-color:var(--primary,#6366f1);}
.sfc-check-wrap{display:inline-flex;align-items:center;gap:.5rem;font-weight:400;cursor:pointer;}
.sfc-check-wrap input{width:1rem;height:1rem;}
.sfc-stats{display:flex;flex-wrap:wrap;gap:1rem .5rem;padding:.75rem 0;font-size:.8125rem;color:var(--text-muted,#64748b);border-top:1px solid var(--border,#e2e8f0);}
.sfc-stat strong{margin-right:.25rem;}
.sfc-description{margin:0;font-size:.8125rem;color:var(--text-muted,#64748b);line-height:1.5;}
.sfc-playback{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem 0;border-top:1px solid var(--border,#e2e8f0);}
.sfc-panel-right .sfc-playback{margin-top:.75rem;}
.sfc-playback-group,.sfc-zoom-group{display:flex;align-items:center;gap:.5rem;}
.sfc-icon-btn{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;padding:0;font-size:1rem;border:1px solid var(--border,#e2e8f0);border-radius:8px;background:#fff;cursor:pointer;transition:background .2s;}
.sfc-icon-btn:hover{background:var(--surface-muted,#f1f5f9);}
.sfc-progress{font-size:.8125rem;color:var(--text-muted,#64748b);min-width:4ch;}
@media (min-width:768px){.sfc-card-inner{flex-direction:row;}.sfc-panel-left{flex:0 0 320px;width:320px;padding:1.25rem;border-right:1px solid var(--border,#e2e8f0);}.sfc-panel-right{flex:1 1 0;min-width:0;padding:1.25rem;}.sfc-options-inner{grid-template-columns:1fr;}}
@media (min-width:992px){.sfc-panel-left{flex:0 0 360px;width:360px;}.sfc-panel-right{flex:1 1 0;}}
@media (min-width:480px){.sfc-options-inner{grid-template-columns:repeat(2,1fr);}}
@media (min-width:768px) and (max-width:991px){.sfc-options-inner{grid-template-columns:1fr;}}
