:root{
--navy-950:#08101f;
  --navy-900:#0b1428;
  --navy-850:#101e3c;
  --navy-800:#17294b;
  --navy-700:#22375f;
  --blue-700:#0044cc;
  --blue-600:#0056fe;
  --blue-500:#2c74ff;
  --blue-400:#5c9bff;
  --blue-200:#b9d1ff;
  --blue-50:#eef4ff;
  --cyan:#22d3ee;
  --violet:#7c4dff;
  --mint:#2fd6a0;
  --amber:#ffb020;

  --bg:#ffffff;
  --bg-soft:#f6f9ff;
  --bg-softer:#fbfcff;
  --line:#e4ebf8;
  --line-strong:#cfdcf3;
  --ink:#0f1c36;
  --ink-2:#485a7c;
  --ink-3:#6b7b9b;

  --radius-xs:10px;
  --radius-sm:14px;
  --radius:20px;
  --radius-lg:28px;
  --radius-xl:36px;

  --shadow-sm:0 1px 2px rgba(15,28,54,.06), 0 2px 6px rgba(15,28,54,.05);
  --shadow:0 4px 12px rgba(15,28,54,.06), 0 14px 40px rgba(15,28,54,.08);
  --shadow-lg:0 10px 30px rgba(15,28,54,.09), 0 30px 80px rgba(15,28,54,.13);
  --glow:0 10px 30px rgba(0,86,254,.28);

  --font-display:"Space Grotesk", "Plus Jakarta Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --font:"Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;

  --max:1200px;
  --gutter:clamp(18px, 4vw, 40px);
  --nav-h:74px;
}

/* The portal shell. Prefixed so nothing here can collide with ClientExec's
   own stylesheet, which defines .header, .footer, .nav, .btn and .container. */
.r1-skip{position:absolute;left:-9999px;top:0;background:var(--blue-600);color:#fff;padding:10px 16px;z-index:100}
.r1-skip:focus{left:8px;top:8px}

.r1-wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}

.r1-header{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.92);
  backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--line)}
.r1-header .r1-wrap{display:flex;align-items:center;gap:22px;height:var(--nav-h)}
.r1-brand{display:flex;align-items:center;flex:0 0 auto}
.r1-brand img{height:30px;width:auto;display:block}

.r1-nav{display:flex;align-items:center;gap:4px;margin-left:8px;flex:1 1 auto}
.r1-nav-link{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border:0;background:none;
  cursor:pointer;border-radius:var(--radius-xs);color:var(--ink-2);text-decoration:none;
  font-family:var(--font-display);font-weight:600;font-size:.94rem;letter-spacing:-.01em}
.r1-nav-link:hover{color:var(--ink);background:var(--bg-soft)}
.r1-nav-sep{width:1px;height:22px;background:var(--line-strong);margin:0 6px}

.r1-has-menu{position:relative}
.r1-menu{position:absolute;top:calc(100% + 10px);left:0;min-width:330px;background:#fff;
  border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);
  padding:10px;display:none;z-index:70}
.r1-has-menu.open .r1-menu{display:block}
.r1-menu-item{display:block;padding:10px 12px;border-radius:var(--radius-xs);text-decoration:none;color:var(--ink)}
.r1-menu-item:hover{background:var(--bg-soft)}
.r1-menu-item strong{display:block;font-family:var(--font-display);font-size:.94rem;letter-spacing:-.01em}
.r1-menu-item span{display:block;color:var(--ink-3);font-size:.85rem;margin-top:2px}
.r1-menu-foot{border-top:1px solid var(--line);margin-top:8px;padding:10px 12px 4px}
.r1-menu-foot a{color:var(--blue-600);font-weight:600;text-decoration:none;font-size:.9rem}

.r1-actions{display:flex;align-items:center;gap:10px;flex:0 0 auto}
.r1-who{color:var(--ink-2);font-size:.9rem;max-width:190px;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap}
.r1-btn{display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border-radius:999px;
  background:var(--blue-600);color:#fff;text-decoration:none;border:1px solid transparent;
  font-family:var(--font-display);font-weight:600;font-size:.92rem;letter-spacing:-.01em}
.r1-btn:hover{background:var(--blue-700);color:#fff}
.r1-btn-ghost{background:transparent;color:var(--ink);border-color:var(--line-strong)}
.r1-btn-ghost:hover{background:var(--bg-soft);color:var(--ink)}

.r1-burger{display:none;width:42px;height:42px;border:1px solid var(--line-strong);
  border-radius:var(--radius-xs);background:#fff;cursor:pointer;position:relative}
.r1-burger span,.r1-burger span::before,.r1-burger span::after{position:absolute;left:11px;
  width:18px;height:2px;background:var(--ink);border-radius:2px;content:""}
.r1-burger span{top:20px}
.r1-burger span::before{top:-6px}
.r1-burger span::after{top:6px}

.r1-mobile{display:none;border-bottom:1px solid var(--line);background:#fff;padding:14px var(--gutter) 22px}
.r1-mobile.open{display:block}
.r1-mobile h5{font-family:var(--font-display);font-size:.78rem;text-transform:uppercase;
  letter-spacing:.08em;color:var(--ink-3);margin:16px 0 6px}
.r1-mobile a{display:block;padding:9px 0;color:var(--ink);text-decoration:none;
  border-bottom:1px solid var(--line)}

@media (max-width:1040px){
  .r1-nav,.r1-actions{display:none}
  .r1-burger{display:block;margin-left:auto}
}

/* ClientExec's own content sits between the two. Give it room to breathe and
   let it keep its own styling -- this shell deliberately does not restyle it. */
/* ClientExec's vendor.css pins body to 100% height; with the flex-column body
   that would shrink main and let the footer overlap tall pages. */
body{height:auto;min-height:100vh}
#r1-main{flex:1 0 auto;min-height:60vh;padding:26px 0 60px;background:var(--bg-soft)}

.r1-footer{background:var(--navy-950);color:#c9d6ee;padding:56px 0 26px;margin-top:0}
.r1-footer .r1-wrap{max-width:var(--max)}
.r1-footer-top{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr 1fr;gap:34px}
.r1-footer-brand img{height:30px;width:auto;display:block;margin-bottom:14px}
.r1-footer-brand p{color:#9db0d2;font-size:.92rem;line-height:1.6;max-width:38ch}
.r1-footer h5{font-family:var(--font-display);color:#fff;font-size:.82rem;text-transform:uppercase;
  letter-spacing:.08em;margin:0 0 12px}
.r1-footer a{display:block;color:#c9d6ee;text-decoration:none;padding:5px 0;font-size:.92rem}
.r1-footer a:hover{color:#fff}
.r1-footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:16px;
  flex-wrap:wrap;border-top:1px solid rgba(255,255,255,.1);margin-top:34px;padding-top:18px;
  color:#8fa3c6;font-size:.86rem}
.r1-footer-legal{display:flex;gap:16px}
.r1-footer-legal a{display:inline;padding:0}

@media (max-width:900px){
  .r1-footer-top{grid-template-columns:1fr 1fr;gap:24px}
}
@media (max-width:560px){
  .r1-footer-top{grid-template-columns:1fr}
}
