@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');

:root{--ink:#172b2a;--muted:#75817f;--line:#e6eae7;--canvas:#f5f7f5;--white:#fff;--green:#1f5147;--green-dark:#163d36;--lime:#d2ef77;--soft-green:#eaf3e9;--orange:#c7763d;--soft-orange:#fff2e8;--blue:#4979a4;--soft-blue:#ebf3fa;--red:#b9584b;--soft-red:#fff0ee;--shadow:0 12px 32px rgba(28,48,41,.07);font-family:'DM Sans',Arial,sans-serif}
*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--canvas);font-size:14px}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}.hidden{display:none!important}.muted{color:var(--muted)}.eyebrow,.workspace-label,.section-kicker{font-size:10px;font-weight:700;letter-spacing:1.4px;color:#85918d}
.login-screen{min-height:100vh;display:grid;grid-template-columns: minmax(390px, .82fr) 1.18fr;background:#fff}.login-card{width:min(390px,calc(100% - 48px));margin:auto}.brand-mark{width:37px;height:37px;border-radius:11px;background:var(--green-dark);color:var(--lime);font:800 21px Manrope,sans-serif;display:inline-grid;place-items:center}.login-card .eyebrow{margin:40px 0 14px;color:var(--green);font-size:9px}.login-card h1,.aside-content h2,.page-heading h1{font-family:Manrope,sans-serif;letter-spacing:-1.6px}.login-card h1{font-size:37px;line-height:1.18;margin:0 0 12px}.login-card>.muted{margin:0 0 33px}.login-card label,.field-label{display:block;font-weight:600;font-size:12px;margin:0 0 8px}.login-card input,.form-input{width:100%;height:44px;border:1px solid #dfe5e0;border-radius:7px;background:#fff;padding:0 13px;color:var(--ink);outline:none}.login-card input:focus,.form-input:focus,.form-textarea:focus{border-color:#6e9a80;box-shadow:0 0 0 3px rgba(76,132,97,.12)}.login-card form .button{margin-top:15px}.button{border:0;border-radius:7px;padding:11px 15px;display:inline-flex;align-items:center;justify-content:center;gap:14px;font-weight:700;font-size:12px;transition:transform .15s,background .15s}.button:hover{transform:translateY(-1px)}.button-primary{background:var(--green);color:#fff}.button-primary:hover{background:var(--green-dark)}.button-lime{background:var(--lime);color:var(--ink)}.button-outline{background:#fff;border:1px solid var(--line);color:var(--ink)}.button-wide{width:100%;height:46px}.login-note{margin-top:18px;text-align:center;font-size:10px;color:#89948e}.login-aside{margin:14px 14px 14px 0;border-radius:18px;background:linear-gradient(145deg,#173e37,#0f2c2d 80%);color:#fff;position:relative;overflow:hidden;display:flex;align-items:center;padding:clamp(34px,7vw,100px)}.login-aside:before,.login-aside:after{content:"";position:absolute;border:1px solid rgba(210,239,119,.15);border-radius:50%;width:520px;height:520px;right:-170px;top:-95px}.login-aside:after{width:400px;height:400px;right:-110px;top:-35px}.aside-content{position:relative;z-index:1}.live-pill{display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(255,255,255,.2);padding:8px 11px;border-radius:30px;font-size:9px;letter-spacing:1.1px}.live-pill span{background:var(--lime);width:6px;height:6px;border-radius:50%}.aside-content h2{font-size:clamp(40px,5vw,68px);line-height:1.05;margin:28px 0 15px}.aside-content>p{font-size:14px;color:#bfd0c9;max-width:330px;line-height:1.7}.aside-stats{display:flex;gap:35px;margin-top:55px}.aside-stats div{display:grid;gap:5px}.aside-stats strong{color:var(--lime);font:700 19px Manrope}.aside-stats span{font-size:10px;color:#bdc9c4}.aside-foot{position:absolute;bottom:25px;left:clamp(34px,7vw,100px);font-size:9px;letter-spacing:1.3px;color:#97aaa2}.aside-foot span{color:var(--lime);padding:0 5px}
.app-shell{min-height:100vh}.sidebar{width:248px;position:fixed;inset:0 auto 0 0;background:#fff;border-right:1px solid #edf0ed;padding:23px 15px 14px;display:flex;flex-direction:column;z-index:5}.brand{display:flex;align-items:center;gap:10px;margin:0 0 38px 6px;font:800 17px Manrope;letter-spacing:-.7px}.brand-mark{flex:none}.brand small{display:block;font:700 8px 'DM Sans';letter-spacing:1.8px;color:#8a9590;margin-top:2px}.workspace-label{margin:0 0 10px 11px;font-size:9px}.main-nav{display:grid;gap:4px}.nav-link{height:42px;width:100%;border:0;background:transparent;text-align:left;border-radius:7px;padding:0 11px;display:flex;align-items:center;gap:12px;color:#67736e;font-size:12px;font-weight:500}.nav-link:hover{background:#f5f7f5;color:var(--ink)}.nav-link.active{background:#edf4ed;color:var(--green-dark);font-weight:700}.nav-icon{font-size:16px;width:18px;text-align:center}.nav-count{margin-left:auto;background:#dceddb;color:var(--green);border-radius:12px;padding:2px 6px;font-size:10px}.sidebar-bottom{margin-top:auto}.help-card{padding:14px;border:1px solid var(--line);border-radius:9px;margin-bottom:12px;position:relative}.help-icon{width:20px;height:20px;display:grid;place-items:center;border-radius:50%;background:#edf4ed;color:var(--green);font-weight:700;margin-bottom:11px}.help-card strong{font:700 11px Manrope}.help-card p{font-size:10px;color:var(--muted);margin:5px 0 12px}.help-card button{border:0;background:transparent;padding:0;color:var(--green);font-size:10px;font-weight:700}.help-card button span{margin-left:5px}.profile-button{width:100%;border:0;border-top:1px solid var(--line);background:#fff;padding:13px 3px 1px;display:flex;align-items:center;text-align:left;gap:9px}.avatar{width:31px;height:31px;border-radius:50%;display:grid;place-items:center;background:#e4ecdf;color:#46644d;font-weight:700;font-size:11px}.profile-copy{display:grid;gap:3px}.profile-copy strong{font-size:10px}.profile-copy small{color:var(--muted);font-size:9px}.profile-menu{margin-left:auto;color:#82908a;font-size:18px}
.main-area{margin-left:248px;min-height:100vh}.topbar{height:62px;background:rgba(255,255,255,.82);border-bottom:1px solid #e9edeb;display:flex;align-items:center;padding:0 36px;position:sticky;top:0;z-index:4;backdrop-filter:blur(12px)}.breadcrumb{display:flex;align-items:center;gap:10px;font-size:11px;color:#929d97}.breadcrumb b{font-weight:400;color:#c5ccc7}.breadcrumb strong{color:var(--ink);font-weight:600}.topbar-right{margin-left:auto;display:flex;align-items:center;gap:19px}.today-label{font-size:10px;color:#75817b}.icon-button{border:0;background:transparent;color:#60716a;font-size:19px;position:relative}.notification-button i{position:absolute;right:1px;top:3px;width:5px;height:5px;background:#d98752;border-radius:50%;border:1px solid #fff}.top-avatar{width:29px;height:29px}.mobile-menu{display:none}.page-content{max-width:1450px;margin:auto;padding:32px 38px 48px}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:24px}.page-heading h1{font-size:28px;margin:5px 0 5px;line-height:1.2}.page-heading p{color:var(--muted);font-size:12px;margin:0}.heading-actions{display:flex;gap:8px;align-items:center}.section-kicker{color:var(--green);font-size:9px}.card{background:#fff;border:1px solid #edf0ed;border-radius:10px;box-shadow:0 3px 12px rgba(30,53,43,.025)}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin-bottom:17px}.metric-card{padding:17px 18px;min-height:109px}.metric-top{display:flex;align-items:center;justify-content:space-between;color:#7e8a84;font-size:10px}.metric-icon{width:27px;height:27px;display:grid;place-items:center;border-radius:7px;background:#eff5eb;color:var(--green);font-size:14px}.metric-value{font:700 25px Manrope;letter-spacing:-1px;margin:10px 0 3px}.metric-note{font-size:9px;color:#87928d}.positive{color:#53815c}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(270px,.8fr);gap:15px}.panel{padding:18px}.panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.panel-title{font:700 13px Manrope;margin:0}.panel-subtitle{font-size:10px;color:var(--muted);margin:4px 0 0}.text-link{color:var(--green);font-size:10px;font-weight:700;border:0;background:none}.schedule-row{display:grid;grid-template-columns:54px 1fr auto;gap:12px;align-items:center;padding:12px 0;border-top:1px solid #f0f2f0}.schedule-time{font-size:10px;color:#6b7872}.schedule-main{border-left:2px solid #8eaf78;padding-left:10px}.schedule-main strong{display:block;font-size:11px}.schedule-main span{display:block;font-size:9px;color:var(--muted);margin-top:4px}.status-pill{display:inline-flex;align-items:center;gap:5px;border-radius:20px;padding:5px 8px;font-size:9px;font-weight:600;background:#eff4ed;color:#54725b;white-space:nowrap}.status-pill:before{content:"";width:5px;height:5px;background:currentColor;border-radius:50%}.status-orange{background:var(--soft-orange);color:#a76b3d}.status-blue{background:var(--soft-blue);color:var(--blue)}.status-red{background:var(--soft-red);color:var(--red)}.status-gray{background:#f0f2f1;color:#78837d}.activity-item{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid #f0f2f0}.activity-item:last-child{border-bottom:0}.activity-dot{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#edf4ed;color:var(--green);font-size:11px;flex:none}.activity-text{font-size:10px;line-height:1.5}.activity-text strong{font-weight:700}.activity-text small{display:block;color:#929b96;font-size:9px;margin-top:3px}.crew-strip{display:flex;align-items:center;gap:8px}.crew-avatars{display:flex}.crew-avatars .avatar{margin-left:-6px;border:2px solid white}.crew-avatars .avatar:first-child{margin-left:0}.crew-count{font-size:10px;color:var(--muted)}.job-list{display:grid;gap:11px}.job-card{padding:15px;display:flex;align-items:center;gap:15px}.job-symbol{width:39px;height:39px;display:grid;place-items:center;border-radius:9px;background:#edf4ed;color:var(--green);font-size:17px;flex:none}.job-info{min-width:0;flex:1}.job-info strong{display:block;font-size:12px}.job-info p{margin:5px 0 0;font-size:10px;color:var(--muted)}.job-meta{font-size:10px;color:var(--muted);min-width:100px}.job-right{display:flex;align-items:center;gap:18px}.progress-wrap{width:104px}.progress-label{display:flex;justify-content:space-between;font-size:9px;color:#8a958e;margin-bottom:6px}.progress-track{height:5px;background:#eef0ed;border-radius:4px;overflow:hidden}.progress-fill{height:100%;border-radius:4px;background:#729879}.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;min-width:620px}.data-table th{text-align:left;padding:10px 12px;font-size:9px;letter-spacing:.5px;text-transform:uppercase;color:#8b9690;font-weight:600;border-bottom:1px solid var(--line)}.data-table td{padding:12px;font-size:10px;border-bottom:1px solid #f0f2f0;color:#43524c}.data-table td strong{color:var(--ink);font-size:10px}.data-table tr:last-child td{border-bottom:0}.table-primary{display:block;font-weight:700;color:var(--ink);margin-bottom:4px}.table-secondary{font-size:9px;color:#8a958f}.task-row{display:grid;grid-template-columns:22px minmax(130px,1fr) 120px 100px 80px;gap:12px;align-items:center;padding:13px 14px;border-top:1px solid #f0f2f0;font-size:10px}.task-check{width:15px;height:15px;accent-color:var(--green)}.task-name strong{display:block;font-size:11px}.task-name span{display:block;margin-top:4px;color:var(--muted);font-size:9px}.task-assignee{display:flex;align-items:center;gap:7px;color:#66736d}.task-assignee .avatar{width:23px;height:23px;font-size:8px}.calendar-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(255px,.8fr);gap:15px}.calendar-card{padding:18px}.calendar-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px}.calendar-month{font:700 14px Manrope}.calendar-controls{display:flex;gap:5px}.calendar-controls button{border:1px solid var(--line);background:#fff;border-radius:5px;width:27px;height:27px;color:#56655e}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr)}.calendar-grid .weekday{text-align:center;color:#8b9690;font-size:9px;padding:8px 0}.calendar-day{min-height:67px;border-top:1px solid #f0f2f0;border-right:1px solid #f0f2f0;padding:7px 5px;font-size:10px;color:#69766f}.calendar-day:nth-child(7n){border-right:0}.calendar-day.dim{color:#c1c8c3}.calendar-day.today .day-number{background:var(--green);color:white}.day-number{width:21px;height:21px;border-radius:50%;display:grid;place-items:center}.calendar-event{font-size:8px;background:#eaf2e8;color:#4d7652;padding:3px 4px;border-radius:3px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-event.orange{background:#fff0e4;color:#a86a3b}.invoice-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:15px}.summary-box{padding:14px}.summary-box span{display:block;color:var(--muted);font-size:9px}.summary-box strong{display:block;font:700 20px Manrope;margin-top:8px}.safety-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:13px}.safety-card{padding:16px}.safety-card-head{display:flex;justify-content:space-between;align-items:flex-start}.safety-icon{width:32px;height:32px;border-radius:8px;background:#eff5eb;display:grid;place-items:center;color:var(--green)}.safety-card h3{font:700 12px Manrope;margin:12px 0 6px}.safety-card p{font-size:10px;color:var(--muted);line-height:1.55;margin:0}.safety-footer{border-top:1px solid #f0f2f0;margin-top:13px;padding-top:11px;display:flex;justify-content:space-between;align-items:center;font-size:9px;color:#849089}.run-type{display:inline-block;border-radius:4px;background:#eff4ed;color:#54725b;padding:4px 7px;font-size:9px;font-weight:600}
.modal{border:0;border-radius:12px;padding:0;width:min(510px,calc(100% - 28px));max-height:90vh;box-shadow:0 25px 90px rgba(15,35,28,.26)}.modal::backdrop{background:rgba(13,32,28,.5);backdrop-filter:blur(2px)}.modal-inner{padding:23px}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:19px}.modal-head h2{font:700 18px Manrope;margin:4px 0}.modal-close{width:28px;height:28px;border:0;background:#f2f4f2;border-radius:50%;font-size:16px;color:#69756f}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-field.full{grid-column:1/-1}.form-field label{display:block;font-size:10px;font-weight:700;margin-bottom:6px}.form-input{height:39px;font-size:11px}.form-textarea{width:100%;min-height:78px;border:1px solid #dfe5e0;border-radius:7px;padding:10px 12px;resize:vertical;outline:none;font-size:11px}.form-hint{font-size:9px;color:#87928d;margin-top:5px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.toast{position:fixed;z-index:10;bottom:22px;left:50%;transform:translate(-50%,20px);background:#173e37;color:white;padding:11px 16px;border-radius:7px;font-size:11px;box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}.empty-state{text-align:center;padding:35px 20px;color:var(--muted);font-size:11px}.empty-state strong{display:block;color:var(--ink);margin-bottom:5px}.quick-actions{display:flex;gap:8px;flex-wrap:wrap}.mobile-overlay{display:none}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.assistant-toggle{position:fixed;right:24px;bottom:22px;z-index:7;border:0;border-radius:30px;background:var(--green-dark);color:#fff;padding:11px 16px;display:flex;align-items:center;gap:9px;box-shadow:0 6px 20px rgba(22,61,54,.25);font-size:12px;font-weight:700}.assistant-toggle>span:first-child{width:20px;height:20px;border-radius:50%;background:var(--lime);color:var(--green-dark);display:grid;place-items:center;font-size:13px}.assistant-toggle:hover{background:#215347}.assistant-panel{position:fixed;right:24px;bottom:80px;width:min(370px,calc(100vw - 32px));height:min(540px,calc(100vh - 112px));z-index:8;background:#fff;border:1px solid #e6ebe7;border-radius:13px;box-shadow:0 16px 55px rgba(20,43,35,.2);display:flex;flex-direction:column;overflow:hidden}.assistant-header{padding:14px 15px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #edf0ed}.assistant-heading{display:flex;align-items:center;gap:10px}.assistant-avatar{width:33px;height:33px;border-radius:10px;background:var(--green-dark);color:var(--lime);display:grid;place-items:center;font-size:17px}.assistant-heading strong{font:700 12px Manrope;display:block}.assistant-heading small{font-size:9px;color:#85918b;display:flex;align-items:center;gap:5px;margin-top:4px}.assistant-heading small span{width:6px;height:6px;border-radius:50%;background:#c78d57}.assistant-messages{padding:15px;display:flex;flex-direction:column;gap:11px;overflow-y:auto;flex:1;background:#fbfcfb}.assistant-message{max-width:92%;font-size:11px;line-height:1.55;padding:10px 12px;border-radius:10px;white-space:pre-wrap;overflow-wrap:anywhere}.assistant-message.assistant{align-self:flex-start;background:#fff;border:1px solid #e8ede8;border-top-left-radius:3px;color:#364740}.assistant-message.user{align-self:flex-end;background:#eaf3e9;color:#244a3c;border-top-right-radius:3px}.assistant-message-action{display:block;border:0;border-radius:6px;background:var(--green);color:#fff;padding:8px 10px;margin-top:9px;font-size:10px;font-weight:700}.assistant-suggestions{display:flex;gap:6px;padding:9px 12px;overflow-x:auto;border-top:1px solid #f0f2f0}.assistant-suggestions button{flex:none;background:#fff;border:1px solid #e4e9e4;border-radius:15px;padding:6px 9px;color:#52675c;font-size:9px}.assistant-suggestions button:hover{background:#edf4ed}.assistant-form{display:flex;gap:7px;padding:10px 12px 8px;border-top:1px solid #edf0ed}.assistant-form input{flex:1;min-width:0;height:37px;border:1px solid #e1e7e2;border-radius:7px;padding:0 10px;font-size:11px;outline:none}.assistant-form input:focus{border-color:#6e9a80;box-shadow:0 0 0 3px rgba(76,132,97,.1)}.assistant-form button{width:36px;height:36px;border:0;border-radius:7px;background:var(--green);color:#fff;font-size:18px}.assistant-disclaimer{text-align:center;font-size:8px;color:#9aa39e;margin:0;padding:0 0 9px}.assistant-panel .modal-close{margin-left:10px;flex:none}
.report-job+.report-job{margin-top:14px}.report-progress{font-size:10px;color:var(--muted)}.report-list{border-top:1px solid var(--line)}.report-row{display:grid;grid-template-columns:145px minmax(140px,1fr) auto auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid #f0f2f0}.report-row:last-child{border-bottom:0}.report-date strong,.report-date span{display:block}.report-date strong{font-size:10px}.report-date span{font-size:9px;color:var(--muted);margin-top:4px}.report-description{font-size:10px;color:#65736c;line-height:1.5}.final-report-summary{background:#f5f8f3;border:1px solid #e7eee2;border-radius:8px;padding:13px;margin:0 0 14px;font-size:10px;line-height:1.6}.final-report-summary>strong{font:700 11px Manrope}.final-report-summary p{margin:7px 0 0;color:#58665f}.final-report-summary b{color:var(--ink)}
.contractor-company-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}.contractor-company-card{padding:12px;display:flex;align-items:center;justify-content:space-between;gap:10px}.contractor-company-copy{display:flex;align-items:center;gap:9px;min-width:0}.contractor-company-copy .job-symbol{width:32px;height:32px}.contractor-company-copy strong,.contractor-company-copy small{display:block}.contractor-company-copy strong{font-size:10px}.contractor-company-copy small{font-size:9px;color:var(--muted);margin-top:4px}.contractor-company-card .button{flex:none;padding:8px 10px;font-size:10px}.contractor-actions{white-space:nowrap}.contractor-actions .text-link+.text-link{margin-left:7px}.reject-link{color:var(--red)}.pricing-preview{border:1px solid #e4ece2;background:#f5f8f3;border-radius:7px;padding:10px 12px;color:#466151;font-size:10px;line-height:1.6}
.bi-filter-bar{padding:13px 15px;display:flex;align-items:flex-end;gap:11px;flex-wrap:wrap;margin-bottom:10px}.bi-filter-title{display:grid;gap:4px;min-width:128px;margin-right:auto}.bi-filter-title strong{font:700 11px Manrope}.bi-filter-title span,.bi-context{font-size:9px;color:var(--muted)}.bi-filter-bar label{font-size:9px;color:#68766f;display:grid;gap:5px}.bi-filter-bar input,.bi-filter-bar select{height:34px;min-width:130px;border:1px solid #e1e7e2;border-radius:6px;padding:0 8px;background:#fff;color:var(--ink);font:10px 'DM Sans',sans-serif}.bi-filter-bar select{max-width:185px}.bi-reset{height:34px}.bi-context{margin:0 1px 12px}.bi-metrics{grid-template-columns:repeat(6,minmax(0,1fr));gap:9px}.bi-metrics .metric-card{min-height:101px;padding:13px}.bi-metrics .metric-value{font-size:20px;white-space:nowrap}.bi-metrics .metric-note{line-height:1.45}.bi-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.bi-grid>.card{min-width:0}.bi-job-chart,.bi-company-chart{display:grid;gap:11px}.bi-job-bar,.bi-company-bar{display:grid;grid-template-columns:minmax(100px,1.1fr) minmax(70px,2fr) auto;align-items:center;gap:10px;border:0;border-radius:6px;background:transparent;padding:5px;text-align:left;color:var(--ink);width:100%}.bi-job-bar:hover,.bi-company-bar:hover,.bi-job-bar.selected,.bi-company-bar.selected{background:#f2f6f1}.bi-job-label,.bi-company-bar>span{font-size:9px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bi-bar-track,.bi-company-bar>i,.bi-snapshot i{height:9px;border-radius:8px;background:#edf0ed;display:block;overflow:hidden}.bi-bar-fill{display:block;height:100%;border-radius:8px;background:#719578;min-width:0}.bi-bar-value,.bi-company-bar>strong{font-size:9px;color:#627169;white-space:nowrap}.bi-company-bar>i{height:10px}.bi-company-bar>i>b{height:100%;display:block;background:#728aa8;border-radius:8px}.bi-legend{display:flex;gap:14px;margin-bottom:9px}.bi-legend span{font-size:9px;color:#69766f;display:flex;align-items:center;gap:5px}.bi-legend i{width:8px;height:8px;border-radius:2px;display:inline-block}.bi-legend .tasks,.bi-time-bar.tasks{background:#789a77}.bi-legend .runs,.bi-time-bar.runs{background:#6885a6}.bi-legend .hours,.bi-time-bar.hours{background:#d39a61}.bi-timeline{height:165px;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;border-bottom:1px solid #e9ede9;padding-top:8px}.bi-time-column{display:flex;flex-direction:column;align-items:center;min-width:0}.bi-time-bars{height:132px;width:100%;display:flex;align-items:flex-end;justify-content:center;gap:3px}.bi-time-bar{width:min(17px,27%);min-height:0;border-radius:3px 3px 0 0}.bi-time-label{font-size:8px;color:#7e8983;margin-top:8px;white-space:nowrap}.bi-snapshot{display:grid;gap:17px}.bi-snapshot>div{display:grid;grid-template-columns:1fr auto;gap:7px 10px;align-items:center}.bi-snapshot>div>span{font-size:10px;color:#6b7872}.bi-snapshot>div>strong{font-size:9px}.bi-snapshot i{grid-column:1/-1;height:6px}.bi-snapshot i>b{height:100%;display:block;border-radius:8px;background:#779779}.bi-snapshot>.form-hint{margin:0}.bi-job-table{margin-top:13px}.bi-clickable-row{cursor:pointer}.bi-clickable-row:hover{background:#f6f8f5}.bi-clickable-row:focus{outline:2px solid #779779;outline-offset:-2px}.bi-job-table .panel-head .table-secondary{font-size:9px}
@media(max-width:1050px){.sidebar{width:220px}.main-area{margin-left:220px}.topbar{padding:0 24px}.page-content{padding:26px 24px}.metric-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.job-right{gap:10px}.job-meta{display:none}}
@media(max-width:720px){.login-screen{grid-template-columns:1fr}.login-card{padding:45px 0}.login-card .eyebrow{margin-top:30px}.login-aside{display:none}.sidebar{transform:translateX(-100%);transition:transform .2s;width:270px;box-shadow:none}.sidebar.open{transform:translateX(0);box-shadow:8px 0 30px rgba(20,40,32,.12)}.main-area{margin-left:0}.topbar{height:56px;padding:0 16px}.mobile-menu{display:block;border:0;background:transparent;font-size:19px;color:#50625a;margin-right:12px;padding:5px}.today-label{display:none}.topbar-right{gap:12px}.page-content{padding:22px 15px 35px}.page-heading{align-items:flex-start;gap:12px;flex-direction:column;margin-bottom:18px}.page-heading h1{font-size:25px}.heading-actions{width:100%}.heading-actions .button{flex:1}.metric-grid{gap:9px}.metric-card{padding:13px;min-height:100px}.metric-value{font-size:22px}.metric-top{font-size:9px}.dashboard-grid,.calendar-layout{grid-template-columns:1fr}.panel{padding:14px}.job-card{padding:12px;gap:10px}.job-symbol{width:34px;height:34px}.job-right{display:none}.invoice-summary{gap:8px}.summary-box{padding:11px}.summary-box strong{font-size:17px}.safety-grid{grid-template-columns:1fr}.calendar-card{padding:12px}.calendar-day{min-height:55px;padding:4px 2px}.calendar-event{font-size:7px;padding:2px}.task-row{grid-template-columns:19px minmax(105px,1fr) 90px;gap:7px;padding:11px 8px}.task-assignee{display:none}.task-row>.status-pill{justify-self:end}.task-row>span:nth-last-child(2){display:none}.form-grid{grid-template-columns:1fr}.form-field.full{grid-column:auto}.modal-inner{padding:18px}.breadcrumb{font-size:10px}}
@media(max-width:720px){.assistant-toggle{right:14px;bottom:14px;padding:10px 13px}.assistant-panel{left:12px;right:12px;bottom:65px;width:auto;height:min(570px,calc(100vh - 80px))}}
@media(max-width:720px){.report-row{grid-template-columns:1fr auto;gap:8px}.report-date{grid-column:1/-1}.report-description{grid-column:1/-1}.report-row>.text-link{justify-self:end}}
@media(max-width:720px){.contractor-company-grid{grid-template-columns:1fr}.contractor-company-card{align-items:flex-start}}
@media(max-width:1050px){.bi-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:720px){.bi-filter-bar{align-items:stretch}.bi-filter-title{width:100%;margin-bottom:3px}.bi-filter-bar label{flex:1;min-width:calc(50% - 8px)}.bi-filter-bar input,.bi-filter-bar select{width:100%;min-width:0;max-width:none}.bi-reset{align-self:flex-end}.bi-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.bi-grid{grid-template-columns:1fr}.bi-job-bar,.bi-company-bar{grid-template-columns:minmax(90px,1fr) minmax(50px,1.3fr) auto;gap:6px;padding:5px 2px}.bi-job-label,.bi-company-bar>span{font-size:8px}.bi-bar-value,.bi-company-bar>strong{font-size:8px}.bi-time-label{font-size:7px}.bi-timeline{gap:4px}.bi-time-bars{gap:2px}.bi-time-bar{width:22%}.bi-job-table>.panel-head{align-items:flex-start;gap:6px;flex-direction:column}}
@media(min-width:721px){.mobile-overlay.visible{display:block;position:fixed;inset:0;background:rgba(14,32,28,.3);z-index:4}}
@media print{body{background:#fff}.sidebar,.topbar,.assistant-toggle,.assistant-panel,.page-heading .heading-actions{display:none!important}.main-area{margin:0}.page-content{max-width:none;padding:0}.bi-filter-bar{box-shadow:none;margin:0 0 8px;padding:8px}.bi-filter-bar input,.bi-filter-bar select{border:0;appearance:none;padding:0}.bi-filter-bar .bi-reset{display:none}.bi-grid{grid-template-columns:repeat(2,1fr)}.metric-grid.bi-metrics{grid-template-columns:repeat(3,1fr)}.card{box-shadow:none;break-inside:avoid}.bi-clickable-row{cursor:default}}

.scope-edit-button{margin-top:8px;padding:8px 10px;font-size:10px}
.scope-status{margin:8px 0 0;color:var(--muted);font-size:10px}
.scope-of-work{margin-top:10px;border-top:1px solid var(--line);padding-top:8px}
.scope-of-work summary{color:var(--green);font-size:10px;font-weight:700;cursor:pointer}
.scope-sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px;margin-top:12px}
.scope-sections section{min-width:0}
.scope-sections h3{margin:0 0 4px;font-size:10px}
.scope-sections p{margin:0;color:#627169;font-size:10px;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}
@media(max-width:720px){.scope-sections{grid-template-columns:1fr}}
.schedule-view-toggle{display:inline-flex;align-items:center;padding:2px;border:1px solid var(--line);border-radius:7px;background:#fff}
.schedule-view-toggle button{border:0;border-radius:5px;padding:6px 9px;background:transparent;color:#65736c;font-size:10px;font-weight:600}
.schedule-view-toggle button.selected{background:var(--soft-green);color:var(--green-dark)}
.gantt-timeline{min-width:0;max-width:100%;overflow-x:auto;padding-bottom:4px}
.gantt-header,.gantt-row{display:grid;grid-template-columns:190px var(--gantt-track-width);align-items:center;min-height:42px}
.gantt-header{position:sticky;top:0;z-index:1;border-bottom:1px solid var(--line);color:#69766f;font-size:10px}
.gantt-header>strong{align-self:stretch;display:flex;align-items:center;position:sticky;left:0;background:#fff;z-index:2}
.gantt-day-track{display:grid;grid-template-columns:repeat(var(--gantt-days),minmax(28px,1fr));height:100%;align-items:center}
.gantt-day{height:100%;display:grid;place-items:center;border-left:1px solid #edf0ed;color:#75817b;font-size:9px}
.gantt-day.today{background:var(--soft-green);color:var(--green-dark);font-weight:700}
.gantt-row{border-bottom:1px solid #f0f2f0}
.gantt-job-label{position:sticky;left:0;z-index:1;height:100%;display:grid;align-content:center;gap:4px;padding-right:10px;background:#fff}
.gantt-job-label>strong{font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gantt-job-label>span{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:9px;overflow:hidden}
.gantt-job-label .status-pill{font-size:8px;padding:3px 6px}
.gantt-track{position:relative;height:34px;background-image:repeating-linear-gradient(to right,transparent 0,transparent calc(100% - 1px),#edf0ed calc(100% - 1px),#edf0ed 100%)}
.gantt-bar{position:absolute;left:var(--gantt-left);width:var(--gantt-width);top:8px;height:20px;display:flex;align-items:center;overflow:hidden;padding:0 7px;border-radius:5px;background:#719578;color:#fff;font-size:9px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}
.gantt-bar.scheduled{background:#c7864e}
.gantt-bar.complete{background:#6885a6}
@media(max-width:720px){.calendar-layout{grid-template-columns:minmax(0,1fr)}.calendar-layout>*{min-width:0}.calendar-card{min-width:0}.calendar-toolbar{align-items:flex-start;gap:8px;flex-direction:column}.calendar-controls{width:100%;justify-content:flex-end;flex-wrap:wrap}.schedule-view-toggle{margin-right:auto}.gantt-header,.gantt-row{grid-template-columns:150px var(--gantt-track-width)}.gantt-job-label{padding-right:7px}.gantt-job-label>strong{font-size:9px}.gantt-bar{font-size:8px;padding:0 5px}}
.calendar-controls>*{flex:0 0 auto;white-space:nowrap}.calendar-controls>button[data-action="calendar-today"]{width:auto;padding:0 9px}.schedule-view-toggle{flex:0 0 auto;white-space:nowrap}.calendar-card .calendar-controls .schedule-view-toggle button{width:auto;flex:0 0 auto;white-space:nowrap}
@media(max-width:720px){.calendar-controls{justify-content:flex-start}}

.auth-field{margin-bottom:17px}.login-card form>label{margin-top:16px}.login-card form>label:first-of-type{margin-top:0}.auth-message{min-height:16px;margin:12px 0 0;color:#55785d;font-size:11px;line-height:1.5}.auth-message.error{color:var(--red)}.auth-mode-toggle{display:block;border:0;background:transparent;margin:15px auto 0;padding:4px;color:var(--green);font-size:11px;font-weight:700}.auth-mode-toggle:hover{text-decoration:underline}.sync-status{display:inline-flex;align-items:center;gap:7px;color:#52785a;font-size:10px;white-space:nowrap}.sync-status>i{width:7px;height:7px;border-radius:50%;background:#76a56c}.sync-pending>i{background:#cf8b45}.sync-error,.sync-conflict{color:#a4493f}.sync-error>i,.sync-conflict>i{background:#c76658}.sync-readonly{color:#727d78}.sync-readonly>i{background:#9da7a1}.sync-status button{border:0;background:transparent;padding:0;color:var(--green);font-size:10px;font-weight:700;text-decoration:underline}.role-select{min-width:120px;height:34px;padding:0 8px}
@media(max-width:720px){.topbar-right{gap:10px}.sync-status{font-size:9px;gap:5px}.today-label{display:none}.sync-status button{max-width:90px;white-space:normal;text-align:left}.role-select{min-width:98px}}
.auth-field{margin-bottom:16px}.auth-field .form-input{background:#fff}.approval-panel{margin-bottom:16px}.approval-actions{display:flex;flex-wrap:wrap;gap:6px;min-width:175px}.approval-actions .button{padding:8px 10px;font-size:10px}.approval-actions .button:disabled{cursor:not-allowed;opacity:.5}.contractor-welcome{max-width:740px}.contractor-welcome .live-pill{background:#f2f7e8;color:var(--green)}.contractor-welcome h2{font:700 22px Manrope;margin:22px 0 8px}.contractor-welcome>p{max-width:550px;color:var(--muted);line-height:1.7}.contractor-activation-details{display:grid;grid-template-columns:150px 1fr;gap:12px 20px;margin-top:24px;padding-top:20px;border-top:1px solid var(--line);font-size:12px}.contractor-activation-details span{color:var(--muted)}
.app-shell.contractor-only .sidebar,.app-shell.contractor-only .assistant-toggle,.app-shell.contractor-only .assistant-panel{display:none}.app-shell.contractor-only .main-area{margin-left:0}.app-shell.contractor-only .topbar{padding-left:30px}
@media(max-width:720px){.approval-actions{min-width:0}.contractor-activation-details{grid-template-columns:1fr;gap:5px}.contractor-activation-details strong{margin-bottom:9px}.app-shell.contractor-only .topbar{padding:0 16px}}
.profile-panel{max-width:920px}.profile-header{display:flex;align-items:center;gap:16px;margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid var(--line)}.profile-header h2{margin-bottom:5px}.profile-photo,.profile-photo-placeholder{width:72px;height:72px;flex:none;border-radius:50%;object-fit:cover;background:#e4ecdf}.profile-photo-placeholder{display:grid;place-items:center;color:#46644d;font-weight:700;font-size:20px}.profile-form .form-grid{margin-bottom:4px}.profile-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:18px}.profile-readonly-grid{display:grid;grid-template-columns:minmax(135px,.45fr) 1fr;gap:8px 16px;padding:13px;border-radius:8px;background:#f7f9f7;font-size:11px}.profile-readonly-grid span{color:var(--muted)}.ticket-summary-row{display:flex;flex-wrap:wrap;gap:9px;margin:-8px 0 16px}.ticket-summary-row span{border:1px solid var(--line);border-radius:20px;background:#fff;padding:6px 11px;color:#68756f;font-size:10px}.safety-ticket-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.safety-ticket-card{padding:17px}.ticket-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.ticket-card-head h2{font:700 15px Manrope;margin:6px 0 12px}.ticket-photo,.ticket-photo-placeholder{width:100%;height:180px;object-fit:contain;background:#f5f7f5;border:1px solid var(--line);border-radius:7px}.ticket-photo-placeholder{display:grid;place-items:center;color:var(--muted);font-size:11px}.ticket-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:15px 0}.ticket-details div{min-width:0}.ticket-details dt{font-size:9px;color:var(--muted);margin-bottom:4px}.ticket-details dd{margin:0;font-size:11px;font-weight:600;overflow-wrap:anywhere}.ticket-actions{display:flex;align-items:center;gap:12px;border-top:1px solid var(--line);padding-top:12px}.ticket-qr-modal{text-align:center}.ticket-qr-modal .modal-head{text-align:left}.ticket-qr-code{display:grid;place-items:center;padding:20px}.ticket-qr-code img,.ticket-qr-code canvas{max-width:100%;height:auto}.ticket-verify-modal .ticket-details{text-align:left}.ticket-verify-modal .panel-subtitle .status-pill{margin-left:5px}
@media(max-width:720px){.safety-ticket-grid{grid-template-columns:1fr}.profile-readonly-grid{grid-template-columns:1fr;gap:4px}.profile-readonly-grid strong{margin-bottom:8px}.profile-photo,.profile-photo-placeholder{width:58px;height:58px}}
.contractor-work-panel{margin-top:15px}.contractor-job-list{display:grid;gap:10px}.contractor-job-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(140px,.7fr) auto;align-items:center;gap:16px;border:1px solid var(--line);border-radius:8px;padding:13px}.contractor-job-card>div{display:grid;gap:5px}.contractor-job-card>div:nth-child(2){justify-items:start}.contractor-company-card{gap:14px}.contractor-company-card .contractor-actions{display:flex;gap:8px}.contractor-equipment-choice{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid var(--line)}.contractor-equipment-choice span{display:grid;gap:4px}.contractor-equipment-choice small{font-size:10px;color:var(--muted)}.contractor-equipment-choice input{width:100px;height:38px;border:1px solid var(--line);border-radius:6px;padding:0 10px}.button:disabled{opacity:.55;cursor:not-allowed;transform:none}.topbar-right>#logout-button{padding:8px 11px;white-space:nowrap}
@media(max-width:720px){.topbar-right>#logout-button{padding:7px 9px;font-size:10px}.topbar-right{gap:8px}.contractor-job-card{grid-template-columns:1fr auto;gap:10px}.contractor-job-card>div:nth-child(2){grid-column:1/-1}.contractor-company-card .contractor-actions{width:100%;flex-wrap:wrap}.contractor-company-card .contractor-actions .button{flex:1}}
.contractor-asset-summary{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}.contractor-asset-summary span{border:1px solid var(--line);border-radius:20px;background:#f7f9f7;padding:6px 10px;color:#68756f;font-size:10px;font-weight:600}
.main-nav{align-content:start;max-height:calc(100vh - 245px);overflow-y:auto;padding-right:2px}.nav-group{display:grid;gap:3px}.nav-group-toggle{min-height:40px;width:100%;border:0;border-radius:7px;background:transparent;padding:0 11px;display:flex;align-items:center;gap:12px;color:#67736e;text-align:left;font-size:12px;font-weight:600}.nav-group-toggle:hover,.nav-group-toggle[aria-expanded="true"]{background:#f1f5f1;color:var(--green-dark)}.nav-group-chevron{margin-left:auto;font-size:16px;transition:transform .15s}.nav-group-toggle[aria-expanded="true"] .nav-group-chevron{transform:rotate(180deg)}.nav-group-items{display:grid;gap:3px;padding-left:14px}.nav-group-items .nav-link{height:38px;font-size:11px}
@media(max-width:720px){.main-nav{max-height:calc(100vh - 215px)}}
.sidebar{overflow-y:auto}.sidebar-bottom{flex:none;margin-top:18px}
.daily-job-plan-list{display:grid;gap:10px;max-height:48vh;overflow-y:auto;padding:2px}.daily-job-plan-row{display:grid;grid-template-columns:minmax(150px,.8fr) minmax(160px,.7fr) minmax(220px,1.3fr);gap:12px;align-items:start;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fbfcfb}.daily-job-plan-date{display:grid;gap:4px;padding-top:8px}.daily-job-plan-date strong{font-size:11px}.daily-job-plan-date span{font-size:10px;color:var(--muted)}.daily-job-plan-row label{display:grid;gap:6px;font-size:10px;font-weight:600}.daily-job-plan-row .form-textarea{min-height:72px;margin:0}.daily-job-plan-details{margin:8px 0}.daily-job-plan-details>summary{cursor:pointer;color:var(--green);font-size:10px;font-weight:700}.daily-job-plan-summary{display:grid;gap:8px;margin-top:10px}.daily-job-plan-summary section{padding:9px 11px;background:#f7f9f7;border-radius:6px;font-size:10px}.daily-job-plan-summary ul{margin:6px 0 0;padding-left:17px;color:#596660}.daily-job-plan-summary li+li{margin-top:4px}.crew-members-select{height:auto;min-height:120px;padding:8px 10px}
@media(max-width:720px){.daily-job-plan-row{grid-template-columns:1fr;gap:9px}.daily-job-plan-date{padding:0}.daily-job-plan-list{max-height:55vh}}
.admin-add-panel{margin-bottom:15px}.admin-quick-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}.admin-quick-card{display:flex;flex-direction:column;align-items:flex-start;min-height:145px;padding:14px;border:1px solid var(--line);border-radius:8px;background:#fbfcfb}.admin-quick-card>strong{font:700 12px Manrope}.admin-quick-card p{flex:1;margin:7px 0 12px;color:var(--muted);font-size:10px;line-height:1.55}.admin-quick-card .button{padding:8px 10px;font-size:10px}
@media(max-width:1000px){.admin-quick-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.admin-quick-actions{grid-template-columns:1fr}.admin-quick-card{min-height:0}.admin-quick-card p{margin-bottom:10px}}
.modal.modal-equipment{width:min(980px,calc(100% - 28px));max-height:94vh}
.modal-equipment .modal-inner{padding:26px}
.modal-equipment .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.equipment-modal-list{display:grid;gap:7px;max-height:34vh;overflow-y:auto;margin:0;padding:0;list-style:none}
.equipment-modal-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:7px;background:#fbfcfb}
.equipment-modal-list li>div{display:grid;gap:4px;min-width:0}
.equipment-modal-list li strong{font-size:11px}
.equipment-modal-list li span{color:var(--muted);font-size:10px;overflow-wrap:anywhere}
.equipment-remove-button{padding:7px 10px;color:var(--red);flex:none}
.equipment-modal-empty{padding:16px}
@media(max-width:720px){.modal.modal-equipment{width:calc(100% - 16px);max-height:96vh}.modal-equipment .modal-inner{padding:18px}.modal-equipment .form-grid{grid-template-columns:1fr}.equipment-modal-list{max-height:30vh}}
.gps-calculator{margin-bottom:15px}
.gps-calc-map-options{display:grid;grid-template-columns:minmax(180px,320px) minmax(0,1fr);align-items:center;gap:8px 14px;padding:12px;margin:0 0 14px;border:1px solid var(--line);border-radius:8px;background:#fbfcfb;color:#46554d;font-size:10px;font-weight:700}
.gps-calc-map-options>.form-input{grid-column:1;min-width:0}
.gps-calc-auto-add{display:flex;align-items:center;gap:8px;color:#46554d;font-size:10px;font-weight:600}
.gps-calc-auto-add input{width:16px;height:16px;accent-color:var(--green)}
.gps-map-add-confirmation{padding:9px 11px;border:1px solid #cfe1d7;border-radius:7px;background:var(--soft-green);color:var(--green-dark)}
.gps-calc-tabs{display:flex;gap:7px;overflow-x:auto;padding:2px 0 12px;border-bottom:1px solid var(--line)}
.gps-calc-tab{flex:none;padding:8px 11px;border:1px solid var(--line);border-radius:7px;background:#fff;color:#5f6b65;font-size:10px;font-weight:600;white-space:nowrap}
.gps-calc-tab.active{border-color:var(--green);background:var(--soft-green);color:var(--green-dark)}
.gps-calc-workspace{padding-top:16px}
.gps-calc-workspace h3{margin:0 0 5px;font:700 14px Manrope}
.gps-calc-help{max-width:900px;margin:0 0 14px;color:var(--muted);font-size:11px;line-height:1.55}
.gps-calc-form{display:grid;justify-items:start;gap:12px;min-width:0;width:100%}
.gps-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;width:100%;min-width:0}
.gps-field{display:grid;align-content:start;gap:6px;min-width:0;color:#46554d;font-size:10px;font-weight:700}
.gps-field input,.gps-field textarea,.gps-field select{font-size:11px}
.gps-field-full{grid-column:1/-1}
.gps-field textarea{min-height:110px}
.gps-entry-toggle{display:flex;gap:7px}
.gps-entry-mode{padding:7px 10px;border:1px solid var(--line);border-radius:7px;background:#fff;color:#5f6b65;font-size:10px;font-weight:600}
.gps-entry-mode.active{border-color:var(--green);background:var(--soft-green);color:var(--green-dark)}
.gps-column-table-scroll{width:100%;min-width:0;max-width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:8px}
.gps-column-table{width:100%;border-collapse:collapse;white-space:nowrap}
.gps-column-table th,.gps-column-table td{padding:7px;border-bottom:1px solid var(--line);text-align:left}
.gps-column-table th{background:#f7f9f7;color:#627068;font-size:9px}
.gps-column-table td:first-child{width:40px;color:var(--muted);font-size:10px}
.gps-column-table .form-input{min-width:100px;padding:8px;font-size:10px}
.gps-add-row{margin-top:8px}
.gps-point-entry{width:100%;min-width:0}
.gps-point-entry>[data-gps-entry-view]{width:100%;min-width:0}
.gps-point-entry .form-hint{display:block;color:var(--muted);font-size:10px;line-height:1.5}
.gps-calc-output{width:100%;overflow-x:auto}
.gps-result-table{margin-top:13px}
.gps-result-summary{margin:14px 0 4px;color:#47574e;font-size:12px}
.gps-result-summary strong{color:var(--green-dark)}
.gps-dms-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;margin-top:12px;min-width:0}
.gps-solar-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;width:100%}
.gps-solar-results article{display:grid;gap:6px;padding:15px;border:1px solid var(--line);border-radius:8px;background:#fbfcfb}
.gps-solar-results article span,.gps-solar-results article small{color:var(--muted);font-size:10px}
.gps-solar-results article strong{font:700 20px Manrope;color:var(--green-dark)}
@media(max-width:720px){.gps-form-grid,.gps-dms-grid,.gps-solar-results{grid-template-columns:1fr}.gps-calc-map-options{grid-template-columns:1fr}.gps-calc-map-options>.form-input{grid-column:auto}.gps-field-full{grid-column:auto}.gps-calc-tab{font-size:9px;padding:8px}.gps-column-table .form-input{min-width:90px}}
.job-card-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.gps-open-after-create{display:flex;align-items:center;gap:9px;font-size:12px;color:#46554d}
.gps-open-after-create input{width:16px;height:16px;accent-color:var(--green)}
.gps-workspace-page{display:grid;gap:12px}
.gps-workspace-heading{display:flex;align-items:center;justify-content:space-between;gap:14px}
.gps-job-picker{display:grid;gap:5px;width:min(360px,100%);font-size:10px;font-weight:700;color:#46554d}
.gps-workspace-jobline{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 13px;border:1px solid var(--line);border-radius:8px;background:#fff}
.gps-workspace-jobline>span{color:var(--muted);font-size:11px}
.gps-workspace-jobline .gps-save-indicator{margin-left:auto;font-size:10px}
.gps-workspace-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.8fr);gap:12px;align-items:start}
.gps-map-shell{position:relative;min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:10px;background:#e8eeea}
.gps-map{height:min(68vh,720px);min-height:420px;width:100%;z-index:0}
.gps-map-summary{position:absolute;z-index:400;top:12px;left:54px;padding:8px 11px;border:1px solid rgba(30,58,47,.15);border-radius:7px;background:rgba(255,255,255,.95);box-shadow:0 2px 9px rgba(20,40,30,.12);font-size:11px;font-weight:700}
.gps-map-legend{display:flex;justify-content:space-between;gap:10px;padding:8px 11px;background:#fff;color:var(--muted);font-size:9px}
.gps-workspace-tools{display:grid;gap:12px;min-width:0}
.gps-workspace-tools h3{margin:0;font:700 13px Manrope}
.gps-workspace-hint{margin:0;color:var(--muted);font-size:10px;line-height:1.55}
.gps-map-mode{display:flex;gap:7px;flex-wrap:wrap}
.gps-map-mode .button{padding:8px 10px;font-size:10px}
.gps-map-mode .button.selected{border-color:var(--green);background:var(--soft-green);color:var(--green-dark)}
.gps-draw-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:9px;border-radius:7px;background:#f4f7f4;font-size:10px}
.gps-draw-actions[hidden]{display:none}
.gps-coordinate-form{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:11px;border:1px solid var(--line);border-radius:8px}
.gps-coordinate-form strong,.gps-coordinate-form button,.gps-workspace-error{grid-column:1/-1}
.gps-coordinate-form label,.gps-feature-details>label{display:grid;gap:5px;color:#46554d;font-size:10px;font-weight:700}
.gps-coordinate-form .form-input,.gps-feature-details .form-input{height:36px;padding:0 9px;font-size:11px}
.gps-workspace-error,.gps-elevation-message{color:var(--red);font-size:10px}
.gps-workspace-feature-list{display:grid;gap:7px}
.gps-workspace-feature-list h3{display:flex;justify-content:space-between}
.gps-feature-item{display:flex;align-items:stretch;gap:4px;padding:4px;border:1px solid var(--line);border-radius:7px}
.gps-feature-item.selected{border-color:#9bb9a5;background:#f1f7f1}
.gps-feature-item>button:first-child{display:grid;flex:1;gap:3px;min-width:0;padding:5px;border:0;background:transparent;text-align:left}
.gps-feature-item strong{font-size:10px}
.gps-feature-item span{color:var(--muted);font-size:9px;overflow-wrap:anywhere}
.gps-feature-delete{width:28px;border:0;border-radius:5px;background:transparent;color:var(--red);font-size:18px}
.gps-feature-details{display:grid;gap:9px;padding-top:10px;border-top:1px solid var(--line)}
.gps-feature-details>h3{margin-bottom:1px}
.gps-detail-grid{display:grid;grid-template-columns:minmax(90px,.55fr) minmax(0,1fr);gap:6px 10px;margin:0;font-size:10px}
.gps-detail-grid dt{color:var(--muted)}
.gps-detail-grid dd{margin:0;overflow-wrap:anywhere;font-weight:600}
.gps-area-vertices{font-size:10px}
.gps-area-vertices summary{cursor:pointer;color:var(--green-dark);font-weight:700}
.gps-area-vertices ol{display:grid;gap:5px;padding-left:22px;color:#53625b;font-size:9px;line-height:1.45}
.gps-feature-details .gps-land-warning,.gps-data-notice{margin:0;color:#7a684b;font-size:9px;line-height:1.55}
.gps-data-notice a{color:var(--green);font-weight:700;text-decoration:underline}
.gps-data-notice{padding-top:10px;border-top:1px solid var(--line);color:var(--muted)}
.gps-popup{display:grid;gap:4px;font:10px 'DM Sans',Arial,sans-serif}
.gps-map-error{padding:20px;color:var(--red);font-size:12px}
@media(max-width:980px){.gps-workspace-layout{grid-template-columns:1fr}.gps-map{height:55vh;min-height:360px}.gps-workspace-tools{grid-template-columns:1fr 1fr;align-items:start}.gps-workspace-tools>h3,.gps-workspace-tools>.gps-workspace-hint,.gps-map-mode,.gps-draw-actions,.gps-data-notice{grid-column:1/-1}}
@media(max-width:600px){.gps-workspace-heading{align-items:stretch;flex-direction:column}.gps-job-picker{width:100%}.gps-workspace-tools{grid-template-columns:1fr}.gps-workspace-tools>*{grid-column:1!important}.gps-map{height:52vh;min-height:320px}.gps-map-summary{left:52px;top:8px;font-size:9px}.gps-workspace-jobline{align-items:flex-start}.gps-workspace-jobline .gps-save-indicator{width:100%;margin-left:0}}
