@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--forest:#1f5130;--forest-dark:#163a22;--forest-light:#2e7d45;--forest-soft:#e7f0e8;--tan:#c9a878;--tan-soft:#f0e7d6;--bark:#6b4f3a;--gold:#c9a227;--gold-soft:#f3ebcf;--bg:#f7f6f1;--paper:#fff;--warm:#fbfaf6;--ink:#22312b;--slate:#5a6760;--mist:#8a958e;--line:#e3dfd4;--line-soft:#eeeae0;--money:#1f7a3d;--money-soft:#e5f2e8;--warn:#b5742a;--warn-soft:#f6ebd8;--danger:#b23a2e;--danger-soft:#f6e2de;--info:#2e6b8f;--info-soft:#e4eef4;--navy:var(--forest);--green:var(--forest);--green-light:var(--forest-light);--green-bg:var(--forest-soft);--teal:var(--money);--teal-soft:var(--money-soft);--amber:var(--warn);--amber-soft:var(--warn-soft);--red:var(--danger);--red-soft:var(--danger-soft);--blue-soft:var(--info-soft);--gold-deep:var(--gold);--ivory:var(--bg);--white:var(--paper);--border:var(--line);--text:var(--ink);--text-muted:var(--slate);--line-navy:#1f513024;--shadow-sm:0 1px 2px #22312b0d, 0 2px 8px #22312b0d;--shadow:0 2px 8px #22312b12, 0 14px 34px #22312b14;--shadow-md:var(--shadow);--shadow-lg:0 8px 22px #22312b1f, 0 30px 64px #22312b24;--radius:16px;--r:16px;--sidebar-width:250px;--header-height:74px}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14.5px;line-height:1.5}#root{min-height:100vh}h1,h2,h3{color:var(--ink);letter-spacing:-.01em;font-family:Inter,sans-serif;font-weight:800;line-height:1.2}h1{font-size:22px}h2{font-size:18px}h3{font-size:16px}.app-layout{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);background:var(--paper);border-right:1px solid var(--line);color:var(--ink);z-index:100;flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0;overflow:hidden}.sidebar-brand{border-bottom:1px solid var(--line-soft);text-align:center;background:var(--paper);flex:none;padding:18px 16px 14px}.sidebar-logo-img{width:auto;max-width:140px;height:auto;max-height:78px;margin:0 auto 4px;display:block}.sidebar-brand-name{color:var(--forest);font-size:15px;font-weight:800;line-height:1.2}.sidebar-brand-sub{letter-spacing:.1em;text-transform:uppercase;color:var(--tan);font-size:11px;font-weight:700}.sidebar-nav{flex-direction:column;flex:auto;gap:1px;padding:8px 10px 16px;display:flex;overflow-y:auto}.nav-group{margin-bottom:2px}.nav-group-label{letter-spacing:.07em;text-transform:uppercase;color:var(--mist);padding:13px 12px 4px;font-size:10.5px;font-weight:800}.nav-group:first-child .nav-group-label{padding-top:4px}.nav-link{color:var(--ink);border-radius:9px;align-items:center;gap:11px;min-height:34px;padding:7px 11px;font-size:14px;font-weight:600;text-decoration:none;transition:background .15s,color .15s;display:flex}.nav-text{flex:auto}.nav-link:hover{background:var(--forest-soft);color:var(--forest)}.nav-link.active{background:var(--forest);color:#fff;font-weight:700}.nav-link.active .nav-icon{color:#fff}.nav-icon{width:19px;height:19px;color:var(--forest);flex:none;justify-content:center;align-items:center;display:inline-flex}.nav-count{background:var(--gold-soft);color:var(--bark);border-radius:999px;padding:1px 8px;font-size:11px;font-weight:800}.nav-link.active .nav-count{color:#fff;background:#ffffff38}.sidebar-footer{border-top:1px solid var(--line-soft);flex:none;padding:12px}.main-area{margin-left:var(--sidebar-width);flex-direction:column;flex:1;min-width:0;display:flex}.top-header{height:var(--header-height);background:var(--paper);border-bottom:1px solid var(--line);z-index:50;justify-content:space-between;align-items:center;padding:0 30px;display:flex;position:sticky;top:0}.header-logo{width:auto;height:38px}.header-actions{align-items:center;gap:14px;display:flex}.content{width:100%;max-width:1280px;padding:30px 34px 60px}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:22px;display:flex}.page-header h1,.page-header h2{font-size:22px;line-height:1.15}.page-header p,.login-subtitle{color:var(--slate);font-size:14.5px}.card,.form-card,.chart-card,.report-card,.stat-card,.login-card,.job-card,.lead-card,.crew-grid-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-sm)}.card{padding:24px}.card-grid,.summary-grid,.two-col{gap:20px;display:grid}.summary-grid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}.two-col{grid-template-columns:1.5fr 1fr;align-items:start}.stat-row{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:20px;display:grid}.stat-card{flex-direction:column;gap:5px;padding:16px 18px;display:flex;position:relative;overflow:hidden}.stat-card:before{content:"";background:var(--forest);width:4px;position:absolute;top:0;bottom:0;left:0}.stat-title,.stat-row .stat-title{letter-spacing:.05em;text-transform:uppercase;color:var(--slate);font-size:11px;font-weight:700}.stat-value{color:var(--ink);font-family:Inter,sans-serif;font-size:24px;font-weight:800;line-height:1.1}.summary-item{flex-direction:column;gap:4px;display:flex}.btn-primary,.btn-secondary,.btn-danger,.btn-sm,.btn-full,.btn-logout,.btn-icon,button.btn,.btn{cursor:pointer;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:8px;min-height:40px;padding:9px 16px;font-family:Inter,sans-serif;font-size:14.5px;font-weight:700;line-height:1.1;text-decoration:none;transition:transform .1s,box-shadow .15s,background .15s,border-color .15s;display:inline-flex}.btn-primary:hover,.btn-secondary:hover,.btn-danger:hover,.btn-sm:hover,.btn-logout:hover{text-decoration:none}.btn-primary{background:var(--forest);color:#fff;box-shadow:0 4px 14px #1f513040}.btn-primary:hover{background:var(--forest-dark);transform:translateY(-1px)}.btn-secondary{color:var(--forest);border-color:var(--line);background:#fff}.btn-secondary:hover{border-color:var(--forest);background:var(--forest-soft)}.btn-danger{color:var(--danger);border-color:var(--danger-soft);background:#fff}.btn-danger:hover{background:var(--danger-soft)}.btn-sm{border-radius:9px;min-height:34px;padding:7px 13px;font-size:13.5px}.btn-full{width:100%}.btn-icon{color:var(--slate);background:0 0;border-radius:11px;min-height:44px;padding:10px}.btn-icon:hover{background:var(--forest-soft);color:var(--forest)}.btn-logout{color:var(--slate);border-color:var(--line);background:0 0}.btn-logout:hover{border-color:var(--forest);color:var(--forest)}.status-badge{border-radius:999px;align-items:center;padding:3px 10px;font-size:12px;font-weight:700;display:inline-flex}.status-new{background:var(--info-soft);color:var(--info)}.status-won{background:var(--money-soft);color:var(--money)}.status-lost{background:var(--danger-soft);color:var(--danger)}.data-table,.report-table{border-collapse:collapse;width:100%;font-size:14px}.data-table th,.report-table th{text-align:left;letter-spacing:.04em;text-transform:uppercase;color:var(--slate);border-bottom:2px solid var(--line);background:var(--warm);padding:10px 14px;font-size:11px;font-weight:800}.data-table td,.report-table td{border-bottom:1px solid var(--line-soft);color:var(--ink);padding:11px 14px}.data-table tr:last-child td{border-bottom:none}.clickable-row{cursor:pointer}.clickable-row:hover td{background:var(--forest-soft)}.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.text-right{text-align:right}.text-center{text-align:center}.text-sm{font-size:14px}.text-muted{color:var(--slate)}.positive{color:var(--money);font-weight:700}.negative{color:var(--danger);font-weight:700}.net-row td,.total-row td,.total-bar{color:var(--ink);background:var(--warm);font-weight:800}.category-header td{color:var(--forest);background:var(--forest-soft);font-weight:800}.category-subtotal td{color:var(--slate);font-weight:700}.form-group{flex-direction:column;gap:7px;margin-bottom:16px;display:flex}.form-row,.filter-bar{flex-wrap:wrap;gap:14px;display:flex}.form-group label,.checkbox-group label{color:var(--ink);font-size:15px;font-weight:700}input,select,textarea{color:var(--ink);border:1.5px solid var(--line);background:#fff;border-radius:10px;width:100%;min-height:42px;padding:10px 12px;font-family:Inter,sans-serif;font-size:14.5px;transition:border .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{border-color:var(--forest);box-shadow:0 0 0 3px var(--forest-soft);outline:none}.form-actions{flex-wrap:wrap;gap:12px;margin-top:10px;display:flex}.form-error{color:var(--danger);font-size:15px}.password-field{position:relative}.toggle-pw{color:var(--forest);cursor:pointer;background:0 0;border:none;min-height:auto;padding:4px;font-size:14.5px;font-weight:700;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.checkbox-group{align-items:center;gap:10px;display:flex}.checkbox-group input{width:auto;min-height:auto}.autocomplete-dropdown{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:12px;margin-top:4px;overflow:hidden}.autocomplete-item{cursor:pointer;padding:12px 14px}.autocomplete-item:hover{background:var(--forest-soft)}.progress-bar-container{flex-direction:column;gap:6px;margin-top:14px;display:flex}.progress-track{background:var(--line-soft);border-radius:99px;width:100%;height:10px;overflow:hidden}.progress-fill{background:linear-gradient(90deg,var(--forest),var(--forest-light));border-radius:99px;height:100%}.progress-label{color:var(--ink);font-size:13.5px;font-weight:700}.progress-text{color:var(--slate);text-align:right;font-size:12.5px}.login-page{background:linear-gradient(160deg,var(--forest-soft),var(--bg));justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{width:100%;max-width:420px;box-shadow:var(--shadow-lg);padding:42px 36px}.login-brand{text-align:center;margin-bottom:8px}.login-brand h1{color:var(--forest);font-size:30px}.login-subtitle{text-align:center;margin-bottom:26px}.login-form{flex-direction:column;gap:10px;display:flex}.loading{text-align:center;color:var(--slate);padding:44px;font-size:15px}.empty-state{text-align:center;color:var(--slate);padding:40px 24px}.empty-state .empty-icon{background:var(--forest-soft);width:54px;height:54px;color:var(--forest);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 14px;display:flex}.empty-state h3{color:var(--ink);margin-bottom:7px;font-size:18px}.empty-state p{max-width:440px;margin:0 auto 16px;font-size:14.5px}.empty-actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.month-selector,.year-selector{align-items:center;gap:12px;display:flex}.month-label,.year-label{color:var(--ink);text-align:center;min-width:110px;font-size:15px;font-weight:800}.pagination{justify-content:center;align-items:center;gap:10px;margin-top:20px;display:flex}.insight-row{border-bottom:1px solid var(--line-soft);justify-content:space-between;padding:10px 0;font-size:14.5px;display:flex}.section-link{color:var(--forest);font-size:15px;font-weight:700;text-decoration:none}.section-link:hover{text-decoration:underline}.section-title{text-transform:uppercase;letter-spacing:.05em;color:var(--tan);margin-bottom:12px;font-size:13px;font-weight:800}.help-note{background:var(--forest-soft);border:1px solid var(--forest-soft);color:var(--forest-dark);border-radius:12px;padding:14px 16px;font-size:15.5px}.job-card,.lead-card{padding:20px}.job-card-header,.lead-card-header,.debt-card-header{justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:10px;display:flex}.job-card-header h3,.lead-card-header h3,.debt-card-header h3{font-size:16px}.debt-card-actions{flex-shrink:0;gap:8px;display:flex}.job-meta,.lead-meta,.debt-info-row{color:var(--slate);flex-wrap:wrap;gap:16px;font-size:14px;display:flex}.job-amount,.debt-total{color:var(--ink);font-size:15.5px;font-weight:800}.crew-grid-wrapper{overflow-x:auto}.crew-grid{border-collapse:collapse;width:100%;font-size:13px}.crew-grid th,.crew-grid td{border:1px solid var(--line-soft);text-align:center}.crew-name-col{background:var(--paper);z-index:1;min-width:160px;padding:8px 12px;position:sticky;left:0;text-align:left!important}.day-col{width:26px;color:var(--slate);padding:6px 0;font-weight:700}.crew-total-col{min-width:64px;padding:8px 12px;font-weight:700}.day-cell{cursor:pointer;width:26px;height:36px}.day-cell:hover{background:var(--forest-soft)}.day-cell.worked{background:var(--forest)}.mobile-topbar,.mobile-backdrop{display:none}@media (width<=900px){body{font-size:16px}.sidebar{box-shadow:var(--shadow-lg);transition:transform .2s;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.main-area{margin-left:0}.two-col{grid-template-columns:1fr}.content{padding:18px 16px 90px}.page-header{flex-direction:column;align-items:flex-start}.btn-sm{min-height:44px}.mobile-topbar{background:var(--paper);border-bottom:1px solid var(--line);z-index:60;align-items:center;gap:12px;padding:10px 16px;display:flex;position:sticky;top:0}.hamburger{border:1px solid var(--line);width:48px;height:48px;color:var(--forest);cursor:pointer;background:#fff;border-radius:11px;flex:none;justify-content:center;align-items:center;display:flex}.mobile-logo{width:auto;height:32px}.mobile-backdrop.show{z-index:99;background:#22312b73;display:block;position:fixed;inset:0}}
