:root{font-family:Inter,Arial,sans-serif;color:#202923;background:#f5f6f3;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,textarea{font:inherit}button{cursor:pointer;background:#fff;border:1px solid #cdd3cc;border-radius:6px;padding:9px 14px;color:#253d30}button:hover{background:#edf3eb}button:disabled{opacity:.5;cursor:wait}input,textarea{border:1px solid #cdd3cc;border-radius:5px;padding:10px;background:#fff;color:#202923}label{display:grid;gap:8px;font-size:13px;margin:16px 0}h1{font-size:28px;letter-spacing:-.7px;margin:8px 0}h2{font-size:19px}p{line-height:1.6;color:#657068}.brand{font-size:23px;font-weight:800;letter-spacing:-1px}.brand b{color:#4e7959}.shell{display:grid;grid-template-columns:224px 1fr;min-height:100vh}aside{background:#fff;border-right:1px solid #dfe3dc;padding:30px 20px;display:flex;flex-direction:column;gap:18px}aside small{color:#7b847c}nav{display:grid;gap:5px;margin:22px 0;flex:1;align-content:start}nav button{text-align:left;border:0;background:transparent}nav button.selected{background:#e5eee1;color:#355f3b;font-weight:700}main{padding:38px 40px;min-width:0}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.eyebrow{font-size:10px;letter-spacing:1.8px;color:#7b847c}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.metrics article{border:1px solid #dfe3dc;background:#fff;border-radius:8px;padding:22px}.metrics span{color:#748076;font-size:13px}.metrics strong{display:block;font-size:38px;margin-top:16px}.tablewrap{overflow:auto;background:#fff;border:1px solid #dfe3dc;border-radius:8px}table{border-collapse:collapse;width:100%;font-size:12px;text-align:left}th,td{padding:15px;border-bottom:1px solid #edf0e9;max-width:300px;overflow-wrap:anywhere}th{background:#eef1eb;color:#667167;font-size:11px}.actions{display:flex;gap:8px;flex-wrap:wrap}.inline{display:flex;gap:6px}.inline input{width:160px}.upload{max-width:680px;margin:30px 0;background:#fff;padding:24px;border:1px solid #dfe3dc;border-radius:8px}.preview{max-width:100%;display:block;border:1px solid #ddd;margin:20px 0}footer{color:#8b938a;font-size:12px;margin-top:30px}.login{max-width:540px;margin:10vh auto;padding:35px;background:#fff;border:1px solid #dfe3dc;border-radius:10px}.login button[type=submit],.login form>button{background:#355f3b;color:#fff;width:100%;margin-top:12px}.error{padding:12px;background:#f9e9e5;color:#8e392b;border-radius:6px}canvas{width:100%;border:1px solid #bbb;touch-action:none;margin:20px 0}@media(max-width:900px){.shell{grid-template-columns:1fr}aside{padding:18px}nav{display:flex;flex-wrap:wrap;margin:0}main{padding:20px}.metrics{grid-template-columns:repeat(2,1fr)}}
