:root{--green:#0b5d3b;--deep:#063c29;--mint:#e9f4ed;--gold:#c8a454;--ink:#173128;--muted:#64756e;--line:#dce8e1;--white:#fff}*{box-sizing:border-box}body{margin:0;background:#f5f8f6;color:var(--ink);font-family:"Microsoft YaHei",system-ui,sans-serif}header{background:var(--deep);padding:14px max(18px,calc((100% - 1120px)/2));color:#fff}.brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-weight:700}.brand small{font-weight:400;opacity:.72}.mark{display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--gold);border-radius:50%;color:#f0d68a}main{max-width:1120px;margin:auto;padding:22px 18px 60px}.hero{padding:34px 24px;border-radius:22px;background:linear-gradient(135deg,var(--deep),var(--green));color:#fff;box-shadow:0 14px 35px #063c2922}.hero h1{font-size:clamp(30px,6vw,54px);line-height:1.15;margin:8px 0 14px}.hero p{margin:0;opacity:.8}.eyebrow{color:var(--gold)!important;letter-spacing:.12em;font-size:13px}.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:20px}.card{background:#fff;border:1px solid var(--line);padding:20px;border-radius:16px;color:var(--ink);text-decoration:none;display:flex;flex-direction:column;min-height:142px}.card b{font-size:20px}.card span{color:var(--muted);font-size:14px;margin-top:8px}.card i{font-style:normal;color:var(--green);margin-top:auto;font-weight:700}.admin-link{display:block;text-align:center;color:var(--muted);margin:24px}.page-head a,.admin-head a{color:var(--green)}.page-head h1{margin-bottom:4px}form{background:#fff;padding:22px;border:1px solid var(--line);border-radius:18px;max-width:760px}label{display:block;font-weight:700;margin-bottom:18px}input,select,textarea{width:100%;font:inherit;margin-top:8px;border:1px solid #bdcec5;border-radius:10px;padding:13px;background:#fff;color:var(--ink)}textarea{min-height:100px;resize:vertical}label small{display:block;color:var(--muted);font-weight:400;margin-top:7px}.row{display:grid;grid-template-columns:1fr 1fr;gap:14px}button,.button{display:inline-block;border:0;border-radius:10px;background:var(--green);color:#fff;padding:13px 22px;font:inherit;font-weight:700;text-decoration:none;cursor:pointer}form>button{width:100%;font-size:18px}.success{text-align:center;background:#fff;border-radius:20px;padding:55px 20px}.success div{margin:auto;display:grid;place-items:center;width:72px;height:72px;border-radius:50%;background:var(--mint);color:var(--green);font-size:38px}.success a{display:block;margin:12px auto;max-width:280px}.login{max-width:480px;margin:40px auto}.login form{margin-top:20px}.alert{padding:12px;background:#fff2d5;color:#744c00;border-radius:10px;margin-bottom:15px}.admin-head{display:flex;justify-content:space-between;align-items:end;gap:20px}.admin-head h1{margin:3px 0}.admin-head>div:last-child{display:flex;gap:12px;align-items:center}.secondary{background:#fff;color:var(--green);border:1px solid var(--green)}.stats{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin:20px 0}.stats div{background:#fff;border:1px solid var(--line);border-radius:12px;padding:15px}.stats b{font-size:28px;color:var(--green);display:block}.stats span{font-size:13px;color:var(--muted)}.filters{display:flex;gap:10px;max-width:none;padding:12px;margin-bottom:12px}.filters select{margin:0}.filters button{width:auto}.table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:14px}table{border-collapse:collapse;width:100%;min-width:850px}th,td{text-align:left;padding:13px;border-bottom:1px solid var(--line);vertical-align:top}th{background:var(--mint);font-size:13px}td small{display:block;color:var(--muted);margin-top:5px}.empty{text-align:center;color:var(--muted);padding:50px}footer{text-align:center;padding:24px;color:var(--muted);font-size:13px}footer div{margin-bottom:6px}footer a{color:var(--muted);text-decoration:none}footer a:hover{text-decoration:underline}@media(max-width:640px){main{padding:14px 12px 50px}.hero{padding:26px 18px}.grid{grid-template-columns:1fr}.row{grid-template-columns:1fr;gap:0}form{padding:16px}.admin-head{align-items:flex-start;flex-direction:column}.stats{grid-template-columns:repeat(2,1fr)}.filters{flex-wrap:wrap}.filters select{width:calc(50% - 5px)}.filters button{width:100%}}
