/* MOL-GOD Inline Spectrum Viewer v2.0 */
.inline-spectrum-viewer { background:#fff; border:1px solid #e5e7eb; border-radius:8px; padding:20px; margin:20px 0; }
.spectrum-loading { display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:300px; color:#6b7280; }
.spectrum-loading .spinner { width:40px; height:40px; border:4px solid #e5e7eb; border-top-color:#2563eb; border-radius:50%; animation:molgod-spin 1s linear infinite; margin-bottom:16px; }
@keyframes molgod-spin { to { transform:rotate(360deg); } }
.spectrum-error { text-align:center; padding:40px 20px; color:#dc2626; }
.spectrum-error .error-icon { font-size:48px; margin-bottom:16px; }
.spectrum-container { display:flex; flex-direction:column; gap:16px; }
.spectrum-header { display:flex; justify-content:space-between; align-items:center; padding-bottom:12px; border-bottom:2px solid #e5e7eb; gap:12px; }
.spectrum-header h4 { margin:0; font-size:18px; font-weight:600; }
.spectrum-source { font-size:12px; color:#64748b; }
.spectrum-source a { color:#2563eb; text-decoration:none; }
.spectrum-source a:hover { text-decoration:underline; }
.spectrum-canvas-wrapper { position:relative; height:400px; background:#f9fafb; border-radius:4px; padding:16px; }
.spectrum-canvas-wrapper canvas { width:100% !important; height:100% !important; }
.spectrum-meta { display:flex; gap:24px; flex-wrap:wrap; font-size:14px; padding:8px 12px; background:#f9fafb; border-radius:4px; }
.spectrum-meta .meta-item strong { color:#1f2937; }
.spectrum-downloads { display:flex; gap:12px; flex-wrap:wrap; }
.btn-download { padding:8px 16px; background:#2563eb; color:#fff; border:none; border-radius:6px; font-size:14px; cursor:pointer; text-decoration:none; display:inline-block; transition:background .15s; }
.btn-download:hover { background:#1d4ed8; color:#fff; }
.spectrum-attribution details { border:1px solid #e5e7eb; border-radius:6px; padding:12px; background:#f9fafb; }
.spectrum-attribution summary { cursor:pointer; font-weight:500; color:#374151; }
.attribution-content { margin-top:12px; padding-top:12px; border-top:1px solid #e5e7eb; font-size:13px; }
.attribution-content p { margin:6px 0; }
.attribution-content a { color:#2563eb; }
.spectrum-placeholder { padding:30px; background:#fef3c7; border-radius:6px; text-align:center; color:#78350f; }
.spectrum-placeholder p { margin:0 0 12px; }

@media (max-width:768px) {
    .spectrum-header { flex-direction:column; align-items:flex-start; }
    .spectrum-canvas-wrapper { height:300px; }
    .spectrum-meta { gap:10px; font-size:12px; }
}
@media print {
    .spectrum-downloads, .spectrum-attribution { display:none !important; }
    .inline-spectrum-viewer { page-break-inside:avoid; }
}
