:root{--ink:#1c3028;--muted:#728078;--green:#164f3d;--green2:#246e52;--lime:#d7eeb7;--bg:#f5f7f2;--card:#fff;--line:#e5eae3;--orange:#edaa62;--red:#b45d4c;--shadow:0 8px 30px rgba(21,57,39,.055);font-family:'Segoe UI',Roboto,Arial,sans-serif;color:var(--ink);background:var(--bg)}
*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #9aca79;outline-offset:2px}.hidden{display:none!important}
.shell{display:flex;min-height:100vh}.sidebar{width:252px;background:#fdfefb;border-right:1px solid var(--line);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;padding:28px 16px 20px;flex-shrink:0}.brand{display:flex;align-items:center;gap:11px;padding:1px 13px 28px;font:800 24px sans-serif}.brand-mark{width:36px;height:36px;border-radius:11px;background:var(--green);display:grid;place-items:center;color:#d7eeb7}.brand small{font-size:10px;font-weight:700;letter-spacing:.16em;color:#6d8375;text-transform:uppercase;display:block;margin-top:-4px}.nav-caption{font-size:10px;letter-spacing:.16em;color:#a5b0a7;font-weight:800;padding:13px 14px 8px}.nav{display:grid;gap:3px}.nav button{border:0;background:transparent;border-radius:10px;color:#617269;text-align:left;display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;font-size:13px;font-weight:700}.nav button svg{width:19px;height:19px;stroke-width:1.8}.nav button:hover{background:#eef4e9;color:var(--green)}.nav button.active{background:#e7f0df;color:var(--green)}.sidebar-bottom{margin-top:auto}.help-card{background:#eaf3de;border-radius:15px;padding:16px;margin:0 7px 18px;font-size:12px;color:#547050;line-height:1.45}.help-card b{display:block;font-size:14px;color:var(--green);margin-bottom:5px}.profile{border-top:1px solid var(--line);padding:18px 10px 0;display:flex;align-items:center;gap:10px}.avatar{width:35px;height:35px;border-radius:50%;display:grid;place-items:center;background:#dcead0;color:var(--green);font-weight:800;flex:none}.profile b{font-size:12px;display:block}.profile span{font-size:11px;color:var(--muted)}.profile button{margin-left:auto;border:0;background:transparent;color:var(--muted);padding:5px}.main{min-width:0;flex:1}.topbar{height:78px;border-bottom:1px solid var(--line);background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 39px}.breadcrumb{font-size:12px;color:var(--muted);font-weight:700}.breadcrumb b{color:var(--ink);margin-left:6px}.top-actions{display:flex;gap:13px;align-items:center}.season-pill,.icon-button{background:#f6f8f3;border:1px solid var(--line);border-radius:10px;color:#466351;padding:9px 13px;font-size:12px;font-weight:700}.icon-button{padding:7px 9px}.content{padding:35px 39px 65px;max-width:1530px;margin:auto}.page-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:25px}.eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:.18em;font-weight:800;color:#83a16b;margin-bottom:8px}.page-heading h1{font:800 29px/1.22 sans-serif;margin:0 0 7px;letter-spacing:-.04em}.page-heading p{color:var(--muted);font-size:13px;margin:0}.heading-actions{display:flex;align-items:center;gap:9px}.btn{border:1px solid var(--line);background:#fff;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 15px;font-size:12px;font-weight:800;white-space:nowrap;color:var(--ink)}.btn:hover{border-color:#abc5a6}.btn svg{width:16px;height:16px}.btn.primary{background:var(--green);border-color:var(--green);color:#fff}.btn.primary:hover{background:#236a50}.btn.danger{color:var(--red)}.btn.ghost{border:0;background:transparent;color:#617269}.btn.small{padding:7px 10px;font-size:11px}.grid{display:grid;gap:18px}.stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:18px}.stat{border:1px solid var(--line);background:var(--card);border-radius:14px;padding:21px 23px;min-height:130px;box-shadow:var(--shadow)}.stat-top{display:flex;justify-content:space-between;gap:8px;align-items:center;color:#74877b;font-size:12px;font-weight:700}.stat-icon{width:32px;height:32px;border-radius:9px;background:#edf4e7;display:grid;place-items:center;color:#41825a}.stat-icon svg{width:17px;height:17px}.stat .value{font:800 25px sans-serif;margin:13px 0 2px;letter-spacing:-.04em}.stat .detail{font-size:11px;color:#94a29a}.stat .detail strong{color:#398456}.dash-grid{grid-template-columns:minmax(0,1.68fr) minmax(280px,.88fr)}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);min-width:0}.card-pad{padding:23px}.card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:22px}.card-title{font:800 15px sans-serif;margin:0}.card-sub{color:#93a098;font-size:11px;margin-top:4px}.card-link{color:#43825b;border:0;background:transparent;font-size:11px;font-weight:800;padding:2px}.chart{height:224px;display:flex;align-items:flex-end;gap:13px;padding:18px 7px 0;border-bottom:1px solid var(--line);position:relative}.chart:before,.chart:after{content:'';position:absolute;left:0;right:0;border-top:1px dashed #e9eee7;pointer-events:none}.chart:before{top:36%}.chart:after{top:68%}.bar-group{flex:1;height:100%;min-width:0;display:flex;align-items:flex-end;justify-content:center;position:relative}.bar{width:min(27px,100%);background:linear-gradient(#8bbc7f,#d7e7be);border-radius:6px 6px 0 0;min-height:2px;position:relative;z-index:1}.bar.active{background:linear-gradient(#307451,#19513e)}.bar-group small{position:absolute;top:100%;font-size:10px;color:#88978b;margin-top:10px;white-space:nowrap}.chart-footer{margin-top:35px;display:flex;justify-content:space-between;color:#9aa69d;font-size:11px}.legend{display:flex;gap:7px;align-items:center}.legend i{width:8px;height:8px;border-radius:2px;background:#59956c}.ranking{display:grid;gap:17px}.rank-line{display:flex;justify-content:space-between;font-size:12px;gap:10px;margin-bottom:6px}.rank-line b{font-weight:700}.rank-line span{color:var(--muted)}.track{height:6px;background:#edf2e9;border-radius:99px;overflow:hidden}.fill{height:100%;border-radius:99px;background:#8fbd82}.fill.warn{background:#eeb371}.lower-grid{grid-template-columns:minmax(0,1.32fr) minmax(280px,1fr);margin-top:18px}.section-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:28px 0 14px}.section-row h2{font:800 16px sans-serif;margin:0}.section-row p{font-size:11px;color:var(--muted);margin:3px 0 0}.table-wrap{overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:12px}.table th{text-align:left;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#99a69c;font-weight:800;padding:12px 16px;border-bottom:1px solid var(--line);white-space:nowrap}.table td{padding:13px 16px;border-bottom:1px solid #f0f2ee;white-space:nowrap;color:#4d5d53}.table tr:last-child td{border-bottom:0}.table td b{color:var(--ink);font-weight:700}.table tr:hover td{background:#fafcf8}.table .actions{text-align:right}.tag{display:inline-flex;align-items:center;border-radius:99px;background:#eaf4e5;color:#3a8655;padding:5px 9px;font-size:10px;font-weight:800}.tag.warn{background:#fff0dd;color:#b77b3d}.tag.muted{background:#edf0ec;color:#74847a}.filters{display:flex;align-items:center;gap:9px;margin-bottom:15px;flex-wrap:wrap}.search,.filter-select{height:38px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink);padding:0 12px;font-size:12px}.search{min-width:240px;flex:1}.filter-select{min-width:160px}.list-card{overflow:hidden}.list-top{padding:18px 20px 2px;display:flex;align-items:center;justify-content:space-between}.list-count{font-size:11px;color:var(--muted);font-weight:700}.pager{display:flex;justify-content:space-between;align-items:center;padding:16px 19px;color:var(--muted);font-size:11px;border-top:1px solid var(--line)}.pager .btn{padding:7px 10px}.property-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.property-card{padding:20px;cursor:pointer;transition:transform .15s,border-color .15s}.property-card:hover{transform:translateY(-2px);border-color:#bfd6b2}.property-icon{height:36px;width:36px;background:#edf4e8;border-radius:10px;display:grid;place-items:center;color:#5e9562;margin-bottom:17px}.property-icon svg{width:19px;height:19px}.property-card h3{font:800 14px sans-serif;margin:0 0 4px}.property-card p{font-size:11px;color:var(--muted);margin:0 0 18px}.property-stats{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:15px;font-size:11px;color:var(--muted)}.property-stats strong{display:block;font:800 15px sans-serif;color:var(--ink);margin-top:4px}.empty{padding:50px 20px;text-align:center;color:#8c9b8f;font-size:13px}.empty b{display:block;color:var(--ink);font:800 15px sans-serif;margin-bottom:5px}.callout{background:#edf5e6;border:1px solid #dcebcf;padding:15px 17px;border-radius:11px;font-size:12px;color:#547359;line-height:1.5;margin-bottom:18px}.callout b{color:var(--green)}
.overlay{position:fixed;inset:0;background:rgba(18,43,29,.36);z-index:30;display:flex;justify-content:flex-end}.drawer{width:min(520px,100%);height:100%;background:#fff;display:flex;flex-direction:column;box-shadow:-15px 0 60px #17352126}.drawer-header{padding:25px 27px 20px;border-bottom:1px solid var(--line);display:flex;align-items:flex-start;justify-content:space-between}.drawer-header h2{font:800 20px sans-serif;margin:0 0 5px}.drawer-header p{font-size:12px;color:var(--muted);margin:0}.drawer-body{padding:25px 27px;overflow:auto;flex:1}.drawer-footer{padding:16px 27px;border-top:1px solid var(--line);display:flex;gap:10px;justify-content:flex-end}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.field{display:grid;gap:6px;margin-bottom:15px;min-width:0}.field.full{grid-column:1/-1}.field label{font-size:11px;font-weight:800;color:#5b6d60}.field input,.field select,.field textarea{width:100%;border:1px solid #dfe6df;border-radius:9px;background:#fff;padding:11px 12px;color:var(--ink);font-size:12px}.field textarea{min-height:80px;resize:vertical}.field small{font-size:10px;color:#92a096}.fieldset-title{font:800 12px sans-serif;border-bottom:1px solid var(--line);padding-bottom:9px;margin:12px 0 17px}.checks{display:grid;grid-template-columns:1fr 1fr;gap:9px}.check{display:flex;align-items:center;gap:8px;font-size:11px;color:#526c57}.check input{accent-color:var(--green)}.auth-screen{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;background:#fff}.auth-art{background:#194e3c;position:relative;overflow:hidden;padding:52px;display:flex;flex-direction:column;justify-content:space-between;color:#fff}.auth-art:before{content:'';position:absolute;width:700px;height:700px;border:1px solid #ffffff24;border-radius:50%;right:-310px;top:15%}.auth-art:after{content:'';position:absolute;width:480px;height:480px;border:1px solid #ffffff24;border-radius:50%;right:-180px;top:30%}.auth-art .brand{padding:0;color:#fff;position:relative;z-index:1}.auth-art .brand-mark{background:#d5e9b2;color:var(--green)}.auth-message{position:relative;z-index:1;max-width:500px}.auth-message h1{font:800 clamp(34px,4vw,58px)/1.15 sans-serif;letter-spacing:-.055em;margin:0 0 20px}.auth-message p{color:#c4d9c6;font-size:15px;line-height:1.7}.auth-bottom{font-size:11px;color:#a8c4af;position:relative;z-index:1}.auth-form-wrap{display:grid;place-items:center;padding:35px}.auth-form{width:min(390px,100%)}.auth-form .eyebrow{margin-bottom:10px}.auth-form h2{font:800 30px sans-serif;letter-spacing:-.045em;margin:0 0 9px}.auth-form>p{font-size:13px;color:var(--muted);line-height:1.5;margin:0 0 32px}.auth-form .field{margin-bottom:18px}.auth-form .btn{width:100%;padding:13px;font-size:13px;margin-top:6px}.auth-form .error{color:#aa574e;font-size:12px;min-height:18px;margin:8px 0}.auth-foot{font-size:11px;color:#99a89c;text-align:center;margin-top:28px}.toast{position:fixed;bottom:22px;right:22px;z-index:100;background:#1f513c;color:#fff;border-radius:10px;padding:12px 16px;box-shadow:0 8px 30px #0002;font-size:12px}.toast.error{background:#a84e45}.mobile-bar{display:none}
.criteria-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:9px}.criteria-table{border-collapse:collapse;width:100%;min-width:560px;font-size:10px}.criteria-table th,.criteria-table td{padding:7px 5px;border-bottom:1px solid var(--line);text-align:center}.criteria-table th:first-child,.criteria-table td:first-child{text-align:left;min-width:170px;position:sticky;left:0;background:#fff}.criteria-table th{color:#738578;background:#f7faf4}.criteria-table input{width:14px;height:14px;accent-color:var(--green);padding:0;margin:0}.season-pill{appearance:auto;max-width:150px}
@media(max-width:1150px){.sidebar{width:210px}.content{padding:27px 26px}.topbar{padding:0 26px}.stat-grid{grid-template-columns:repeat(2,1fr)}.property-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.shell{display:block;padding-bottom:66px}.sidebar{display:none}.mobile-bar{position:fixed;bottom:0;left:0;right:0;height:64px;background:#fff;border-top:1px solid var(--line);display:flex;z-index:20;justify-content:space-around;padding-bottom:env(safe-area-inset-bottom)}.mobile-bar button{border:0;background:transparent;color:#8a9a8c;display:grid;justify-items:center;align-content:center;gap:2px;font-size:9px;font-weight:800;min-width:55px}.mobile-bar button svg{width:21px;height:21px}.mobile-bar button.active{color:var(--green)}.topbar{height:61px;padding:0 18px}.content{padding:24px 17px 35px}.page-heading{align-items:flex-start}.page-heading h1{font-size:24px}.page-heading p{line-height:1.4}.heading-actions{flex-direction:column;align-items:stretch}.heading-actions .btn{padding:9px 11px;font-size:11px}.stat-grid{gap:10px}.stat{padding:16px;min-height:120px}.stat .value{font-size:20px}.dash-grid,.lower-grid{grid-template-columns:1fr}.property-grid{grid-template-columns:1fr 1fr;gap:11px}.property-card{padding:15px}.property-stats{display:block}.property-stats>div+div{margin-top:9px}.card-pad{padding:19px}.chart{gap:7px}.search{min-width:100%;flex:1}.filter-select{flex:1}.table{min-width:590px}.auth-screen{display:block;background:#fff}.auth-art{display:none}.auth-form-wrap{min-height:100vh}.drawer-header,.drawer-body,.drawer-footer{padding-left:19px;padding-right:19px}}
@media(max-width:430px){.stat-grid{grid-template-columns:1fr 1fr}.stat-top{font-size:10px}.stat-icon{width:27px;height:27px}.stat .detail{font-size:10px}.property-grid{grid-template-columns:1fr}.heading-actions .btn:not(.primary){display:none}.field-grid{grid-template-columns:1fr}}
