*{box-sizing:border-box}body{color:#172016;background:#f6f7f4;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.login-shell{place-items:center;min-height:100vh;padding:24px;display:grid}.login-panel{background:#fff;border:1px solid #dce2d5;border-radius:8px;gap:12px;width:min(100%,380px);padding:24px;display:grid;box-shadow:0 18px 40px #17201614}.login-panel strong{color:#1f5f3b;font-size:18px}.login-panel h1{margin-bottom:6px}.error{color:#a0332a;margin:0;font-weight:650}.layout{grid-template-columns:240px 1fr;min-height:100vh;display:grid}aside{background:#fff;border-right:1px solid #dce2d5;padding:22px}aside strong{margin-bottom:28px;font-size:19px;display:block}nav{gap:4px;display:grid}nav a{color:#596554;border-radius:8px;padding:10px 12px}nav a.active{color:#1f5f3b;background:#eef4e8;font-weight:680}.content{padding:28px}header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}h1{margin:0;font-size:28px}p{color:#64705f;margin:6px 0 0}.actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}button{color:#fff;cursor:pointer;background:#1f5f3b;border:0;border-radius:8px;justify-content:center;align-items:center;gap:8px;height:40px;padding:0 14px;font-weight:680;display:inline-flex}button.secondary{color:#31402f;background:#fff;border:1px solid #cfd8c8}button:disabled{opacity:.55;cursor:not-allowed}.upload{grid-template-columns:minmax(180px,1fr) minmax(220px,1.2fr) auto;gap:10px;margin-bottom:18px;display:grid}input{background:#fff;border:1px solid #cfd8c8;border-radius:8px;min-width:0;height:40px;padding:0 12px}input[type=file]{padding:8px 12px}.stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:22px;display:grid}article{background:#fff;border:1px solid #dce2d5;border-radius:8px;gap:8px;padding:16px;display:grid}article span{color:#64705f}article strong{font-size:26px}.table{background:#fff;border:1px solid #dce2d5;border-radius:8px;overflow:hidden}.row{border-top:1px solid #edf1e9;grid-template-columns:1fr 140px 100px;align-items:center;gap:12px;padding:12px 16px;display:grid}.row:first-child{border-top:0}.row.head{background:#eef4e8;font-weight:700}.empty{color:#64705f;text-align:center;padding:36px 16px}@media (width<=760px){.layout{grid-template-columns:1fr}aside{border-bottom:1px solid #dce2d5;border-right:0}.stats,.upload{grid-template-columns:1fr}header{flex-direction:column;align-items:flex-start}.actions{justify-content:flex-start}.row{grid-template-columns:1fr 90px 60px}}
