:root{--green:#236954;--ink:#243e32;--muted:#7b8b81;--line:#e0e8e2;--bg:#f5f7f5}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}button,input,select{font:inherit}button,.button{cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid transparent;border-radius:8px;padding:11px 15px;background:var(--green);color:white;text-decoration:none;font-weight:600;font-size:12px;min-height:40px;transition:background .15s}button:hover,.button:hover{filter:brightness(.95)}button:disabled{opacity:.45;cursor:not-allowed}.light{background:#edf3ef;color:#426550;border:1px solid #e0e9e2}.small{padding:6px 8px;font-size:10px;min-height:30px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #8dbbab;outline-offset:2px}input:not([type=checkbox]):not([type=file]),select{border:1px solid #d8e2dc;border-radius:8px;padding:11px 12px;background:white;color:var(--ink);width:100%;min-height:42px}input[type=checkbox]{width:17px;height:17px;accent-color:var(--green)}label{display:block;font-size:12px;font-weight:600;margin:17px 0 8px}label input,label select{margin-top:8px}form>button{margin-top:16px}p{color:var(--muted);font-size:12px;line-height:1.7;margin:7px 0 15px}small{display:block;font-size:10px;line-height:1.7;color:var(--muted);font-weight:400;margin-top:5px}a{color:var(--green)}h1{font-size:29px;letter-spacing:-1px;font-weight:650;margin:8px 0}h2{font-size:16px;font-weight:650;margin:0 0 5px}header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:26px}.eyebrow{font-size:10px;color:#91a096;letter-spacing:1.6px}.brand{font-size:23px;font-weight:700;letter-spacing:-1px}.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.shell{display:flex;min-height:100vh}.sidebar{width:218px;background:#fff;border-right:1px solid var(--line);padding:30px 20px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;flex-shrink:0}.sidebar>.eyebrow{margin:40px 0 16px;font-size:9px}.sidebar nav{display:grid;gap:7px}.sidebar nav button{justify-content:flex-start;background:none;color:#708176;padding:13px 12px;text-align:left}.sidebar nav button.active{background:#e9f3ec;color:var(--green)}.sidebar nav i{font-style:normal;font-size:19px;width:24px}.sidebar-bottom{margin-top:auto;padding:15px 0}.sidebar-bottom button{margin-top:15px}main{padding:34px 36px;width:calc(100% - 218px);max-width:1800px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:17px;margin-bottom:24px}.stat{border:1px solid var(--line);padding:22px;border-radius:12px;background:white}.stat span{font-size:12px;color:#6f8276}.stat strong{font-size:34px;display:block;font-weight:600;margin-top:17px;letter-spacing:-1px}.panel{border:1px solid var(--line);border-radius:13px;background:white;overflow:hidden;margin-bottom:20px}.panel-head{display:flex;align-items:center;justify-content:space-between;padding:20px 22px;gap:15px}.panel-head p{margin:5px 0 0}.map{height:440px;isolation:isolate}.map-note{padding:9px 16px}.badge{display:inline-block;background:#edf3ef;color:#557762;border-radius:30px;padding:5px 9px;font-size:10px;white-space:nowrap}.badge.assigned{background:#e8effc;color:#507bb3}.badge.collected{background:#fff1d9;color:#aa7731}.badge.delivered{background:#e4f3e9;color:#368357}.lower{display:grid;grid-template-columns:1fr 1fr;gap:20px}.list-row{display:flex;align-items:center;gap:12px;padding:14px 20px;border-top:1px solid #f0f3f0;font-size:11px}.list-row>div{flex:1}.list-row time{font-size:10px;color:#819189}.dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.empty{padding:35px;text-align:center;color:#819088}.filters{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px;margin-bottom:16px}.selection{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:16px;font-size:12px}.selection>div{display:flex;gap:8px}.table-panel{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:11px}th{text-align:left;background:#f9fbf9;color:#849189;font-size:10px;white-space:nowrap;font-weight:600}th,td{padding:14px 13px;border-bottom:1px solid #eef2ee;vertical-align:top}td:nth-child(2){min-width:185px;max-width:300px}td:nth-child(3){min-width:200px;max-width:340px;line-height:1.6}td:nth-child(5)>a{display:block;margin-top:8px}td b{font-size:11px;line-height:1.6}.pager{display:flex;justify-content:space-between;align-items:center;font-size:11px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.courier-card{padding:25px}.avatar{display:inline-flex;width:43px;height:43px;border-radius:12px;align-items:center;justify-content:center;color:white;font-size:21px;margin-bottom:16px}.courier-stats{display:flex;gap:35px;margin:20px 0}.courier-stats b{font-size:26px}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.settings-card{padding:25px}.settings-card p{margin:14px 0}.route-body{padding:0 23px 22px}.route-card{max-width:1000px}.route-card h2 small{display:inline}.section-title{margin:30px 0 18px}.notice{padding:16px;border:1px solid #efe1be;background:#fff8e8;color:#9e7a3f;border-radius:10px;line-height:1.7;font-size:12px;margin-bottom:20px}.login{display:grid;grid-template-columns:1fr 1fr;min-height:100vh;background:white}.login>aside{background:#173f32;color:white;padding:50px 60px;display:flex;flex-direction:column;justify-content:space-between}.login aside h1{font-size:clamp(45px,5vw,75px);letter-spacing:-3px;line-height:1.05;margin:25px 0}.login aside p{color:#a3c0b1;font-size:16px;line-height:1.9}.login aside small,.login aside .eyebrow{color:#93b7a4}.login>section{display:flex;align-items:center;justify-content:center}.login-box{width:100%;max-width:410px;padding:30px}.login-box h2{font-size:26px;margin-top:13px}.switch{display:flex;gap:7px;padding:5px;background:#f1f5f2;border-radius:10px;margin:22px 0}.switch button{flex:1}.login-box form>button{width:100%}.login-box>small{margin-top:27px}.install{max-width:620px;margin:35px auto;padding:35px;background:white;border:1px solid var(--line);border-radius:14px}.install .brand{margin-bottom:35px}.loading{padding:60px;text-align:center}dialog{border:1px solid #dae5dc;border-radius:15px;padding:28px;max-width:760px;width:calc(100% - 32px);max-height:92vh;overflow:auto;color:var(--ink);box-shadow:0 25px 90px #143c3029}dialog::backdrop{background:#16372870;backdrop-filter:blur(3px)}dialog h2{font-size:22px;margin-right:25px}dialog .close{position:absolute;right:10px;top:8px;color:#819085;background:none;font-size:25px;padding:5px 10px}.picker{height:290px;border-radius:9px;margin:18px 0 10px;background:#e8efe8;isolation:isolate}.stops{margin:25px 0}.stop{display:flex;gap:14px;border-top:1px solid var(--line);padding:17px 0}.stop-no{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;flex-shrink:0;border-radius:50%;background:#eaf3ed;color:#45765a;font-size:12px}.stop>div{flex:1}.stop b{font-size:12px}.stop button{display:block;margin-top:12px}.stop .badge{margin-top:9px}.stop a{display:inline-block;font-size:11px;margin-top:9px}.access-code{display:block;padding:22px;margin:20px 0;background:#edf4ef;font:24px monospace;text-align:center;letter-spacing:2px}.candidate{display:block;width:100%;margin-top:7px;text-align:left}.photo-preview{display:block;max-height:400px;max-width:100%;margin:20px auto}.photo-preview[hidden]{display:none}#toast{position:fixed;z-index:2000;bottom:22px;left:50%;transform:translate(-50%,25px);background:#193f31;color:white;border-radius:10px;padding:15px 22px;max-width:calc(100vw - 30px);font-size:12px;line-height:1.6;box-shadow:0 8px 30px #102c3533;opacity:0;pointer-events:none;transition:all .2s}#toast.show{opacity:1;transform:translate(-50%,0)}.leaflet-container{font-family:inherit}@media(max-width:1050px){.cards{grid-template-columns:1fr 1fr}.sidebar{width:190px;padding:26px 14px}main{width:calc(100% - 190px);padding:28px 22px}.lower{grid-template-columns:1fr}}@media(max-width:760px){.sidebar{width:68px;padding:20px 8px}.sidebar .brand{font-size:0}.sidebar .brand:before{content:'↗';font-size:30px}.sidebar>.eyebrow,.sidebar nav span,.sidebar-bottom>b,.sidebar-bottom>small{display:none}.sidebar nav{margin-top:25px}.sidebar nav button{padding:11px;justify-content:center}.sidebar-bottom button{font-size:10px;padding:7px}main{width:calc(100% - 68px);padding:22px 14px}header{align-items:flex-start;flex-direction:column;gap:12px}h1{font-size:25px}.stats{grid-template-columns:1fr 1fr;gap:10px}.stat{padding:16px}.stat strong{font-size:28px}.stat span{font-size:10px}.map{height:340px}.cards,.settings-grid{grid-template-columns:1fr}.filters{grid-template-columns:1fr 1fr}.filters>input{grid-column:span 2}.selection{align-items:flex-start;flex-direction:column}.login{grid-template-columns:1fr}.login>aside{padding:25px}.login aside>div:nth-child(2),.login aside>small{display:none}.login>section{align-items:flex-start}.login-box{padding:25px 20px}.install{margin:18px 12px;padding:22px}.picker{height:250px}dialog{padding:23px 17px}.panel-head{padding:18px 16px}.route-body{padding:0 16px 18px}}

.region-summary{display:flex;gap:8px;flex-wrap:wrap;margin:15px 0}.region-card{border:1px solid var(--line);border-radius:10px;padding:16px;margin:15px 0}.region-title{display:flex;align-items:center;gap:12px}.region-title h3{font-size:14px;margin:0}.region-card summary{font-size:12px;cursor:pointer;color:var(--green);margin-top:14px}.region-jobs{max-height:220px;overflow:auto;margin-top:12px}.region-jobs>div{padding:10px 0;border-top:1px solid var(--line);font-size:11px}#regionEstimate{background:#f0f5f1;padding:12px;border-radius:8px;margin-top:18px}
.contact-card{display:grid;gap:5px;background:#f0f5f1;padding:12px;border-radius:10px;margin:10px 0}.history-row{padding:14px 0;border-bottom:1px solid #e1e6e2}.history-row small{display:block}.history-row p{margin:6px 0}textarea{width:100%;min-height:90px;padding:12px;border:1px solid #d7ded8;border-radius:9px;font:inherit;box-sizing:border-box}.badge.problem{background:#fff0d0;color:#8b5500}.badge.cancelled{background:#fce3e3;color:#983c3c}.region-jobs input{width:100%;box-sizing:border-box}.region-jobs label{display:block;margin:8px 0}
#table{overflow:auto;max-height:70vh}.records-table{min-width:100%;width:max-content;border-collapse:separate;border-spacing:0}.records-table th{position:sticky;top:0;background:#f3f6f3;z-index:2;vertical-align:top;min-width:170px}.records-table th:first-child{min-width:40px}.records-table td{max-width:320px;min-width:170px;white-space:normal;overflow-wrap:anywhere;vertical-align:top}.records-table td:first-child{min-width:40px}.records-table .column-filter{display:block;width:160px;padding:7px;margin-top:7px;font-weight:normal;font-size:13px}.record-actions button,.record-actions a{display:block;margin-bottom:6px}.record-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.record-form-grid .wide{grid-column:1/-1}.record-form-grid label{min-width:0}.record-form-grid textarea{min-height:65px}.table-help{font-size:13px;color:#5c6b62}@media(max-width:650px){.record-form-grid{grid-template-columns:1fr}.records-table th,.records-table td{min-width:145px}}
