:root{--ink:#25352c;--muted:#7a837c;--forest:#203d2e;--lime:#c5ed94;--paper:#f6f7f3;--line:#e7eae3;--white:#fff;--bs-body-color:var(--ink);--bs-primary:#233e2e;--bs-body-font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}*{box-sizing:border-box}body{background:var(--paper);font-size:14px;line-height:1.5;color:var(--ink);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:hover{color:#466d3a}button,input,select,textarea{font:inherit}svg{flex-shrink:0;vertical-align:middle}h1,h2,h3,p{margin-top:0}h1{font-size:32px;letter-spacing:-1.15px;line-height:1.18;font-weight:650;margin-bottom:10px}h2{font-size:17px;font-weight:650;letter-spacing:-.3px;margin-bottom:5px}h3{font-size:18px;font-weight:600}p{color:var(--muted);margin-bottom:0}small{font-size:11px;color:var(--muted)}.sidebar{width:236px;background:#fff;position:fixed;inset:0 auto 0 0;border-right:1px solid var(--line);padding:32px 18px 16px;display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:11px;font-size:23px;font-weight:750;letter-spacing:-.9px;padding:0 11px}.brand-mark{width:41px;height:41px;border-radius:12px;background:var(--lime);color:var(--forest);display:flex;align-items:center;justify-content:center}.brand-light{font-weight:400}.brand small{display:block;font-size:7px;font-weight:650;letter-spacing:1.3px;color:#8b938c;margin-top:1px}.nav-caption{font-size:9px;font-weight:650;letter-spacing:1.4px;color:#959d96;padding:44px 15px 14px}.sidebar nav{display:flex;flex-direction:column;gap:5px}.nav-link{display:flex;align-items:center;gap:13px;min-height:44px;padding:11px 14px;border-radius:8px;font-size:12px;color:#788078;font-weight:500;white-space:nowrap}.nav-link.active{background:#edf3e5;color:#305037;font-weight:650}.nav-link.active svg{stroke-width:1.9}.nav-link:hover{background:#f3f5ef;color:#355637}.sidebar-bottom{margin-top:auto;padding-top:25px}.vehicle-mini{border:1px solid var(--line);background:#fafbf8;border-radius:9px;padding:15px 11px;display:flex;gap:10px;align-items:center;margin-bottom:17px;color:#8b9588}.vehicle-mini strong{display:block;font-size:10px;color:#6f7a6a;font-weight:500;margin-bottom:3px}.vehicle-mini span{display:block;color:#31412f;font-size:10px;line-height:1.5;max-width:142px}.logout{border:0;background:none;width:100%;text-align:left;font-size:12px}.private-note{display:flex;align-items:center;justify-content:center;gap:6px;color:#a2aaa0;font-size:9px;margin-top:21px;padding-top:15px;border-top:1px solid var(--line)}.nav-count{background:#f5d99e;color:#6c542a;padding:1px 5px;font-size:10px;border-radius:5px;margin-left:auto}.app-shell{margin-left:236px}.topbar{height:77px;border-bottom:1px solid var(--line);background:#ffffffba;display:flex;align-items:center;justify-content:space-between;padding:0 40px}.topbar-title{font-size:11px;color:#879084}.topbar-title span{margin:0 13px;color:#d3d8d0}.topbar-title strong{font-weight:500;color:#57634f}.topbar-right{display:flex;align-items:center;gap:24px}.avatar{border-radius:50%;background:#e9eddf;color:#4e603f;width:31px;height:31px;display:grid;place-items:center;font-size:10px;font-weight:650}.local-badge{font-size:8px;letter-spacing:1px;color:#76846d;display:flex;gap:6px;align-items:center}.local-badge i,.status-dot{display:inline-block;width:5px;height:5px;background:#73a35b;border-radius:50%}main{max-width:1600px;margin:auto;padding:33px 40px 20px}.mobile-brand{display:none}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:26px}.page-heading p{font-size:12px}.eyebrow{font-size:9px;letter-spacing:1.65px;font-weight:650;color:#8a9581;margin-bottom:10px}.range-form{align-self:flex-end;margin-bottom:4px}.range-form .form-select{font-size:11px;min-width:185px;padding:10px 33px 10px 13px;border:1px solid #e1e6dc;background-color:#fff;border-radius:7px;color:#586450;box-shadow:0 1px 2px #25352c03}.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-size:11px;font-weight:600;padding:11px 16px;border-radius:7px;letter-spacing:.05px;white-space:nowrap}.btn-primary{--bs-btn-bg:var(--lime);--bs-btn-border-color:var(--lime);--bs-btn-color:#29412a;--bs-btn-hover-bg:#b4df7d;--bs-btn-hover-color:#233c24;--bs-btn-hover-border-color:#b4df7d;--bs-btn-active-bg:#a8d66e;--bs-btn-active-border-color:#a8d66e;--bs-btn-active-color:#233c24}.btn-dark{--bs-btn-bg:var(--forest);--bs-btn-border-color:var(--forest);--bs-btn-hover-bg:#325740}.btn-outline-dark{--bs-btn-border-color:#d9dfd1;--bs-btn-color:#59654f;--bs-btn-hover-bg:#eef3e7;--bs-btn-hover-border-color:#d9dfd1;--bs-btn-hover-color:#2d4b2c}.btn-light{--bs-btn-bg:#fff;--bs-btn-border-color:var(--line);--bs-btn-hover-bg:#edf1e7;--bs-btn-color:#55634e}.upload-box{position:relative;border:1px dashed #c9d5bc;border-radius:11px;background:#eef3e7;display:flex;gap:17px;align-items:center;padding:22px 24px;margin-bottom:26px;transition:background .15s,border-color .15s}.upload-box.drag-over{background:#e2efcf;border-color:#6b963d}.upload-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:white;border:1px solid #e4eadc;border-radius:10px;color:#68814a}.upload-copy{flex:1;min-width:0}.upload-copy strong{display:block;font-size:14px;color:#36482e;font-weight:650;letter-spacing:-.2px}.upload-copy span{display:block;font-size:11px;color:#809072;margin-top:3px}.upload-copy small{display:block;font-size:9px;color:#93a187;margin-top:7px;overflow-wrap:anywhere}.upload-pick{margin:0;cursor:pointer}.upload-pick:focus-visible{outline:3px solid #6a8d4a;outline-offset:3px}.file-ready .upload-pick{background:white;border-color:#d7dfcd}.file-ready .upload-copy small{color:#4b6d36;font-weight:600}.upload-box.compact{padding:17px 21px}.section-meta{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:#84917a;margin:0 1px 14px}.section-meta .status-dot{margin-right:6px}.section-meta a{font-size:10px;color:#799068}.meta-separator{margin:0 10px;color:#d5dccf}.metrics-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:22px}.metrics-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.metric-card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:20px 19px 18px;min-width:0;box-shadow:0 2px 3px #1b312a02}.metric-top{font-size:10px;color:#829078;display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:14px}.metric-icon{color:#a0ad95;background:#f7f8f3;width:27px;height:27px;border-radius:6px;display:grid;place-items:center}.metric-value{font-size:29px;font-weight:650;letter-spacing:-1.1px;line-height:1.1;margin-bottom:12px;font-variant-numeric:tabular-nums}.metric-sub{font-size:9px;color:#9aa38f;line-height:1.6}.metric-card.featured{background:#223b2d;border-color:#223b2d;color:#fff;position:relative;overflow:hidden}.metric-card.featured:after{content:"";position:absolute;width:100px;height:100px;border:1px solid #ffffff09;border-radius:50%;right:-32px;bottom:-43px;box-shadow:0 0 0 20px #ffffff03,0 0 0 40px #ffffff02}.featured .metric-top{color:#b3c4aa}.featured .metric-icon{color:#bed99c;background:#38503b}.featured .metric-value{color:#f3f8ec}.featured .metric-sub{color:#91aa85}.panel{background:#fff;border:1px solid var(--line);border-radius:11px;margin-bottom:22px;box-shadow:0 2px 3px #1b312a02;overflow:hidden}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 24px 17px}.panel-heading p{font-size:10px;color:#9aa38f;line-height:1.7}.panel-heading h2:only-child{margin:0}.dashboard-grid{display:grid;grid-template-columns:minmax(0,2.7fr) minmax(230px,1fr);gap:20px}.chart-panel .panel-heading{padding-bottom:12px}.chart-wrap{height:250px;padding:12px 20px 8px 12px;position:relative}.chart-wrap.tall{height:350px;padding-bottom:24px}.chart-legend{display:flex;gap:15px;align-self:flex-start;margin-top:4px;font-size:9px;color:#96a08c;white-space:nowrap}.chart-legend span{display:flex;align-items:center;gap:5px}.chart-legend i{width:6px;height:6px;border-radius:50%}.legend-gross{background:#2c5e42}.legend-after{background:#a6c979}.latest-panel{padding:24px 22px}.latest-panel .eyebrow{font-size:8px;letter-spacing:1.2px;margin-bottom:13px}.latest-panel h2{font-size:17px}.latest-total{font-size:31px;font-weight:650;letter-spacing:-1px;margin-top:17px;line-height:1.2}.latest-panel>.muted{font-size:9px;display:block;margin-top:5px;margin-bottom:15px}.mini-stat{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:10px 0;font-size:11px;color:#78866e}.mini-stat strong{font-size:11px;font-weight:600;color:#46533d;font-variant-numeric:tabular-nums}.latest-panel .mini-stat{padding:8px 0}.latest-panel .btn{margin-top:18px}.data-table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:11px}.data-table th{font-weight:500;color:#99a28f;text-transform:uppercase;font-size:8px;letter-spacing:.7px;background:#fafbf8;padding:12px 20px;border-top:1px solid #eef0ea;border-bottom:1px solid #eef0ea}.data-table td{padding:16px 20px;border-bottom:1px solid #eef0ea;color:#6d7a62;vertical-align:middle;font-variant-numeric:tabular-nums}.data-table tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:#fcfdf9}.data-table small{display:block;font-size:9px;margin-top:4px;color:#a4ac9b}.week-link{font-size:11px;font-weight:650;color:#394c2e}.numeric{font-variant-numeric:tabular-nums}.strong{font-weight:650!important;color:#3d5134!important}.status-pill{display:inline-flex;align-items:center;justify-content:center;gap:4px;border-radius:5px;font-size:8px;padding:4px 7px;font-weight:500;line-height:1.1}.status-pill.green{color:#618747;background:#f0f5e9}.status-pill.neutral{color:#8b927f;background:#f3f4ee}.status-pill.amber{color:#a17b39;background:#fcf3db}.row-arrow{color:#a4b099}.text-link{font-size:10px;font-weight:600;color:#6b8c53;display:inline-flex;align-items:center;gap:6px}.page-footer{display:flex;align-items:center;justify-content:space-between;color:#aab1a1;font-size:8px;margin:27px 0 3px}.page-footer b{font-weight:400;margin:0 6px}.current-week-banner{display:flex;gap:15px;align-items:center;border:1px solid #e0e6d7;background:#edf2e5;padding:15px 20px;border-radius:10px;margin-bottom:22px;font-size:11px;color:#657951}.current-week-banner>span:nth-child(2){flex:1}.current-week-banner small{display:block;margin-top:4px;font-size:9px;color:#98a58b}.badge-soft{font-size:8px;letter-spacing:.7px;border:1px solid #d6e1c7;background:#f7f9f1;border-radius:4px;padding:4px 6px;white-space:nowrap}.count-badge{padding:7px 12px;border:1px solid var(--line);background:#fff;border-radius:6px;color:#899779;font-size:11px}.notice{border:1px solid #e0e6d7;border-left:3px solid #b8d894;background:#eff4e9;padding:14px 19px;font-size:11px;line-height:1.8;color:#758368;border-radius:7px;margin-bottom:22px;display:block}.notice a{color:#4c713b;text-decoration:underline}.notice.amber{background:#fff9eb;border-color:#efdfb9;color:#9b814a}.notice>button{margin-left:15px}.notice>span{margin-right:10px}.week-detail-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(270px,1fr);gap:22px;align-items:start}.panel-form{padding:6px 24px 25px}.panel.panel-form{padding-top:24px}.entry-form label,.entry-form legend{font-size:11px;font-weight:550;color:#68795b;display:block;margin-bottom:0}.entry-form>label{margin-bottom:18px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:21px 23px;margin-bottom:22px}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.form-control,.form-select{background:#fff;border:1px solid #e0e6d8;border-radius:6px;font-size:12px;color:#53634a;padding:10px 12px;box-shadow:0 1px 2px #28412802;min-height:40px}.entry-form label>.form-control,.entry-form label>.form-select{margin-top:8px}.form-control:focus,.form-select:focus{border-color:#a5c47f;box-shadow:0 0 0 3px #a5c47f22;color:#384c2e}.form-control::placeholder{color:#b4bbaa;font-size:10px;opacity:1}.entry-form small{display:block;font-size:9px;font-weight:400;color:#a0ab94;line-height:1.7;margin-top:7px}.field-help{font-size:10px;color:#9ba58f;line-height:1.8;margin-top:10px;margin-bottom:15px}.field-group{border:0;min-width:0;margin:0;padding:0}.field-group legend{float:none;margin-bottom:8px;width:auto}.duration-input{display:flex;align-items:center;gap:8px}.duration-input input{width:76px;min-width:0;flex:1}.duration-input span{font-size:10px;color:#9ba98d}.form-details{border-top:1px solid var(--line);padding-top:17px;margin:0 0 23px}.form-details summary{font-size:10px;color:#8e9d7e;cursor:pointer;margin-bottom:17px}.form-details label{margin-bottom:17px}.form-details .form-grid label{margin-bottom:0}.weekly-breakdown .breakdown-body{padding-top:0}.breakdown-body{padding:0 24px 24px}.breakdown-body .mini-stat{border-bottom:1px solid #f1f3ee;padding:12px 0;font-size:10px}.breakdown-body .mini-stat strong{font-size:11px}.breakdown-body .field-help{font-size:9px;margin:15px 0}.breakdown-body .category-child{padding-left:12px}.breakdown-body .subtotal{border-top:1px solid #e0e7d8;border-bottom:0;color:#4a633c;margin-top:5px;font-weight:600}.back-link{display:inline-block;color:#8e9e7c;font-size:10px;margin-bottom:17px}.week-pagination{display:flex;gap:8px}.inline-form{display:inline;margin:0}.text-button{border:0;background:none;padding:4px 0;color:#8a9d79;font-size:10px}.text-button.danger{color:#aa8a7d}.checkbox-label{display:flex!important;align-items:center;gap:8px}.checkbox-label input{accent-color:#66874b}.service-options{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:14px}.service-options legend{font-size:11px;margin-bottom:11px}.service-options label{margin-bottom:15px}.empty-state{text-align:center;padding:42px 25px!important;color:#9aa68e!important;font-size:12px;white-space:normal!important}.empty-state h3{margin:15px 0 8px;color:#6d805e}.empty-state p{max-width:440px;margin:auto;font-size:11px;line-height:1.9;color:#a2ad96}.empty-state svg{color:#a9b99a}.panel-footnote{font-size:10px;padding:16px 24px;color:#a3ad97;line-height:1.8;border-top:1px solid #edf0e7}.settings-panel{max-width:760px}.settings-panel h2{margin-bottom:15px}.transaction-scroll{max-height:600px}.transaction-scroll th{position:sticky;top:0}.muted{color:#9ba78e!important}.alert{border-radius:8px;font-size:12px;line-height:1.8;padding:15px 20px}.alert-success{background:#edf6e6;border-color:#dceacd;color:#5e7c46}.alert-danger{background:#fff0ec;border-color:#f0d9d0;color:#9d6152}.alert-warning{background:#fff7e4;border-color:#f0e2be;color:#997d3f}.auth-body{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:35px;background:radial-gradient(ellipse at 20% 10%,#edf4e3,transparent 55%),#f5f7f0}.auth-card{background:#fff;border:1px solid #e3e8db;border-radius:20px;padding:44px;width:100%;max-width:450px;box-shadow:0 20px 80px #31472807}.auth-card .brand{padding:0;margin-bottom:45px}.auth-card .eyebrow{font-size:8px}.auth-card h1{font-size:28px;letter-spacing:-.8px}.auth-card>p{font-size:12px;line-height:1.9;margin-bottom:27px;color:#94a284}.auth-card .entry-form{margin-top:15px}.auth-card .entry-form .btn{margin-top:9px;padding:13px}.auth-private{display:flex;align-items:center;justify-content:center;gap:8px;font-size:9px;color:#a2b18e;margin-top:26px}.auth-caption{margin-top:25px;color:#a1af90;font-size:11px;letter-spacing:.2px}.auth-card .alert{font-size:11px}.auth-card .field-help{margin-top:-5px;margin-bottom:16px}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #9cbf74;outline-offset:3px}
@media(min-width:1600px){main{padding-top:44px}.metric-value{font-size:34px}.chart-wrap{height:290px}.data-table td{padding-top:19px;padding-bottom:19px}}
@media(max-width:1200px){.sidebar{width:210px;padding-inline:12px}.app-shell{margin-left:210px}main{padding:28px}.topbar{padding:0 28px}.metrics-grid{gap:12px}.metric-card{padding:17px 14px}.metric-value{font-size:25px}.metric-sub{font-size:8px}.metric-top{font-size:9px}.dashboard-grid{grid-template-columns:minmax(0,2fr) minmax(215px,1fr);gap:16px}.panel-heading{padding:19px 20px 15px}.chart-legend{gap:8px;font-size:8px}.week-detail-grid{grid-template-columns:minmax(0,1.4fr) minmax(240px,1fr);gap:17px}.form-grid{gap:17px}.upload-copy span{font-size:10px}.upload-box{gap:13px;padding:20px}.data-table td,.data-table th{padding-left:17px;padding-right:17px}.form-grid.three{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1000px){.sidebar{width:185px;padding-inline:8px}.brand{font-size:21px;padding-left:9px;gap:8px}.brand-mark{width:35px;height:35px}.brand small{font-size:6px;letter-spacing:1px}.nav-link{font-size:10px;gap:9px;padding-inline:11px}.nav-link svg{width:17px}.app-shell{margin-left:185px}main{padding:25px}.topbar{padding:0 25px;height:65px}.page-heading{gap:13px}h1{font-size:28px}.dashboard-grid{grid-template-columns:1fr}.latest-panel{display:none}.metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.metric-value{font-size:29px}.metric-card{padding:18px}.metric-sub{font-size:9px}.metric-top{font-size:10px}.week-detail-grid{grid-template-columns:1fr}.upload-box{flex-wrap:wrap}.upload-copy{flex-basis:60%}.upload-box .btn{margin-left:61px}.upload-box .upload-pick+.btn:not(.d-none){margin-left:0}.vehicle-mini span{font-size:9px}.private-note{font-size:8px}.metrics-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.metrics-grid.three .metric-value{font-size:23px}.page-footer{font-size:7px}.range-form .form-select{min-width:160px;font-size:10px}}
@media(max-width:700px){.sidebar{position:static;width:auto;inset:auto;border-right:0;padding:0;background:#fff;border-bottom:1px solid #e0e6d7}.sidebar>.brand,.nav-caption,.sidebar-bottom{display:none}.sidebar nav{flex-direction:row;overflow-x:auto;gap:3px;padding:8px 12px;-webkit-overflow-scrolling:touch}.nav-link{flex-direction:column;gap:4px;min-height:51px;min-width:66px;padding:6px 8px;font-size:8px;border-radius:7px}.nav-link svg{width:17px;height:17px}.nav-count{position:absolute;margin:0;transform:translate(22px,-3px)}.app-shell{margin-left:0}.topbar{display:none}main{padding:20px 16px 15px}.mobile-brand{display:flex;align-items:center;justify-content:space-between;font-size:20px;letter-spacing:-.7px;color:#415a35;font-weight:650;margin:0 0 27px}.mobile-brand span{font-size:8px;letter-spacing:0;color:#9ba68f;font-weight:400}.page-heading{flex-wrap:wrap;align-items:flex-start;margin-bottom:22px;gap:15px}.page-heading h1{font-size:26px;letter-spacing:-.8px}.page-heading p{font-size:11px;line-height:1.8}.eyebrow{font-size:8px;letter-spacing:1.25px;margin-bottom:8px}.range-form{width:100%;margin:0}.range-form .form-select{width:100%;font-size:11px;padding-block:11px}.upload-box{padding:16px;gap:12px;margin-bottom:23px;align-items:flex-start}.upload-icon{width:38px;height:38px;border-radius:8px}.upload-icon svg{width:21px}.upload-copy{flex-basis:calc(100% - 55px)}.upload-copy strong{font-size:12px}.upload-copy span{font-size:10px;line-height:1.7;margin-top:3px}.upload-copy small{font-size:8px;margin-top:6px}.upload-box .btn{margin:1px 0 0 50px;font-size:10px;padding:10px 13px}.upload-box .upload-pick+.btn:not(.d-none){margin-left:0}.upload-box.compact{padding:16px}.metrics-grid{gap:11px;margin-bottom:17px}.metrics-grid.three{grid-template-columns:1fr}.metrics-grid.three .metric-value{font-size:28px}.metric-card{padding:15px 13px 14px;border-radius:9px}.metric-top{font-size:9px;margin-bottom:14px;gap:2px}.metric-icon{width:22px;height:22px}.metric-icon svg{width:15px}.metric-value{font-size:26px;margin-bottom:11px;letter-spacing:-.9px}.metric-sub{font-size:8px;line-height:1.7}.section-meta{font-size:8px;align-items:flex-start;gap:10px;line-height:1.8}.section-meta a{font-size:8px;white-space:nowrap}.meta-separator{margin:0 4px}.panel{margin-bottom:17px;border-radius:9px}.panel-heading{padding:18px 17px 13px;gap:10px}.panel-heading h2{font-size:15px}.panel-heading p{font-size:9px}.chart-panel .panel-heading{flex-wrap:wrap}.chart-legend{font-size:8px;gap:15px}.chart-wrap{height:235px;padding:3px 13px 8px 3px}.chart-wrap.tall{height:300px}.data-table{font-size:10px}.data-table th{font-size:7px;padding:10px 15px}.data-table td{padding:14px 15px}.data-table small{font-size:8px}.week-link{font-size:10px}.panel-heading .text-link{font-size:9px;white-space:nowrap}.current-week-banner{gap:10px;padding:13px;font-size:10px;border-radius:8px;align-items:flex-start}.current-week-banner small{font-size:8px;line-height:1.8}.badge-soft{font-size:7px;padding:4px}.page-footer{margin-top:23px;font-size:7px;gap:15px;align-items:flex-start}.page-footer span:last-child{text-align:right}.panel-form{padding:4px 17px 20px}.form-grid,.form-grid.three{grid-template-columns:repeat(2,minmax(0,1fr));gap:19px 13px}.entry-form label,.entry-form legend{font-size:10px}.form-control,.form-select{font-size:16px;padding:10px 10px;min-height:44px}.entry-form small{font-size:9px}.duration-input{gap:5px}.duration-input input{width:48px}.field-group legend{margin-bottom:8px}.form-control::placeholder{font-size:9px}.form-details summary{font-size:10px}.entry-form>.btn{min-height:44px;width:100%;font-size:12px}.breakdown-body{padding:0 17px 20px}.notice{padding:13px 15px;font-size:10px;line-height:1.9}.week-pagination{margin-top:0}.week-pagination .btn{font-size:10px;padding:8px 12px}.back-link{font-size:10px;margin-bottom:15px}.entry-form .service-options{gap:11px}.checkbox-label{font-size:11px!important}.count-badge{font-size:10px}.panel-footnote{padding:14px 17px;font-size:9px}.auth-body{padding:22px}.auth-card{padding:30px 25px;border-radius:15px}.auth-card h1{font-size:25px}.auth-card .brand{margin-bottom:35px}.auth-card .entry-form label{font-size:12px}.auth-card .form-control{font-size:16px}.auth-card .entry-form .btn{font-size:11px}.auth-private{font-size:8px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.mobile-tools{display:flex;align-items:center;gap:19px}.mobile-tools form{margin:0}.mobile-tools a,.mobile-tools button{color:#8b9b7b;background:none;border:0;padding:7px;font-size:12px;display:inline-flex}.mobile-tools button:hover{color:#385b2a}

/* Keep supporting information readable on both desktop and phone. */
:root{--muted:#697561}.metric-top,.panel-heading p,.metric-sub,.data-table th,.data-table small,.field-help,.entry-form small,.section-meta,.upload-copy span,.upload-copy small,.page-heading p,.muted,.chart-legend{color:#6b785f}.featured .metric-top{color:#c0d2b4}.featured .metric-sub{color:#b6cba8}.metric-sub{font-size:10px}.panel-heading p,.field-help,.entry-form small{font-size:11px}.data-table th{font-size:9px;font-weight:600}.data-table small{font-size:10px}.entry-form label,.entry-form legend{font-size:12px}.sidebar .nav-link{color:#66745c}.sidebar .nav-link.active{color:#305037}.breakdown-body .field-help{font-size:10px}.section-meta{font-size:11px}.upload-copy span{font-size:12px}.upload-copy small{font-size:10px}.topbar-title{color:#6d7964}.data-table td{font-size:12px}.page-footer,.private-note{color:#75816a}.form-control::placeholder{color:#77846b}.mobile-brand span{color:#6b785f}
@media(max-width:700px){.panel-heading p,.field-help,.entry-form small{font-size:10px}.entry-form label,.entry-form legend{font-size:11px}.metric-sub{font-size:9px}.metric-top{font-size:10px}.section-meta,.section-meta a{font-size:9px}.upload-copy span{font-size:11px}.upload-copy small{font-size:9px}.data-table td{font-size:11px}.data-table small{font-size:9px}.sidebar .nav-link{font-size:9px;min-width:73px}.notice{font-size:11px}.page-footer{font-size:8px}.breakdown-body .field-help{font-size:10px}}

.late-event-detail { padding: 0 0 12px 12px; font-size: 11px; line-height: 1.7; color: var(--muted, #647168); }
.late-event-detail .text-link { display: inline-block; }

.expense-tabs { display:flex; gap:6px; border-bottom:1px solid #dce4dc; margin:0 0 22px; }
.expense-tab { padding:12px 18px; color:#66766a; font-size:13px; font-weight:600; text-decoration:none; border-bottom:3px solid transparent; }
.expense-tab.active { color:#254e35; border-color:#79a653; background:#edf3e8; border-radius:8px 8px 0 0; }
.expense-tab span { margin-left:5px; font-size:11px; }
.expense-tab:focus-visible { outline:2px solid #51845c; outline-offset:3px; }

.recalculate-button:disabled { background:#e8ece7; border-color:#e8ece7; color:#75806f; opacity:1; }

.receipt-list h3 { font-size:16px; margin:12px 0; }
.receipt-row { padding:10px 0; border-bottom:1px solid #edf0ec; display:flex; flex-wrap:wrap; align-items:center; gap:12px; }
.receipt-row small { color:#75806f; }

.receipt-row .text-link { min-width:0; overflow-wrap:anywhere; }
.expense-table { table-layout:fixed; min-width:680px; }
.expense-table th { white-space:normal; }
.expense-table th:nth-child(1) { width:14%; }
.expense-table th:nth-child(2) { width:30%; }
.expense-table th:nth-child(3), .expense-table th:nth-child(4) { width:12%; }
.expense-table th:nth-child(5) { width:14%; }
.expense-table th:nth-child(6) { width:18%; }
.expense-table td:nth-child(2), .expense-table td:last-child { white-space:normal; overflow-wrap:anywhere; }
.expense-table td:last-child .inline-form { display:block; margin-top:6px; }

/* Receipt uploads need room for the native picker and selected filename. */
.form-grid .receipt-upload { grid-column:1 / -1; min-width:0; }
.receipt-upload input[type=file] { display:block; width:100%; min-width:0; max-width:100%; padding:8px; }
.receipt-upload input::file-selector-button { margin-right:10px; padding:8px 12px; border:0; border-radius:5px; background:#edf3e8; color:#254e35; font:inherit; }
.receipt-filename { overflow-wrap:anywhere; }
.receipt-actions { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:18px; }
.receipt-preview { padding:12px; overflow:hidden; }
.receipt-preview img { display:block; max-width:100%; height:auto; margin:auto; }
.receipt-pdf { display:block; width:100%; height:75vh; min-height:400px; }
.receipt-pdf p { padding:16px; }

.expense-report-filter { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin:0; }
.expense-report-filter label { font-size:12px; }
.expense-report-filter .form-select { width:auto; }
.expense-report-filter .btn { min-height:44px; }
@media(max-width:700px){#expense-breakdown .panel-heading { flex-wrap:wrap; } .expense-report-filter { width:100%; } }

#expense-breakdown .data-table { table-layout:fixed; width:100%; }
#expense-breakdown th:first-child { width:31%; }
#expense-breakdown th { white-space:normal; }
#expense-breakdown td:first-child { white-space:normal; overflow-wrap:anywhere; }
@media(max-width:700px){#expense-breakdown .data-table th,#expense-breakdown .data-table td { padding:12px 7px; } #expense-breakdown .data-table th { font-size:8px; } #expense-breakdown .data-table td { font-size:10px; } #expense-breakdown .data-table small { font-size:8px; } }

.pattern-filter { display:flex; align-items:center; flex-wrap:wrap; gap:10px; margin-bottom:20px; }
.pattern-filter .form-select { width:auto; min-width:160px; }
.pattern-filter .btn { min-height:44px; }
.pattern-heatmap { min-width:650px; table-layout:fixed; }
.pattern-heatmap th { white-space:normal; }
.pattern-heatmap td { padding:6px; border:3px solid white; vertical-align:top; }
.pattern-heatmap details { font-size:11px; }
.pattern-heatmap summary { cursor:pointer; min-height:44px; padding:12px 4px; }
.pattern-heatmap details span { display:block; white-space:normal; font-size:10px; padding:4px; }
.heat-0 { background:#f1f3ee; }.heat-1 { background:#e4efdc; }.heat-2 { background:#b9d69f; }.heat-3 { background:#7fb665; }.heat-4 { background:#335c37; color:white; }
.pattern-summary { min-width:530px; }

.fuel-add-action { margin:20px 0; }
.fuel-dialog { width:min(720px,calc(100% - 24px)); max-height:90dvh; overflow:auto; border:1px solid #dce4dc; border-radius:14px; padding:24px; color:var(--ink,#28392d); background:#fff; }
.fuel-dialog::backdrop { background:#15251dcc; }
.fuel-dialog-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:18px; }
.fuel-dialog-heading h2 { font-size:23px; margin:0 0 8px; }
.fuel-dialog-heading p { font-size:12px; color:#697561; margin:0; }
.fuel-dialog-heading .btn { flex-shrink:0; min-height:44px; }
.fuel-scan { padding:14px; border:1px solid #dce4dc; border-radius:8px; background:#f7faf4; margin-bottom:20px; }
.fuel-scan input { width:100%; min-width:0; padding:8px; }
.fuel-scan .btn { margin:10px 0; min-height:44px; }
.station-shortcuts { display:flex; flex-wrap:wrap; gap:8px; margin:14px 0; }
.station-choice { border:1px solid #d8e1d2; background:#f1f6eb; color:#305037; padding:9px 12px; min-height:44px; border-radius:22px; font-size:13px; }
.station-choice[aria-pressed=true] { background:#c8ec96; border-color:#598042; }
@media(max-width:700px){.fuel-dialog { padding:18px; }.fuel-dialog .form-grid { grid-template-columns:1fr; }.fuel-dialog .entry-form>.btn { width:100%; }.fuel-dialog .entry-form label { font-size:12px; }.fuel-dialog .entry-form small,.fuel-dialog .field-help { font-size:11px; } }

.fuel-photo-options { display:grid; gap:14px; }

.fuel-photo-options { grid-template-columns:repeat(2,minmax(0,1fr)); }
.fuel-photo-options .btn { margin:0 0 12px; min-height:48px; }

/* Keep the page still behind the dialog, including mobile touch scrolling. */
html.fuel-modal-open { overflow:hidden; overscroll-behavior:none; }
html.fuel-modal-open body { position:fixed; width:100%; overflow:hidden; }
.fuel-dialog { overscroll-behavior:contain; -webkit-overflow-scrolling:touch; }

.gross-benchmark { position:sticky; top:0; z-index:40; display:flex; justify-content:space-between; gap:20px; background:#eaf3df; border:1px solid #b6d193; border-left:5px solid #456c35; border-radius:10px; padding:16px 20px; margin:0 0 24px; box-shadow:0 3px 12px #20372d10; }
.benchmark-label,.benchmark-basis { display:block; font-size:11px; color:#526648; }
.benchmark-label { font-weight:700; letter-spacing:.8px; }
.benchmark-value { display:block; font-size:38px; color:#203f2b; line-height:1.4; }
.benchmark-value small { font-size:13px; margin-left:6px; font-weight:400; }
.benchmark-context { max-width:350px; font-size:11px; }
.benchmark-context>span { display:block; margin-bottom:6px; }
.benchmark-context details { margin-top:8px; }.benchmark-context summary { cursor:pointer; }.benchmark-context p { margin:8px 0 0; line-height:1.6; }
.gross-rate { display:inline-block; padding:7px 9px; border-radius:7px; text-align:left; }
.gross-rate strong { font-size:17px; }.gross-rate small { display:block; font-size:10px!important; white-space:normal; color:inherit!important; margin-top:4px; }
.rate-above { color:#215132; background:#e0f0d9; }.rate-below { color:#922f28; background:#fbe7e3; }.rate-even { color:#596044; background:#eeefde; }.rate-unavailable { color:#697561; }
.gross-hour-card .gross-rate strong { font-size:30px; }
@media(max-width:700px){.gross-benchmark { padding:10px 12px; gap:10px; flex-wrap:wrap; }.benchmark-value { font-size:31px; }.benchmark-context { max-width:100%; width:100%; }.benchmark-context .gross-rate { display:inline-block; }.benchmark-context details { display:inline-block; margin-left:10px; }.benchmark-context>span { font-size:10px; }.benchmark-context .gross-rate strong { font-size:14px; }.benchmark-context .gross-rate small { display:inline; margin-left:6px; }.benchmark-label { font-size:10px; } }

.payout-table { min-width:850px; }.payout-table td { vertical-align:top; }.payout-table td:first-child { white-space:normal; min-width:170px; }.payout-table details { min-width:180px; white-space:normal; }.payout-table summary { cursor:pointer; padding-bottom:8px; }.payout-breakdown { display:grid; grid-template-columns:1fr auto; gap:7px 12px; font-size:11px; margin:8px 0; }.payout-breakdown dt { font-weight:400; }.payout-breakdown dd { margin:0; }

/* Bound layout content to the viewport; wide data scrolls inside its own wrapper. */
html { width:100%; max-width:100%; overflow-x:hidden; }
body { width:100%; max-width:100%; position:relative; overflow-x:clip; }
.app-shell, main, .dashboard-grid, .dashboard-grid>*, .chart-wrap,
.panel, .table-responsive, .page-heading>*, .gross-benchmark>* { min-width:0; }
.panel, .table-responsive, .chart-wrap { max-width:100%; }
.table-responsive { overflow-x:auto; overscroll-behavior-x:contain; }
.chart-wrap canvas { max-width:100%; }
.form-grid>* { min-width:0; }
.upload-copy { min-width:0; overflow-wrap:anywhere; }
.gross-benchmark { max-width:100%; }
.benchmark-context, .gross-rate small { overflow-wrap:anywhere; }
@media(max-width:1000px){.dashboard-grid { grid-template-columns:minmax(0,1fr); }}
@media(max-width:700px){
  .sidebar { max-width:100%; min-width:0; }
  .sidebar nav { width:100%; min-width:0; max-width:100%; overscroll-behavior-x:contain; }
  .sidebar .nav-link { flex-shrink:0; }
  .app-shell, main { width:100%; max-width:100%; }
  .section-meta { flex-wrap:wrap; }
  .benchmark-context details { max-width:100%; margin-left:0; }
}


.daily-quick { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin-bottom:20px; }
.daily-scan { padding:14px; border:1px solid #dce4dc; border-radius:9px; margin-bottom:16px; background:#f4f8ef; }
.daily-scan .field-help { margin:10px 0; }.daily-live-rate { padding:16px; margin-bottom:20px; background:#edf3e8; border-radius:9px; }
.daily-live-rate>span { display:block; font-size:12px; }.daily-live-rate output { display:block; font-size:25px; font-weight:700; padding:8px; border-radius:6px; }
.day-chart { display:block; width:100%; height:auto; max-height:260px; padding:8px; }.day-chart text { font-size:12px; fill:#40533e; }.day-chart a:focus { outline:2px solid #335f35; }
.day-chart .day-saved { fill:#8dbd65; }.day-chart .day-pdf { fill:#dce5d7; }.day-chart .day-selected { stroke:#305037; stroke-width:3; }
.daily-detail-body { padding:0 20px 18px; }.daily-highlight-rate .gross-rate strong { font-size:30px; }.daily-event-details { border-top:1px solid #edf0ec; padding:16px 0; }.daily-event-details>summary { cursor:pointer; padding:0 20px; }
#daily-detail { scroll-margin-top:240px; }
@media(max-width:700px){.daily-highlights .panel-heading { flex-wrap:wrap; }.day-chart text { font-size:20px; }.daily-scan .checkbox-label { white-space:normal; }.daily-live-rate output { font-size:21px; }}

.daily-chart-legend { padding:0 20px 12px; display:flex; flex-wrap:wrap; gap:8px 18px; font-size:11px; color:#526648; }
.daily-average-legend { color:#6c527f; }.day-chart .day-average-marker { stroke:#705783; stroke-width:3; stroke-dasharray:6 4; }
.day-chart .day-average-value { fill:#705783; font-size:17px; }.day-chart .day-higher { fill:#a3cd87; }.day-chart .day-lower { fill:#e8aaa1; }.day-chart .day-even { fill:#d7d7b6; }
@media(max-width:700px){.daily-chart-legend { font-size:10px; }.day-chart .day-average-value { font-size:19px; }}

.journal-fab { position:fixed; right:20px; bottom:20px; z-index:50; box-shadow:0 3px 14px #20372d30; min-height:48px; border-radius:24px; }
.journal-dialog { width:min(650px,calc(100% - 24px)); max-height:90dvh; overflow:auto; border:1px solid #dce4dc; border-radius:14px; padding:24px; background:white; color:var(--ink); overscroll-behavior:contain; }
.journal-dialog::backdrop { background:#15251dcc; }.journal-dialog .entry-form>label { display:block; margin-bottom:14px; }.journal-dialog textarea { min-height:110px; }.journal-dialog .form-details { margin-bottom:18px; }
.journal-tag-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:14px 0; }.journal-tag-options .checkbox-label { margin:0; min-height:36px; }
.journal-panel { padding-bottom:20px; }.journal-panel .panel-heading { flex-wrap:wrap; }
.journal-day-heading { margin:22px 20px 10px; font-size:16px; }.journal-note { padding:16px 20px; margin:0 20px 12px; border:1px solid #e1e7db; border-radius:10px; background:#fafcf7; }
.journal-note-heading { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; font-size:12px; margin-bottom:10px; }.journal-note-actions { display:flex; align-items:center; gap:16px; }
.journal-body { color:#2f4234; white-space:normal; overflow-wrap:anywhere; line-height:1.7; font-size:14px; }.journal-context { font-size:12px; margin-top:10px; }.journal-tags { display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; }
.journal-tag { padding:4px 9px; border-radius:12px; background:#edf0e7; color:#526648; font-size:11px; }.tag-positive { background:#e0f0d9; color:#215132; }.tag-negative { background:#fbe7e3; color:#922f28; }
.journal-week-filter { display:flex; align-items:center; gap:12px; margin:0 20px 14px; font-size:12px; }.journal-week-filter .form-select { width:auto; max-width:75%; }.journal-filter-empty,.journal-count { margin:12px 20px; }
.journal-panel+.page-footer { padding-bottom:55px; }#journal-date { width:auto; }.journal-options summary { cursor:pointer; }
@media(max-width:700px){.journal-dialog { padding:18px; }.journal-dialog .entry-form>button[type=submit] { width:100%; min-height:48px; }.journal-note { margin-inline:12px; padding:13px; }.journal-body { font-size:13px; }.journal-day-heading { margin-inline:13px; }.journal-fab { right:14px; bottom:14px; }.journal-tag-options { gap:8px; }.journal-dialog .entry-form label { font-size:12px; }.journal-dialog .checkbox-label { white-space:normal; }}

/* Compact paired averages retain gross/hour as the leading metric. */
.gross-benchmark{padding:10px 16px;gap:8px 20px;align-items:center;margin-bottom:18px}
.benchmark-metrics{display:flex;gap:24px;align-items:baseline;flex-wrap:wrap}
.benchmark-value{font-size:30px;line-height:1.25;white-space:nowrap}
.benchmark-value small{font-size:12px;margin-left:4px}.benchmark-ride{font-size:25px}
.benchmark-context details{margin-top:0}.benchmark-context summary{font-size:10px}
.daily-live-rate{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;padding:12px 14px}
.daily-live-rate>div{min-width:0}.daily-live-rate span{display:block;font-size:11px}.daily-live-rate output{font-size:25px;padding:2px 6px;display:inline-block;line-height:1.4}.daily-live-rate small{display:block;font-size:10px;margin-top:2px}
@media(max-width:700px){.gross-benchmark{padding:9px 12px;gap:3px}.benchmark-metrics{gap:20px}.benchmark-value{font-size:29px}.benchmark-ride{font-size:24px}.benchmark-context{width:auto;max-width:100%}.benchmark-context details{margin:0;display:block}.benchmark-label{font-size:9px}.daily-live-rate output{font-size:24px}}
.daily-time-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.daily-time-row>label{min-width:0}.daily-time-row input{width:100%;min-width:0}
.daily-entry-actions{display:flex;flex-wrap:wrap;gap:10px}.daily-result-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:4px 0 14px}.daily-result-heading>strong{font-size:22px}.daily-result-heading .btn{padding:8px 16px}.daily-readout{display:flex;flex-wrap:wrap;gap:12px 24px;margin-bottom:18px}.daily-readout span{display:block;font-size:11px;color:#657062}.daily-readout strong{font-size:21px;color:#203f2b;white-space:nowrap}.daily-done{margin-top:16px}[data-day-editor] .daily-time-row{margin-top:16px}[data-day-rates][hidden]{display:none}
.daily-calculator{gap:0}.daily-calculator>.daily-entry-actions{margin:0 0 16px}.daily-calculator>[data-day-scan-status]:not([hidden]){margin:0 0 16px}[data-day-card][hidden]{display:none}
.journal-image-input{width:100%;min-width:0}.journal-image-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:12px;margin:12px 0}.journal-image-grid>*{min-width:0}.journal-image-grid img{display:block;width:100%;height:140px;object-fit:contain;background:#f4f6ef;border:1px solid #dce4dc;border-radius:8px}.journal-image-grid .checkbox-label{font-size:11px;margin-top:6px;white-space:normal}
.journal-video{grid-column:1/-1;min-width:0}.journal-video video{display:block;width:100%;max-height:360px;border-radius:8px;background:#16241c}.journal-video .field-help{overflow-wrap:anywhere;margin:5px 0}.journal-image-grid>div:has(.journal-video){grid-column:1/-1}
.odometer-scan{margin-bottom:18px}.odometer-scan .field-help{margin-top:10px}
.entry-add-action{margin-bottom:20px}.entry-dialog>.panel,.entry-dialog [data-expense-panel]>.panel{border:0;box-shadow:none;margin:0}.entry-dialog>.panel>.panel-heading{display:none}.entry-dialog .panel-form{padding:0}.expense-kind-actions{margin-bottom:18px}.entry-subtitle{font-size:18px;margin:12px 0 18px}.entry-dialog .panel-heading{padding:0 0 16px}.entry-dialog [data-expense-panel][hidden]{display:none}.journal-fab{max-width:calc(100vw - 32px);font-size:13px}
/* Consistent, visible processing feedback for every photo/screenshot reader. */
.field-help.ocr-working{display:block!important;position:relative;padding:16px 16px 16px 52px!important;margin:12px 0!important;border:1px solid #a9cd82;border-radius:10px;background:#eaf4de;color:#203f2b;font-size:14px;font-weight:700;min-height:66px}
.ocr-working::before{content:"";position:absolute;left:17px;top:18px;width:22px;height:22px;border:3px solid #b7d69b;border-top-color:#31572b;border-radius:50%;animation:ocr-spin .8s linear infinite}
.ocr-working::after{content:"Please wait — this can take several seconds.";display:block;margin-top:4px;font-size:11px;line-height:1.5;font-weight:400;color:#526648}
@keyframes ocr-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.ocr-working::before{animation:none;border-top-color:#31572b;border-right-color:#31572b}}
.performance-hero{display:flex;align-items:center;justify-content:space-between;gap:20px}.performance-hero>div{min-width:0}.performance-hero span,.performance-hero small{display:block;font-size:12px}.performance-hero>div>strong{display:block;font-size:42px;line-height:1.3;color:#203f2b}.performance-hero .performance-change{padding:12px;border-radius:9px}.performance-hero .performance-change>strong{font-size:24px;color:inherit}.performance-insight{font-size:13px;margin:20px 0 0;line-height:1.7}.performance-comparison{scroll-margin-top:130px}.performance-comparison summary{cursor:pointer}.performance-comparison details p{font-size:12px;line-height:1.7;margin-top:14px}@media(max-width:700px){.performance-hero{align-items:stretch;flex-direction:column;gap:12px}.performance-hero>div>strong{font-size:36px}.performance-hero .performance-change>strong{font-size:22px}}
#eats-comparison{scroll-margin-top:130px}#eats-comparison .panel-form p{line-height:1.7;font-size:13px}#eats-comparison summary{cursor:pointer}
.fuel-price-heading{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}.fuel-price-heading strong{font-size:30px;color:#203f2b}.fuel-price-heading strong small{font-size:13px;font-weight:400}.weekly-fuel-price p{font-size:13px;line-height:1.7;margin:10px 0}.weekly-fuel-price summary,#fuel-price-history summary{cursor:pointer;font-size:12px}.weekly-fuel-price,#fuel-price-history{scroll-margin-top:120px}

.odometer-interval-checks>summary{cursor:pointer;padding:20px 24px;list-style-position:inside}.odometer-interval-checks>summary strong{font-size:16px}.odometer-interval-checks>summary span{display:block;font-size:12px;margin-top:6px;color:#78836e}.odometer-interval-checks[open]>summary{border-bottom:1px solid #edf0ec}
