/* Text editor (admin) */
.rte { border: 1px solid #d0d7e2; border-radius: .6rem; background: #fff; overflow: hidden; }
.rte:focus-within { border-color: var(--primary-color, #0b5394); box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--primary-color, #0b5394) 18%, transparent); }
.rte-toolbar { display: flex; flex-wrap: wrap; gap: .35rem; padding: .4rem; background: #f7f9fc; border-bottom: 1px solid #e5e7eb; position: sticky; top: 0; z-index: 2; }
.rte-group { display: flex; gap: 2px; padding-right: .35rem; border-right: 1px solid #e2e8f0; align-items: center; }
.rte-group:last-child { border-right: 0; }
.rte-toolbar .btn { line-height: 1; padding: .35rem .5rem; }
.rte-toolbar .btn.active { background: #dbe7f5; color: #0b3d6e; }
.rte-format { width: auto; min-width: 120px; }
.rte-area { padding: 1rem 1.2rem; outline: none; overflow-y: auto; max-height: 70vh; }
.rte-area img { max-width: 100%; height: auto; cursor: pointer; }
.rte-area img:hover { outline: 2px dashed #93c5fd; }
.rte-area table { width: 100%; }
.rte-area table td, .rte-area table th { border: 1px solid #cbd5e1; padding: .35rem .5rem; min-width: 60px; }
.rte-source { border: 0; border-radius: 0; font-family: ui-monospace, Consolas, monospace; font-size: .82rem; resize: vertical; }
.rte-status { font-size: .72rem; color: #6b7280; padding: .25rem .6rem; border-top: 1px solid #eef1f5; text-align: right; }
.rte.is-fullscreen { position: fixed; inset: 0; z-index: 1060; border-radius: 0; display: flex; flex-direction: column; }
.rte.is-fullscreen .rte-area, .rte.is-fullscreen .rte-source { flex: 1; max-height: none; }

/* Tipografi konten (dipakai editor & halaman frontend) */
.content-body { line-height: 1.75; font-size: 1rem; }
.content-body h2 { font-size: 1.45rem; margin: 1.6rem 0 .75rem; }
.content-body h3 { font-size: 1.2rem; margin: 1.4rem 0 .6rem; }
.content-body h4 { font-size: 1.05rem; margin: 1.2rem 0 .5rem; }
.content-body img { max-width: 100%; height: auto; border-radius: .5rem; }
.content-body blockquote { border-left: 4px solid var(--primary-color, #0b5394); padding: .5rem 1rem; margin: 1rem 0;
    background: color-mix(in srgb, var(--primary-color, #0b5394) 6%, #fff); border-radius: 0 .5rem .5rem 0; }
.content-body figure { margin: 1.25rem 0; }
.content-body figcaption { font-size: .85rem; color: #6b7280; margin-top: .4rem; text-align: center; }
.content-body .align-left { float: left; margin: .25rem 1.25rem 1rem 0; max-width: 50%; }
.content-body .align-right { float: right; margin: .25rem 0 1rem 1.25rem; max-width: 50%; }
.content-body .align-center { display: block; margin-left: auto; margin-right: auto; text-align: center; }
.content-body table { width: 100%; border-collapse: collapse; margin: 1rem 0; display: block; overflow-x: auto; }
.content-body table th, .content-body table td { border: 1px solid #dee2e6; padding: .5rem .75rem; }
.content-body table th { background: #f3f6fa; }
.content-body pre { background: #0f172a; color: #e2e8f0; padding: 1rem; border-radius: .5rem; overflow-x: auto; }
.content-body::after { content: ""; display: block; clear: both; }
@media (max-width: 575.98px) {
    .content-body .align-left, .content-body .align-right { float: none; max-width: 100%; margin: 1rem 0; }
}
