:root{color:#1e293b;background:#f6f7f4;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,textarea,select{font:inherit}.app-shell{width:min(1120px,calc(100% - 32px));margin:0 auto;padding:64px 0}.hero{margin-bottom:40px}.hero h1{max-width:760px;margin:0;color:#111827;font-size:clamp(2.5rem,6vw,5rem);line-height:.98;letter-spacing:0}.hero p{max-width:680px;margin:18px 0 0;color:#475569;font-size:1.125rem;line-height:1.7}.load-panel,.analysis-panel,.effect-panel,.export-panel{display:grid;gap:18px;margin-bottom:16px;padding:24px;border:1px solid #d8ded5;border-radius:8px;background:#fff;box-shadow:0 16px 40px #1e293b14}.panel-heading h2{margin:0;color:#172033;font-size:1.25rem;line-height:1.3;letter-spacing:0}.panel-heading p{margin:8px 0 0;color:#64748b;line-height:1.6}.panel-heading h3{margin:12px 0 0;color:#0f766e;font-size:1rem;line-height:1.3;letter-spacing:0}.file-input{width:100%;padding:12px;border:1px solid #cbd5c3;border-radius:8px;color:#334155;background:#f8faf7}.file-input::file-selector-button{margin-right:12px;padding:8px 12px;border:0;border-radius:6px;color:#fff;background:#0f766e;font-weight:700;cursor:pointer}.button-row{display:flex;flex-wrap:wrap;gap:10px}.button-row button{min-width:88px;padding:10px 14px;border:1px solid #0f766e;border-radius:8px;color:#fff;background:#0f766e;font-weight:700;cursor:pointer}.button-row button:disabled{border-color:#cbd5e1;color:#64748b;background:#e2e8f0;cursor:not-allowed}.download-link{display:inline-flex;align-items:center;min-height:42px;padding:10px 14px;border:1px solid #0f766e;border-radius:8px;color:#0f766e;background:#ecfdf5;font-weight:700;text-decoration:none}.download-link[hidden]{display:none}.slider-row{display:grid;gap:10px;color:#334155;font-weight:700}.slider-row input{width:100%;accent-color:#0f766e}.message{margin:0;color:#52606f;line-height:1.6}.message-success{color:#0f766e;font-weight:700}.message-error{color:#b42318;font-weight:700}.metadata-grid{display:grid;grid-template-columns:minmax(132px,max-content) 1fr;gap:10px 20px;margin:0;padding-top:4px}.metadata-grid dt{color:#52606f;font-weight:700}.metadata-grid dd{min-width:0;margin:0;color:#172033;overflow-wrap:anywhere}.filename-preview{margin:0;color:#334155;font-weight:700;overflow-wrap:anywhere}.export-panel>h3{margin:8px 0 0;color:#172033;font-size:1rem;line-height:1.3;letter-spacing:0}.debug-export-row{display:grid;grid-template-columns:minmax(160px,.8fr) minmax(220px,1fr) auto;gap:12px;align-items:center;padding:14px;border:1px solid #e2e8f0;border-radius:8px;background:#f8faf7}.debug-export-row h4,.debug-stats{margin:0}.debug-export-row h4{color:#172033;font-size:.95rem;line-height:1.3}.debug-stats{color:#52606f;line-height:1.5}.analysis-summary{padding-top:0}.analysis-panel h3{margin:4px 0 0;color:#172033;font-size:1rem;line-height:1.3;letter-spacing:0}.peak-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 18px;margin:0;padding-left:20px;color:#172033}.peak-list li{padding-left:4px;font-weight:700}.spectrum-canvas{width:100%;height:220px;border:1px solid #d8ded5;border-radius:8px;background:#f8faf7}.workflow{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:24px}.workflow-card,.status-panel{border:1px solid #d8ded5;border-radius:8px;background:#fff;box-shadow:0 16px 40px #1e293b14}.workflow-card{min-height:168px;padding:20px}.workflow-card h2,.status-panel h2{margin:0;color:#172033;font-size:1rem;line-height:1.3;letter-spacing:0}.workflow-card p{margin:12px 0 0;color:#64748b;line-height:1.6}.status-panel{padding:24px}.status-panel dl{display:grid;grid-template-columns:minmax(120px,max-content) 1fr;gap:12px 24px;margin:20px 0 0}.status-panel dt{color:#52606f;font-weight:700}.status-panel dd{margin:0;color:#0f766e;font-weight:700}@media(max-width:820px){.app-shell{padding:40px 0}.workflow,.peak-list{grid-template-columns:repeat(2,minmax(0,1fr))}.debug-export-row{grid-template-columns:1fr}}@media(max-width:560px){.workflow,.metadata-grid,.status-panel dl,.peak-list{grid-template-columns:1fr}}
