@font-face{font-family:"Recruit Rounded";src:url("recruit-rounded.woff2") format("woff2");font-style:normal;font-weight:500;font-display:swap}
:root{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:#18372b;background:#f5f8f6}
*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer}
.auth-page{min-height:100vh;background:radial-gradient(circle at 12% 12%,#dff1e7 0,transparent 34%),radial-gradient(circle at 92% 88%,#f8e9d7 0,transparent 33%),linear-gradient(#ffffffd9,#ffffffd9),linear-gradient(90deg,#e7efea 1px,transparent 1px),linear-gradient(#e7efea 1px,transparent 1px);background-size:auto,auto,auto,32px 32px,32px 32px}
.auth-shell{min-height:100vh;max-width:1400px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,520px);align-items:center;gap:clamp(48px,6vw,104px);padding:clamp(32px,6vh,72px) clamp(32px,7vw,112px)}
.auth-intro{width:100%;max-width:440px;font-family:"Recruit Rounded","Yuanti SC","YouYuan",sans-serif;font-weight:500}.auth-brand{display:flex;align-items:center;gap:14px}.auth-logo{display:block;flex:none;width:80px;height:80px;object-fit:contain}.auth-kicker{color:#294637;font-size:clamp(19px,1.8vw,24px);font-weight:500;letter-spacing:0;white-space:nowrap}.auth-card-kicker{color:#078455;font-size:16px;font-weight:800;letter-spacing:.08em}.auth-intro h1{display:flex;flex-direction:column;align-items:center;gap:8px;margin:36px 0 0;font-weight:500;line-height:1.4;letter-spacing:.02em;text-align:center}.auth-intro h1 span{display:block;white-space:nowrap}.auth-slogan-lead{font-size:clamp(25px,2.4vw,33px);color:#294637}.auth-slogan-main{font-size:clamp(35px,3.3vw,46px);color:#078455}
.auth-card{width:100%;padding:48px 52px 40px;border:1px solid #cfe4d7;border-radius:34px;background:#ffffffed;box-shadow:0 30px 80px #264c3726}.auth-card-kicker{margin:0 0 12px}.auth-card h2{font-size:34px;line-height:1.2;margin:0;color:#17372b}.auth-card>p{margin:12px 0 28px;color:#7c8e83}.auth-card label{display:block;margin:18px 0 0;color:#344b40;font-size:14px;font-weight:750}.auth-card label[hidden]{display:none}.auth-card input{width:100%;height:58px;margin-top:8px;padding:0 18px;border:1px solid #d9e3dd;border-radius:14px;background:#fbfcfb;color:#1f3f31;outline:none}.auth-card input:focus{border-color:#28a16d;box-shadow:0 0 0 4px #dff3e7}.auth-error{min-height:22px;margin:12px 0 0!important;color:#b14f3f!important;font-size:13px}.auth-card button{width:100%;height:58px;margin-top:8px;border:0;border-radius:999px;background:linear-gradient(95deg,#098a55,#f28a16);color:#fff;font-weight:800;box-shadow:0 16px 30px #1f8a5440}.auth-card button:disabled{opacity:.6;cursor:not-allowed}.auth-foot{margin-top:28px;padding-top:22px;border-top:1px solid #e4ece7;color:#9aaba1;font-size:12px}.auth-foot a{color:#078455;text-decoration:none;font-weight:700}.auth-foot a:hover{text-decoration:underline}
.admin-page{min-height:100vh;background:#f3f7f4}.admin-top{height:74px;padding:0 5vw;display:flex;align-items:center;gap:12px;background:#fff;border-bottom:1px solid #e0e9e3}.admin-logo{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:#e4f3e9;color:#078455;font-size:23px;font-weight:850}.admin-brand{font-size:20px;font-weight:800}.admin-spacer{flex:1}.admin-link,.admin-btn{border:1px solid #d5e5db;border-radius:10px;background:#fff;color:#35634c;padding:9px 13px;text-decoration:none;font-size:13px;font-weight:700}.admin-layout{max-width:1160px;margin:0 auto;padding:34px 24px;display:grid;grid-template-columns:360px minmax(0,1fr);gap:22px}.admin-card{background:#fff;border:1px solid #dee9e2;border-radius:18px;padding:22px;box-shadow:0 8px 28px #294b3810}.admin-card h1,.admin-card h2{margin:0;color:#244536}.admin-card h1{font-size:22px}.admin-card h2{font-size:17px}.admin-note{color:#7c9184;font-size:12px;line-height:1.6;margin:7px 0 18px}.admin-form label{display:block;margin:13px 0 0;color:#55705f;font-size:12px;font-weight:750}.admin-form input{width:100%;height:42px;margin-top:6px;padding:0 11px;border:1px solid #d9e5dd;border-radius:10px;outline:none}.admin-form input:focus{border-color:#28a16d;box-shadow:0 0 0 3px #e0f3e7}.admin-primary{width:100%;height:43px;margin-top:16px;border:0;border-radius:10px;background:#078455;color:#fff;font-weight:800}.admin-message{min-height:19px;margin:9px 0 0;font-size:12px;color:#4f8062}.admin-message.error{color:#b14f3f}.account-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.account-count{font-size:12px;color:#789082}.account-list{display:grid;gap:10px;margin-top:16px}.account-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px;border:1px solid #e2ebe5;border-radius:12px}.account-name{font-weight:800;color:#284a38}.account-meta{margin-top:5px;color:#83958a;font-size:11px}.account-actions{display:flex;gap:7px}.account-actions button{border:1px solid #d8e6dd;border-radius:8px;background:#fff;color:#3b6a51;padding:7px 9px;font-size:11px}.account-actions .danger{color:#a35543}.account-status{display:inline-block;margin-left:7px;padding:2px 6px;border-radius:99px;background:#e8f6ed;color:#178154;font-size:10px}.account-status.off{background:#f3f3f1;color:#8a918c}.empty-accounts{padding:38px;text-align:center;color:#91a097}.reset-dialog{width:min(420px,calc(100vw - 24px));border:1px solid #d8e6dd;border-radius:16px;padding:22px;box-shadow:0 24px 70px #1d382a35}.reset-dialog::backdrop{background:#17332670}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}
.password-control{position:relative;display:block}.auth-card .password-control input{padding-right:58px}.auth-card .password-toggle{position:absolute;top:17px;right:9px;display:grid;place-items:center;width:40px;height:40px;margin:0;padding:0;border:0;border-radius:9px;background:transparent;color:#789184;box-shadow:none}.auth-card .password-toggle:hover{color:#078455;background:#edf6f0}.auth-card .password-toggle:focus-visible{outline:2px solid #28a16d;outline-offset:1px}.password-toggle svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.password-toggle[aria-pressed="true"] .password-eye-slash{display:none}
@media(max-width:1050px){.auth-shell{grid-template-columns:1fr;padding:40px 20px}.auth-intro{display:none}.auth-card{max-width:560px;margin:auto;padding:34px 26px}}
.admin-form textarea{display:block;width:100%;min-height:68px;margin-top:6px;padding:10px 11px;border:1px solid #d9e5dd;border-radius:10px;outline:none;font:inherit;line-height:1.5;resize:vertical}.admin-form textarea:focus{border-color:#28a16d;box-shadow:0 0 0 3px #e0f3e7}.account-detail{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.5}
@media(max-width:900px){.admin-layout{grid-template-columns:1fr}.admin-top{padding:0 18px}.admin-brand{font-size:17px}}
.admin-form .password-control{position:relative;display:block}.admin-form .password-control input{padding-right:48px}.admin-form .password-toggle{position:absolute;top:11px;right:5px;display:grid;place-items:center;width:32px;height:30px;margin:0;padding:0;border:0;border-radius:8px;background:transparent;color:#789184;box-shadow:none}.admin-form .password-toggle:hover{color:#078455;background:#edf6f0}.admin-form .password-toggle:focus-visible{outline:2px solid #28a16d;outline-offset:1px}
