@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@600;700&display=swap";:root{color:#1b2a22;font-synthesis:none;--green:#165c38;--deep:#103c28;--line:#dfe6df;--muted:#718078;background:#f4f6f3;font-family:DM Sans,sans-serif}*{box-sizing:border-box}html,body{max-width:100%;margin:0;overflow-x:hidden}button,input,select,textarea{font:inherit}button{cursor:pointer}.app{max-width:100%;min-height:100vh;display:flex}aside{color:#dce9e1;z-index:20;background:#103c28;flex-direction:column;width:236px;display:flex;position:fixed;inset:0 auto 0 0}.brand{border-bottom:1px solid #ffffff18;align-items:center;gap:11px;height:76px;padding:0 18px;display:flex}.brandmark{color:#194e31;background:#d5e7d8;border-radius:11px;place-items:center;width:38px;height:38px;display:grid}.brandmark svg{width:24px}.brand b{letter-spacing:-.5px;font:700 20px Manrope;display:block}.brand span{letter-spacing:2px;color:#9ebaaa;margin-top:1px;font-size:9px;display:block}.close{display:none}nav{flex-direction:column;gap:4px;padding:20px 10px;display:flex}nav button,.asideBottom button{color:#afc5b7;text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:12px;padding:10px 12px;font-weight:500;display:flex}nav button svg,.asideBottom svg{width:19px}nav button.active{color:#174b30;background:#fff;box-shadow:0 3px 12px #061b1022}nav button:hover:not(.active),.asideBottom button:hover{color:#fff;background:#ffffff0d}nav em{color:#174b30;background:#d5eadb;border-radius:10px;margin-left:auto;padding:2px 7px;font-size:11px;font-style:normal}.asideBottom{border-top:1px solid #ffffff18;margin-top:auto;padding:10px}.asideBottom>button{width:100%}.user{align-items:center;gap:9px;padding:13px 8px 5px;display:flex}.user b,.user span{display:block}.user b{font-size:13px}.user span{color:#95b2a0;font-size:10px}.user>svg{width:17px;margin-left:auto}.avatar{color:#1c5737;background:#dce9e0;border-radius:10px;flex:none;place-items:center;width:35px;height:35px;font-size:11px;font-weight:700;display:grid}.avatar.sm{border-radius:50%;width:27px;height:27px}.avatar.large{border-radius:18px;width:60px;height:60px;font-size:16px}main{width:calc(100% - 236px);margin-left:236px}header{border-bottom:1px solid var(--line);z-index:12;background:#fff;align-items:center;gap:14px;height:76px;padding:0 32px;display:flex;position:sticky;top:0}.search{width:min(520px,55%);min-width:0;margin-right:auto;position:relative}.search>svg{color:#829088;width:18px;position:absolute;top:11px;left:13px}.search input{background:#f7f9f7;border:1px solid #dce3dd;border-radius:9px;outline:none;width:100%;height:42px;padding:0 54px 0 41px}.search input:focus{background:#fff;border-color:#6b9a7b;box-shadow:0 0 0 3px #2e7d4e12}.search kbd{color:#8b968f;background:#fff;border:1px solid #dfe4e0;border-radius:5px;padding:3px 6px;font:11px sans-serif;position:absolute;top:10px;right:10px}.results{border:1px solid var(--line);z-index:50;background:#fff;border-radius:10px;padding:6px;position:absolute;top:48px;left:0;right:0;box-shadow:0 15px 40px #19332525}.results button{text-align:left;background:0 0;border:0;border-radius:7px;grid-template-columns:65px 1fr;width:100%;padding:9px;display:grid}.results button:hover{background:#f1f6f2}.results span{color:var(--green);grid-row:1/3;font-size:10px;font-weight:700}.results small{color:var(--muted)}.results p{color:var(--muted);padding:5px 10px}.icon,.menub{border:1px solid var(--line);background:#fff;border-radius:9px;place-items:center;width:40px;height:40px;display:grid;position:relative}.icon svg,.menub svg{width:18px}.icon i{background:#dc5a4e;border:2px solid #fff;border-radius:50%;width:7px;height:7px;position:absolute;top:7px;right:8px}.menub{display:none}.primary,.secondary{border:1px solid var(--green);border-radius:8px;justify-content:center;align-items:center;gap:8px;height:40px;padding:0 15px;font-size:13px;font-weight:600;display:inline-flex}.primary{background:var(--green);color:#fff;box-shadow:0 2px 4px #133c2722}.primary:hover{background:#104c2e}.primary svg,.secondary svg{width:16px}.secondary{color:#30463a;background:#fff;border-color:#d8e0da}.content{max-width:1600px;margin:auto;padding:30px 32px 55px}.title{justify-content:space-between;align-items:end;margin-bottom:25px;display:flex}.title span,.modalhead span{color:#718078;letter-spacing:1.8px;font-size:10px;font-weight:700}.title h1{letter-spacing:-.7px;color:#193025;margin:5px 0 0;font:700 27px Manrope}.metrics{grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:18px;display:grid}.metric{border:1px solid var(--line);background:#fff;border-radius:10px;padding:18px 19px}.metric>span{color:var(--muted);font-size:12px;font-weight:500}.metric>div{justify-content:space-between;align-items:end;margin:9px 0 5px;display:flex}.metric b{letter-spacing:-.7px;font:700 25px Manrope}.metric small{color:#829087;font-size:11px}.metric small.good{color:#2b8051}.metric small.warn{color:#c05a42}.spark{align-items:end;gap:3px;height:25px;display:flex}.spark i{background:#78a98b;border-radius:2px;width:5px}.spark i:first-child{height:8px}.spark i:nth-child(2){height:14px}.spark i:nth-child(3){height:12px}.spark i:nth-child(4){height:20px}.spark i:nth-child(5){background:#28764a;height:24px}.grid{gap:18px;display:grid}.mainGrid{grid-template-columns:2fr 1fr}.card{border:1px solid var(--line);background:#fff;border-radius:10px;box-shadow:0 1px 2px #20372905}.span2{grid-column:span 1}.cardHead{border-bottom:1px solid #edf1ee;justify-content:space-between;align-items:center;padding:18px 20px 14px;display:flex}.cardHead h2{margin:0;font:700 15px Manrope}.cardHead p{color:#7a8880;margin:3px 0 0;font-size:11px}.link{color:#2d6f49;background:0 0;border:0;align-items:center;font-size:12px;font-weight:600;display:flex}.link svg{width:15px}.jobList{padding:3px 20px 8px}.jobrow{border-bottom:1px solid #edf1ee;grid-template-columns:63px 38px minmax(180px,1fr) 95px 90px 75px 20px;align-items:center;gap:12px;padding:15px 0;font-size:12px;display:grid}.jobrow:last-child{border:0}.timeline b{font-size:11px;display:block}.timeline i{border-left:1px solid #d9e2db;height:16px;margin:5px 0 0 7px;display:block}.jobicon{color:#267248;background:#e4f0e6;border-radius:9px;place-items:center;width:34px;height:34px;display:grid}.jobicon svg{width:17px}.jobinfo b,.jobinfo span{display:block}.jobinfo span{color:#7b8881;white-space:nowrap;text-overflow:ellipsis;margin-top:3px;font-size:10px;overflow:hidden}.status{color:#2b6945;white-space:nowrap;background:#e5eee7;border:0;border-radius:12px;padding:4px 9px;font-size:10px;font-weight:700;display:inline-flex}.status.inprogress,.status.onjob,.status.approved,.status.paid{color:#237047;background:#dcefe3}.status.scheduled,.status.sent,.status.sitevisit{color:#3b6581;background:#e5edf5}.status.unassigned,.status.draft,.status.maintenance{color:#8b6a27;background:#f2ede1}.status.overdue{color:#ad4d39;background:#f8e4df}.crew{align-items:center;gap:5px;display:flex}.crew span{font-size:10px}.jobrow>svg{color:#87928c;width:16px}.funnel{padding:10px 20px 15px}.funnel>div{border-bottom:1px solid #edf1ee;justify-content:space-between;padding:10px 0;font-size:11px;display:flex}.funnel span{align-items:center;gap:7px;display:flex}.funnel i{border-radius:50%;width:8px;height:8px}.funnel b{color:#6c7972;background:#eff3f0;border-radius:8px;padding:2px 6px}.full{width:calc(100% - 40px);margin:0 20px 18px}table{border-collapse:collapse;width:100%}table td{color:#5e6b64;border-bottom:1px solid #edf1ee;padding:13px 12px;font-size:11px}table td:first-child{padding-left:20px}table td:last-child{padding-right:20px}.datebox{text-align:center;background:#e7f0e8;border-radius:7px;width:38px;height:41px;padding:4px}.datebox b,.datebox span{display:block}.datebox b{font-size:15px}.datebox span{text-transform:uppercase;color:#6a7a70;font-size:8px}td small,td b{display:block}td small{color:#859189;margin-top:3px}td svg{vertical-align:middle;width:12px}.pill,.tag{color:#57675e;white-space:nowrap;background:#eef3ef;border-radius:10px;padding:4px 8px;font-size:9px}.tag{margin:2px;display:inline-block}.quick>button{color:#344a3e;background:#fff;border:0;border-bottom:1px solid #edf1ee;align-items:center;gap:12px;width:100%;height:52px;padding:0 20px;font-size:12px;display:flex}.quick>button:hover{background:#f6f8f6}.quick>button>svg:first-child{color:#32744e;width:18px}.quick>button>svg:last-child{color:#96a199;width:15px;margin-left:auto}.toolbar{justify-content:space-between;margin-bottom:14px;display:flex}.toolbar>div{background:#e9eeea;border-radius:8px;padding:3px}.toolbar button{color:#647168;background:0 0;border:0;border-radius:6px;padding:8px 12px;font-size:11px}.toolbar button.active{color:#21372b;background:#fff;box-shadow:0 1px 3px #16251d16}.toolbar button span{background:#e9eeea;border-radius:8px;margin-left:4px;padding:2px 5px}.tablecard{overflow:auto}.data th{text-align:left;color:#7b8880;text-transform:uppercase;letter-spacing:.8px;border-bottom:1px solid var(--line);background:#f8faf8;padding:12px 15px;font-size:9px}.data td{min-width:110px;padding:15px}.customer{align-items:center;gap:10px;min-width:170px;display:flex}.pipeline{grid-template-columns:repeat(5,minmax(210px,1fr));gap:12px;padding-bottom:12px;display:grid;overflow:auto}.column{background:#e9eeea80;border-radius:9px;min-height:520px;padding:10px}.colhead{grid-template-columns:1fr auto;gap:3px;padding:5px 5px 12px;display:grid}.colhead span{font-size:12px;font-weight:700}.colhead b{background:#fff;border-radius:10px;padding:1px 6px;font-size:10px}.colhead small{color:#738078;font-size:10px}.deal{background:#fff;border:1px solid #dfe6df;border-radius:8px;margin-bottom:9px;padding:14px;box-shadow:0 2px 5px #24372b0b}.deal>small{color:#87948c;font-size:9px}.deal h3{margin:7px 0 3px;font-size:13px}.deal p{color:#69776e;margin:0 0 14px;font-size:11px}.deal strong{font-size:13px}.deal>div{float:right;gap:3px;display:flex}.deal button{border:1px solid var(--line);background:#fff;border-radius:5px}.calendar{overflow:auto}.calhead,.calrow{grid-template-columns:70px repeat(5,minmax(150px,1fr));min-width:820px;display:grid}.calhead>*{text-align:center;border-right:1px solid var(--line);padding:15px}.calhead .today{color:var(--green);background:#edf5ef}.calrow{border-top:1px solid var(--line);min-height:72px}.calrow>span{color:#829087;text-align:right;padding:10px;font-size:10px}.calrow>div{border-left:1px solid #edf1ee;padding:4px;position:relative}.calrow article{z-index:2;background:#dfeee3;border-left:3px solid #317b50;border-radius:5px;padding:7px;position:absolute;inset:4px}.calrow article.blue{background:#e2ebf1;border-color:#487b9c}.calrow article b,.calrow article small,.calrow article em{white-space:nowrap;text-overflow:ellipsis;font-size:9px;display:block;overflow:hidden}.calrow article small{color:#65736b}.calrow article em{color:#477158;margin-top:3px;font-style:normal}.crewgrid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:15px;display:grid}.person{padding:20px}.person h3{margin:14px 0 3px;font-size:14px}.person p{color:var(--muted);margin:0 0 14px;font-size:11px}.person hr{border:0;border-top:1px solid #edf1ee;margin:18px 0 12px}.person small{color:var(--muted);font-size:10px}.bar{background:#e6ece7;border-radius:5px;height:5px;margin-top:9px}.bar i{background:#3b8458;border-radius:5px;height:100%;display:block}.equipment{grid-template-columns:repeat(2,1fr);gap:14px;display:grid}.equip{grid-template-columns:48px 1fr auto;align-items:center;gap:12px;padding:17px;display:grid}.equipIcon{color:#2b7048;background:#e6f0e8;border-radius:10px;place-items:center;width:45px;height:45px;display:grid}.equipIcon svg{width:21px}.equip h3{margin:0 0 3px;font-size:13px}.equip p,.equip small{color:var(--muted);margin:0;font-size:10px}.equip small{grid-column:2}.equip>svg{grid-area:2/3;width:17px}.modalwrap{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:100;background:#13271c88;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:14px;width:min(620px,100%);max-height:92vh;overflow:auto;box-shadow:0 30px 70px #07150d55}.modalhead{border-bottom:1px solid var(--line);justify-content:space-between;padding:23px 26px 18px;display:flex}.modalhead h2{margin:4px 0;font:700 20px Manrope}.modalhead button{background:#f0f3f0;border:0;border-radius:8px;width:34px;height:34px}.modalhead svg{width:17px}.modal form{padding:22px 26px}.modal label{color:#526159;margin-bottom:15px;font-size:11px;font-weight:600;display:block}.modal input,.modal select,.modal textarea{border:1px solid #d9e1da;border-radius:7px;outline:none;width:100%;margin-top:6px;padding:10px 11px;display:block}.modal textarea{resize:vertical;min-height:70px}.modal input:focus,.modal select:focus,.modal textarea:focus{border-color:#4c8d66;box-shadow:0 0 0 3px #28714812}.formrow{grid-template-columns:1fr 1fr;gap:12px;display:grid}.modalfoot{border-top:1px solid var(--line);background:#fafbfa;justify-content:flex-end;gap:8px;margin:22px -26px -22px;padding:16px 26px;display:flex}.toast{color:#fff;z-index:200;background:#173f2a;border-radius:9px;align-items:center;gap:9px;padding:13px 18px;font-size:12px;display:flex;position:fixed;bottom:25px;right:25px;box-shadow:0 10px 30px #122c1d33}.toast svg{width:18px}.scrim{display:none}@media (width<=1100px){.metrics{grid-template-columns:repeat(2,1fr)}.mainGrid{grid-template-columns:1fr}.jobrow{grid-template-columns:60px 35px 1fr 90px 70px}.jobrow .crew,.jobrow>b{display:none}.equipment{grid-template-columns:1fr}}@media (width<=760px){aside{transition:all .2s;transform:translate(-100%)}aside.open{transform:none}.close{color:#fff;background:0 0;border:0;place-items:center;margin-left:auto;display:grid}.scrim{z-index:19;background:#0005;display:block;position:fixed;inset:0}main{width:100%;margin:0}header{height:65px;padding:0 14px}.menub{display:grid}.search{flex:1;width:auto}.search kbd{display:none}header>.primary{width:40px;padding:0;font-size:0}header>.primary svg{width:18px}.content{padding:22px 14px}.title{align-items:center}.title h1{font-size:23px}.title .secondary{width:40px;padding:0;font-size:0}.metrics{grid-template-columns:1fr 1fr;gap:9px}.metric{padding:14px}.metric b{font-size:20px}.jobList{padding:0 13px}.jobrow{grid-template-columns:48px 34px minmax(0,1fr) auto;gap:8px}.jobinfo,.metrics>*{min-width:0}.jobrow .status{grid-column:3}.jobrow>svg{display:none}.span2{overflow:hidden}.quick{display:none}.toolbar{overflow:auto}.pipeline{margin-right:-14px}.equipment,.formrow{grid-template-columns:1fr}.modal form{padding:18px}.modalfoot{margin:20px -18px -18px}.crewgrid{grid-template-columns:repeat(2,1fr)}.data th:nth-child(3),.data td:nth-child(3){display:none}}@media (width<=450px){.metrics,.crewgrid{grid-template-columns:1fr}.title span{display:none}.title h1{margin:0}.cardHead{padding:15px}.jobrow{grid-template-columns:45px 1fr}.jobrow .jobicon{display:none}.jobrow .status{grid-column:2}.icon{display:none}}
