@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Noto+Sans+KR:wght@400;500;600;700&display=swap");

/* Dygent Identity uses the Wallaby login-gate tone: a dark, quiet gate with a
   single violet accent. The Nexus and Wallaby workspaces themselves are
   light; the gate stays dark so the gold DY mark reads at full contrast. */

:root {
  color-scheme: dark;
  font-family: "DM Sans", "Noto Sans KR", -apple-system, BlinkMacSystemFont, sans-serif;
  background: #10121a;
  color: #f2f4f9;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  min-height: 100vh;
  background: radial-gradient(circle at 50% 20%, #202438 0%, #10121a 70%);
}

.shell { min-height: 100vh; display: grid; place-items: center; padding: 24px; }

.card {
  width: min(100%, 430px);
  padding: 36px 32px;
  border: 1px solid #2b3042;
  border-radius: 20px;
  background: #181b26;
  box-shadow: 0 24px 60px rgba(0, 0, 0, .5);
}
.card.wide { width: min(100%, 560px); }
.hidden { display: none !important; }

.brand-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 44px;
  margin-bottom: 22px;
  padding: 9px 18px;
  border: 1px solid #2d3348;
  border-radius: 14px;
  background: #212534;
}
.brand-mark svg { display: block; width: auto; height: 100%; max-height: 24px; }

.eyebrow { margin: 0 0 8px; color: #8174f7; font-size: 11px; font-weight: 700; letter-spacing: .16em; }
h1 { margin: 0; font-size: 24px; font-weight: 700; letter-spacing: -.03em; }
.lead { margin: 10px 0 26px; color: #949cb0; font-size: 13px; line-height: 1.6; }
.lead strong { color: #dfe3ec; font-weight: 600; }
.session-meta { margin: -16px 0 22px; color: #7b8395; font-size: 12px; }

form { display: grid; gap: 8px; }

label { margin-top: 12px; color: #cbd2e1; font-size: 12px; font-weight: 600; }
.field-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-top: 12px; }
.field-head label { margin-top: 0; }
.required { color: #f0929f; }

input, select {
  width: 100%;
  min-height: 44px;
  margin-top: 2px;
  padding: 0 13px;
  border: 1px solid #2d3348;
  border-radius: 11px;
  outline: none;
  background: #212534;
  color: #f2f4f9;
  font: inherit;
  font-size: 13px;
  transition: .15s;
}
input::placeholder { color: #6d7488; }
input:focus, select:focus { border-color: #7364f3; box-shadow: 0 0 0 3px rgba(115, 100, 243, .18); }

.password-row { display: grid; grid-template-columns: 1fr auto; gap: 8px; }

button, .secondary, .primary-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  margin-top: 18px;
  padding: 0 18px;
  border: 0;
  border-radius: 11px;
  background: linear-gradient(135deg, #7364f3, #5342c8);
  color: #fff;
  font: inherit;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
  transition: .15s;
}
button:hover, .primary-link:hover { box-shadow: 0 10px 26px rgba(105, 88, 235, .4); }
button:disabled {
  cursor: wait;
  opacity: .7;
  box-shadow: none;
}

.secondary {
  width: 100%;
  border: 1px solid #3d4358;
  background: #191b25;
  color: #a9b0c2;
  font-weight: 500;
  box-shadow: none;
}
.secondary:hover { border-color: #55607d; background: #21242f; color: #e3e7ef; box-shadow: none; }

.text-toggle {
  min-height: auto;
  margin: 0;
  padding: 0;
  border-radius: 0;
  background: none;
  color: #9b8ff9;
  font-size: 12px;
  font-weight: 600;
  text-decoration: underline;
}
.text-toggle:hover { color: #b6adfb; box-shadow: none; }

.icon-button {
  min-height: 44px;
  margin: 0;
  padding: 0 14px;
  border: 1px solid #3d4358;
  border-radius: 11px;
  background: #212534;
  color: #cbd2e1;
  font-size: 12px;
  font-weight: 600;
}
.icon-button:hover { border-color: #55607d; box-shadow: none; }

.apps { display: grid; gap: 10px; margin-bottom: 4px; }
.app-card {
  display: block;
  padding: 16px 18px;
  border: 1px solid #2d3348;
  border-radius: 14px;
  background: #212534;
  color: inherit;
  text-decoration: none;
  transition: .15s;
}
.app-card:hover { border-color: #5a4fc4; background: #262a3b; }
.app-card h2 { margin: 0 0 5px; font-size: 15px; font-weight: 600; letter-spacing: -.01em; }
.app-card p { margin: 0; color: #949cb0; font-size: 12px; line-height: 1.55; }

.alert {
  margin: 18px 0 4px;
  padding: 12px 14px;
  border: 1px solid #6b3641;
  border-radius: 11px;
  background: rgba(94, 32, 44, .4);
  color: #f4c4cb;
  font-size: 13px;
  line-height: 1.55;
}

.security-note { margin: 22px 0 0; color: #6d7488; font-size: 11px; line-height: 1.6; text-align: center; }

dl { margin: 22px 0; }
dt { color: #7b8395; font-size: 11px; }
dd { margin: 5px 0; overflow-wrap: anywhere; font-size: 13px; }
code { color: #b6adfb; }

@media (max-width: 520px) {
  .shell { padding: 14px; }
  .card { padding: 28px 22px; border-radius: 16px; }
  h1 { font-size: 21px; }
}
