
*{box-sizing:border-box}body{margin:0;min-height:100vh;font-family:Arial,Helvetica,sans-serif;color:#102b4b;background:#e8f3fc}.login-wrap{min-height:100vh;display:grid;grid-template-columns:1.08fr .92fr;overflow:hidden}.visual{position:relative;min-height:100vh;background:linear-gradient(140deg,#f8fcff,#d5ecfc 65%,#c4e7f8);padding:6vh 6vw;display:flex;flex-direction:column;overflow:hidden}.visual:before{content:"";position:absolute;inset:42% 0 0;background:url('../h3-campus-ambiance.jpg') center center/cover no-repeat}.visual:after{content:"";position:absolute;inset:28% 0 37%;background:linear-gradient(to bottom,#e4f4ff,transparent);pointer-events:none}.visual-top{position:relative;z-index:1}.logo{width:245px;max-width:75%;height:auto;object-fit:contain}.motto{margin:22px 0 28px;color:#1988cb;font-weight:700;letter-spacing:.18em;text-transform:uppercase;font-size:13px}.features{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;max-width:740px}.feature{border-radius:19px;padding:20px 10px 15px;text-align:center;background:#e7f5ffdd;backdrop-filter:blur(5px);font-size:11px;font-weight:800;line-height:1.45;text-transform:uppercase;box-shadow:0 10px 25px #16476b12}.feature:nth-child(2){background:#fff0e5e8}.feature:nth-child(4){background:#e5f8f2e8}.feature .symbol{font-size:28px;display:block;margin-bottom:11px;color:#178dd1}.feature:nth-child(2) .symbol{color:#ed833b}.feature:nth-child(4) .symbol{color:#3aa78b}.auth-side{display:flex;align-items:center;justify-content:center;padding:50px 6vw;background:linear-gradient(150deg,#eaf5ff,#fff 42%,#d5edfc)}.auth{background:#ffffffed;border:1px solid #ffffff;border-radius:28px;padding:clamp(28px,4vw,55px);width:min(100%,540px);box-shadow:0 20px 65px #17426923}.eyebrow{text-transform:uppercase;letter-spacing:.18em;color:#7a8da5;font-size:12px;font-weight:800}.auth h1{font-size:clamp(30px,3vw,43px);line-height:1.12;margin:18px 0 9px}.sub{font-size:15px;color:#647a94;margin:0 0 35px;line-height:1.5}.auth label{display:block;font-size:13px;font-weight:700;margin:18px 0 8px}.auth input{width:100%;border:1px solid #d5deea;border-radius:11px;padding:16px;font-size:16px;background:#f9fbfd;color:#17304c}.auth input:focus{outline:3px solid #cbeaff;border-color:#168cce}.auth button{width:100%;border:0;background:#112d4f;color:#fff;padding:17px;border-radius:11px;font-weight:700;font-size:17px;margin-top:26px;cursor:pointer}.auth button:hover{background:#20517e}.notice{margin-top:32px;border-radius:12px;background:#eff6ff;color:#486887;padding:17px;display:flex;gap:12px;font-size:13px;line-height:1.55}.notice strong{color:#1179bc}.error{background:#fff0f0;color:#9a2626;border-radius:9px;padding:13px;margin-bottom:15px}@media(max-width:950px){.login-wrap{grid-template-columns:1fr}.visual{min-height:240px;padding:28px 7vw}.visual:before{inset:0 0 0 45%;opacity:.28}.visual:after{inset:0;background:linear-gradient(90deg,#e8f6ff 30%,transparent)}.visual-top{max-width:700px}.motto{margin:12px 0}.features{max-width:630px}.auth-side{padding:30px 20px 50px}.auth{max-width:650px}}@media(max-width:560px){.visual{min-height:190px}.logo{width:185px}.motto{font-size:10px}.features{gap:5px}.feature{font-size:9px;padding:12px 4px}.feature .symbol{font-size:21px}.auth{padding:28px 23px}.auth h1{font-size:31px}}
