/* JKFA shared visual system. No external build step. */
:root{--navy:#10243b;--navy-mid:#183b55;--blue:#245773;--blue-lt:#327292;--gold:#c6a363;--gold-lt:#efdab0;--radius:20px;--shadow-md:0 16px 48px rgba(16,36,59,.07)}
html{scroll-behavior:smooth;scroll-padding-top:100px}
body{cursor:auto!important;-webkit-font-smoothing:antialiased}
#cur,#cur-r{display:none!important}
a,button,[role=button]{touch-action:manipulation}
button,input,select,textarea{font:inherit}
button,a,input,select,textarea{outline-offset:4px}
:focus-visible{outline:3px solid #b9924b!important}
input:not([type=checkbox]):not([type=radio]):not([type=file]),select{min-height:48px}
button{min-height:42px}
input,select,textarea{font-size:16px!important}
textarea{min-height:110px;resize:vertical}
.jk-skip{position:fixed;left:16px;top:-100px;z-index:100000;background:#fff;color:#10243b;padding:14px 20px;border-radius:8px}
.jk-skip:focus{top:16px}
.jk-register{background:#f5f4f0!important}
.jk-register .site-header{background:radial-gradient(ellipse at 90% 0,rgba(198,163,99,.14),transparent 55%),linear-gradient(120deg,#10243b,#1b3c53)}
.jk-register .header-inner{max-width:1056px;padding-top:48px;padding-bottom:48px}
.jk-register .header-title{font-family:var(--font-body),sans-serif;font-size:clamp(28px,4vw,42px);letter-spacing:-1.4px;text-shadow:none;font-weight:700}
.jk-register .header-desc{font-size:15px;font-weight:400;color:#d7e1e9}
.jk-register .header-eyebrow{letter-spacing:3px}
.jk-register .main-wrap,.jk-register .stepper{max-width:1056px}
.jk-register .main-wrap{padding-top:32px}
.jk-register .stepper-wrap{box-shadow:0 4px 20px #10243b08}
.jk-register .step-item{padding-top:22px;padding-bottom:22px}
.jk-register .step-item.active .step-num{background:#173d53;box-shadow:0 0 0 4px #173d5310}
.jk-register .step-title{color:#637081}
.jk-register .section-card{border:1px solid #e4e5e3;border-radius:20px;box-shadow:0 12px 45px #10243b08}
.jk-register .section-head{padding:26px 32px;background:#fff}
.jk-register .section-text h3{font-family:var(--font-body),sans-serif;font-size:19px;letter-spacing:-.4px}
.jk-register .section-text p{font-size:14px;color:#637081}
.jk-register .section-body{padding:30px 32px}
.jk-register .form-grid{gap:24px}
.jk-register .field label{font-size:13px;letter-spacing:.15px;color:#233b4d}
.jk-register .field-hint{font-size:13px;line-height:1.7;color:#536372}
.jk-register .field-wrap input,.jk-register .field-wrap select,.jk-register .field-wrap textarea{background:#fafbf9;border-color:#dce1e3;border-radius:11px}
.jk-register .upload-box{background:#fafbf9;border:1.5px dashed #b6c2c9;border-radius:14px;min-height:156px}
.jk-register .upload-box:hover{background:#f1f5f5;border-color:#245773}
.jk-register .upload-box.has-file{background:#eef8f2;border-color:#33855a}
.jk-register .btn-next,.jk-register .btn-submit{background:#173d53;box-shadow:0 5px 16px #173d5320;border-radius:10px;min-height:48px}
.jk-register .btn-back{min-height:48px;border-radius:10px}
.residency-panel{padding:24px;background:#f3f5f4;border:1px solid #dce4e5;border-radius:16px;margin-bottom:28px;display:grid;grid-template-columns:1fr 1fr;gap:18px}
.residency-panel select{width:100%;border:1px solid #c8d3da;border-radius:10px;padding:10px;background:#fff;color:#10243b}
.residency-panel p,.residency-panel .upload-box,.residency-panel .field-error{grid-column:1/-1}
.jk-login{background:radial-gradient(ellipse at 15% 25%,#1c3d53,transparent 55%),#0b1829!important;font-family:Arial,sans-serif!important}
.jk-login .min-h-screen{cursor:auto;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 20px;position:relative;z-index:10}
.jk-login #logo-block{margin:26px 0;text-align:center}
.jk-login #portal-card{width:100%;max-width:450px;padding:34px;border:1px solid #c6a36340;border-radius:22px;background:linear-gradient(145deg,#172d43,#0f2237);box-shadow:0 30px 100px #0005}
.jk-login #portal-card,.jk-login #logo-block,.jk-login #back-link{opacity:1!important;transform:none!important}
.jk-login .jk-input{background:#0b1c2f;border:1px solid #ffffff26;border-radius:10px;min-height:50px;color:#fff}
.jk-login .jk-input::placeholder{color:#a6b4c4}
.jk-login .btn-submit{background:linear-gradient(100deg,#c4a269,#e2c693);color:#10243b;border-radius:10px;min-height:50px;font-weight:700}
.jk-login .input-wrap{margin-bottom:18px}
.jk-login #login-panel>p{color:#b6c5d4!important;font-size:14px!important;letter-spacing:0!important}
.jk-login .bg-grid{opacity:.12}
.jk-index{--dark:#0b1829;--red:#b79255;--gold:#d4b77c}
.jk-index .btn-primary{background:#c6a363;color:#10243b;border-color:#c6a363;border-radius:8px;box-shadow:0 10px 30px #0002}
.jk-index .btn-outline{border-radius:8px}
.jk-index .cc,.jk-index .bc,.jk-index .cd-in{border-radius:18px;overflow:hidden}
.jk-renew .box,.jk-verify .card{border-radius:22px;box-shadow:0 24px 80px #10243b20}
.jk-renew .box-header,.jk-verify .card-header{background:linear-gradient(130deg,#10243b,#214a61)}
.jk-portal-admin{--primary:#245773;--gold:#c6a363}
.jk-portal-admin .doc-link{line-height:1.6;white-space:normal}
@media(max-width:600px){
 .jk-register .header-inner{padding:30px 20px}.jk-register .main-wrap{padding:20px 12px 48px}
 .jk-register .section-head,.jk-register .section-body{padding:22px 18px}
 .jk-register .stepper{padding:0 4px}.jk-register .step-item{padding:15px 5px;justify-content:center}.jk-register .step-info{display:none}
 .jk-register .step-num{width:34px;height:34px}.jk-register .form-grid,.residency-panel{grid-template-columns:1fr}
 .residency-panel{padding:18px}.jk-register .upload-grid{grid-template-columns:1fr}.jk-register .upload-item{grid-column:1!important}
 .jk-login #portal-card{padding:26px 22px}.jk-register .header-badges{gap:6px}.jk-register .header-badge{letter-spacing:.5px;padding:7px 10px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.rv,.rvr,.rvl{opacity:1!important;transform:none!important}}
[hidden]{display:none!important}
.jk-admin-login{background:radial-gradient(ellipse at 20% 10%,#21475e,transparent 60%),#0b1829;overflow-y:auto;min-height:100svh;height:auto}
.jk-admin-login .card{background:linear-gradient(145deg,#172d43,#0f2237);border-color:#c6a36340;border-radius:22px;box-shadow:0 28px 90px #0005}
.jk-admin-login .card::before{background:linear-gradient(90deg,transparent,#c6a363,transparent)}
.jk-admin-login .input-wrap input{border-radius:10px}
.jk-admin .card,.jk-portal-admin .card{border-radius:15px;border-color:#e0e5ea;box-shadow:0 6px 20px #10243b06}
@media(max-height:740px){.jk-admin-login{align-items:flex-start;padding:20px 0}}
.jk-login .btn-submit{clip-path:none}
.jk-login .back-link{color:#bac8d5}
.jk-login #login-panel a,.jk-login #login-panel button:not(.btn-submit):not(#toggle-pw){color:#e1c58f}
.jk-login .jk-input{font-family:Arial,sans-serif;letter-spacing:0}
.jk-admin-login .btn-login{background:linear-gradient(100deg,#c4a269,#e2c693);color:#10243b;border-radius:10px}
.jk-admin-login .field-label,.jk-admin-login label,.jk-admin-login .card-footer a{color:#c1cedb}
.jk-admin-login input::placeholder{color:#a6b4c4}
.jk-admin-login .role-pill.active{background:#c6a36315;border-color:#c6a36380}
.jk-admin-login .logo-sub{color:#e1c58f}
/* Mobile refinement, revision 2 */
.jk-admin-login .btn-login .spinner{display:none}
.jk-admin-login .btn-login{box-shadow:0 6px 24px #c6a36324}
.jk-admin-login .pw-toggle,.jk-login #toggle-pw{min-width:44px;min-height:44px;display:grid;place-items:center}
.jk-admin-login .pw-toggle{bottom:2px;right:4px}
.jk-admin-login .field-inp{padding-right:52px}
.jk-admin #content,.jk-portal-admin #content{min-width:0}
.jk-admin #app,.jk-portal-admin #app{height:100dvh}
.jk-admin .card>div,.jk-portal-admin .card>div{min-width:0}
.jk-admin .card-field span,.jk-portal-admin .card-field span{overflow-wrap:anywhere}
.jk-menu-shade{display:none}
@media(max-width:768px){
 .jk-admin #sb-tog,.jk-portal-admin #menuBtn{display:inline-flex!important;align-items:center;justify-content:center;min-width:44px;min-height:44px}
 .jk-admin #sidebar,.jk-portal-admin #sidebar{width:min(280px,82vw);height:100dvh;overscroll-behavior:contain}
 .jk-menu-shade.open{display:block;position:fixed;inset:0;background:#07152299;backdrop-filter:blur(3px);z-index:90}
 .jk-admin #topbar,.jk-portal-admin #topbar{height:auto;min-height:64px;gap:8px;flex-wrap:wrap;padding:10px 12px}
 .jk-admin #main,.jk-portal-admin #main{padding:14px 12px}
 .jk-admin .search-wrap,.jk-portal-admin .search-wrap{max-width:100%;min-width:0}
 .jk-admin .search-wrap input,.jk-portal-admin .search-wrap input{width:100%;min-width:0}
 .jk-admin .card-actions,.jk-portal-admin .card-actions{gap:8px}
 .jk-admin .modal-box,.jk-portal-admin .modal-box{max-height:85dvh}
}
@media(max-width:480px){
 .jk-admin-login{height:100svh;min-height:100svh;overflow-y:auto;align-items:flex-start;padding:16px 0}
 .jk-admin-login .card{flex-shrink:0;width:calc(100% - 24px);margin:0 12px;padding:28px 20px 24px}
 .jk-admin-login .role-pill{padding:12px 6px;min-height:64px}
 .jk-admin-login .footer-link{min-height:44px;display:inline-flex;align-items:center}
 .jk-login .min-h-screen{padding:26px 12px}.jk-login #portal-card{padding:26px 20px}
 .jk-register .header-logo-ring{width:70px;height:70px;flex-shrink:0}
 .jk-register .header-title{font-size:28px;letter-spacing:-1px}
 .jk-register .header-desc{font-size:14px}
 .jk-register .header-badge{font-size:9px}
 .jk-register .section-text h3{font-size:18px}
 .jk-register .field-wrap,.jk-register .field,.jk-register .upload-item{min-width:0}
 .jk-register .upload-filename{overflow-wrap:anywhere}
 .jk-register .btn-next,.jk-register .btn-back{padding:12px 18px}
 .jk-renew .page-wrap{padding:20px 12px}
 .jk-verify .card-wrap{width:100%;padding:14px}
}
/* Restrained motion: transform and opacity, with a reduced-motion fallback. */
@keyframes jk-enter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes jk-step{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.jk-admin-login .card,.jk-login #portal-card{animation:jk-enter .5s cubic-bezier(.2,.7,.3,1) both}
.jk-register .form-page.active{animation:jk-step .3s ease-out both}
.jk-register .upload-box{transition:border-color .2s,background-color .2s,box-shadow .2s}
.jk-register .upload-box:focus-within{border-color:#b9924b;box-shadow:0 0 0 3px #c6a36325}
.jk-register .step-num{transition:background-color .25s,box-shadow .25s,color .25s}
.jk-register .btn-next,.jk-register .btn-back,.jk-login .btn-submit,.jk-admin-login .btn-login{transition:transform .18s,box-shadow .18s,background-color .18s}
@media(hover:hover) and (pointer:fine){
 .jk-register .btn-next:hover,.jk-login .btn-submit:hover,.jk-admin-login .btn-login:hover{transform:translateY(-2px);box-shadow:0 8px 24px #10243b25}
 .jk-index .cc,.jk-index .bc{transition:transform .25s,box-shadow .25s}
 .jk-index .cc:hover,.jk-index .bc:hover{transform:translateY(-4px);box-shadow:0 14px 32px #0002}
}
.jk-register .btn-next:active,.jk-login .btn-submit:active,.jk-admin-login .btn-login:active{transform:translateY(0)}
@media(prefers-reduced-motion:reduce){
 .jk-admin-login .card,.jk-login #portal-card,.jk-register .form-page.active{animation:none!important}
 .jk-index .cc:hover,.jk-index .bc:hover,.jk-register .btn-next:hover,.jk-login .btn-submit:hover,.jk-admin-login .btn-login:hover{transform:none!important}
}
.jk-login #login-panel a,.jk-login #login-panel button:not(.btn-submit):not(#toggle-pw){color:#e1c58f!important}
.jk-login #login-panel>p,.jk-login #login-panel label{color:#b6c5d4!important}
