html, body { margin:0; padding:0; min-height:100%; }
body.ksg-body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color:var(--ksg-text); overflow:hidden; }
.ksg-scene { position:relative; min-height:100vh; }
.ksg-bg-fill,
.ksg-bg-media,
.ksg-bg-video,
.ksg-overlay { position:absolute; inset:0; }
.ksg-bg-fill { background: var(--ksg-bg1); }
.ksg-bg-gradient .ksg-bg-fill,
body.ksg-bg-gradient .ksg-bg-fill { background: linear-gradient(135deg, var(--ksg-bg1), var(--ksg-bg2)); }
.ksg-bg-media { background-size:cover; background-position:center; }
.ksg-bg-video { width:100%; height:100%; object-fit:cover; }
.ksg-overlay { background: var(--ksg-overlay); backdrop-filter: blur(1px); }
.ksg-wrap { position:relative; z-index:2; min-height:100vh; display:flex; align-items:center; justify-content:center; padding:24px; box-sizing:border-box; }
.ksg-card { width:min(480px, calc(100vw - 32px)); background:var(--ksg-card-bg); border-radius:24px; padding:28px 24px 24px; box-sizing:border-box; box-shadow: 0 20px 60px rgba(0,0,0,.18); }
.ksg-logo-area { width:100%; display:flex; justify-content:center; align-items:center; margin-bottom:18px; }
.ksg-logo-media, .ksg-logo-fallback, .ksg-logo-text { width:var(--ksg-logo-w); height:var(--ksg-logo-h); max-width:100%; object-fit:contain; display:flex; align-items:center; justify-content:center; }
.ksg-logo-fallback, .ksg-logo-text { border-radius:999px; font-weight:700; letter-spacing:.04em; background:rgba(21,96,173,.10); color:#1560ad; }
.ksg-title { margin:0 0 8px; font-size:24px; line-height:1.35; text-align:center; }
.ksg-description { margin:0 0 16px; text-align:center; color:rgba(17,24,39,.78); font-size:14px; line-height:1.7; }
.ksg-error { background:#fff1f2; border:1px solid #fecdd3; color:#be123c; border-radius:14px; padding:12px 14px; margin:0 0 14px; font-size:14px; }
.ksg-label { display:block; font-weight:600; margin-bottom:8px; }
.ksg-password-wrap { margin-bottom:12px; }
.ksg-input { width:100%; box-sizing:border-box; border:1px solid var(--ksg-field-border); background:var(--ksg-field-bg); border-radius:14px; padding:14px 16px; font-size:16px; outline:none; }
.ksg-input:focus { border-color: var(--ksg-button-bg); box-shadow:0 0 0 3px rgba(21,96,173,.14); }
.ksg-remember { display:flex; align-items:center; gap:8px; margin:8px 0 14px; font-size:14px; }
.ksg-button { width:100%; border:0; border-radius:14px; background:var(--ksg-button-bg); color:var(--ksg-button-text); padding:14px 16px; font-size:16px; font-weight:700; cursor:pointer; }
.ksg-button:hover { filter:brightness(.96); }
.ksg-footer { margin-top:16px; text-align:center; font-size:12px; opacity:.85; line-height:1.7; }
@media (max-width: 640px) {
  .ksg-card { padding:22px 18px 20px; border-radius:20px; }
  .ksg-title { font-size:21px; }
}
