:root {
  --ink: #17222f;
  --muted: #65737f;
  --line: rgba(31, 49, 64, .12);
  --blue: #155eef;
  --blue-deep: #104cc6;
  --paper: #f4f6f7;
  --green: #147a50;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { min-width: 320px; min-height: 100%; font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", system-ui, "Helvetica Neue", Arial, sans-serif; color: var(--ink); background: var(--paper); -webkit-font-smoothing: antialiased; }
body { min-height: 100vh; margin: 0; }
button, input { font: inherit; }
button { cursor: pointer; }
button:focus-visible, input:focus-visible { outline: 3px solid rgba(21,94,239,.22); outline-offset: 2px; }

.login-layout { min-height: 100vh; display: grid; grid-template-columns: minmax(420px, .94fr) minmax(500px, 1.06fr); }
.suite-story { min-height: 100vh; padding: clamp(32px, 5vw, 72px); display: flex; flex-direction: column; color: white; background: radial-gradient(circle at 18% 12%, rgba(78,117,184,.3), transparent 26rem), linear-gradient(145deg,#111c27 0%,#172839 58%,#183044 100%); }
.brand-lockup { display: flex; align-items: center; gap: 10px; }
.brand-mark { width: 31px; height: 31px; padding: 7px; display: grid; grid-template-columns: repeat(3,1fr); align-items: end; gap: 2px; border-radius: 10px 10px 10px 3px; background: white; transform: rotate(-7deg); }
.brand-mark i { display: block; border-radius: 2px; background: #b8e8db; }
.brand-mark i:nth-child(1) { height: 42%; }.brand-mark i:nth-child(2) { height: 70%; background: #74d4bd; }.brand-mark i:nth-child(3) { height: 100%; background: #e7a186; }
.brand-name { font-size: 18px; font-weight: 800; letter-spacing: -.035em; }
.brand-product { padding: 4px 6px 3px; border: 1px solid rgba(255,255,255,.28); border-radius: 4px; color: #c9d3dc; font: 600 8px Menlo, monospace; letter-spacing: .12em; }
.suite-copy { max-width: 590px; margin-top: auto; padding-top: 72px; }
.eyebrow, .step-label { color: #8fb3ff; font: 700 9px Menlo, monospace; letter-spacing: .13em; }
.suite-copy h1 { max-width: 520px; margin: 18px 0 0; font-size: clamp(42px, 5vw, 72px); line-height: .98; letter-spacing: -.06em; }
.suite-copy p { max-width: 520px; margin: 24px 0 0; color: #b8c6d2; font-size: 16px; line-height: 1.65; }
.program-stack { margin-top: 48px; display: grid; gap: 9px; }
.program-stack article { min-height: 70px; padding: 13px 15px; display: grid; grid-template-columns: 42px minmax(0,1fr) auto; align-items: center; gap: 13px; border: 1px solid rgba(255,255,255,.1); border-radius: 12px; background: rgba(255,255,255,.055); backdrop-filter: blur(14px); }
.program-icon { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 10px; font: 750 15px Menlo, monospace; }
.program-icon-desk { color: #dfe8ff; background: #2857b6; }.program-icon-concilia { color: #dff3e8; background: #177455; }.program-icon-system { color: #ffe7e5; background: #9d3029; }
.program-stack strong, .program-stack small { display: block; }.program-stack strong { font-size: 13px; }.program-stack small { margin-top: 4px; color: #9fb0be; font-size: 10px; }
.program-state { color: #81d6b7; font: 700 8px Menlo, monospace; letter-spacing: .08em; }
.local-note { margin-top: 18px; color: #8496a5; font-size: 10px; }

.auth-panel { min-height: 100vh; padding: 32px; display: grid; place-items: center; background: radial-gradient(circle at 80% 10%, rgba(21,94,239,.05), transparent 23rem), #f7f8f9; }
.auth-card { width: min(420px,100%); }
.auth-card form header { margin-bottom: 32px; }
.auth-card h2 { margin: 12px 0 0; font-size: 31px; line-height: 1.1; letter-spacing: -.045em; }
.auth-card header p { margin: 12px 0 0; color: var(--muted); font-size: 13px; line-height: 1.55; }
.auth-card label { margin-top: 17px; display: grid; gap: 7px; color: #42515e; font-size: 11px; font-weight: 700; }
.auth-card input { width: 100%; height: 48px; padding: 0 14px; border: 1px solid var(--line); border-radius: 9px; color: var(--ink); background: white; box-shadow: 0 1px 2px rgba(18,28,38,.025); transition: border-color 140ms ease, box-shadow 140ms ease; }
.auth-card input:focus { border-color: rgba(21,94,239,.52); box-shadow: 0 0 0 3px rgba(21,94,239,.08); outline: 0; }
.primary-button { width: 100%; height: 48px; margin-top: 8px; border: 1px solid var(--blue); border-radius: 9px; color: white; background: var(--blue); box-shadow: 0 7px 16px rgba(21,94,239,.16); font-size: 12px; font-weight: 750; }
.primary-button:hover { background: var(--blue-deep); }.primary-button:disabled { opacity: .62; cursor: wait; }
.form-error { min-height: 18px; margin: 9px 0 0; color: #aa3329; font-size: 10px; }
.security-note { margin: 16px 0 0; display: flex; align-items: flex-start; gap: 7px; color: #7a8791; font-size: 9px; line-height: 1.5; }.security-note span { color: var(--green); font-weight: 800; }
.loading-state { min-height: 180px; display: grid; place-items: center; align-content: center; gap: 14px; color: var(--muted); font-size: 11px; }.loading-state span { width: 24px; height: 24px; border: 2px solid #dce2e7; border-top-color: var(--blue); border-radius: 50%; animation: spin 700ms linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }

@media (max-width: 820px) { .login-layout { display: block; }.suite-story { min-height: auto; padding: 26px 20px 24px; }.suite-copy { margin-top: 54px; padding: 0; }.suite-copy h1 { font-size: 40px; }.suite-copy p { font-size: 13px; }.program-stack { margin-top: 28px; }.auth-panel { min-height: auto; padding: 50px 20px 64px; }.local-note { margin-bottom: 0; } }
@media (max-width: 480px) { .program-stack article { grid-template-columns: 38px minmax(0,1fr); }.program-state { display: none; }.program-icon { width: 38px; height: 38px; }.auth-card h2 { font-size: 27px; } }
@media (prefers-reduced-motion: reduce) { * { animation-duration: .01ms !important; transition-duration: .01ms !important; } }
