:root {
  --ink: #122033;
  --muted: #687487;
  --blue: #123c69;
  --blue-dark: #092f57;
  --blue-soft: #eaf1f7;
  --gold: #b28a4b;
  --line: #dfe5ec;
  --paper: #fff;
  --bg: #f4f6f8;
  --danger: #a1463b;
  --success: #287553;
  font-family: Inter, 'Segoe UI', sans-serif;
  color: var(--ink);
  background: var(--bg);
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
body { margin: 0; min-height: 100vh; }
button, input { font: inherit; }
button { cursor: pointer; }
.login-screen {
  min-height: 100vh;
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(380px, 0.85fr);
  background: var(--blue-dark);
}
.login-intro {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(50px, 8vw, 120px);
  color: #fff;
  overflow: hidden;
}
.login-intro::after {
  content: '';
  position: absolute;
  width: 520px;
  height: 520px;
  right: -210px;
  bottom: -260px;
  border: 1px solid #ffffff1c;
  border-radius: 50%;
  box-shadow: 0 0 0 80px #ffffff08, 0 0 0 160px #ffffff05;
}
.brand-mark, .bi-brand { display: flex; align-items: center; gap: 18px; }
.brand-mark { position: absolute; top: 42px; left: clamp(50px, 8vw, 120px); }
.brand-mark b, .bi-brand > b {
  display: grid;
  place-items: center;
  width: 58px;
  height: 44px;
  border: 1px solid #d7bc88;
  color: #e5cda0;
  font: 600 19px Georgia, serif;
  letter-spacing: .08em;
}
.brand-mark span { color: #cbd6e2; font-size: 13px; letter-spacing: .08em; }
.eyebrow { color: #d9bd8b; font-size: 11px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; }
.login-intro h1 {
  max-width: 720px;
  margin: 14px 0 24px;
  font: 500 clamp(46px, 6vw, 82px)/1 Georgia, serif;
  letter-spacing: -.035em;
}
.login-copy { max-width: 620px; margin: 0; color: #b9c7d5; font-size: 17px; line-height: 1.7; }
.login-principles { display: flex; gap: 34px; margin-top: 62px; color: #7f9ab4; font-size: 11px; }
.login-principles span { display: grid; gap: 8px; }
.login-principles b { color: #dae3ec; font-size: 12px; font-weight: 500; }
.login-panel { display: grid; place-items: center; padding: 36px; background: #eef2f6; }
.login-card { width: min(430px, 100%); padding: 44px; background: #fff; border-top: 4px solid var(--gold); box-shadow: 0 30px 80px #071e3525; }
.secure-label { color: var(--gold); font-size: 10px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.login-card h2 { margin: 12px 0 8px; color: var(--blue-dark); font: 500 34px Georgia, serif; }
.login-card > p { margin: 0 0 28px; color: var(--muted); line-height: 1.5; }
.login-card label { display: block; margin: 16px 0 7px; color: var(--ink); font-size: 12px; font-weight: 700; }
.login-card input { width: 100%; min-height: 48px; padding: 0 13px; border: 1px solid #cbd5df; border-radius: 2px; }
.login-card input:focus { outline: 2px solid #123c6938; border-color: var(--blue); }
.login-card button { width: 100%; min-height: 50px; margin-top: 22px; color: #fff; background: var(--blue); border: 0; font-weight: 700; }
.login-card small { display: block; margin-top: 24px; color: #8491a0; text-align: center; }
.login-message { min-height: 20px; margin: 12px 0 0 !important; color: var(--danger) !important; font-size: 12px; }
.bi-header {
  height: 84px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px clamp(20px, 4vw, 60px);
  color: #fff;
  background: var(--blue);
}
.bi-brand span { display: grid; border-left: 1px solid #ffffff4d; padding-left: 18px; }
.bi-brand small { color: #ffffffb8; font-size: 10px; letter-spacing: .16em; text-transform: uppercase; }
.bi-brand strong { font: 500 21px/1.2 Georgia, serif; }
.bi-freshness { display: flex; align-items: center; gap: 12px; font-size: 12px; }
.read-only { padding: 7px 11px; border: 1px solid #ffffff65; border-radius: 20px; }
.bi-freshness button { padding: 8px 12px; color: #fff; background: #ffffff12; border: 1px solid #ffffff4d; border-radius: 4px; }
.bi-freshness .quiet-button { border-color: transparent; }
.bi-shell { display: grid; grid-template-columns: 260px minmax(0, 1fr); min-height: calc(100vh - 84px); }
.bi-rail { position: sticky; top: 0; align-self: start; min-height: calc(100vh - 84px); padding: 30px 20px; background: #0e2947; color: #fff; }
.rail-label { margin: 0 12px 14px; color: #8fa6be; font-size: 10px; letter-spacing: .18em; text-transform: uppercase; }
.bi-rail button { width: 100%; display: grid; grid-template-columns: 28px 1fr; gap: 8px; padding: 13px 12px; text-align: left; color: #b8c7d7; background: transparent; border: 0; border-left: 2px solid transparent; }
.bi-rail button span { color: #fff; }
.bi-rail button.active { background: #ffffff0d; border-left-color: var(--gold); }
.rail-note { position: absolute; left: 32px; right: 32px; bottom: 30px; display: grid; gap: 6px; padding-top: 18px; border-top: 1px solid #ffffff20; }
.rail-note strong { color: #d9bd8b; font: 500 17px Georgia, serif; }
.rail-note span { color: #9fb0c2; font-size: 12px; line-height: 1.5; }
.bi-main { max-width: 1500px; width: 100%; padding: 38px clamp(24px, 4vw, 64px) 80px; }
.bi-message { margin-bottom: 20px; padding: 11px 14px; color: var(--blue); background: var(--blue-soft); border-left: 3px solid var(--blue); font-size: 13px; }
.bi-message.error { color: #762e27; background: #f9ece9; border-color: var(--danger); }
.bi-view { display: none; }
.bi-view.active { display: block; }
.bi-title { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 24px; }
.bi-title p, .bi-title h1 { margin: 0; }
.bi-title p { margin-bottom: 7px; color: var(--gold); font-size: 11px; font-weight: 700; letter-spacing: .17em; text-transform: uppercase; }
.bi-title h1 { color: var(--blue-dark); font: 500 clamp(32px, 4vw, 50px)/1.05 Georgia, serif; }
.bi-title > span { padding-bottom: 6px; color: var(--muted); font-size: 12px; }
.metric-strip { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; margin-bottom: 22px; background: var(--line); border: 1px solid var(--line); }
.metric-strip.two { grid-template-columns: repeat(2, 1fr); }
.metric-strip article { min-height: 126px; display: flex; flex-direction: column; justify-content: space-between; padding: 20px; background: var(--paper); }
.metric-strip small { color: var(--muted); font-size: 11px; letter-spacing: .11em; text-transform: uppercase; }
.metric-strip strong { color: var(--blue); font: 500 35px Georgia, serif; }
.metric-strip span { color: var(--muted); font-size: 12px; }
