:root{color:#10233f;font-family:Segoe UI Variable Display,Noto Sans TC,Helvetica Neue,sans-serif;line-height:1.5;font-synthesis:none;font-weight:400;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{background:radial-gradient(circle at top left,rgba(0,100,211,.14),transparent 34%),linear-gradient(135deg,#eef4fb,#f8fbff 45%,#eef3f9)}button,input{font:inherit}img{display:block;max-width:100%}.app-shell{display:grid;grid-template-columns:minmax(380px,480px) 1fr;min-height:100vh}.login-pane{display:flex;align-items:center;justify-content:center;padding:32px}.login-card{width:min(100%,430px);border:1px solid rgba(0,79,168,.1);border-radius:28px;background:#ffffffeb;box-shadow:0 28px 80px #10233f1f;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);padding:28px}.toolbar-row{display:flex;align-items:center;justify-content:space-between;gap:16px}.eyebrow{color:#0064d3;font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.language-toggle{display:inline-flex;padding:4px;border-radius:999px;background:#0064d314}.language-toggle button{border:0;border-radius:999px;background:transparent;color:#4d637d;cursor:pointer;min-width:54px;padding:9px 12px}.language-toggle button.active{background:#fff;box-shadow:0 10px 24px #0064d329;color:#10233f;font-weight:700}.department-logo{height:68px;margin:26px 0 20px;object-fit:contain;object-position:left center}.intro-copy h1{margin:0;color:#10233f;font-size:clamp(1.95rem,5vw,2.4rem);line-height:1.02}.intro-copy p{margin:12px 0 0;color:#53677f;font-size:1rem}.login-form{display:grid;gap:16px;margin-top:28px}.login-form label{display:grid;gap:8px}.login-form span{color:#28425e;font-size:.95rem;font-weight:700}.login-form input{width:100%;border:1px solid rgba(16,35,63,.12);border-radius:16px;background:#f8fbff;color:#10233f;padding:15px 16px;transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease}.login-form input:focus{outline:none;border-color:#0064d3;box-shadow:0 0 0 4px #0064d324;background:#fff}.login-button{border:0;border-radius:18px;background:linear-gradient(135deg,#0064d3,#0e82f0);box-shadow:0 18px 40px #0064d347;color:#fff;cursor:pointer;font-size:1rem;font-weight:700;padding:16px 18px}.login-button:disabled{cursor:wait;opacity:.8}.error-banner{margin:0;border-radius:14px;background:#be242414;color:#a02222;padding:12px 14px}.notice-panel{margin-top:24px;padding-top:24px;border-top:1px solid rgba(16,35,63,.08)}.notice-panel h2{margin:0 0 10px;color:#10233f;font-size:1rem}.notice-panel p{margin:0;color:#53677f;font-size:.87rem}.notice-panel p+p{margin-top:12px}.hero-pane{position:relative;overflow:hidden;width:80%;max-width:100%;justify-self:start}.hero-image,.hero-overlay{position:absolute;inset:0}.hero-image{background-image:url(/image/coverimage-login.webp);background-position:center center;background-repeat:no-repeat;background-size:cover;transform:scale(1.08)}.hero-overlay{background:#0064d3b3}.hero-watermark{position:absolute;top:50%;left:54%;z-index:2;transform:translate(-50%,-50%) rotate(-24deg);color:#ffffff29;font-size:clamp(4rem,11vw,10rem);font-weight:800;letter-spacing:.2em;text-transform:uppercase;white-space:nowrap}.hero-copy{position:relative;z-index:3;display:flex;height:100%;flex-direction:column;justify-content:flex-end;padding:56px 56px 52px;color:#fff}.hero-kicker{opacity:.8;font-size:.84rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.hero-copy h2{margin:14px 0 0;font-size:clamp(2.6rem,5vw,4.3rem);line-height:.96}.hero-copy p{margin:14px 0 0;max-width:16ch;font-size:clamp(1.15rem,2vw,1.6rem)}.developing-screen{display:grid;min-height:100vh;place-items:center;background:#fff;color:#10233f;font-size:clamp(2rem,5vw,3.4rem);font-weight:700}@media(max-width:980px){.app-shell{grid-template-columns:1fr}.hero-pane{width:100%;min-height:42vh;order:-1}.hero-copy{justify-content:flex-end;padding:32px 28px 28px}.hero-watermark{left:50%;font-size:clamp(3.4rem,13vw,7.2rem)}.login-pane{padding:20px}}@media(max-width:640px){.login-card{border-radius:22px;padding:22px}.department-logo{height:54px}.hero-pane{min-height:36vh}}
