:root{--navy:#14203a;--navy2:#1d2d4d;--teal:#23bcb5;--bg:#f4f7fb;--text:#192537;--muted:#708097;--line:#e5ebf3;--red:#d94b59}
*{box-sizing:border-box}body{margin:0;font-family:"Microsoft YaHei UI","Segoe UI",sans-serif;background:var(--bg);color:var(--text)}
.hidden{display:none!important}.login-wrap{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#13203b,#1f3a5b 58%,#22a9a5)}
.login-card{width:390px;padding:38px;border-radius:22px;background:#fff;box-shadow:0 28px 70px #08122666}.logo{width:58px;height:58px;border-radius:17px;background:var(--teal);color:#fff;display:grid;place-items:center;font-size:28px;font-weight:700;margin:auto}
.login-card h1{text-align:center;margin:18px 0 5px}.login-card>p{text-align:center;color:var(--muted);margin:0 0 28px}.login-card label{display:block;font-size:14px;color:#53637a;margin:15px 0}.login-card input{display:block;width:100%;margin-top:7px;padding:13px;border:1px solid var(--line);border-radius:10px;font-size:15px;outline:none}.login-card input:focus{border-color:var(--teal);box-shadow:0 0 0 3px #23bcb51c}
button{font:inherit;cursor:pointer}.primary{border:0;border-radius:10px;background:var(--teal);color:#fff;padding:12px 18px;font-weight:700}.login-card .primary{width:100%;margin-top:9px}.error{color:var(--red);font-size:13px;min-height:20px;margin-top:10px;text-align:center}
.app{min-height:100vh;display:grid;grid-template-columns:235px 1fr}aside{background:var(--navy);color:#fff;padding:22px 16px;display:flex;flex-direction:column}.brand{display:flex;gap:12px;align-items:center;padding:4px 6px 28px}.logo.small{width:43px;height:43px;border-radius:12px;font-size:20px;margin:0}.brand b,.brand small{display:block}.brand small{color:#8fa7c9;margin-top:4px}
nav{display:grid;gap:7px}nav button,.logout{border:0;background:transparent;color:#bdcbe0;text-align:left;padding:13px 16px;border-radius:11px}nav button:hover{background:var(--navy2);color:#fff}nav button.active{background:var(--teal);color:#fff;font-weight:700}.logout{margin-top:auto;color:#91a7c7}
main{min-width:0}header{height:78px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 30px}header h2{margin:0;font-size:23px}header p{margin:5px 0 0;color:var(--muted);font-size:13px}.badge{padding:7px 11px;border-radius:999px;font-size:13px}.badge.ok{background:#e6f8f1;color:#138a5b}
#content{padding:26px 30px}.stats{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:18px}.stat,.panel{background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:0 8px 26px #23334a0a}.stat{padding:22px}.stat small{color:var(--muted)}.stat strong{display:block;font-size:30px;margin-top:10px}.panel{margin-top:20px;padding:22px}.panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.panel h3{margin:0}.toolbar{display:flex;gap:10px;flex-wrap:wrap}.secondary{border:1px solid var(--line);background:#fff;color:var(--text);border-radius:9px;padding:9px 14px}
table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;border-bottom:1px solid var(--line);padding:12px 10px}th{color:var(--muted);font-weight:600}.empty{text-align:center;color:var(--muted);padding:42px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:14px}.form-grid label{font-size:13px;color:var(--muted)}.form-grid input,.form-grid select,.form-grid textarea{width:100%;margin-top:6px;padding:10px;border:1px solid var(--line);border-radius:8px;font:inherit}.form-grid .wide{grid-column:1/-1}.form-actions{grid-column:1/-1;display:flex;justify-content:flex-end}.pill{padding:4px 8px;border-radius:999px;background:#edf3fa;color:#58708f;font-size:12px}.pill.active,.pill.sent{background:#e6f8f1;color:#14855b}.pill.pending{background:#fff3d9;color:#a56a00}.pill.failed{background:#feecef;color:#b83342}
#toast{position:fixed;right:24px;bottom:24px;background:#17243c;color:#fff;padding:12px 18px;border-radius:10px;box-shadow:0 12px 30px #0003;opacity:0;transform:translateY(15px);transition:.2s;pointer-events:none}#toast.show{opacity:1;transform:none}
@media(max-width:900px){.app{grid-template-columns:82px 1fr}.brand div,nav button{font-size:0}.brand{justify-content:center}.stats{grid-template-columns:repeat(2,1fr)}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}}

