:root{--navy:#14263d;--blue:#2463a2;--line:#dce5ed;--ink:#172434;--muted:#68798a;--red:#b82432}*{box-sizing:border-box}body{margin:0;background:#edf2f6;color:var(--ink);font-family:Arial,"Noto Sans TC",sans-serif}.authShell{min-height:100vh;display:grid;place-items:center;padding:24px}.authCard{width:min(440px,100%);background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 50px rgba(20,38,61,.12);overflow:hidden}.brand{display:flex;align-items:center;gap:13px;padding:20px 24px;background:var(--navy);color:#fff}.logo{width:46px;height:46px;display:grid;place-items:center;border:1px solid #7189a2;border-radius:11px;font-weight:800}.brand small{opacity:.7;letter-spacing:.08em}.brand h1{margin:3px 0 0;font-size:20px}.authIntro{padding:26px 26px 10px}.authIntro p{margin:0;color:var(--blue);font-size:12px;font-weight:800;letter-spacing:.08em}.authIntro h2{margin:5px 0 8px}.authIntro span,.hint{color:var(--muted);font-size:12px;line-height:1.6}.notice,.error{margin:10px 26px 0;padding:11px 13px;border-radius:8px;font-size:13px}.notice{background:#eaf7ef;color:#267548}.error{background:#fff0f1;color:var(--red)}form{display:grid;gap:15px;padding:20px 26px 28px}label{color:#405267;font-size:12px;font-weight:700}input{width:100%;margin-top:7px;padding:12px;border:1px solid #ccd9e4;border-radius:8px;font:inherit;outline:none}input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(36,99,162,.12)}button{cursor:pointer;border:0;border-radius:8px;padding:12px;background:var(--blue);color:#fff;font:inherit;font-weight:700}.back{text-align:center;color:var(--blue);font-size:13px;text-decoration:none}
