@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--forest:#113b34;--forest2:#174f43;--teal:#217a61;--mint:#d8efe5;--cream:#f7f8f3;--white:#fff;--ink:#20362f;--muted:#7a8c83;--line:#e5ece7;--orange:#dc9755;--red:#bd5d54;--shadow:0 10px 35px rgba(24,60,46,.055)}*{box-sizing:border-box}html,body{margin:0;max-width:100%;overflow-x:hidden}body{font:14px 'DM Sans',sans-serif;background:var(--cream);color:var(--ink);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button{cursor:pointer}a{text-decoration:none;color:inherit}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:3px solid #7ec4ac;outline-offset:2px}button:disabled{opacity:.5;cursor:not-allowed}.shell{display:flex;min-height:100vh;max-width:100vw}.sidebar{width:255px;flex:0 0 255px;background:#103b34;color:#b9cfc6;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto;z-index:30}.brand{display:flex;align-items:center;gap:12px;padding:30px 23px 26px;color:white}.mark{height:40px;width:40px;border-radius:13px;background:#d8e9d3;display:grid;place-items:center;color:#154739;font-size:23px;font-weight:800;letter-spacing:-5px;padding-right:5px}.brand b{font-family:Manrope;font-size:17px;letter-spacing:-.7px}.brand small{display:block;font-size:10px;letter-spacing:2.6px;font-weight:800;color:#82b6a5;margin-top:2px}.navgroup{font-size:10px;font-weight:800;letter-spacing:1.7px;color:#6d9c8c;padding:15px 25px 10px}.navitem{display:flex;gap:12px;align-items:center;width:calc(100% - 22px);margin:2px 11px;border:0;padding:11px 14px;color:#c0d5ce;background:transparent;text-align:left;border-radius:11px;font-weight:600;font-size:13px;transition:.15s}.navitem:hover{background:#1d5449;color:white}.navitem.active{background:#e0f0e6;color:#14483b}.navicon{font-size:17px;width:23px;display:inline-flex;align-items:center;justify-content:center}.sidebar-bottom{margin-top:auto;padding:18px 12px;border-top:1px solid #ffffff18}.userbox{display:flex;align-items:center;gap:10px;color:white;padding:8px}.avatar{width:37px;height:37px;border-radius:12px;background:#e0c6a9;color:#51402c;display:grid;place-items:center;font-weight:800}.userbox small{display:block;color:#a0c0b5;font-size:11px;margin-top:3px}.main{min-width:0;flex:1}.topbar{height:79px;background:rgba(255,255,255,.84);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 37px;gap:18px}.top-left{display:flex;align-items:center;gap:16px;min-width:0}.breadcrumb{font-size:12px;color:#93a29b}.top-title{font-family:Manrope;font-size:16px;font-weight:800}.top-actions{display:flex;align-items:center;gap:12px}.top-pill{background:#eef7f0;border:1px solid #dcebe0;color:#2e785b;padding:9px 13px;border-radius:9px;font-size:12px;font-weight:700}.iconbtn{border:1px solid var(--line);background:white;border-radius:10px;min-width:38px;height:38px;display:grid;place-items:center;color:var(--forest)}.hamburger{display:none}.workspace{padding:31px 37px 60px;max-width:1580px;margin:auto;width:100%;min-width:0}.heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:27px}.eyebrow{text-transform:uppercase;letter-spacing:2px;font-size:10px;font-weight:800;color:#57947a;margin-bottom:8px}.heading h1{font:800 clamp(24px,2.3vw,31px)/1.2 Manrope;margin:0;letter-spacing:-1.25px}.subhead{font-size:13px;color:var(--muted);margin:9px 0 0}.btn{border:1px solid transparent;padding:12px 17px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;gap:9px;font-weight:750;font-size:12px;transition:.15s;white-space:nowrap;max-width:100%}.btn.primary{background:#19735a;color:white}.btn.primary:hover{background:#0f5444}.btn.light{border-color:#dfe9e2;background:white;color:var(--forest)}.btn.soft{background:#e7f3e9;color:#226e55}.btn.danger{background:#fff0ee;color:#b14a40}.btn.small{padding:8px 11px;font-size:11px}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.metric{background:white;border:1px solid var(--line);border-radius:17px;padding:20px;min-width:0;box-shadow:var(--shadow)}.metric-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.metric-label{font-size:12px;color:var(--muted);font-weight:700}.metric-icon{height:35px;width:35px;border-radius:10px;background:#ecf5ef;display:grid;place-items:center;color:#397961;font-size:16px}.metric strong{font:800 clamp(21px,2vw,30px)/1.45 Manrope;letter-spacing:-1px;display:block;margin-top:9px;overflow-wrap:anywhere}.metric small{color:#8b9c94;font-size:11px}.insight-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(270px,1fr);gap:17px;margin-top:19px}.panel{border:1px solid var(--line);background:#fff;border-radius:17px;box-shadow:var(--shadow);min-width:0;overflow:hidden}.panel-pad{padding:23px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.panel-head h2{font:800 15px Manrope;margin:0;letter-spacing:-.4px}.panel-head small{color:var(--muted)}.jobrow{display:flex;align-items:center;gap:13px;padding:15px 0;border-bottom:1px solid #edf1ee;min-width:0}.jobrow:last-child{border:0}.timebox{background:#ecf6f0;border-radius:10px;min-width:61px;text-align:center;padding:9px 5px;font-weight:800;font-size:12px;color:#286c55}.jobname{font-size:13px;font-weight:800;overflow-wrap:anywhere}.jobmeta{color:var(--muted);font-size:11px;margin-top:5px;line-height:1.6}.status{font-size:10px;font-weight:800;border-radius:100px;padding:6px 9px;white-space:nowrap;background:#edf4ef;color:#537866;display:inline-block}.status.paid,.status.completed,.status.approved,.status.active,.status.won{background:#d9f1e2;color:#246d4c}.status.overdue,.status.canceled,.status.lost{background:#fff0e9;color:#b56843}.status.sent,.status.scheduled,.status.new{background:#eef1fc;color:#6976a9}.spacer{flex:1}.promo{border-radius:15px;background:linear-gradient(135deg,#164f42,#103b34 72%);color:white;padding:23px;position:relative;overflow:hidden;margin-bottom:16px}.promo:after{content:'✳';position:absolute;right:-13px;bottom:-55px;font-size:180px;color:#ffffff13;line-height:1}.promo h2{font:800 22px/1.28 Manrope;letter-spacing:-.6px;max-width:260px;margin:9px 0}.promo p{opacity:.75;font-size:12px;line-height:1.7;max-width:265px}.promo .btn{margin-top:11px;background:#dceee2;color:#14513e;position:relative;z-index:1}.finance{display:flex;align-items:center;gap:16px;padding:14px 0;border-bottom:1px solid #edf1ee}.finance:last-child{border:0}.finance .fi{display:grid;place-items:center;height:38px;width:38px;background:#eef7ee;border-radius:11px;font-size:17px}.finance b{display:block;font-size:13px}.finance small{display:block;color:#88988f;font-size:11px;margin-top:4px}.finance strong{margin-left:auto;font-size:14px}.table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:19px 21px;border-bottom:1px solid var(--line);flex-wrap:wrap}.table-toolbar h2{font:800 15px Manrope;margin:0}.search{border:1px solid var(--line);border-radius:9px;background:#fcfdfa;padding:11px 13px;min-width:210px;max-width:100%;outline:none}.table-wrap{width:100%;overflow:hidden}.data-table{border-collapse:collapse;width:100%;text-align:left;table-layout:fixed}.data-table th{color:#8d9e94;background:#fafcf9;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:1px;padding:14px 18px;border-bottom:1px solid var(--line)}.data-table td{padding:16px 18px;border-bottom:1px solid #edf1ee;font-size:12px;vertical-align:middle;overflow-wrap:anywhere;line-height:1.6}.data-table tr:last-child td{border:0}.rowname{font-weight:800;color:#1e4236}.cellmuted{color:#8d9c94}.table-actions{display:flex;gap:6px;flex-wrap:wrap}.table-actions .btn{white-space:normal}.empty{padding:52px 25px;color:var(--muted);text-align:center}.empty-symbol{width:53px;height:53px;border-radius:16px;background:#edf5ef;color:#2f775d;display:grid;place-items:center;margin:0 auto 15px;font-size:23px}.empty h3{margin:5px 0;color:var(--forest);font-size:17px}.empty p{font-size:12px;line-height:1.6}.pager{padding:15px 19px;display:flex;justify-content:space-between;align-items:center;gap:10px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.modal-back{position:fixed;inset:0;background:#0b251fc2;z-index:80;display:flex;align-items:center;justify-content:center;padding:18px;overflow:auto}.modal{width:min(660px,100%);max-height:min(90dvh,850px);overflow:auto;background:white;border-radius:21px;box-shadow:0 30px 120px #071b2052}.modal-top{padding:22px 25px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:15px}.modal-top h2{font:800 20px Manrope;margin:0}.formgrid{padding:24px;display:grid;grid-template-columns:1fr 1fr;gap:17px}.field{min-width:0}.field.full{grid-column:1/-1}.field label{display:block;font-size:11px;font-weight:800;color:#5b7065;margin-bottom:8px}.field input,.field select,.field textarea{width:100%;min-width:0;padding:12px 12px;background:#fbfcfa;border:1px solid #dbe5dd;border-radius:9px;outline:none;color:#203d32}.field textarea{resize:vertical;min-height:80px}.field input::placeholder,.field textarea::placeholder{color:#b0beb3}.modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:16px 24px 24px;border-top:1px solid var(--line)}.toast{position:fixed;bottom:24px;right:24px;background:#123e33;color:white;padding:14px 18px;border-radius:11px;box-shadow:0 15px 45px #112b2a44;z-index:110;max-width:min(440px,calc(100vw - 30px));font-size:13px}.toast.error{background:#a54b47}.login-body{min-height:100dvh;display:grid;grid-template-columns:1fr 1fr}.login-art{background:#103b34;color:white;padding:65px min(8vw,110px);display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.login-art:after{content:'✳';font-size:650px;position:absolute;bottom:-290px;right:-290px;color:#ffffff0d;pointer-events:none}.login-art h1{font:800 clamp(40px,4.3vw,66px)/1.1 Manrope;letter-spacing:-3px;position:relative;z-index:1}.login-art p{font-size:16px;line-height:1.8;max-width:400px;color:#b5d3c6;position:relative;z-index:1}.login-pane{display:flex;align-items:center;justify-content:center;padding:30px}.login-card{max-width:380px;width:100%}.login-card h2{font:800 31px Manrope;letter-spacing:-1px}.login-card p{color:#8a9c93;line-height:1.7}.login-card .field{margin-top:20px}.login-card .btn{width:100%;margin-top:25px;padding:15px}.login-card small{display:block;text-align:center;color:#92a39a;margin-top:20px}.screen-mask{display:none}.cards-mobile{display:none}.route-card{display:flex;gap:14px;padding:17px;border-bottom:1px solid var(--line);align-items:flex-start}.route-number{background:var(--forest);color:white;display:grid;place-items:center;flex:0 0 32px;height:32px;border-radius:10px;font-weight:800}.route-card strong{font-size:13px}.route-card p{color:var(--muted);font-size:12px;line-height:1.6;margin:6px 0}.statsdetail{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin:18px 0}.report-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px 0;border-bottom:1px solid var(--line)}.reportbar{height:7px;background:#e9f2eb;border-radius:20px;margin-top:8px;overflow:hidden}.reportbar span{display:block;height:100%;background:#2b896d}.filterdate{border:1px solid var(--line);padding:10px 12px;border-radius:9px;min-width:0;max-width:100%}@media(max-width:1170px){.sidebar{width:214px;flex-basis:214px}.workspace{padding:27px 24px}.topbar{padding:0 24px}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.data-table td,.data-table th{padding:14px 12px}}@media(max-width:850px){.sidebar{position:fixed;transform:translateX(-105%);transition:transform .24s;box-shadow:15px 0 55px #081d2340}.sidebar.open{transform:translateX(0)}.screen-mask.show{display:block;position:fixed;inset:0;background:#0b241e77;z-index:25}.hamburger{display:grid}.topbar{height:69px}.insight-grid{grid-template-columns:1fr}.workspace{padding:22px 19px 60px}.login-body{grid-template-columns:1fr}.login-art{display:none}}@media(max-width:650px){.topbar{padding:0 15px}.top-pill,.breadcrumb{display:none}.workspace{padding:22px 13px 55px}.heading{align-items:flex-start;gap:12px}.heading h1{font-size:24px}.heading .btn{font-size:11px;padding:10px 12px}.metrics{gap:9px}.metric{padding:15px 13px;border-radius:13px}.metric strong{font-size:23px}.metric-label{font-size:11px}.metric-icon{height:30px;width:30px}.panel-pad{padding:18px}.table-toolbar{padding:15px;gap:12px}.table-toolbar .search{width:100%;min-width:0}.data-table{display:none}.cards-mobile{display:block}.mobile-record{padding:15px 17px;border-bottom:1px solid var(--line);min-width:0}.mobile-record:last-child{border:0}.mobile-title{font-weight:800;font-size:13px;overflow-wrap:anywhere}.mobile-sub{font-size:11px;color:var(--muted);margin-top:6px;overflow-wrap:anywhere;line-height:1.6}.mobile-actions{margin-top:12px;display:flex;gap:7px;flex-wrap:wrap}.modal-back{padding:0;align-items:flex-end}.modal{width:100%;max-height:94dvh;border-radius:19px 19px 0 0}.formgrid{padding:19px;grid-template-columns:1fr;gap:13px}.field.full{grid-column:1}.modal-footer{padding:16px 19px}.statsdetail{grid-template-columns:1fr}.pager{font-size:11px}.heading{margin-bottom:19px}}@media(max-width:360px){.heading{flex-wrap:wrap}.heading .btn{width:100%}.metric strong{font-size:20px}.jobrow{gap:8px}.timebox{min-width:49px}}
