/* KaigoGest login - desktop balance refinement 2026-09-21 v5 */
.kg-login-mobile-backdrop,.kg-login-mobile-hero{display:none}
.kg-login-page{min-height:100vh;min-height:100dvh;margin:0;background:linear-gradient(180deg,#eef4f7 0,#f7fafb 100%);overflow-x:hidden}
.kg-login-shell{width:min(1420px,calc(100% - 36px));min-height:min(840px,calc(100vh - 30px));min-height:min(840px,calc(100dvh - 30px));margin:15px auto;display:grid;grid-template-columns:minmax(500px,43.5%) minmax(0,56.5%);background:#fff;border:1px solid #dfe8ed;border-radius:20px;overflow:hidden;box-shadow:0 24px 64px rgba(27,60,78,.12)}
.kg-login-panel{position:relative;display:flex;min-width:0;background:linear-gradient(180deg,#fbfdfe 0,#ffffff 100%)}
.kg-login-panel-inner{width:min(560px,100%);min-height:100%;margin:0 auto;padding:44px 52px 28px;display:flex;flex-direction:column}
.kg-login-brand{display:inline-flex;align-items:center;width:max-content;text-decoration:none}
.kg-login-brand img{display:block;width:min(194px,70vw);max-height:82px;object-fit:contain;object-position:left center}
.kg-login-copy{margin:clamp(52px,7vh,74px) 0 28px;padding:0}
.kg-login-kicker{display:inline-flex;align-items:center;padding:7px 14px;border:1px solid rgba(var(--medical-primary-rgb),.22);border-radius:999px;background:rgba(var(--medical-primary-rgb),.06);color:var(--medical-primary);font-size:.72rem;font-weight:800;letter-spacing:.03em}
.kg-login-copy h1{margin:16px 0 0;color:#142634;font-size:clamp(2.65rem,3.1vw,3.55rem);font-weight:850;letter-spacing:-.05em;line-height:.96}
.kg-login-copy p{max-width:455px;margin:15px 0 0;color:#6c7985;font-size:.98rem;line-height:1.65}
.kg-login-alert{border:1px solid #f1c7c9;border-radius:10px;font-size:.8rem;background:#fff8f8}
.kg-login-form .form-label{margin-bottom:6px;color:#344654;font-size:.81rem;font-weight:700}
.kg-login-input{position:relative}
.kg-login-input>i{position:absolute;left:15px;top:50%;z-index:2;transform:translateY(-50%);color:#81909d;font-size:.96rem}
.kg-login-input .form-control{min-height:60px;padding:13px 48px 13px 43px;border:1px solid #d6e0e6;border-radius:11px;background:#fff;color:#263846;font-size:.92rem;box-shadow:none;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}
.kg-login-input .form-control:focus{border-color:rgba(var(--medical-primary-rgb),.58);background:#fff;box-shadow:0 0 0 3px rgba(var(--medical-primary-rgb),.08)}
.kg-password-toggle{position:absolute;right:8px;top:50%;width:38px;height:38px;display:grid;place-items:center;transform:translateY(-50%);border:0;border-radius:9px;background:transparent;color:#7d8995}
.kg-password-toggle:hover{background:#edf5f8;color:var(--medical-primary)}
.kg-login-options{display:flex;align-items:center;justify-content:space-between;gap:16px}
.kg-login-form .form-check-input{border-color:#becad2}
.kg-login-form .form-check-input:checked{background-color:var(--medical-primary);border-color:var(--medical-primary)}
.kg-login-form .form-check-label{color:#536474;font-size:.79rem;font-weight:650}
.kg-login-secure{display:inline-flex;align-items:center;gap:6px;color:#82909b;font-size:.72rem;white-space:nowrap}
.kg-login-submit{min-height:60px;border:0;border-radius:12px;display:flex;align-items:center;justify-content:center;gap:11px;font-weight:800;box-shadow:0 12px 24px rgba(var(--medical-primary-rgb),.2);transition:background-color .18s ease,box-shadow .18s ease,transform .18s ease}
.kg-login-submit i{font-size:1rem;transition:transform .18s ease}
.kg-login-submit:hover:not(:disabled) i{transform:translateX(3px)}
.kg-login-submit:disabled,.kg-login-submit.is-loading{cursor:wait;opacity:1!important;background:var(--medical-dark)!important;border-color:var(--medical-dark)!important;color:#fff!important;box-shadow:0 8px 18px rgba(24,61,79,.2)!important}
.kg-login-submit.is-loading i{transform:none!important}
.kg-login-submit .spinner-border{width:1rem;height:1rem;border-width:.14em;color:#fff}
.kg-login-footer{margin-top:auto;padding-top:24px;color:#9aa5ae;font-size:.67rem}

.kg-remembered-user{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:15px;margin-bottom:26px;padding:19px 18px;border:1px solid #dce6eb;border-radius:14px;background:#fff;box-shadow:0 10px 28px rgba(31,68,86,.06)}
.kg-remembered-avatar-wrap{position:relative;width:72px;height:72px;flex:0 0 72px}
.kg-remembered-avatar{width:72px;height:72px;display:block;border-radius:50%;object-fit:cover;background:#eaf1f4;border:3px solid #fff;box-shadow:0 10px 26px rgba(24,57,73,.12)}
.kg-remembered-status{position:absolute;right:-1px;bottom:1px;width:23px;height:23px;display:grid;place-items:center;border:3px solid #fff;border-radius:50%;background:var(--medical-primary);color:#fff;font-size:.62rem;font-weight:900}
.kg-remembered-copy{min-width:0}
.kg-remembered-copy small,.kg-remembered-copy strong,.kg-remembered-copy span{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis}
.kg-remembered-copy small{color:#8996a1;font-size:.64rem;font-weight:750;text-transform:uppercase;letter-spacing:.035em;white-space:nowrap}
.kg-remembered-copy strong{margin-top:3px;color:#1f313e;font-size:.98rem;font-weight:850;white-space:nowrap}
.kg-remembered-copy span{margin-top:2px;color:#73818d;font-size:.7rem;white-space:nowrap}
.kg-remembered-change{display:inline-flex;align-items:center;gap:6px;padding:7px 8px;border-radius:7px;color:var(--medical-primary);font-size:.69rem;font-weight:800;text-decoration:none;white-space:nowrap}
.kg-remembered-change:hover{background:rgba(var(--medical-primary-rgb),.07);color:var(--medical-dark)}

.kg-login-visual{position:relative;min-height:calc(100vh - 30px);min-height:calc(100dvh - 30px);overflow:hidden;background:#dfe9ed;isolation:isolate}
.kg-login-visual>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 42%;z-index:0}
.kg-login-visual:before{content:"";position:absolute;z-index:1;inset:0 auto 0 0;width:52%;background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.99) 13%,rgba(255,255,255,.94) 27%,rgba(255,255,255,.79) 43%,rgba(255,255,255,.52) 60%,rgba(255,255,255,.22) 77%,rgba(255,255,255,0) 100%);pointer-events:none}
.kg-login-visual-gradient{position:absolute;z-index:2;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(255,255,255,.34) 0%,rgba(255,255,255,.16) 16%,rgba(255,255,255,0) 38%),linear-gradient(180deg,rgba(255,255,255,.03) 0%,rgba(13,39,50,.02) 100%)}

@media(max-width:1199.98px) and (min-width:992px){
  .kg-login-shell{grid-template-columns:minmax(430px,46%) minmax(0,54%)}
  .kg-login-panel-inner{padding-left:40px;padding-right:40px}
  .kg-login-copy{margin-top:44px;margin-bottom:24px}
  .kg-login-copy h1{font-size:2.75rem}
  .kg-login-visual:before{width:58%}
}

@media(min-width:992px) and (max-height:820px){
  .kg-login-panel-inner{padding-top:30px;padding-bottom:22px}
  .kg-login-brand img{max-height:70px}
  .kg-login-copy{margin-top:34px;margin-bottom:21px}
  .kg-login-copy h1{font-size:2.75rem}
  .kg-login-copy p{margin-top:10px;font-size:.9rem;line-height:1.5}
  .kg-remembered-user{margin-bottom:18px;padding-top:14px;padding-bottom:14px}
  .kg-remembered-avatar-wrap,.kg-remembered-avatar{width:62px;height:62px}
  .kg-remembered-avatar-wrap{flex-basis:62px}
  .kg-login-input .form-control{min-height:54px}
  .kg-login-submit{min-height:54px}
  .kg-login-footer{padding-top:18px}
}

@media(max-width:991.98px){
  .kg-login-page{position:relative;background:#eef5f8;overflow-x:hidden}
  .kg-login-mobile-backdrop{position:fixed;z-index:0;inset:0 0 auto;height:45vh;height:45dvh;display:block;overflow:hidden;background:#c8dce8}
  .kg-login-mobile-backdrop img{position:absolute;inset:-18px;width:calc(100% + 36px);height:calc(100% + 36px);object-fit:cover;object-position:center 31%;filter:blur(5px) saturate(.88);transform:scale(1.035)}
  .kg-login-mobile-backdrop span{position:absolute;inset:0;background:linear-gradient(180deg,rgba(237,247,252,.08) 0,rgba(28,78,101,.2) 52%,rgba(238,245,248,.87) 100%)}
  .kg-login-shell{position:relative;z-index:1;width:100%;min-height:100vh;min-height:100dvh;margin:0;display:block;background:transparent;border:0;border-radius:0;overflow:visible;box-shadow:none}
  .kg-login-mobile-hero{height:32vh;height:32dvh;min-height:220px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:20px 20px 4px;text-align:center}
  .kg-login-mobile-brand{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;width:auto;min-height:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;backdrop-filter:none;text-decoration:none}
  .kg-login-mobile-brand:before{display:none}
  .kg-login-mobile-brand-ring{position:relative;display:grid;place-items:center;width:130px;height:130px;border-radius:50%;background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.98),rgba(255,255,255,.88) 62%,rgba(238,245,249,.84) 100%);border:1px solid rgba(var(--medical-primary-rgb),.22);box-shadow:0 18px 48px rgba(17,50,65,.20),0 0 0 8px rgba(255,255,255,.26),inset 0 0 0 1px rgba(255,255,255,.58);backdrop-filter:blur(18px)}
  .kg-login-mobile-brand-ring:before{content:"";position:absolute;inset:10px;border-radius:50%;border:1px solid rgba(var(--medical-primary-rgb),.22)}
  .kg-login-mobile-brand-ring:after{content:"";position:absolute;inset:-8px;border-radius:50%;border:1px solid rgba(255,255,255,.34)}
  .kg-login-mobile-brand img{display:block;width:auto;max-width:88px;max-height:88px;object-fit:contain;filter:drop-shadow(0 4px 12px rgba(21,58,74,.18))}
  .kg-login-mobile-hero>span{display:block;padding:0;background:transparent;border:0;color:#fff;font-size:.74rem;font-weight:800;text-shadow:0 1px 8px rgba(18,48,61,.75)}
  .kg-login-panel{position:relative;display:block;min-height:68vh;min-height:68dvh;margin-top:0;border-radius:28px 28px 0 0;background:rgba(255,255,255,.985);box-shadow:0 -14px 40px rgba(28,65,82,.12);backdrop-filter:blur(20px)}
  .kg-login-panel-inner{width:min(570px,100%);min-height:auto;margin:0 auto;padding:27px 24px 24px;display:flex;flex-direction:column}
  .kg-login-brand--desktop,.kg-login-visual{display:none!important}
  .kg-login-copy{margin:0 0 19px;padding:0;text-align:center}
  .kg-login-kicker{display:none}
  .kg-login-copy h1{font-size:1.95rem;letter-spacing:-.035em}
  .kg-login-copy p{max-width:420px;margin:7px auto 0;font-size:.84rem;line-height:1.46}
  .kg-login-form{width:100%}
  .kg-login-input .form-control{min-height:54px;border-radius:12px;background:#fff}
  .kg-login-submit{min-height:56px;border-radius:12px;font-size:.92rem}
  .kg-login-footer{margin-top:0;padding-top:25px;text-align:center;font-size:.65rem}
  .kg-login-secure{font-size:.67rem}
  .kg-remembered-user{grid-template-columns:1fr;justify-items:center;gap:7px;margin:0 0 18px;padding:0 12px 17px;border:0;border-bottom:1px solid #e8eef2;border-radius:0;background:transparent;box-shadow:none;text-align:center}
  .kg-remembered-avatar-wrap,.kg-remembered-avatar{width:80px;height:80px}
  .kg-remembered-avatar-wrap{margin-bottom:2px}
  .kg-remembered-avatar{border-width:4px;box-shadow:0 9px 24px rgba(26,66,84,.16)}
  .kg-remembered-status{right:2px;bottom:2px;width:24px;height:24px}
  .kg-remembered-copy small{white-space:normal}
  .kg-remembered-copy strong{font-size:1.03rem;white-space:normal}
  .kg-remembered-copy span{font-size:.72rem;white-space:normal}
  .kg-remembered-change{margin-top:2px;padding:6px 9px;background:rgba(var(--medical-primary-rgb),.07);border-radius:7px}
}

@media(max-width:575.98px){
  .kg-login-mobile-backdrop{height:41vh;height:41dvh}
  .kg-login-mobile-backdrop img{object-position:center 27%;filter:blur(5.5px) saturate(.84)}
  .kg-login-mobile-hero{height:29vh;height:29dvh;min-height:200px;padding:18px 18px 0}
  .kg-login-mobile-brand-ring{width:120px;height:120px}
  .kg-login-mobile-brand img{max-width:80px;max-height:80px}
  .kg-login-mobile-hero>span{font-size:.67rem}
  .kg-login-panel{min-height:71vh;min-height:71dvh;border-radius:22px 22px 0 0}
  .kg-login-panel-inner{padding:25px 18px 22px}
  .kg-login-copy{margin-bottom:17px}
  .kg-login-copy h1{font-size:1.78rem}
  .kg-login-copy p{font-size:.8rem}
  .kg-login-form .form-label{font-size:.74rem}
  .kg-login-options{gap:9px}
  .kg-login-secure{font-size:.62rem}
  .kg-remembered-avatar-wrap,.kg-remembered-avatar{width:74px;height:74px}
  .kg-remembered-status{width:23px;height:23px}
  .kg-remembered-copy strong{font-size:.98rem}
}

@media(max-width:390px){
  .kg-login-mobile-hero{min-height:188px}
  .kg-login-panel-inner{padding-left:15px;padding-right:15px}
  .kg-login-options{align-items:flex-start;flex-direction:column}
  .kg-login-secure{align-self:flex-end;margin-top:-25px}
}

@media(max-width:991.98px) and (max-height:740px){
  .kg-login-mobile-backdrop{height:36vh;height:36dvh}
  .kg-login-mobile-hero{height:24vh;height:24dvh;min-height:160px}
  .kg-login-mobile-brand-ring{width:104px;height:104px}
  .kg-login-mobile-brand img{max-width:70px;max-height:70px}
  .kg-login-mobile-hero>span{display:none}
  .kg-login-panel{min-height:76vh;min-height:76dvh;border-radius:20px 20px 0 0}
  .kg-login-panel-inner{padding-top:21px}
  .kg-login-copy{margin-bottom:15px}
  .kg-login-copy p{display:none}
  .kg-remembered-user{margin-bottom:14px;padding-bottom:12px}
  .kg-remembered-avatar-wrap,.kg-remembered-avatar{width:64px;height:64px}
}
@media (min-width: 992px) {
    .kg-login-kicker {
        display: none !important;
    }
}
