:root { --ui-charcoal:#202326; --ui-pink:#f7c1d9; --ui-pink-strong:#e69cbe; --ui-pink-light:#feeaf3; --ui-burgundy:#8a3c66; --ui-canvas:#ecebea; --ui-line:#dedbd8; --ui-shadow:0 8px 24px rgb(36 39 42 / 7%); }
body { background:var(--ui-canvas); color:var(--ui-charcoal); font-family:"Roboto Condensed","Arial Narrow","Aptos Narrow",Arial,sans-serif; font-size:15px; letter-spacing:0; line-height:1.5; }
.login-shell { grid-template-columns:minmax(360px,520px) minmax(0,1fr); }
button,input,select,textarea { font-family:inherit; letter-spacing:0; }
button,.button,.ghost-button { border-radius:8px; transition:background-color 160ms ease,border-color 160ms ease,box-shadow 160ms ease,color 160ms ease,transform 100ms ease; }
button:not(:disabled):active { transform:scale(.98); }
input,select,textarea { border-radius:8px; min-height:44px; }
input:focus,select:focus,textarea:focus { border-color:var(--ui-burgundy); box-shadow:0 0 0 3px rgb(230 156 190 / 22%); outline:0; }
.app-shell { background:var(--ui-canvas); grid-template-columns:264px minmax(0,1fr); }
.sidebar { background:var(--ui-charcoal); gap:18px; min-height:100vh; padding:28px 18px 20px; position:sticky; top:0; }
.brand-block { padding:0 4px 24px; }
.sidebar-brand-lockup { align-items:center; display:flex; gap:12px; min-width:0; }
.sidebar-brand-lockup img { background:var(--ui-pink); border-radius:50%; display:block; flex:0 0 48px; height:48px; object-fit:contain; padding:3px; width:48px; }
.sidebar-brand-lockup .eyebrow { color:var(--ui-pink); font-size:12px; font-weight:900; letter-spacing:.5px; line-height:1.05; margin:0 0 3px; max-width:none; text-transform:uppercase; }
.sidebar-brand-lockup h1 { margin:0; max-width:none; min-width:0; }
.sidebar h1 { color:#fff; font-family:inherit; font-size:28px; font-weight:900; letter-spacing:0; line-height:.95; margin:0; }
.sidebar .eyebrow { color:var(--ui-pink); }
.market-switcher select { background:#303337; border-color:#4d5155; color:#fff; width:100%; }
.preview-navigation { display:flex; flex-direction:column; gap:4px; }
.nav-button,.nav-group-toggle { align-items:center; background:transparent; border:0; border-radius:8px; color:#f2f2f2; display:grid; font-size:13px; font-weight:800; gap:12px; grid-template-columns:30px minmax(0,1fr) auto; letter-spacing:.35px; min-height:48px; padding:8px 12px; text-align:left; text-transform:uppercase; width:100%; }
.nav-button:hover,.nav-group-toggle:hover { background:#303337; }
.nav-button.active,.nav-group.active>.nav-group-toggle { background:#34373a; border:0; box-shadow:inset 3px 0 0 var(--ui-pink-strong); color:#fff; }
.nav-icon { align-items:center; border:1px solid #666a6d; color:#dfe0e1; display:flex; font-size:11px; font-weight:800; height:26px; justify-content:center; width:26px; }
.active .nav-icon,.nav-group.active .nav-icon { background:var(--ui-pink); border-color:var(--ui-pink); color:var(--ui-charcoal); }
.nav-chevron { border-bottom:2px solid currentColor; border-right:2px solid currentColor; height:7px; margin-right:4px; transform:rotate(45deg); transition:transform 160ms ease; width:7px; }
.nav-group.open .nav-chevron { transform:rotate(225deg) translate(-2px,-2px); }
.nav-group-panel { display:none; padding:2px 0 8px 42px; }
.nav-group.open .nav-group-panel { display:grid; gap:2px; }
.nav-group-panel button { background:transparent; border:0; border-radius:8px; color:#bfc1c2; font-size:12.5px; font-weight:800; letter-spacing:.25px; min-height:38px; padding:7px 12px; text-align:left; text-transform:uppercase; }
.nav-group-panel button:hover { background:#303337; color:#fff; }
.nav-group-panel button.active { background:var(--ui-pink-light); color:var(--ui-charcoal); }
.nav-divider { border-top:1px solid #44484b; margin:12px 8px; }
.sidebar-footer { border-color:#44484b; margin:0 6px; padding-top:18px; }
.workspace { background:var(--ui-canvas); min-width:0; padding:0 28px 40px; }
.utility-bar { background:rgb(255 255 255 / 94%); margin:0 -28px 24px; min-height:58px; padding:0 28px; position:sticky; top:0; z-index:50; }
.topbar { background:#fff; border:1px solid var(--ui-line); border-radius:8px; margin-bottom:24px; padding:24px 28px; }
.topbar h2 { font-family:inherit; font-size:clamp(25px,3vw,36px); letter-spacing:0; line-height:1.15; }
.project-details { color:#666a6d; font-size:14px; margin-top:6px; }
.metric-grid { gap:12px; margin-bottom:20px; }
.metric,.panel,.table-panel,.form-panel,.summary-panel { background:#fff; border:1px solid var(--ui-line); border-radius:8px; box-shadow:none; }
.metric { min-height:112px; padding:20px; }
.metric strong { font-family:inherit; font-size:34px; }
.panel:hover,.metric:hover { border-color:#d8d3cf; box-shadow:var(--ui-shadow); }
h1,h2,h3,h4 { font-family:inherit; letter-spacing:0; }
.view { animation:ui-view-in 180ms ease both; }
@keyframes ui-view-in { from { opacity:0; transform:translateY(4px); } to { opacity:1; transform:translateY(0); } }
.mobile-nav-toggle,.sidebar-backdrop { display:none; }
.market-choice-logo { background:var(--ui-pink); border-radius:50%; height:54px; object-fit:cover; width:54px; }
.login-brand-visual { align-content:center; background:var(--ui-pink); display:grid; justify-items:center; min-height:100vh; overflow:hidden; padding:48px; position:relative; text-align:center; }
.login-brand-visual::after { background:var(--ui-charcoal); bottom:0; content:""; height:18%; left:0; position:absolute; right:0; }
.login-brand-visual img { filter:drop-shadow(0 18px 32px rgb(36 39 42 / 15%)); max-width:340px; width:min(48vw,340px); }
.login-brand-visual div { display:grid; gap:10px; margin-top:34px; position:relative; z-index:1; }
.login-brand-visual span { color:var(--ui-burgundy); font-size:13px; font-weight:800; text-transform:uppercase; }
.login-brand-visual strong { color:var(--ui-charcoal); font-size:clamp(34px,4vw,58px); letter-spacing:0; line-height:1.02; }
@media (max-width:900px) {
  .login-shell { grid-template-columns:1fr; }
  .app-shell { display:block; }
  .sidebar { box-shadow:16px 0 40px rgb(0 0 0 / 24%); height:100dvh; left:0; max-width:86vw; overflow-y:auto; position:fixed; top:0; transform:translateX(-105%); transition:transform 220ms ease; width:290px; z-index:200; }
  .sidebar nav { display:flex; }
  body.mobile-nav-open { overflow:hidden; }
  body.mobile-nav-open .sidebar { transform:translateX(0); }
  .sidebar-backdrop { background:rgb(17 19 21 / 45%); border:0; border-radius:0; inset:0; opacity:0; position:fixed; z-index:190; }
  body.mobile-nav-open .sidebar-backdrop { display:block; opacity:1; }
  .workspace { padding:0 16px 28px; }
  .utility-bar { gap:12px; margin:0 -16px 16px; padding:0 16px; }
  .mobile-nav-toggle { align-items:center; background:transparent; border:0; display:flex; flex-direction:column; gap:4px; height:40px; justify-content:center; padding:8px; width:40px; }
  .mobile-nav-toggle span { background:var(--ui-charcoal); height:2px; width:19px; }
  .topbar { align-items:stretch; flex-direction:column; padding:20px; }
  .topbar-actions,.topbar-actions select { width:100%; }
  .metric-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .metric { min-height:96px; padding:16px; }
  .login-brand-visual { display:none; }
}
@media (max-width:520px) { body { font-size:14px; } .utility-status span:last-child { display:none; } .project-heading h2 { font-size:25px; } }

.visually-hidden {
  border:0;
  clip:rect(0 0 0 0);
  height:1px;
  margin:-1px;
  overflow:hidden;
  padding:0;
  position:absolute;
  white-space:nowrap;
  width:1px;
}
.campus-launch-shell {
  align-items:center;
  background:
    radial-gradient(circle at 50% 54%, rgb(255 255 255 / 82%) 0 18%, rgb(255 255 255 / 54%) 32%, transparent 52%),
    linear-gradient(135deg, var(--ui-pink) 0%, #fde5f0 46%, #fff 100%);
  display:grid;
  justify-items:center;
  min-height:100vh;
  padding:32px;
  text-align:center;
}
.campus-launch-lockup {
  align-items:center;
  display:grid;
  justify-items:center;
  margin-top:8vh;
}
.campus-launch-lockup img {
  filter:drop-shadow(0 20px 32px rgb(138 60 102 / 16%));
  height:128px;
  margin-bottom:8px;
  object-fit:contain;
  width:128px;
  z-index:1;
}
.campus-launch-title {
  align-items:center;
  display:grid;
  gap:0;
  justify-content:center;
}
.campus-launch-title h1 {
  color:#08090a;
  font-size:clamp(48px,8vw,86px);
  font-weight:900;
  letter-spacing:7px;
  line-height:.88;
  margin:0;
  text-transform:uppercase;
}
.campus-launch-title span {
  color:var(--ui-pink-strong);
  font-size:clamp(30px,5vw,56px);
  font-weight:900;
  line-height:.9;
  margin-bottom:-5px;
}
.campus-launch-button {
  background:#feeaf3;
  border:1px solid rgb(138 60 102 / 10%);
  box-shadow:0 18px 34px rgb(36 39 42 / 19%);
  color:#08090a;
  font-size:20px;
  font-weight:900;
  letter-spacing:5px;
  margin-top:28px;
  min-height:58px;
  min-width:154px;
  padding:13px 26px;
  text-transform:uppercase;
}
.campus-launch-button:hover {
  background:#fff;
  box-shadow:0 22px 42px rgb(36 39 42 / 22%);
  transform:translateY(-2px);
}
.login-shell {
  align-items:center;
  background:#111214;
  display:grid;
  grid-template-columns:1fr;
  justify-items:center;
  min-height:100vh;
  padding:24px;
}
.login-card {
  background:#fff;
  border:0;
  border-radius:6px;
  box-shadow:0 26px 70px rgb(0 0 0 / 34%);
  max-width:420px;
  overflow:hidden;
  width:min(420px,92vw);
}
.login-card-body {
  display:grid;
  gap:22px;
  justify-items:center;
  padding:44px 40px 30px;
}
.login-card-logo {
  height:128px;
  object-fit:contain;
  width:128px;
}
.login-form {
  display:grid;
  gap:12px;
  width:100%;
}
.login-field {
  border:1px solid #ecebea;
  display:grid;
  grid-template-columns:58px minmax(0,1fr) 44px;
  min-height:54px;
}
.login-field-icon,
.login-field-action {
  align-items:center;
  background:#f3f3f3;
  color:#b4b4b4;
  display:flex;
  font-size:20px;
  justify-content:center;
}
.login-field-action {
  background:#fff;
}
.login-field input {
  background:#fff;
  border:0;
  border-radius:0;
  color:var(--ui-charcoal);
  font-size:18px;
  font-weight:700;
  min-height:54px;
  padding:0 18px;
}
.login-field input::placeholder {
  color:#b7b7b7;
  font-weight:600;
}
.login-field:focus-within {
  border-color:var(--ui-pink-strong);
  box-shadow:0 0 0 3px rgb(230 156 190 / 18%);
}
.login-helper,
.cloud-mode {
  color:#56595c;
  font-size:14px;
  font-weight:650;
  margin:8px 0 0;
  text-align:center;
}
.login-error {
  color:var(--ui-burgundy);
  font-size:14px;
  font-weight:800;
  margin:0;
  min-height:20px;
  text-align:center;
}
.login-card-submit {
  background:#343434;
  border:0;
  border-radius:0;
  color:#fff;
  font-size:20px;
  font-weight:750;
  letter-spacing:4px;
  margin:12px -40px -30px;
  min-height:82px;
  text-transform:uppercase;
}
.login-card-submit:hover {
  background:#24272a;
}
.validation-email-panel {
  background:#fff;
  border:1px solid var(--ui-line);
  border-radius:8px;
  box-shadow:0 10px 26px rgb(36 39 42 / 6%);
  margin-top:14px;
  overflow:hidden;
}
.validation-email-panel summary {
  align-items:center;
  cursor:pointer;
  display:flex;
  gap:12px;
  justify-content:space-between;
  padding:14px 16px;
}
.validation-email-panel summary span {
  color:var(--ui-burgundy);
  font-size:15px;
  font-weight:850;
  letter-spacing:.4px;
  text-transform:uppercase;
}
.validation-email-panel summary strong {
  background:var(--ui-pink-light);
  border-radius:999px;
  color:var(--ui-charcoal);
  padding:5px 10px;
}
.validation-email-grid,
.validation-criteria-grid {
  display:grid;
  gap:14px;
  grid-template-columns:repeat(2,minmax(0,1fr));
  padding:18px;
}
.validation-email-grid label,
.validation-criteria-grid label {
  background:#fbfaf9;
  border:1px solid #efebe8;
  border-radius:8px;
  color:#666a6d;
  display:grid;
  font-weight:800;
  gap:7px;
  padding:12px;
}
.validation-email-grid input,
.validation-email-grid select,
.validation-email-grid textarea,
.validation-criteria-grid select {
  background:#fff;
  font-size:16px;
}
.validation-email-grid .wide {
  grid-column:1 / -1;
}
.validation-email-actions {
  align-items:center;
  background:var(--ui-pink-light);
  border-top:1px solid var(--ui-line);
  display:flex;
  gap:14px;
  justify-content:space-between;
  padding:16px 18px;
}
.validation-email-actions span {
  color:#666a6d;
  font-weight:700;
}
.validation-email-button {
  background:var(--ui-charcoal);
  border:0;
  color:#fff;
  font-weight:850;
  white-space:nowrap;
}
@media (max-width:720px) {
  .campus-launch-title {
    align-items:center;
    display:grid;
    gap:4px;
  }
  .campus-launch-title h1 {
    letter-spacing:3px;
  }
  .validation-email-grid,
  .validation-criteria-grid {
    grid-template-columns:1fr;
  }
  .validation-email-actions {
    align-items:stretch;
    flex-direction:column;
  }
}
