:root{--bg:#f4f7fb;--card:#fff;--text:#162033;--muted:#6b7689;--line:#e5eaf1;--primary:#0cbd83;--primary2:#079769;--danger:#dc3848;--blue:#3468d4;--shadow:0 12px 36px rgba(32,48,78,.08)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:"Microsoft YaHei UI","PingFang SC",Arial,sans-serif}.topbar{height:66px;background:#101a2d;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100% - 1240px)/2));box-shadow:0 3px 15px rgba(0,0,0,.12)}.brand{color:#fff;text-decoration:none;font-size:20px;font-weight:800}.topbar nav{display:flex;align-items:center;gap:24px}.topbar nav a,.link-button{color:#dce5f4;text-decoration:none;font-size:14px}.inline{display:inline}.link-button{border:0;background:transparent;cursor:pointer;padding:0}.container{max-width:1240px;margin:34px auto;padding:0 22px}.page-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}h1{font-size:30px;margin:5px 0 0}h2{margin:0 0 18px;font-size:19px}.eyebrow{font-size:12px;font-weight:800;color:var(--primary2);letter-spacing:1.6px;text-transform:uppercase}.muted{color:var(--muted);line-height:1.7}.grid.two{display:grid;grid-template-columns:1.1fr .9fr;gap:20px;margin-bottom:20px}.card,.auth-card{background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:26px}.auth-card{max-width:460px;margin:8vh auto}.auth-card.wide{max-width:650px}.stack{display:grid;gap:16px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.full{grid-column:1/-1}label{display:grid;gap:7px;color:#354055;font-size:14px;font-weight:650}input,select{width:100%;height:44px;border:1px solid #cfd7e3;border-radius:8px;background:#fff;padding:0 12px;font:inherit;color:var(--text);outline:none}input:focus,select:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(12,189,131,.13)}button,.button{border:0;border-radius:8px;padding:12px 18px;font:inherit;font-weight:750;cursor:pointer;text-decoration:none;text-align:center}.primary{background:var(--primary);color:#fff}.primary:hover{background:var(--primary2)}.secondary{background:#edf2f8;color:#35455e}.small{padding:8px 11px;font-size:12px}.balance{background:linear-gradient(135deg,#0cbd83,#068d78);color:#fff;padding:16px 25px;border-radius:12px;min-width:190px}.balance span{display:block;font-size:12px;opacity:.85}.balance strong{font-size:25px}.notice{background:#edf9f5;color:#21725b;padding:13px;border-radius:8px;font-size:13px}.rule{padding:15px 0;border-bottom:1px solid var(--line);display:grid;gap:5px}.rule:last-child{border:0}.rule b{font-size:14px}.rule span{font-size:13px;color:var(--muted)}.table-card{margin-top:20px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:760px}th{text-align:left;color:#7a8495;font-size:12px;font-weight:700;padding:11px;border-bottom:1px solid var(--line)}td{padding:13px 11px;border-bottom:1px solid #edf0f4;font-size:13px;vertical-align:top}td small{display:block;color:var(--muted);margin-top:4px}.badge{display:inline-block;padding:5px 9px;border-radius:999px;background:#eef1f5;color:#5b6574;font-size:11px;font-weight:800}.badge.success{background:#e1f8ef;color:#087d56}.badge.failed{background:#ffeaed;color:#bc2636}.badge.partial,.badge.review{background:#fff1d7;color:#a86600}.empty{text-align:center;color:var(--muted);padding:28px}.inline-form{display:flex;gap:7px}.inline-form input{height:36px;min-width:100px}.password-form{display:grid;grid-template-columns:minmax(110px,1fr) minmax(110px,1fr) auto;gap:7px;min-width:340px}.password-form input{height:36px}.alert{padding:14px 18px;border-radius:9px;margin-bottom:18px;font-size:14px}.alert.success{background:#dff8ee;color:#08734f}.alert.error{background:#ffe9ec;color:#aa2433}.narrow{max-width:650px}.allocation-card{max-width:none}.allocation-form{display:grid;grid-template-columns:1fr 1fr;gap:18px 24px}.allocation-submit{grid-column:1/-1;height:48px}@media(max-width:800px){.grid.two,.form-grid,.allocation-form{grid-template-columns:1fr}.allocation-submit{grid-column:1}.page-head{align-items:flex-start;gap:15px}.balance{min-width:155px}.container{margin-top:20px}.topbar{padding:0 18px}.topbar nav{gap:12px}.inline-form{flex-wrap:wrap}}