:root{font:15px/1.5 'Segoe UI','Microsoft YaHei',sans-serif;color:#26362c;background:#f2f4ef}*{box-sizing:border-box}body{margin:0}h1{font-size:24px;margin:0}h2{font-size:18px}button,input,select,textarea{font:inherit}button{background:#46763c;color:white;border:0;border-radius:6px;padding:9px 17px;cursor:pointer}button:hover{filter:brightness(1.08)}input,select,textarea{display:block;width:100%;padding:10px;margin-top:6px;border:1px solid #d5ddd0;border-radius:5px;background:white;color:#26362c}label{display:block;margin:15px 0}p{color:#788372;font-size:13px}.login{min-height:100vh;display:grid;place-items:center}.login form{width:430px;max-width:90vw;padding:30px;background:white;border:1px solid #dce2d7;border-radius:10px}.login button{width:100%;margin-top:10px}#workspace{display:flex;min-height:100vh}#workspace[hidden],section[hidden]{display:none}aside{width:210px;padding:25px 15px;background:#1e3025;color:#e3eddb;position:fixed;inset:0 auto 0 0}aside h2{padding:0 12px;margin:0 0 30px}aside h2 span{display:block;font-size:12px;font-weight:400;opacity:.6;margin-top:6px}aside button{width:100%;text-align:left;background:transparent;padding:12px;margin:3px 0}aside button.active{background:#3c563d}aside #logout{position:absolute;bottom:20px;width:180px}main{margin-left:210px;padding:25px 35px;flex:1;min-width:0}header{display:flex;align-items:center;justify-content:space-between;margin-bottom:25px}.secondary{background:#e4eade;color:#3c563d}.panel,article{background:#fff;border:1px solid #dce2d7;border-radius:8px;padding:20px;margin-bottom:18px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.stats span{color:#788372}.stats strong{display:block;font-size:30px;margin-top:10px}.row{display:flex;align-items:center;gap:14px;border-bottom:1px solid #e5eadd;padding:13px 8px;overflow-wrap:anywhere}.row>div{flex:1;min-width:0}.row p{margin:3px 0;white-space:pre-wrap;color:#4e5b46}.row small{color:#819077}.row button{font-size:13px;flex-shrink:0}.danger{background:#9b4940}.inline{display:flex;align-items:end;gap:15px}.inline label{flex:1;margin:0}.inline button{height:44px}#message{position:fixed;bottom:25px;right:25px;max-width:500px;padding:14px 22px;border-radius:8px;background:#284831;color:white;box-shadow:0 5px 30px #0003}#message.error{background:#963f35}@media(max-width:800px){aside{width:170px}main{margin-left:170px;padding:20px}.stats{gap:10px}.stats strong{font-size:22px}}
