:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:#243a35;background:#f5f7f6;font-synthesis:none;--ink:#142b25;--green:#00664f;--mint:#e4f7ef;--brand:#00b38a;--secondary:#677c75;--line:#e2e9e5;--card:#fff;--orange:#c67a37;--red:#b94f50}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}input,select,textarea{max-width:100%}h1,h2,h3,p{margin:0}a{color:inherit}button:disabled{cursor:not-allowed;opacity:.55}.boot{padding:20vh 20px;text-align:center;color:var(--green)}
.shell{display:flex;min-height:100vh}.sidebar{width:244px;position:sticky;top:0;height:100vh;background:#143f36;color:#d6e6df;padding:28px 17px;flex-shrink:0;display:flex;flex-direction:column;gap:28px}.brand{display:flex;align-items:center;gap:12px;padding:0 9px}.logo{width:42px;height:42px;background:#d5ece2;color:var(--ink);border-radius:13px;display:flex;align-items:center;justify-content:center;font-size:23px;font-weight:900}.brand-title{font-size:20px;color:#fff;font-weight:750;letter-spacing:.5px}.brand-sub{font-size:11px;opacity:.7;margin-top:3px;letter-spacing:1px}.nav{display:flex;flex-direction:column;gap:5px}.nav button{display:flex;gap:12px;align-items:center;width:100%;border:0;border-radius:12px;color:#d6e6df;background:none;padding:13px 14px;text-align:left}.nav button:hover,.nav button.active{background:#28584c;color:#fff}.nav .sym{font-size:18px;width:22px;text-align:center}.sidefoot{margin-top:auto;background:#235449;padding:14px;border-radius:12px;color:#fff}.sidefoot small{opacity:.7;display:block;margin-top:5px}.sidefoot button{border:1px solid #709186;color:#fff;background:none;border-radius:9px;padding:6px 13px;margin-top:12px}
.main{flex:1;min-width:0;padding:36px clamp(18px,3.8vw,50px) 75px}.top{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:26px}.eyebrow{color:var(--secondary);font-size:13px;letter-spacing:.4px}.top h1{font-size:28px;font-weight:800;color:var(--ink);margin-top:4px}.top-right{display:flex;align-items:center;gap:8px}.top-right .chip{white-space:nowrap;border:1px solid #dbe6df;background:#eaf2ee;border-radius:99px;padding:8px 12px;color:#52766a;font-size:12px;font-weight:650}.button{border:0;border-radius:11px;background:var(--green);color:#fff;font-weight:700;padding:11px 16px;white-space:nowrap}.button:hover{background:#154f40}.button.ghost{background:#edf3ef;color:var(--green)}.button.outline{background:#fff;color:var(--green);border:1px solid #bfd2c7}.button.warn{background:#a9544f}.button.small{font-size:12px;padding:7px 11px;border-radius:8px}
.hero{background:linear-gradient(108deg,#18483e,#2f7260);color:white;border-radius:20px;padding:26px;display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:21px;position:relative;overflow:hidden}.hero:after{content:"";position:absolute;width:210px;height:210px;border:1px solid rgba(255,255,255,.19);border-radius:50%;right:-25px;top:-75px;box-shadow:0 0 0 40px rgba(255,255,255,.025),0 0 0 80px rgba(255,255,255,.025)}.hero h2{font-size:24px;margin-bottom:10px;position:relative;z-index:1}.hero p{font-size:13px;color:#d9ebe4;line-height:1.8;position:relative;z-index:1}.hero button{position:relative;z-index:1;background:#fff;color:#1c5848}.tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:22px}.tile,.panel{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 3px 13px rgba(16,50,39,.024)}.tile{padding:20px 19px;position:relative}.tile .metric-name{font-size:12px;color:#75857e}.tile strong{display:block;font-size:31px;letter-spacing:-1px;font-weight:800;color:var(--ink);margin:9px 0 4px}.tile small{color:#8ba099;font-size:12px}.tile:before{content:"";position:absolute;left:17px;top:17px;background:#e9f3ee;width:8px;height:8px;border-radius:50%;transform:translateY(-15px)}.layout2{display:grid;grid-template-columns:1.4fr 1fr;gap:17px}.panel{padding:22px;margin-bottom:16px}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:16px}.panel-title h3{font-size:17px;color:var(--ink)}.muted{color:#788982;font-size:13px}.subline{font-size:12px;color:#95a19c;margin-top:8px;line-height:1.6}.row-bars{display:flex;flex-direction:column;gap:15px}.brow{display:flex;align-items:center;gap:14px;font-size:12px}.brow label{width:78px;flex-shrink:0}.brow .barbg{background:#edf3f0;height:10px;flex:1;border-radius:9px;overflow:hidden}.brow .bar{height:100%;background:#75a890;border-radius:9px}.brow b{width:24px;text-align:right}
.tablebox{border:1px solid var(--line);border-radius:14px;background:white;overflow:auto}.tbl{width:100%;border-collapse:collapse;white-space:nowrap;text-align:left}.tbl th{background:#f8faf9;color:#7a8982;font-weight:600;font-size:12px;padding:14px 15px}.tbl td{padding:15px;border-top:1px solid #edf1ee;font-size:13px}.tbl tr:hover td{background:#fbfdfb}.tbl .name{font-weight:750;color:var(--ink)}.tb-actions{display:flex;gap:6px}.badge{display:inline-block;padding:5px 9px;border-radius:7px;background:#e9f4ec;color:#377353;font-size:11px;font-weight:750}.badge.orange{background:#fff1df;color:#a56b28}.badge.red{background:#fbe9e9;color:#b44f55}.badge.grey{background:#eef1ef;color:#697a70}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:17px}.toolbar .left{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.field,.select{background:#fff;border:1px solid #d9e4de;border-radius:9px;padding:10px 12px;color:var(--ink);min-height:41px}.field:focus,.select:focus,textarea:focus{outline:2px solid rgba(65,142,110,.2);border-color:#8fc3aa}.toolbar input{min-width:230px}.empty{padding:54px 18px;text-align:center;color:#87978f;font-size:13px}.empty .big{font-size:38px;margin-bottom:11px}.empty h3{color:#4a655b;margin-bottom:9px}.pill{font-size:11px;color:#5d7a69;border:1px solid #d5e5dc;border-radius:99px;padding:5px 9px}
.auth-page{display:grid;grid-template-columns:1.03fr 1fr;min-height:100vh;background:#fff}.auth-side{background:linear-gradient(150deg,#123f33,#2a7460);padding:clamp(30px,7vw,100px);color:#fff;display:flex;flex-direction:column;justify-content:space-between;min-height:520px;position:relative;overflow:hidden}.auth-side:after{content:"满";position:absolute;right:-15px;bottom:-140px;font-size:440px;font-weight:900;color:rgba(255,255,255,.04)}.auth-side h1{font-size:clamp(30px,4vw,52px);line-height:1.35;max-width:590px;position:relative;z-index:1}.auth-side .mark{font-size:19px;font-weight:850;letter-spacing:2px}.auth-side p{font-size:15px;color:#bfd9cc;line-height:1.9;max-width:420px;position:relative;z-index:1}.auth-form{display:flex;align-items:center;justify-content:center;padding:30px}.auth-card{max-width:390px;width:100%}.auth-card h2{font-size:28px;margin-bottom:11px}.auth-card p{color:#7e8d86;font-size:13px;margin-bottom:25px;line-height:1.8}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-group{display:flex;flex-direction:column;gap:7px}.form-group.wide{grid-column:1/-1}.form-group label{font-size:12px;font-weight:700;color:#5c7267}.form-group textarea{resize:vertical;min-height:84px}.form-group .field,.form-group .select{width:100%}.form-note{font-size:12px;color:#82948a;line-height:1.7}.auth-card form{display:flex;flex-direction:column;gap:15px}.auth-card form>.button{margin-top:7px}.form-actions{display:flex;gap:9px;justify-content:flex-end;margin-top:20px}.overlay{position:fixed;inset:0;background:rgba(8,35,26,.55);z-index:10;display:flex;justify-content:center;align-items:center;padding:22px}.modal{background:#fff;width:min(650px,100%);max-height:min(94vh,950px);overflow:auto;border-radius:18px;box-shadow:0 30px 90px rgba(11,47,32,.19);padding:27px}.modal h2{color:var(--ink);font-size:21px;margin-bottom:6px}.modal .formgrid{margin-top:20px}.detail{background:#f6faf7;border:1px solid #e2ece5;border-radius:12px;padding:14px;margin-top:14px;line-height:1.7;font-size:13px}.detail .split{display:flex;justify-content:space-between;gap:12px;margin-bottom:5px}.detail .split label{color:#82928b}.detail strong{color:#244c3f}.section-title{font-size:16px;color:#1d4a3c;font-weight:800;margin:20px 0 10px}.notice{color:#b56035;background:#fff4e7;border:1px solid #f5dcc1;padding:11px;border-radius:9px;font-size:12px;line-height:1.65}.callout{background:#e9f3ed;border:1px solid #d0e6d7;border-radius:10px;padding:12px;color:#376553;line-height:1.65;font-size:12px}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);color:#fff;background:#164a3a;padding:13px 20px;border-radius:12px;z-index:99;box-shadow:0 12px 35px #0003;max-width:min(90vw,600px);font-size:13px}.toast.error{background:#a54545}.click{cursor:pointer;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:4px}.chipline{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:17px}.chipline button{border:1px solid #dfebe3;background:white;border-radius:8px;padding:8px 12px;color:#5f786d}.chipline button.on{background:#dceee4;border-color:#a6d3b6;color:#21593f}.timeline{border-left:2px solid #d9e8df;margin:14px 0 8px 11px;padding-left:17px}.timeline-item{margin:0 0 20px;font-size:13px;line-height:1.7;color:#465d52;position:relative}.timeline-item:before{content:"";position:absolute;left:-24px;top:6px;background:#4c9176;border-radius:50%;width:11px;height:11px;border:3px solid #fff}.timeline-item .who{font-weight:800}.timeline-item .when{font-size:11px;color:#9aa99f}.load{opacity:.5;pointer-events:none}.mobilebar{display:none}
@media(max-width:1050px){.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.layout2{grid-template-columns:1fr}.sidebar{width:215px}}
@media(max-width:720px){.shell{display:block;padding-bottom:74px}.sidebar{display:none}.main{padding:22px 14px 60px}.top{align-items:flex-start}.top h1{font-size:24px}.top-right{flex-direction:column;align-items:flex-end}.top-right .chip{display:none}.hero{padding:22px}.hero h2{font-size:20px}.hero .button{font-size:12px}.tiles{gap:9px}.tile{padding:17px 13px}.tile strong{font-size:26px}.panel{padding:16px}.auth-page{display:flex;flex-direction:column}.auth-side{min-height:220px;padding:25px}.auth-side h1{font-size:25px}.auth-side p{display:none}.auth-form{flex:1;padding:30px 22px}.mobilebar{display:flex;position:fixed;bottom:0;left:0;right:0;padding:8px 5px calc(8px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid #e1e8e4;z-index:5;box-shadow:0 -8px 30px #0011;justify-content:space-around}.mobilebar button{border:0;background:transparent;color:#85968d;font-size:10px;display:flex;flex-direction:column;align-items:center;gap:2px;min-width:54px;padding:5px}.mobilebar button .icon{font-size:20px}.mobilebar button.on{color:#22674d;font-weight:800}.formgrid{grid-template-columns:1fr}.modal{padding:19px}.toolbar input{min-width:140px}.toolbar .left{width:100%}.toolbar .left input{flex:1}}

/* Official brand artwork: source pixels preserved; SVG viewBox trims only the supplied whitespace. */
.brand-logo{display:block;object-fit:contain;width:100%;height:auto;aspect-ratio:885/215;border-radius:6px;flex-shrink:0}
.boot{display:flex;flex-direction:column;align-items:center;gap:22px}.boot .brand-logo{width:min(320px,80vw)}
.sidebar{background:#112b24;color:#d5e7de}.brand{display:flex;flex-direction:column;align-items:stretch;gap:10px;padding:0 3px}.brand-sub{font-size:11px;line-height:1.5;letter-spacing:1px;color:#b7d3c5;margin:0 2px;opacity:1}
.nav button:hover,.nav button.active{background:#245044}.nav button.active{box-shadow:inset 3px 0 0 var(--brand)}.sidefoot{background:#1c3e33}
.auth-side{background:#112b24;gap:30px}.auth-side:after{content:none}.auth-side .mark{position:relative;z-index:1;width:100%;max-width:360px}.auth-side .auth-logo{border-radius:8px}.auth-side h1{letter-spacing:-1.5px}.auth-side small{font-size:11px;color:#bdd3c8;line-height:1.8}
.auth-card .eyebrow{color:#00664f;font-weight:750;letter-spacing:1.7px;margin-bottom:12px}.auth-card form>.button{background:var(--brand);color:#102c23}.auth-card form>.button:hover{background:#00a67f}.field:focus,.select:focus,textarea:focus{outline:2px solid #00b38a33;border-color:#00a880}
.header-brand{display:flex;align-items:center;gap:10px;margin-bottom:7px}.header-brand .brand-logo{width:132px}.header-brand span{font-size:11px;color:var(--secondary);letter-spacing:.3px}.top h1{margin-top:0}
.modal-identity{display:flex;align-items:center;gap:10px;margin-top:7px;color:var(--secondary);font-size:12px}.modal-identity .brand-logo{width:106px}
.hero{background:linear-gradient(108deg,#112b24,#19694f)}.brow .bar{background:#00a77d}
@media(max-width:720px){.auth-side{min-height:245px;gap:25px}.auth-side .mark{max-width:255px}.auth-side small{font-size:10px}.auth-side h1{font-size:25px;letter-spacing:-.7px}.header-brand .brand-logo{width:116px}.top{gap:8px}.top-right>.button{font-size:12px;padding:10px 12px}}
@media(max-width:420px){.header-brand span{display:none}.top h1{font-size:22px}}
