:root{--green:#0e3b2e;--green2:#145c46;--bg:#f4f7f5;--line:#e2e9e6;--txt:#1c2b26;--muted:#6b7d76}
*{box-sizing:border-box}body{margin:0;font-family:-apple-system,"PingFang SC","Microsoft YaHei",Segoe UI,Roboto,Arial;color:var(--txt);background:#fff}
a{text-decoration:none;color:inherit}
.topbar{background:var(--green);color:#d7e5dd;font-size:13px;padding:8px 0}
.wrap{max-width:1180px;margin:0 auto;padding:0 20px}
.topbar .wrap{display:flex;justify-content:space-between;align-items:center}
.langs{display:flex;gap:14px;align-items:center}.langs b{background:#7a9b2d;color:#fff;border-radius:20px;padding:3px 12px;font-size:12px}
.header{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}
.header .wrap{display:flex;align-items:center;gap:34px;padding:14px 20px}
.logo{font-family:Georgia,serif;font-size:34px;color:var(--green);line-height:1}.logo small{display:block;font-family:inherit;font-size:12px;color:#5b7a6e;letter-spacing:.3px;margin-top:4px}
.nav{display:flex;gap:26px;font-size:14px;flex-wrap:wrap}.nav a{color:#2c3f38}.nav a:hover{color:var(--green2)}
.hbtns{margin-left:auto;display:flex;gap:10px;align-items:center}
.btn{border:1px solid var(--line);background:#eef4f0;border-radius:20px;padding:9px 18px;font-size:13px;cursor:pointer}
.btn.dark{background:var(--green);color:#fff;border-color:var(--green)}
.hero{background:var(--bg);padding:34px 0 10px}
.main{background:var(--bg);padding:20px 0 50px}
.grid{display:grid;grid-template-columns:1.05fr .95fr;gap:26px}
.card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:28px}
.card h2{margin:0 0 8px;font-size:26px}.card p.desc{color:#5c6f67;font-size:14px;line-height:1.7;margin:0 0 18px}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.fg{margin-bottom:14px}.fg label{display:block;font-size:13px;margin-bottom:7px;color:#33463f}
.fg input[type=text],.fg input[type=password],.fg input[type=email],.fg input[type=number],.fg textarea,.fg select{width:100%;border:1px solid var(--line);border-radius:14px;padding:12px 14px;font-size:14px;background:#fff;outline:none}
.fg input:focus,.fg textarea:focus,.fg select:focus{border-color:var(--green2);box-shadow:0 0 0 3px #0e3b2e14}
.pay3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
.pay3 label{border:1.5px solid var(--line);border-radius:14px;padding:12px 6px;text-align:center;font-size:13px;cursor:pointer;display:block}
.pay3 input{display:none}.pay3 label.on{border-color:var(--green);background:#eef5f0;font-weight:700}
.upbox{border:1.5px dashed #b9cdc4;border-radius:14px;padding:14px;text-align:center;font-size:13px;color:#57706a;background:#fafcfb;cursor:pointer}
.upbox img{max-width:100%;border-radius:10px;margin-top:8px;max-height:160px}
.consent{border:1px solid var(--line);border-radius:14px;background:#fafcfb}
.consent .ctext{height:170px;overflow-y:auto;padding:14px;font-size:13px;line-height:1.8;white-space:pre-wrap;color:#3c4f47}
.consent .ctip{border-top:1px solid var(--line);padding:9px 14px;font-size:12px;color:#8aa09a}
.agree{display:flex;gap:9px;align-items:flex-start;font-size:13px;margin:12px 0}
.submit{width:100%;background:var(--green);color:#fff;border:0;border-radius:14px;padding:14px;font-size:16px;cursor:pointer}
.submit:disabled{background:#9db5ac;cursor:not-allowed}
.req{color:#c0392b}
.info-item{background:#f6f9f8;border-radius:16px;padding:16px 18px;margin-bottom:14px}
.info-item .k{font-size:11px;letter-spacing:2px;color:#8fa19a;margin-bottom:8px}
.info-item .v{font-size:15px;line-height:1.7;white-space:pre-wrap}
.info-item .v.big{font-size:18px;font-weight:700}
.wa{display:block;background:#fff;border:1px solid var(--line);border-radius:14px;padding:11px 14px;font-size:13px;margin-top:9px;color:#2c3f38}
.footer{background:#0d2b23;color:#cfe0d7;margin-top:0}
.footer .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr 1.2fr;gap:20px;padding:44px 0 10px}
.footer h4{margin:0 0 12px;font-size:13px;color:#e8f2ec;font-weight:600}
.footer a,.footer p{font-size:13px;line-height:2;color:#b9cec4;display:block;margin:0}
.footer .blogo{font-family:Georgia,serif;font-size:34px;color:#fff}
.subbox{display:flex;background:#ffffff22;border:1px solid #ffffff33;border-radius:22px;padding:5px;margin-top:10px}
.subbox input{flex:1;background:transparent;border:0;outline:0;color:#fff;padding:10px 12px}
.subbox button{background:#4a6b5e;border:0;color:#fff;border-radius:50%;width:36px;height:36px;cursor:pointer}
.walist{padding:18px 0;border-top:1px solid #ffffff22;margin-top:14px;font-size:13px;line-height:2;color:#b9cec4}
.copy{border-top:1px solid #ffffff22;margin:14px 0 0;padding:18px 0 22px;display:flex;justify-content:space-between;font-size:12px;color:#9db5ac;flex-wrap:wrap;gap:8px}
.copy a{display:inline;color:#9db5ac;margin-left:16px;white-space:nowrap}
.copy>div:last-child{white-space:nowrap}
.float-wa{position:fixed;right:18px;bottom:22px;background:var(--green);color:#fff;border-radius:40px;padding:10px 20px 10px 10px;display:flex;gap:10px;align-items:center;box-shadow:0 8px 24px #0003;font-size:13px}
.float-wa .ic{width:36px;height:36px;border-radius:50%;background:#ffffff33;display:flex;align-items:center;justify-content:center}
.ok{background:#e8f5ee;border:1px solid #bfe3cf;color:#1c6b44;border-radius:14px;padding:14px;margin-bottom:14px;font-size:14px}
.err{background:#fdecea;border:1px solid #f5c6c0;color:#a93226;border-radius:14px;padding:14px;margin-bottom:14px;font-size:14px}
@media(max-width:900px){.grid{grid-template-columns:1fr}.footer .cols{grid-template-columns:1fr 1fr}.frow{grid-template-columns:1fr}.header .wrap{flex-wrap:wrap}.hbtns{margin-left:0}}
/* admin */
.adm{background:#eef2ef;min-height:100vh}.atable{width:100%;border-collapse:separate;border-spacing:0;font-size:13px;background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden}.atable th,.atable td{padding:12px;text-align:left;vertical-align:top}.atable th{background:#0e3b2e;color:#fff;white-space:nowrap;font-weight:600;font-size:12px;letter-spacing:.3px}.atable tr:not(:last-child) td{border-bottom:1px solid #e5ece9}.tag{font-size:11px;border-radius:20px;padding:3px 10px;background:#e7f0eb;color:#0e3b2e;font-weight:600}.tabs{display:flex;gap:10px;margin:16px 0;flex-wrap:wrap}.tabs a{background:#fff;border:1px solid var(--line);border-radius:20px;padding:9px 18px;font-size:13px;box-shadow:0 1px 2px #00000008}.tabs a.on{background:var(--green);color:#fff;border-color:var(--green)}
.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(800px 400px at 50% 0%,#dcebe2,#eef2ef);padding:20px}
.login-card{width:400px;max-width:100%;background:#fff;border:1px solid var(--line);border-radius:24px;padding:36px 32px;box-shadow:0 20px 50px #0e3b2e14}
.login-card h2{margin:0;font-size:26px;color:#0e3b2e}.login-card .sub{color:#7b8f87;font-size:13px;margin:6px 0 20px}
.login-card .submit{border-radius:16px;margin-top:6px}
.modal{display:none;position:fixed;inset:0;background:#00000088;z-index:99;align-items:center;justify-content:center;padding:20px}
.modal.open{display:flex}
.mbox{background:#fff;border-radius:20px;max-width:640px;width:100%;max-height:88vh;overflow:auto;box-shadow:0 24px 60px #00000044}
.mhead{position:sticky;top:0;background:#0e3b2e;color:#fff;padding:14px 20px;display:flex;justify-content:space-between;align-items:center}
.mx{cursor:pointer;font-size:24px;line-height:1;padding:0 4px}
.mbody{padding:8px 20px 20px}
.mrow{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid #eef2f0;font-size:14px}
.mrow .k{width:90px;color:#8aa09a;flex-shrink:0}
.pages{display:flex;gap:8px;align-items:center;justify-content:center;margin:18px 0 4px;flex-wrap:wrap}
.pages a{background:#fff;border:1px solid var(--line);border-radius:14px;padding:8px 14px;font-size:13px}
.pages b{background:var(--green);color:#fff;border-radius:14px;padding:8px 14px;font-size:13px}
.pages span{font-size:13px;color:#8aa09a}
.pages .pginfo{margin-left:6px}
.ferr{color:#c0392b;font-size:12px;margin-top:6px;display:none}
.fg.invalid input,.fg.invalid textarea,.fg.invalid select{border-color:#c0392b}
.fg.invalid .upbox{border-color:#c0392b;background:#fdf2f1}
.fg.invalid .pay3 label{border-color:#c0392b}
