:root{font-family:Inter,Segoe UI,sans-serif;color:#17352e;background:#f4f5f0;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,select{cursor:pointer}button{border:0;border-radius:9px;padding:11px 16px;background:#164b40;color:white;font-weight:600}button:hover{filter:brightness(.92)}button.secondary{background:#edf0e8;color:#26463c}button.danger{background:#a82f32}input,select{border:1px solid #cbd6cd;border-radius:8px;background:white;padding:11px;width:100%;color:#233c35}label{display:block;font-size:13px;margin:12px 0 6px;color:#53665c}h1{font-size:30px;letter-spacing:-1px;margin:8px 0}h2{font-size:20px;margin:0 0 12px}h3{font-size:16px}p{line-height:1.55}small,.muted{color:#6e7c71;font-size:13px}.shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.sidebar{background:#143d34;color:#e5eee4;padding:30px 18px;position:sticky;top:0;height:100vh}.brand{font-weight:800;letter-spacing:3px;font-size:32px}.brand span{color:#cadd8e}.sidebar p{font-size:12px;color:#acc0b2;margin:6px 0 45px}.sidebar button{display:block;text-align:left;width:100%;background:transparent;margin:6px 0;color:#bdd0c1}.sidebar button.active{background:#2e5749;color:#fff}.sidebar footer{position:absolute;bottom:25px;font-size:12px;color:#b9cab8}.main{padding:26px 40px;max-width:1500px;width:100%}.topbar{display:flex;justify-content:space-between;align-items:center;gap:18px;border-bottom:1px solid #dbe2d7;padding-bottom:22px;margin-bottom:27px}.topbar select{width:auto;padding:8px}.topbar .tools{display:flex;gap:10px;align-items:center}.eyebrow{text-transform:uppercase;letter-spacing:2px;font-size:11px;font-weight:700;color:#7d8a6d}.pill{display:inline-block;border-radius:20px;padding:5px 10px;font-size:11px;background:#e8eecf;color:#5d6d21;font-weight:700}.alert{border:1px solid #e5aba8;border-left:5px solid #bb323a;background:#fff0ee;border-radius:12px;padding:18px 22px;display:flex;justify-content:space-between;align-items:center;gap:15px;margin:24px 0;color:#8f2c32}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:24px 0}.stat,.panel{background:white;border:1px solid #e1e6dc;border-radius:14px;padding:22px}.stat strong{display:block;font-size:28px;letter-spacing:-1px;margin:14px 0 4px}.stat small{font-size:11px}.grid{display:grid;grid-template-columns:1.65fr 1fr;gap:20px;margin:24px 0}.hero{background:#183e34;border-radius:15px;padding:28px;color:white;position:relative;overflow:hidden}.hero p{color:#c1d0c1;max-width:400px}.hero .pill{background:#dce7ac}.hero button{background:#e4ecb9;color:#284638}.cardvisual{border:1px solid #76957a;border-radius:15px;padding:24px;margin-top:22px;background:linear-gradient(130deg,#2b5c48,#17382e);max-width:350px}.cardvisual strong{font-size:24px;letter-spacing:3px}.cardvisual p{margin:4px 0;font-size:11px}.cardvisual .value{margin-top:26px;display:flex;justify-content:space-between;font-size:24px}table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}td,th{padding:13px 10px;border-bottom:1px solid #edf0e8;white-space:nowrap}th{color:#7b8678;font-size:11px;text-transform:uppercase;letter-spacing:.5px}.tablewrap{overflow:auto}.badge{border-radius:6px;padding:4px 7px;background:#eef3e8;color:#41664b;font-size:11px}.badge.active{background:#e6f2e7}.badge.blocked{background:#ffe9e5;color:#a23539}.badge.spent{background:#eceff1;color:#6a747a}.pagehead{display:flex;justify-content:space-between;align-items:center}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:0 15px}.formgrid .full{grid-column:1/-1}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.login{max-width:480px;margin:8vh auto;padding:38px;background:white;border-radius:20px;border:1px solid #dfe5d8}.login .brand{color:#1e4939}.login button{margin-top:20px;width:100%}.note{background:#f1f3e6;border-radius:10px;padding:14px;font-size:12px;line-height:1.6;margin-top:16px}.alertitem{border:1px solid #e6bcb6;background:#fff5f2;border-radius:10px;padding:18px;margin:14px 0}.alertitem.done{background:#f3f6ef;border-color:#dce4d6}#toast{position:fixed;bottom:24px;right:24px;background:#193e34;color:white;border-radius:12px;padding:16px;display:none;max-width:90vw;z-index:10}.row{display:flex;justify-content:space-between;gap:15px;padding:12px 0;border-bottom:1px solid #e9eee4}.empty{padding:35px 5px;color:#7b8777}.checkbox{display:flex;gap:7px;align-items:center}.checkbox input{width:18px}.mobilebrand{display:none}.offline{color:#a52d31;font-weight:700}.intro{max-width:650px}.reportbar{height:9px;border-radius:5px;background:#e5ebda;margin:7px 0 15px}.reportbar i{display:block;height:100%;background:#648166;border-radius:5px}.divider{margin-top:26px;padding-top:15px;border-top:1px solid #e2e8dd}
@media(max-width:1000px){.stats{grid-template-columns:repeat(2,1fr)}.main{padding:24px}.shell{grid-template-columns:195px 1fr}.grid{grid-template-columns:1fr}}@media(max-width:650px){.shell{display:block}.sidebar{height:auto;position:fixed;bottom:0;top:auto;width:100%;padding:6px;z-index:5;display:flex;overflow:auto}.sidebar .brand,.sidebar p,.sidebar footer{display:none}.sidebar button{margin:0;padding:12px 14px;width:auto;white-space:nowrap;font-size:12px}.main{padding:18px 16px 100px}.topbar{align-items:flex-start;padding-bottom:15px;margin-bottom:24px}.topbar .tools{gap:6px;flex-wrap:wrap;justify-content:flex-end}.topbar button{font-size:11px;padding:9px}.topbar small{font-size:11px}.mobilebrand{display:block;font-weight:800;letter-spacing:2px;color:#31503a;margin-bottom:5px}.stats{gap:10px}.stat{padding:16px}.stat strong{font-size:24px}.grid{gap:15px}.panel{padding:18px}.alert{align-items:flex-start;padding:15px;font-size:13px;flex-direction:column}.formgrid{grid-template-columns:1fr}.pagehead{align-items:flex-start;gap:10px}h1{font-size:25px}.login{margin:30px 15px;padding:25px}}

label input,label select{margin-top:6px}
.main,.grid>*{min-width:0}.tablewrap{max-width:100%}body{overflow-x:hidden}

.scan-dialog{width:min(440px,94vw);border:1px solid #dce4d8;border-radius:18px;padding:24px;color:#17352e;max-height:90vh;overflow:auto}.scan-dialog::backdrop{background:#102d27aa}.scan-dialog video{width:100%;max-height:330px;background:#143d34;border-radius:12px;object-fit:cover}.scan-dialog input{font-size:26px}.scan-error{color:#a12d32;font-size:13px}.scan-dialog button{min-height:46px}

.entity{border-bottom:1px solid #e0e6db;padding:14px 0}.entity>summary{cursor:pointer;font-weight:650;font-size:16px;padding:12px;list-style:none;background:#f4f6ef;border-radius:8px}.entity>summary::after{content:"＋";float:right}.entity[open]>summary::after{content:"−"}.entity>details{margin:12px}.entity>form{margin:15px 10px}
