/* Digital-style navigation drawer and footer, with role-specific application navigation. */
.site-header { background:rgba(255,255,255,.97); border-bottom:1px solid var(--brand-border); }
.site-header-inner { max-width:1280px; margin:auto; min-height:88px; padding:18px max(3vw,20px); display:flex; align-items:center; justify-content:space-between; gap:24px; }
.site-header .brand { flex-wrap:nowrap; }
.site-header .brand-product { width:auto; }
.header-actions { display:flex; align-items:center; gap:24px; }
.header-surface { font-size:.8rem; color:var(--muted); }
.menu-toggle { display:flex; align-items:center; gap:18px; padding:11px 15px; background:var(--brand-navy); border:1px solid var(--brand-navy); border-radius:12px; }
.menu-label { font-size:.85rem; }
.menu-lines { width:22px; display:grid; gap:5px; }
.menu-lines i { display:block; height:2px; background:#fff; border-radius:2px; }
.menu-lines i:nth-child(2) { width:70%; justify-self:end; }
.site-menu { box-sizing:border-box; position:fixed; inset-block:0; inset-inline-start:auto; inset-inline-end:0; width:min(430px,calc(100% - 20px)); height:100dvh; max-height:100dvh; max-width:none; margin:0; border:0; border-inline-start:1px solid var(--brand-line); padding:28px; color:var(--ink); background:var(--brand-surface-warm); box-shadow:-20px 0 80px #061d3d26; overflow-y:auto; }
.site-menu::backdrop { background:#061d3d80; backdrop-filter:blur(4px); }
.menu-head { display:flex; align-items:center; justify-content:space-between; gap:16px; padding-bottom:22px; border-bottom:1px solid var(--line); font-weight:700; }
.menu-close { color:var(--ink); background:transparent; border:1px solid var(--line); width:44px; height:44px; padding:0; font-size:1.8rem; }
.menu-close:hover { background:var(--brand-navy-soft)!important; color:var(--brand-navy); }
.menu-identity { display:grid; gap:4px; padding:20px 0; }
.menu-identity span { color:var(--muted); font-size:.85rem; }
.menu-primary { display:grid; padding:18px 0; }
.menu-primary a { text-decoration:none; color:var(--brand-navy); padding:13px 4px; font-size:1.15rem; border-bottom:1px solid var(--brand-line); }
.menu-primary a:hover { color:var(--brand-navy-hover); background:var(--brand-navy-soft); }
.menu-primary .menu-cta { background:var(--brand-navy); color:white; border-radius:10px; text-align:center; margin-top:16px; }
.menu-language { padding-top:18px; }
.menu-language>div { display:flex; gap:10px; align-items:center; }
.menu-language select { margin:0; }
.menu-logout button { width:100%; }
html.menu-is-open { overflow:hidden; }
.workspace-navigation { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:18px 22px; margin-bottom:28px; background:var(--paper); border:1px solid var(--line); border-radius:16px; }
.workspace-identity { display:flex; gap:12px; align-items:center; min-width:0; }
.workspace-identity>div { display:grid; gap:2px; }
.workspace-identity span:not(.workspace-initial) { font-size:.8rem; color:var(--muted); }
.workspace-initial { width:42px; height:42px; flex-shrink:0; border-radius:12px; display:grid; place-items:center; background:var(--brand-gold-soft); color:var(--brand-navy); }
.workspace-navigation nav { display:flex; flex-wrap:wrap; gap:6px; }
.workspace-navigation nav a { text-decoration:none; font-size:.88rem; padding:9px 13px; border-radius:9px; }
.workspace-navigation nav a[aria-current=page] { background:var(--brand-navy); color:#fff; }
.policy-readonly { font-size:.85rem; padding:12px; background:var(--bg); border-radius:10px; align-self:start; }
footer.portal-footer[data-portal-footer] { display:block; max-width:1320px; width:calc(100% - 40px); margin:32px auto 20px; text-align:start; border:0; font-size:1rem; }
.portal-footer-lead h2 { font-family:inherit; line-height:1.35; letter-spacing:-.025em; font-size:clamp(1.8rem,3vw,2.8rem); }
.portal-footer .portal-kicker { font-size:.75rem; letter-spacing:.14em; font-weight:700; }
.portal-footer-grid { grid-template-columns:minmax(0,1.4fr) repeat(2,minmax(0,1fr)); }
.portal-footer-grid>section,.portal-footer-grid>nav { min-width:0; }
.portal-footer-grid span,.portal-footer-grid p { font-size:.86rem; overflow-wrap:anywhere; line-height:1.8; }
.portal-footer-logo img { width:180px; height:28px; border-radius:0; object-fit:contain; }
.portal-footer-grid nav strong,.portal-footer-grid section>strong { color:#e6cb73; font-size:.85rem; letter-spacing:0; }
.footer-product-name { letter-spacing:.06em; color:#e6cb73; }
.portal-footer-compact .portal-footer-grid { padding:4px 0 24px; }
.portal-footer .portal-button:hover { background:#efdea6!important; color:#061931!important; }
[dir=rtl] .portal-footer-lead h2 { letter-spacing:0; }
[dir=rtl] .portal-footer-grid nav a:hover { transform:translateX(-4px); }
@media(max-width:800px) {
  .portal-footer-lead { grid-template-columns:1fr; gap:18px; }
  .portal-footer-mark { display:none; }
  .portal-footer-cta { min-width:0; justify-self:start; }
  .workspace-navigation { align-items:start; flex-direction:column; }
}
@media(max-width:600px) {
  .site-header-inner { min-height:76px; gap:12px; padding-block:15px; }
  .site-header .brand-wordmark { width:140px; height:24px; }
  .site-header .brand-product { display:none; }
  .header-surface { display:none; }
  .menu-toggle { min-height:44px; gap:12px; padding:10px 12px; }
  .site-menu { padding:22px; }
  footer.portal-footer[data-portal-footer] { width:calc(100% - 24px); padding:26px; margin-bottom:12px; }
  .portal-footer-grid { grid-template-columns:1fr; gap:26px; }
  .portal-footer-bottom { align-items:start; flex-direction:column; gap:10px; }
  .workspace-navigation { padding:16px; }
}
@media(prefers-reduced-motion:reduce) { .portal-footer-orbit { animation:none; } }
