.fw-layout {
  --rail-width: 232px;
  --rail-bg: var(--vs-brand-navy, #182941);
  --rail-line: #42526a;
  --rail-text: #f5f7fa;
  display: grid;
  grid-template-columns: var(--rail-width) minmax(0, 1fr);
  min-height: 100dvh;
  background: white;
  font-family: var(--font, Raleway, "Segoe UI", sans-serif);
}
.fw-rail { position: sticky; top: 0; height: 100dvh; }
.fw-rail-content { display: flex; flex-direction: column; height: 100%; overflow-y: auto; background: var(--rail-bg); color: var(--rail-text); }
.fw-brand, .fw-header { display: flex; align-items: center; min-height: 72px; box-sizing: border-box; border-bottom: 1px solid var(--rule, #dce1e6); background: white; }
.fw-brand { flex: none; padding: 0 19px; border-right: 1px solid var(--rule, #dce1e6); justify-content: space-between; }
.fw-brand a { display: flex; align-items: center; gap: 12px; text-decoration: none; color: var(--ink, #0f131c); font-weight: 650; }
.fw-brand img { display: block; width: 98px; height: auto; }
.fw-brand span { padding-left: 12px; border-left: 1px solid var(--rule-strong, #a6b1bd); font-size: 12px; white-space: nowrap; }
.fw-nav { display: grid; gap: 3px; padding: 5px 14px 18px; }
.fw-nav p { margin: 23px 12px 6px; color: #bdc9d9; font-size: 11px; font-weight: 650; letter-spacing: .07em; text-transform: uppercase; }
.fw-nav a { display: flex; align-items: center; gap: 13px; padding: 11px 12px; border-radius: 7px; color: var(--rail-text); text-decoration: none; font-size: 14px; font-weight: 600; }
.fw-nav svg, .fw-header svg { width: 19px; height: 19px; flex-shrink: 0; fill: none; stroke: currentColor; stroke-width: 1.65; stroke-linecap: round; stroke-linejoin: round; }
.fw-nav a:hover, .fw-nav a:focus-visible { background: #33465f; }
.fw-nav a[aria-current=page] { color: var(--rail-bg); background: #eef2f7; box-shadow: inset 3px 0 var(--vs-brand-ochre, #bc8337); }
.fw-nav-end { margin-top: 16px; border-top: 1px solid var(--rail-line); padding-top: 16px; }
.fw-user { margin: auto 19px 0; padding: 19px 6px 24px; border-top: 1px solid var(--rail-line); overflow-wrap: anywhere; font-size: 13px; }
.fw-user small { display: block; margin: 3px 0 10px; color: #c5d0df; font-size: 12px; }
.fw-user div { display: flex; gap: 15px; align-items: center; }
.fw-user a, .fw-user button { color: var(--rail-text); background: transparent; border: 0; border-radius: 0; padding: 5px 0; font: inherit; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.fw-user a[aria-current] { font-weight: 700; }
.fw-body { min-width: 0; }
.fw-header { padding: 0 clamp(20px, 3.5vw, 54px); gap: 18px; }
.fw-institution { display: flex; align-items: center; gap: 10px; color: var(--action, #1e365a); font-size: 14px; font-weight: 650; min-width: 0; overflow-wrap: anywhere; }
.fw-institution select { width: auto; max-width: 100%; margin: 0; }
.fw-main { box-sizing: border-box; width: 100%; max-width: 1360px; margin: 0 auto; padding: 36px clamp(20px, 3.5vw, 54px) 48px; min-width: 0; }
.fw-main .page-intro { padding-top: 0; }
.fw-menu, .fw-close, .fw-layout dialog:not([open]) { display: none; }
@media (min-width: 801px) and (max-width: 1100px) {
  .fw-layout { --rail-width: 205px; }
  .fw-main .workspace-grid { grid-template-columns: 1fr; }
}
@media (max-width: 800px) {
  .fw-layout { display: block; }
  .fw-rail { display: none; }
  .fw-header { position: sticky; z-index: 3; top: 0; min-height: 58px; padding: 6px 16px; gap: 14px; }
  .fw-institution { font-size: 13px; }
  .fw-institution svg { display: none; }
  .fw-menu, .fw-close { display: inline-flex; align-items: center; gap: 7px; min-height: 42px; padding: 7px; color: var(--action, #1e365a); background: white; border: none; font-size: 14px; font-weight: 650; }
  .fw-close { font-size: 24px; }
  #fw-drawer[open] { position: fixed; inset: 0 auto 0 0; margin: 0; width: min(310px, 90vw); max-width: 100vw; height: 100dvh; max-height: 100dvh; padding: 0; border: 0; border-radius: 0; }
  #fw-drawer::backdrop { background: #0f1e32a3; }
  .fw-main { padding: 24px clamp(14px, 4.6vw, 28px) 36px; }
}
@media print { .fw-rail, .fw-header { display: none; } .fw-layout { display: block; } }
