:root {
  --rf-ink: #14213d; --rf-paper: #f7f8fb; --rf-surface: #ffffff; --rf-accent: #0b6e4f;
  --rf-line: #e3e6ee; --rf-muted: #6b7280; --rf-sidebar-w: 240px;
  --bs-font-sans-serif: "Inter", system-ui, sans-serif;
}
body { background: var(--rf-paper); color: var(--rf-ink); }
.rf-shell { display: grid; grid-template-columns: var(--rf-sidebar-w) 1fr; min-height: 100vh; }
.rf-shell.is-sidebar-collapsed { --rf-sidebar-w: 64px; }
.rf-shell.is-sidebar-collapsed .rf-nav-label, .rf-shell.is-sidebar-collapsed .rf-brand span { display: none; }
.rf-sidebar { background: var(--rf-surface); border-right: 1px solid var(--rf-line); display: flex; flex-direction: column; padding: 16px 12px; position: sticky; top: 0; height: 100vh; }
.rf-sidebar-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 20px; }
.rf-brand { font-weight: 700; text-decoration: none; color: var(--rf-ink); font-size: 1.1rem; }
.rf-brand span { color: var(--rf-accent); }
.rf-sidebar-toggle { border: 0; background: transparent; color: var(--rf-muted); }
.rf-nav { display: flex; flex-direction: column; gap: 4px; flex: 1; }
.rf-nav-item { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 8px; color: var(--rf-ink); text-decoration: none; }
.rf-nav-item:hover { background: var(--rf-paper); }
.rf-nav-item.is-active { background: var(--rf-accent); color: #fff; }
.rf-sidebar-foot { border-top: 1px solid var(--rf-line); padding-top: 12px; display: flex; flex-direction: column; gap: 6px; }
.rf-lang a { margin-right: 8px; text-decoration: none; color: var(--rf-muted); font-size: .85rem; }
.rf-lang a.is-active { color: var(--rf-accent); font-weight: 600; }
.rf-main { display: flex; flex-direction: column; min-width: 0; }
.rf-topbar { display: flex; align-items: center; justify-content: space-between; padding: 16px 24px; background: var(--rf-surface); border-bottom: 1px solid var(--rf-line); }
.rf-page-title { font-size: 1.25rem; margin: 0; font-weight: 600; }
.rf-content { padding: 24px; }
.htmx-indicator { display: none; }
.htmx-request .htmx-indicator, .htmx-request.htmx-indicator { display: inline-block; }
