*{box-sizing:border-box}body{margin:0;font-family:"Noto Sans Thai",sans-serif;color:var(--text);background:#f4f8fe}.login-shell{display:grid;grid-template-columns:1.05fr .95fr;min-height:100vh}.login-brand{position:relative;display:grid;place-items:center;overflow:hidden;padding:50px;color:#fff;background:linear-gradient(145deg,var(--navy),var(--primary)),url('/assets/images/site/campus-wide.jpg') center/cover}.login-brand>a{position:absolute;top:30px;left:35px;color:#fff}.login-brand>div{text-align:center}.login-mark{display:grid;width:100px;height:100px;place-items:center;margin:auto;border:4px double var(--brand-secondary);border-radius:50%;color:var(--brand-secondary);background:rgba(255,255,255,.1);font-size:42px}.login-brand h1{margin:20px 0 4px;font-size:38px}.login-brand p{margin:0;font-size:17px}.login-panel{display:grid;place-items:center;padding:35px}.login-card{width:min(100%,460px);padding:42px;border:1px solid var(--border);border-radius:18px;background:#fff;box-shadow:var(--shadow)}.login-heading{text-align:center}.login-heading>span{display:grid;width:58px;height:58px;place-items:center;margin:auto;border-radius:14px;color:#fff;background:var(--primary);font-size:24px}.login-heading h2{margin:14px 0 0;color:var(--ink);font-size:27px}.login-heading p{margin:4px 0 24px;color:var(--muted)}.login-card label{display:grid;gap:7px;margin-bottom:16px;color:var(--ink);font-weight:600}.input-icon{position:relative}.input-icon i{position:absolute;top:15px;left:14px;color:#8ca2c2}.input-icon input{width:100%;height:50px;padding:10px 14px 10px 42px;border:1px solid var(--border);border-radius:8px}.login-card .button{width:100%;margin-top:5px}.login-card>small{display:block;margin-top:18px;color:var(--muted);text-align:center}@media(max-width:800px){.login-shell{grid-template-columns:1fr}.login-brand{min-height:260px}.login-brand h1{font-size:27px}.login-mark{width:74px;height:74px;font-size:28px}.login-panel{padding:24px}.login-card{padding:28px}}


.login-mark img { display: block; width: 100%; height: 100%; object-fit: contain; }
