:root{font-family:Inter,"Microsoft YaHei",system-ui,sans-serif;color:#203136;background:#f3f6f5;font-size:14px}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid #dce4e1;border-radius:8px;background:white;color:#263b37;padding:10px 15px}button:hover{background:#edf5f0;border-color:#aec9b8}button:disabled{opacity:.5;cursor:wait}.primary{background:#287954;color:white;border-color:#287954}.primary:hover{background:#216543;color:white}.danger{color:#b34236}.muted,small{color:#75827d}p{line-height:1.7}h1{font-size:28px;letter-spacing:-.8px;margin:8px 0 0}h2{font-size:18px;margin:0 0 18px}h3{font-size:15px;margin:0}.eyebrow{font-size:10px;letter-spacing:2px;color:#78918a;font-weight:650}.brand{font-size:27px;letter-spacing:-1px;font-weight:850}.brand span{color:#8ab598}.login{min-height:100vh;display:grid;place-items:center;background:radial-gradient(ellipse at 10% 20%,#dcecdf,transparent 60%),#f5f7f4}.loginCard{width:440px;max-width:94vw;background:#fff;border:1px solid #e1e8e1;border-radius:20px;padding:40px;box-shadow:0 24px 90px #183c2810}.loginCard h1{margin-top:30px;font-size:25px}.loginCard .primary{width:100%;margin:16px 0}label{display:block;color:#52645d;font-size:12px;margin:17px 0 8px}input:not([type=checkbox]),select,textarea{display:block;width:100%;padding:11px 12px;border:1px solid #d9e2dd;border-radius:8px;background:#fff;margin-top:8px;color:#243c30}input:focus,select:focus,textarea:focus{outline:2px solid #88bfa180;outline-offset:1px}textarea{min-height:80px}input[type=checkbox]{accent-color:#287954;margin-right:8px}aside{position:fixed;width:232px;inset:0 auto 0 0;background:#1b302a;color:#edf5ef;padding:34px 22px;display:flex;flex-direction:column}aside .brand{margin-left:14px}aside>.eyebrow{margin-left:14px;color:#8ca397}nav{margin-top:44px;display:grid;gap:8px}nav button{text-align:left;background:transparent;border:0;color:#a8b9b1;padding:14px 16px}nav button.active{background:#335344;color:#f1fff3}nav button span{display:inline-block;width:29px;color:#91b69d}.asideFoot{margin-top:auto;padding:20px 14px 0;font-size:12px;color:#9eb7a8}.asideFoot button{border:0;background:transparent;color:#a8b9b1;padding:0}.dot{display:inline-block;width:6px;height:6px;background:#85bf90;border-radius:50%;margin-right:6px}main{margin-left:232px;padding:35px 42px;max-width:1800px}header{display:flex;align-items:center;justify-content:space-between;margin-bottom:32px}.headerActions{display:flex;gap:20px;align-items:center;color:#87958e;font-size:12px}.cards{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:18px;margin:22px 0}.card,.panel{background:white;border:1px solid #e1e8e2;border-radius:12px;padding:24px}.card small{font-size:12px}.metric{font-size:36px;line-height:1.6;font-weight:650;letter-spacing:-1px}.card:first-child{background:#e4eee6;border-color:#ccdfcf}.card:first-child .metric{color:#277342}.panel{margin-bottom:22px;overflow:auto}.panelHead,.toolbar{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:18px}.panelHead h2{margin:0}.toolbar p{margin:0}.toolbar .actions{display:flex;gap:8px}.badge{display:inline-block;border-radius:6px;padding:4px 8px;font-size:11px;background:#e5f1e7;color:#3a8250}.badge.gray{background:#eef1ef;color:#839088}.badge.red{background:#faeeea;color:#b66646}.twoCols{display:grid;grid-template-columns:1.7fr 1fr;gap:22px}table{border-collapse:collapse;width:100%;font-size:12px}th{text-align:left;color:#85958c;font-weight:500;background:#f7f9f7;padding:12px;white-space:nowrap}td{padding:16px 12px;border-bottom:1px solid #edf0ed;line-height:1.8;vertical-align:top}td button{padding:5px 9px;font-size:11px;margin:0 4px 4px 0}.mono{font-family:Consolas,monospace;font-size:11px;word-break:break-all;max-width:290px}.empty{text-align:center;padding:40px 20px;color:#91a094}.chart{height:150px;display:flex;align-items:flex-end;gap:18px;padding:10px 10px 24px}.chartDay{height:100%;flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:5px}.bar{background:#7faf85;border-radius:4px 4px 0 0;width:55%;min-height:3px}.chartDay small{font-size:10px;white-space:nowrap}.lead{background:#dfebe2;border:1px solid #c5dbc9;border-radius:12px;padding:25px 28px;display:flex;justify-content:space-between;align-items:center}.lead h2{margin:0 0 7px}.lead p{margin:0;color:#66806d}.templateGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:20px}.template{border:1px solid #e1e7e0;border-radius:12px;background:#fff;overflow:hidden}.template img{width:100%;height:195px;object-fit:contain;background:#ecefea}.template>div{padding:20px}.template h3{margin-bottom:10px}.template .actions{display:flex;flex-wrap:wrap;gap:5px;margin-top:18px}.template .actions button{font-size:12px;padding:7px 10px}.checks{display:flex;gap:18px;flex-wrap:wrap}.checks label{margin:8px 0}.filters{display:flex;gap:12px;align-items:flex-end;margin:10px 0 25px}.filters label{flex:1;margin:0}.filters button{height:40px}.pagination{display:flex;justify-content:flex-end;align-items:center;gap:15px;padding-top:20px}.help{padding:15px 20px;border-left:3px solid #97b89c;background:#eff5ef;font-size:12px;color:#60816a;line-height:1.8;margin-bottom:24px}footer{color:#93a296;font-size:10px;padding:8px 0}#notice{padding:14px 20px;background:#e7f0e8;border-radius:8px;margin-bottom:20px}#notice.error{background:#fae9e6;color:#9a5148}dialog{border:0;border-radius:16px;width:560px;max-width:94vw;padding:28px;color:#203136;box-shadow:0 20px 100px #0003}dialog::backdrop{background:#17271e66}.dialogHead,.dialogActions{display:flex;justify-content:space-between;align-items:center}.dialogHead button{border:0;font-size:22px;padding:0 8px}.dialogHead h2{margin:0}.dialogActions{justify-content:flex-end;gap:10px;margin-top:24px}#dialogError,#loginError{color:#b34f3f}.credential{white-space:pre-wrap;padding:18px;background:#f0f5ef;border-radius:8px;user-select:all;word-break:break-all}.detailList{max-height:340px;overflow:auto}.detailList p{padding-bottom:12px;border-bottom:1px solid #e9efea}[hidden]{display:none!important}@media(max-width:1000px){aside{width:180px;padding:25px 12px}main{margin-left:180px;padding:25px}.cards{grid-template-columns:repeat(2,1fr)}.twoCols{grid-template-columns:1fr}.filters{flex-wrap:wrap}}@media(max-width:650px){aside{position:relative;width:auto;padding:16px}aside nav{display:flex;overflow:auto;margin-top:12px}nav button{white-space:nowrap}.asideFoot,aside>.eyebrow{display:none}main{margin:0;padding:20px}h1{font-size:22px}.headerActions span{display:none}.lead{display:block}.filters label{min-width:120px}}

@media(max-width:650px){.asideFoot{display:flex;align-items:center;gap:10px;padding:14px 14px 0;margin:0}.asideFoot p{margin:0 0 0 auto}.asideFoot button{margin-left:8px}}
@media(min-width:651px){aside nav{min-height:0;overflow-y:auto;flex-shrink:1;margin-top:24px;gap:6px}.asideFoot{flex-shrink:0}.asideFoot p{margin:8px 0}}
.pairing{display:flex;align-items:flex-start;gap:24px}.pairing>div{flex:1}.pairing button{flex-shrink:0}.pairing label{display:inline-block;min-width:250px;width:46%;margin:0 2% 12px 0}.pairing input{font-family:Consolas,monospace;background:#f7faf7}.pairing small{display:block}@media(max-width:800px){.pairing{display:block}.pairing label{display:block;width:100%;min-width:0}.pairing button{margin-top:15px}}
