@import "https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&family=Caveat:wght@600&display=swap";
@tailwind base;@tailwind components;@tailwind utilities;:root{--ink:#12325b;--ink-soft:#1b3a5c;--muted:#5b7291;--faint:#8aa0b8;--placeholder:#9bb0c7;--blue:#2f74dc;--blue-deep:#1b3f9e;--blue-tint:#e8f1fd;--border:#dce7f3;--border-soft:#e9f0f8;--panel:#fff;--page:#eaf2fb;--danger:#e2483d}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{min-height:100vh;color:var(--ink);background:var(--page);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-family:Poppins,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}button,input{font:inherit}button:disabled,input:disabled{cursor:not-allowed;opacity:.72}.login-page{background:radial-gradient(60rem 40rem at 88% 8%,#dfeaf9 0%,#dfeaf900 60%),radial-gradient(48rem 36rem at 96% 82%,#e3edfb 0%,#e3edfb00 62%),linear-gradient(#f2f7fd 0%,#e8f1fb 100%);flex-direction:column;min-height:100vh;display:flex}.scene{flex:1;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);min-height:0;display:grid}.hero{background-image:linear-gradient(102deg,#fffffff2 0%,#ffffffe0 34%,#ffffff8c 58%,#e9f3fd40 100%),url(/assets/campus-hero.png);background-position:bottom;background-size:cover;flex-direction:column;justify-content:center;padding:3.5rem clamp(2rem,4vw,4rem);display:flex;position:relative;overflow:hidden}.hero-inner{z-index:1;max-width:30rem;position:relative}.crest-chip{background:var(--panel);border-radius:1.15rem;place-items:center;width:5.25rem;height:5.25rem;margin-bottom:1.75rem;display:grid;box-shadow:0 .75rem 2rem #153f772e}.crest-chip img{object-fit:contain;width:78%;height:78%}.hero h1{letter-spacing:-.015em;color:#11365f;margin:0;font-size:clamp(1.9rem,3.1vw,2.7rem);font-weight:700;line-height:1.16}.hero-loc{align-items:center;gap:.85rem;margin-top:1rem;display:flex}.hero-loc span{background:var(--blue);border-radius:999px;width:2.25rem;height:.2rem}.hero-loc strong{letter-spacing:.32em;color:#2c5d99;font-size:.95rem;font-weight:600}.hero-tag{color:#43607f;max-width:24rem;margin:1.4rem 0 0;font-size:1.05rem;line-height:1.62}.hero-badges{align-items:center;gap:1.1rem;margin-top:1.9rem;display:flex}.hero-badge{color:#2b537f;align-items:center;gap:.55rem;font-size:.97rem;font-weight:500;display:inline-flex}.hero-badge svg{fill:none;width:1.2rem;height:1.2rem;stroke:var(--blue);stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round}.badge-sep{background:#b6cbe2;width:1px;height:1.1rem}.hero-motto{z-index:1;color:#1b4fa0;text-shadow:0 .1rem .7rem #ffffffe6;margin:auto 0 0;padding-top:2.5rem;font-family:Caveat,Segoe Script,cursive;font-size:clamp(1.5rem,2.3vw,2rem);position:relative}.hero-motto b{opacity:.85;margin:0 .5rem;font-weight:600}.form-side{flex-direction:column;justify-content:center;align-items:center;gap:1.75rem;padding:3rem clamp(1.5rem,3.5vw,3.5rem);display:flex}.card{background:var(--panel);border-radius:1.5rem;width:min(100%,33rem);padding:clamp(2rem,3vw,2.75rem);box-shadow:0 1.5rem 3.5rem #143a6b1f}.wave{margin-bottom:.85rem;font-size:1.85rem;line-height:1;display:block}.welcome-heading{letter-spacing:-.02em;color:var(--ink);margin:0;font-size:clamp(1.85rem,2.6vw,2.35rem);font-weight:700}.welcome-sub{color:var(--muted);margin:.45rem 0 0;font-size:1.02rem}.tabs{border:1px solid var(--border-soft);background:#f5f9fe;border-radius:.95rem;grid-template-columns:1fr 1fr;gap:.35rem;margin-top:1.7rem;padding:.35rem;display:grid}.tab{color:#3d5f87;cursor:pointer;background:0 0;border:0;border-radius:.7rem;justify-content:center;align-items:center;gap:.6rem;padding:.8rem .5rem;font-size:1rem;font-weight:500;transition:background .18s,color .18s,box-shadow .18s;display:inline-flex}.tab svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:1.2rem;height:1.2rem}.tab.active{background:var(--blue-tint);color:#1b4fa0;font-weight:600;box-shadow:inset 0 0 0 1px #2f74dc2e}.tab:not(.active):not(:disabled):hover{background:#eef4fc}.field-group{margin-top:1.4rem;display:block}.field-group>span:not(.input-wrap){color:var(--ink-soft);margin-bottom:.55rem;font-size:.95rem;font-weight:600;display:block}.required-marker{color:var(--danger);font-weight:700}.role-dropdown{position:relative}.input-wrap,.select-box{border:1px solid var(--border);background:#fdfeff;border-radius:.8rem;align-items:center;gap:.75rem;width:100%;height:3.4rem;padding:0 1rem;transition:border-color .18s,box-shadow .18s;display:flex}.input-wrap svg,.select-label svg{fill:none;stroke:#7d9bbd;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:1.3rem;height:1.3rem}.input-wrap:focus-within,.select-box.open,.select-box:focus-visible{border-color:var(--blue);outline:none;box-shadow:0 0 0 4px #2f74dc21}.input-wrap input{min-width:0;height:100%;color:var(--ink);background:0 0;border:0;outline:none;flex:1;padding:0;font-size:1rem;font-weight:400;line-height:1.2}.input-wrap input::placeholder{color:var(--placeholder)}.select-box{cursor:pointer;text-align:left;color:var(--ink);justify-content:space-between}.select-label{align-items:center;gap:.75rem;min-width:0;font-size:1rem;display:inline-flex}.select-label .is-placeholder{color:var(--placeholder)}.chevron{fill:none;stroke:#7d9bbd;stroke-width:1.9px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:1.25rem;height:1.25rem;transition:transform .18s}.select-box.open .chevron{transform:rotate(180deg)}.role-menu{z-index:20;border:1px solid var(--border);background:var(--panel);border-radius:.8rem;max-height:15rem;padding:.35rem;position:absolute;top:calc(100% + .45rem);left:0;right:0;overflow-y:auto;box-shadow:0 1rem 2.5rem #143a6b29}.role-menu-option{text-align:left;width:100%;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:.55rem;padding:.75rem .85rem;font-size:.98rem;display:block}.role-menu-option:hover,.role-menu-option.selected{background:var(--blue-tint);color:#1b4fa0;font-weight:600}.form-message{color:#b3372c;background:#fdf1f0;border:1px solid #f6c9c4;border-radius:.7rem;margin-top:1rem;padding:.8rem 1rem;font-size:.93rem}.sign-in{background:linear-gradient(90deg, var(--blue) 0%, var(--blue-deep) 100%);color:#fff;cursor:pointer;border:0;border-radius:.8rem;justify-content:center;align-items:center;gap:.7rem;width:100%;margin-top:1.7rem;padding:1.05rem 1.25rem;font-size:1.05rem;font-weight:600;transition:filter .18s,transform .18s,box-shadow .18s;display:inline-flex;box-shadow:0 .7rem 1.5rem #1b3f9e47}.sign-in:not(:disabled):hover{filter:brightness(1.06);transform:translateY(-1px);box-shadow:0 .9rem 1.9rem #1b3f9e57}.sign-in:disabled{box-shadow:none}.sign-in svg{fill:none;stroke:currentColor;stroke-width:1.9px;stroke-linecap:round;stroke-linejoin:round;width:1.25rem;height:1.25rem}.loader{border:2px solid #ffffff73;border-top-color:#fff;border-radius:50%;width:1.2rem;height:1.2rem;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.or-row{color:var(--faint);letter-spacing:.08em;align-items:center;gap:1rem;margin-top:1.5rem;font-size:.85rem;font-weight:500;display:flex}.or-row:before,.or-row:after{content:"";background:#e1eaf4;flex:1;height:1px}.administrator{color:var(--muted);text-align:center;flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;margin:1.35rem 0 0;font-size:.93rem;display:flex}.administrator svg{fill:none;width:1.15rem;height:1.15rem;stroke:var(--blue);stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;flex:none}.administrator strong{color:#1b4fa0;font-weight:600}.page-footer{color:var(--muted);flex-wrap:wrap;justify-content:center;align-items:center;gap:.75rem;padding:1.25rem 1.5rem 1.6rem;font-size:.88rem;display:flex}.page-footer i{color:#b8c9dc;font-style:normal}.footer-link{cursor:pointer}.footer-link:hover{color:#1b4fa0;text-decoration:underline}@media (max-width:960px){.scene{grid-template-columns:minmax(0,1fr)}.hero{text-align:center;background-image:linear-gradient(#ffffffeb 0%,#ffffffdb 55%,#ecf4fdd1 100%),url(/assets/campus-hero.png);align-items:center;padding:3rem 1.5rem 2.5rem}.hero-inner{max-width:34rem}.crest-chip{margin-inline:auto}.hero-loc,.hero-badges{justify-content:center}.hero-tag{margin-inline:auto}.hero-motto{text-align:center;padding-top:1.75rem}.form-side{padding:2.5rem 1.25rem 3rem}}@media (max-width:480px){.card{border-radius:1.15rem;padding:1.5rem 1.25rem}.tabs{grid-template-columns:1fr}.hero-badges{flex-wrap:wrap;row-gap:.6rem}}
