:root{--bg:#f4f5f0;--panel:#fff;--ink:#162c27;--sub:#718079;--line:#e1e6df;--forest:#123b2f;--forest2:#1f5d45;--mint:#dcf1c4;--mint2:#eff7e5;--orange:#f2aa53;--red:#c6453b;--blue:#4b79ab;--shadow:0 10px 28px rgba(27,57,43,.06)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:'DM Sans',system-ui,-apple-system,Arial,sans-serif;background:var(--bg);color:var(--ink)}h1,h2,h3,h4,p{margin-top:0}h1,h2,h3,h4{font-family:'Outfit',system-ui,sans-serif}h1{font-size:2.05rem;line-height:1.17;letter-spacing:-.04em}h2{font-size:1.37rem;letter-spacing:-.018em}h3{font-size:1.07rem}a{color:inherit}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}input,select,textarea{width:100%;padding:11px 12px;border-radius:10px;background:#fff;border:1px solid #d4dcd4;color:var(--ink);min-width:0}input:focus,select:focus,textarea:focus{outline:2px solid #b6d6aa;outline-offset:1px}input[type=checkbox]{width:17px;height:17px;accent-color:var(--forest2)}input[type=file]{padding:9px}.btn{border:0;border-radius:10px;padding:11px 15px;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:.91rem;font-weight:700;white-space:nowrap;transition:transform .12s,background .12s}.btn:hover{transform:translateY(-1px)}.btn-primary{background:var(--forest);color:white}.btn-primary:hover{background:var(--forest2)}.btn-secondary{background:#e8efe4;color:var(--forest)}.btn-quiet{background:#f4f5f1;color:var(--ink)}.btn-danger{background:#fbe5e2;color:#a52e27}.btn-small{padding:7px 10px;font-size:.79rem;border-radius:8px}.btn-link{border:0;background:none;color:var(--forest2);font-weight:700;padding:2px 0}.iconbtn{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:10px;padding:8px 10px}.muted{color:var(--sub)}.tiny{font-size:.76rem}.small{font-size:.88rem}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.7rem;font-weight:800;color:#4a775e}.row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.spread{justify-content:space-between}.stack{display:flex;flex-direction:column;gap:12px}.gap6{gap:6px}.grow{flex:1}.nowrap{white-space:nowrap}.pill{display:inline-flex;align-items:center;gap:4px;background:#e4f0df;color:#2d623e;padding:5px 9px;border-radius:99px;font-size:.73rem;font-weight:800}.pill-orange{background:#fff0dd;color:#9d601d}.pill-red{background:#ffe5e1;color:#ab332a}.pill-neutral{background:#e9eeee;color:#607169}.page-head{margin-bottom:23px}.page-head p{color:var(--sub);margin:5px 0 0}.panel{background:var(--panel);border:1px solid var(--line);border-radius:17px;padding:20px;box-shadow:var(--shadow)}.panel h2{margin-bottom:9px}.split{display:grid;grid-template-columns:1.1fr .9fr;gap:18px}.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.metric{position:relative;min-height:132px;overflow:hidden}.metric .num{font-family:Outfit,sans-serif;font-size:2.15rem;font-weight:700;letter-spacing:-.06em;margin:13px 0 5px}.metric .label{font-size:.84rem;color:var(--sub);font-weight:600}.metric .foot{font-size:.75rem;color:var(--sub)}.metric.featured{background:var(--forest);color:white;border-color:var(--forest)}.metric.featured .label,.metric.featured .foot{color:#b6d7c4}.metric.featured:after{content:'';position:absolute;right:-38px;bottom:-56px;width:155px;height:155px;border-radius:50%;border:22px solid rgba(220,241,196,.1)}.progress{height:8px;background:#edf1e9;border-radius:99px;overflow:hidden;margin:8px 0}.progress span{display:block;height:100%;border-radius:99px;background:var(--forest2)}.progress.orange span{background:#dda04d}.progress.red span{background:var(--red)}.app{display:grid;grid-template-columns:237px minmax(0,1fr);min-height:100vh}.side{position:sticky;top:0;height:100vh;padding:26px 15px 20px 17px;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:30px}.brand{display:flex;align-items:center;gap:11px;padding:0 9px;text-decoration:none}.brand-mark,.logo-mark{display:grid;place-items:center;width:40px;height:40px;background:var(--forest);color:var(--mint);border-radius:12px;font:800 25px Outfit,sans-serif}.brand .word{font:800 1.45rem Outfit,sans-serif;letter-spacing:-.035em}.brand .word span{color:#569970}.side nav{display:flex;flex-direction:column;gap:5px}.nav-button{width:100%;display:flex;align-items:center;gap:13px;padding:13px 14px;text-align:left;border:0;background:transparent;border-radius:11px;color:#60746b;font-weight:700}.nav-button:hover{background:#f2f7ef}.nav-button.active{background:#e4f2d9;color:#164c35}.nav-icon{font:700 1rem system-ui;width:21px;text-align:center}.side-bottom{margin-top:auto;padding:14px 9px;color:var(--sub);font-size:.77rem}.side-bottom strong{color:var(--ink);display:block;font-size:.87rem}.content{padding:31px 38px 60px;max-width:1500px;width:100%;margin:0 auto}.topline{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:28px}.topline .subtitle{font-size:.8rem;color:var(--sub)}.topline .crumb{font-weight:700;font-size:.93rem}.topline .profile{background:#e7efe3;width:37px;height:37px;border-radius:50%;display:grid;place-items:center;color:#3a7553;font-weight:800}.trow{display:flex;align-items:center;gap:13px;padding:12px 0;border-bottom:1px solid var(--line)}.trow:last-child{border-bottom:0;padding-bottom:0}.trow .title{font-weight:700}.trow .meta{font-size:.8rem;color:var(--sub);margin-top:3px}.trow .right{margin-left:auto;text-align:right}.trow img{width:43px;height:43px;object-fit:contain;background:#f5f5f2;border-radius:9px}.notice{border-radius:12px;background:#fff4e0;color:#8b591e;padding:12px 14px;font-size:.87rem;border:1px solid #f5dfb5;margin-bottom:10px}.notice-danger{background:#fff0ed;border-color:#f8cec9;color:#992e27}.notice-success{background:#e8f5e9;border-color:#c7e3c9;color:#25603c}.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;text-align:left;font-size:.88rem}.data-table th{font-size:.74rem;color:var(--sub);text-transform:uppercase;letter-spacing:.04em;font-weight:800}.data-table th,.data-table td{padding:13px 12px;border-bottom:1px solid #edf0eb;white-space:nowrap}.data-table td.wrap{white-space:normal;min-width:170px}.data-table tr:last-child td{border:0}.data-table tbody tr:hover{background:#fafcf8}.filters{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:16px 0}.filters input{max-width:310px}.filters select{max-width:235px}.empty{padding:27px 16px;color:var(--sub);text-align:center}.empty strong{display:block;color:var(--ink);margin-bottom:4px}.location-card{overflow:hidden;padding:0}.location-photo{width:100%;height:138px;background:linear-gradient(135deg,#dcebd4,#c8d8cc);display:grid;place-items:center;font-size:3.1rem;object-fit:cover}.location-body{padding:16px}.location-body h3{margin-bottom:4px}.location-body .muted{font-size:.81rem}.location-body .row{margin-top:13px}.preview-product{width:49px;height:49px;object-fit:contain;background:#f4f4f0;border-radius:9px}.tag{padding:5px 9px;border-radius:7px;color:#59746a;background:#eef3ed;font-size:.75rem;font-weight:700}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:.79rem;color:#596a60;font-weight:800}.field small{color:var(--sub);font-size:.7rem}.formgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.formgrid .full{grid-column:1/-1}.checkfield{flex-direction:row;align-items:center;gap:10px}.checkfield label{order:2}.overlay{position:fixed;inset:0;background:rgba(9,31,23,.5);display:grid;place-items:center;padding:16px;z-index:20}.modal{width:min(660px,100%);max-height:min(92vh,900px);overflow:auto;border-radius:20px;background:white;padding:25px;box-shadow:0 25px 70px rgba(0,0,0,.17)}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:19px}.modal-head h2{margin:0}.modal footer{display:flex;gap:10px;justify-content:flex-end;margin-top:19px}.auth{min-height:100vh;display:grid;place-items:center;padding:22px;background:radial-gradient(ellipse at 5% 5%,#d3e7c9,transparent 50%),#f2f5ee}.authbox{width:min(445px,100%)}.authbox .panel{padding:28px}.authbox .logo-mark{width:53px;height:53px;font-size:35px;margin-bottom:22px}.authbox h1{font-size:1.8rem}.authbox form{margin-top:24px}.authbox .field{margin-bottom:15px}.hint{font-size:.78rem;color:#748279;line-height:1.5}.loading{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#60746b}.badge-num{display:inline-grid;place-items:center;background:#df695b;color:#fff;border-radius:50%;font-size:.69rem;min-width:19px;height:19px;padding:0 4px}.right-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.rec{border-left:3px solid #8db885;padding:11px 13px;background:#f8fbf4;border-radius:8px;margin-bottom:9px}.rec.high{border-left-color:#e49e4c;background:#fffaf2}.rec .why{font-size:.82rem;color:var(--sub);margin-top:4px}.rec .amount{font-size:.84rem;margin-top:5px;font-weight:800}.scanner-area{max-width:510px;margin:auto}.scanner-area video{width:100%;max-height:350px;border-radius:14px;background:#152b22;object-fit:cover}.scanner-area .help{color:var(--sub);font-size:.85rem}.section-title{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:20px 0 12px}.section-title h2{margin:0}.hero{padding:25px 26px;background:linear-gradient(120deg,#173d30,#2a664e);color:#fff;border-radius:18px;overflow:hidden;position:relative}.hero h1{margin:0 0 9px;font-size:1.95rem}.hero p{color:#d5e9d4;max-width:680px;margin-bottom:16px}.hero strong{color:#e6fbc9}.hero:after{content:'';position:absolute;pointer-events:none;right:-50px;top:-70px;width:245px;height:245px;border:45px solid rgba(226,250,210,.06);border-radius:50%}.donut{width:100px;height:100px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#65a57c var(--p,0%),#e5efdd 0)}.donut:after{content:attr(data-label);background:white;color:var(--forest);width:75px;height:75px;border-radius:50%;display:grid;place-items:center;font:800 1.05rem Outfit}.bottomnav{display:none}.toast{position:fixed;right:24px;bottom:24px;z-index:30;background:#143c2f;color:white;border-radius:12px;padding:13px 18px;box-shadow:0 10px 32px rgba(0,0,0,.2);max-width:400px}.toast.error{background:#9a312b}.advice-answer{background:#f1f6eb;border-left:4px solid #568d68;padding:14px;border-radius:10px;line-height:1.6}.unread-dot{background:#cd614d;width:7px;height:7px;display:inline-block;border-radius:50%;margin-right:5px}.print-only{display:none}
@media(max-width:1200px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.content{padding:26px 22px 55px}.split{grid-template-columns:1fr 1fr}}@media(max-width:900px){.app{grid-template-columns:78px minmax(0,1fr)}.side{padding:18px 9px}.side .brand .word,.side nav .nav-text,.side-bottom{display:none}.side .brand{justify-content:center;padding:0}.nav-button{justify-content:center}.content{padding:22px 18px 80px}.split{grid-template-columns:1fr}}
@media(max-width:640px){.app{display:block}.side{display:none}.content{padding:19px 13px 100px}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.grid2,.grid3{grid-template-columns:1fr;gap:12px}.panel{padding:15px;border-radius:14px}.metric{min-height:122px}.metric .num{font-size:1.75rem}.topline{margin-bottom:16px}.hero{padding:21px 18px}.hero h1{font-size:1.6rem}.page-head{margin-bottom:16px}.page-head h1{font-size:1.75rem}.bottomnav{display:flex;position:fixed;left:0;bottom:0;right:0;z-index:10;background:#fff;border-top:1px solid #dfe5dd;justify-content:space-around;padding:7px 2px max(8px,env(safe-area-inset-bottom))}.bottomnav button{display:grid;place-items:center;gap:3px;border:0;background:transparent;color:#728078;font-size:.68rem;font-weight:700;padding:5px 4px;min-width:47px}.bottomnav button.active{color:#225638}.bottomnav .nicon{font-size:1.23rem}.formgrid{grid-template-columns:1fr}.modal{padding:20px 16px;max-height:94vh}.trow{align-items:flex-start}.trow .right{flex:0 0 auto}.filters input,.filters select{max-width:none}.toast{left:10px;right:10px;bottom:85px}.panel.smallpanel{padding:12px}}
@media print{.side,.bottomnav,.topline,.right-actions,.btn,.filters,.overlay{display:none!important}.app{display:block}.content{padding:0}.panel{box-shadow:none;border:1px solid #ddd}.print-only{display:block}}
