:root{
  --campus-blue:#0B3D91; --campus-blue-2:#2F5FB3; --ink:#111827; --muted:#6B7280;
  --line:#E5E7EB; --bg:#F8FAFC; --card:#FFFFFF;
}
/* Card */
.coi-auth-card{max-width:740px;margin:40px auto;background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:0 6px 22px rgba(0,0,0,.05);overflow:hidden}
.coi-auth-head{padding:20px 24px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#fff,#f5f8fc)}
.coi-auth-head h1{margin:0;color:var(--campus-blue);font-size:22px;font-weight:800}
.coi-steps{margin-top:4px;color:var(--muted);font-size:12px}
/* Layout */
.coi-auth-body{padding:22px;display:grid;grid-template-columns:1fr;gap:16px}
.coi-auth-body.single{grid-template-columns:1fr}
@media (min-width:860px){ .coi-auth-body{grid-template-columns:1fr 1fr} }
/* Fields */
.coi-field{display:flex;flex-direction:column;gap:8px}
.coi-field label{font-size:13px;color:#374151;font-weight:600}
.coi-field input{width:100%;padding:12px 12px;border:1.5px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);font-size:16px;line-height:22px}
.coi-field input::placeholder{color:#9CA3AF}
.coi-field input:focus{outline:none;border-color:var(--campus-blue);box-shadow:0 0 0 3px rgba(11,61,145,.12)}
/* Actions */
.coi-actions{grid-column:1/-1;display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:4px}
.coi-btn{border:1px solid #1f4db3;background:var(--campus-blue);color:#fff;padding:12px 16px;border-radius:12px;cursor:pointer;font-weight:700}
.coi-btn.secondary{background:#fff;color:var(--campus-blue);border-color:var(--line)}
.coi-btn:hover{filter:brightness(1.06)}
.coi-link{color:var(--campus-blue);text-decoration:none;font-weight:600}
/* Messages */
.coi-msg{grid-column:1/-1;margin-top:2px}
.coi-err{color:#B91C1C}.coi-ok{color:#065F46}
/* MFA */
.coi-mfa{display:grid;grid-template-columns:220px 1fr;gap:16px;align-items:start}
@media (max-width:760px){ .coi-mfa{grid-template-columns:1fr} }
/* Overlay polish (gear) — safe, local scope */
#coi-mega[data-open="1"] .coi-mega-panel{animation:coiSlideIn .18s ease-out both}
@keyframes coiSlideIn{from{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
.coi-mega-panel{max-height:min(82vh,720px);overflow:auto}
@media (max-width:720px){ .coi-mega-panel{left:12px;right:12px;top:auto;bottom:12px;width:auto;max-width:none;border-radius:16px;} }
.coi-mega-close{position:absolute;top:10px;right:12px;border:1px solid var(--line);background:#fff;border-radius:10px;padding:6px 8px;cursor:pointer}
.coi-field input{ font-size:16px } /* Anti-zoom iOS */

/* === Prestige overlay merged === */
:root{ --gold:#B58900; }
/* Header */
.coi-auth-head{
  background: linear-gradient(180deg, #fff 0%, #f6f8fc 100%);
  position: relative;
}
.coi-auth-head::after{
  content:""; position:absolute; left:0; right:0; bottom:-1px; height:3px;
  background: linear-gradient(90deg, transparent 0%, var(--gold) 18%, var(--gold) 82%, transparent 100%);
  opacity:.35;
}
/* Card */
.coi-auth-card{
  border-radius: 18px;
  box-shadow: 0 8px 28px rgba(0,0,0,.06), 0 2px 8px rgba(11,61,145,.04);
  border: 1px solid #E6EAF2;
}
/* Labels & inputs */
.coi-field label{ letter-spacing:.2px; color:#2a3a57; }
.coi-field input{
  border-radius:14px;
  border:1.5px solid #E4E7EE;
  box-shadow: inset 0 1px 2px rgba(0,0,0,.02);
  transition:border-color .15s ease, box-shadow .15s ease, background-color .2s ease;
}
.coi-field input:hover{ background:#FCFDFE }
.coi-field input:focus{ border-color: var(--campus-blue); box-shadow: 0 0 0 4px rgba(11,61,145,.14); }
/* Buttons */
.coi-btn{
  border-radius:14px;
  box-shadow: 0 6px 16px rgba(11,61,145,.18);
  transition: transform .06s ease, box-shadow .12s ease, filter .12s ease;
}
.coi-btn:hover{ transform: translateY(-1px); box-shadow:0 10px 22px rgba(11,61,145,.22); }
.coi-btn.secondary{ border-color:#E4E7EE; box-shadow:none }
.coi-btn.secondary:hover{ filter:brightness(1.02) }
/* Messages */
.coi-msg{ font-weight:600 }
.coi-err{ color:#B42318 } .coi-ok{ color:#0F766E }
/* === 2FA (MFA) === */
#coi-mfa{
  background:#fff;
  border:1px solid #E6EAF2;
  border-radius:16px;
  padding:16px;
  box-shadow: 0 8px 30px rgba(11,61,145,.06);
}
#coi-qr{
  display:block;
  border:1px solid #E5E7EB;
  border-radius:12px;
  padding:6px;
  background:#fff;
}
#coi-secret{
  display:inline-block;
  margin-top:8px;
  padding:6px 10px;
  border:1px dashed var(--campus-blue-2);
  border-radius:10px;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  letter-spacing:.08em;
  color:#1f3a6d;
  background:#F7FAFF;
}
#coi-totp{
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-variant-numeric: tabular-nums;
  text-align:center;
  letter-spacing:.38em;
  font-size:20px;
  padding:14px 12px;
  border-radius:14px;
  border:1.5px solid #E4E7EE;
  background:
    linear-gradient(#fff,#fff) padding-box,
    repeating-linear-gradient(to right, transparent, transparent calc(16.66% - 1px), #E4E7EE calc(16.66% - 1px), #E4E7EE calc(16.66% + 1px)) border-box;
  background-origin: border-box;
  background-clip: padding-box, border-box;
}
#coi-totp::placeholder{ letter-spacing:normal; color:#C1C7D0; }
#coi-totp:focus{ border-color:var(--campus-blue); box-shadow:0 0 0 4px rgba(11,61,145,.14); }
@media (max-width:480px){
  #coi-totp{ letter-spacing:.28em; font-size:18px; padding:12px 10px; }
}
@media (max-width:760px){
  .coi-mfa{ gap:14px }
  #coi-qr{ margin:0 auto }
}

/* === Lot 1.3.7 rules merged into LOCK === */
#coi-mfa.mode-required #coi-qr{ display:none !important; }
#coi-mfa.mode-required #coi-secret{ display:none !important; }
#coi-totp.coi-gold{ border-color: var(--gold) !important; box-shadow: 0 0 0 4px rgba(181,137,0,.18) !important; }
