body { background:#fff; color:#212529; }
.site-header { background:#fff; border-bottom:1px solid #e9ecef; position:sticky; top:0; z-index:1030; }
.brand { display:flex; align-items:center; gap:.75rem; }
.brand img { height:80px; width:auto; object-fit:contain; }
@media (min-width:768px){ .brand img{ height:100px; } }
.site-title { font-weight:700; letter-spacing:.3px; margin:0; font-size:1.35rem; }
.site-subtitle { margin:0; color:#6c757d; font-size:.95rem; }
.lang-switch .btn { padding:.25rem .6rem; border-radius:999px; }
.lang-switch .btn.active { background:#0d6efd; color:#fff; }
.tool-title { font-weight:700; }
.section-box { position:relative; padding:1rem; border-radius:10px; margin-bottom:1.5rem; box-shadow:0 1px 4px rgba(0,0,0,.08); background:#f8f9fa; }
.section-title { font-weight:700; font-size:1.15rem; margin-bottom:.9rem; padding-bottom:.45rem; border-bottom:3px solid #bfc0bd; }
.format-box { background:#fff; border:1px solid #dee2e6; border-radius:.75rem; padding:.9rem 1rem; }
.format-box code { display:block; white-space:pre-wrap; margin-top:.4rem; color:#0d6efd; }
.empty-state { text-align:center; color:#6c757d; padding:1rem; font-weight:600; }
.plot { width:100%; min-height:460px; }
@media (max-width:900px){ .plot{ min-height:320px; } }
.site-footer { background:#fff; border-top:1px solid #e9ecef; }
.badge-soft { background:#eef4ff; color:#0d6efd; }
.table td, .table th { white-space:nowrap; vertical-align:middle; }
.note-muted { color:#6c757d; }
