*{box-sizing:border-box}body{margin:0;background:#14352f;color:#ecf5ed;font-family:"Microsoft JhengHei",system-ui,sans-serif;min-height:100vh}.backdrop{position:fixed;inset:0;background:linear-gradient(110deg,#153c36bd,#142d37b8),url('/login-background.png') center/cover;z-index:-1}.topbrand{position:absolute;top:30px;left:36px;display:flex;align-items:center;gap:15px;font-size:24px;font-weight:700}.seal{display:grid;place-items:center;border:1px solid #cfe2d5;border-radius:50%;height:54px;width:54px;font-size:21px;background:#f1f7eb;color:#204d40}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:115px 20px 60px}.card{width:min(410px,100%);background:#142f34ed;border:1px solid #6e9c9060;border-radius:20px;padding:30px;box-shadow:0 25px 100px #061e2450}small{color:#a9c5b6;letter-spacing:.18em;font-size:10px}h1{font-size:23px;margin:10px 0 12px}p{font-size:13px;line-height:1.9;color:#bdd0cc;white-space:pre-wrap}label{display:block;font-size:13px;color:#d4e4de;margin:24px 0 8px}input,textarea{display:block;width:100%;font:inherit;color:#eff9f5;border:1px solid #597c79;border-radius:9px;padding:13px;background:#0d232b}input:focus,textarea:focus{outline:2px solid #c5e5b5;outline-offset:2px}button{font:inherit;cursor:pointer;border-radius:9px;padding:13px 18px;background:#d6e9c2;color:#173b32;font-weight:700;border:0}form>button{width:100%;margin-top:16px}button:disabled{opacity:.6;cursor:wait}.separator{display:flex;align-items:center;gap:14px;margin:26px 0 16px;color:#a1bdb4;font-size:12px}.separator:before,.separator:after{content:'';height:1px;flex:1;background:#52766a70}#google-login{min-height:44px;display:flex;justify-content:center}#message{min-height:24px;color:#ffd3b9}.credit{color:#d2e2d8;text-align:center;font-size:11px;margin-top:23px}.admin-wrap{max-width:820px;margin:0 auto;padding:35px 20px}.admin-head{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap}a{color:#d6e9c2}.admin-card{margin-top:30px;width:100%}.muted{font-size:12px;color:#a1bdb4}.secondary{background:transparent;color:#dce8e0;border:1px solid #597c79}.admin-actions{margin-top:20px}#status{color:#d5ecc5}@media(max-width:500px){.topbrand{left:20px;top:22px;font-size:19px}.card{padding:25px}}

.backdrop{background-size:cover,155% auto;background-position:center,85% 52%}@media(max-aspect-ratio:1/1){.backdrop{background-size:cover,auto 155%;background-position:center,70% center}}
