:root{--ink:#152522;--muted:#73817b;--line:#e7ece8;--paper:#f6f8f5;--white:#fff;--green:#183a32;--lime:#c4ef77;--teal:#d9eee4;--orange:#f1b36b;--red:#d97764;--shadow:0 8px 24px #192e2010;font-family:'DM Sans',sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px}.app-shell{min-height:100vh}.sidebar{width:244px;background:var(--green);color:white;position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column;padding:27px 17px 18px;z-index:5}.brand{display:flex;align-items:center;gap:11px;color:white;text-decoration:none;font:700 17px 'Space Grotesk',sans-serif;letter-spacing:.1px;padding:0 8px 38px}.brand-mark{width:37px;height:37px;display:grid;place-items:center;border-radius:12px;background:var(--lime);color:#15382f;font-size:23px}.brand-light{font-weight:400;color:#c5d3ca}.brand small{display:block;color:#94aaa0;font:600 9px 'DM Sans';letter-spacing:1.4px;margin-top:3px}.side-label{font-size:9px;letter-spacing:1.35px;color:#83988e;font-weight:700;padding:0 11px 12px}.side-nav{display:grid;gap:5px}.nav-item{color:#aec0b7;border:0;background:none;font:500 13px 'DM Sans';text-align:left;padding:12px 12px;border-radius:8px;cursor:pointer;display:flex;align-items:center;gap:13px}.nav-item span{font-size:18px;width:18px;text-align:center}.nav-item:hover,.nav-item.active{background:#ffffff15;color:white}.nav-item.active{box-shadow:inset 3px 0 var(--lime)}.sidebar-bottom{margin-top:auto;border-top:1px solid #ffffff20;padding:17px 5px 2px;display:flex;align-items:center;gap:9px;font-size:11px}.sidebar-bottom strong,.sidebar-bottom small{display:block}.sidebar-bottom strong{font-size:11px}.sidebar-bottom small{color:#91a59b;font-size:9px;margin-top:3px}.local-dot{width:7px;height:7px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 4px #c4ef7720}.sync-icon{margin-left:auto;font-size:17px;color:#91a59b}.main{margin-left:244px;min-height:100vh}.topbar{height:64px;background:#ffffffd9;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 42px;position:sticky;top:0;z-index:3;backdrop-filter:blur(12px)}.breadcrumb{display:flex;gap:11px;align-items:center;font-size:11px;color:#8b9690}.breadcrumb b{font-weight:400;color:#ccd3ce}.breadcrumb strong{font-weight:600;color:#263b33}.top-actions{display:flex;align-items:center;gap:18px}.today{font-size:10px;color:#7d8982}.avatar{width:30px;height:30px;border-radius:50%;background:#e3eee5;color:#315744;display:grid;place-items:center;font-size:10px;font-weight:700}.view{max-width:1440px;margin:auto;padding:34px 42px 60px}.eyebrow{font-size:9px;letter-spacing:1.3px;text-transform:uppercase;color:#809087;font-weight:700}.page-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:25px;gap:16px}.page-head h1{font:600 27px 'Space Grotesk';letter-spacing:-.7px;margin:6px 0 4px}.page-head p{font-size:11px;color:var(--muted);margin:0}.btn{border:0;border-radius:7px;padding:10px 14px;font:600 11px 'DM Sans';cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap}.btn-primary{background:var(--green);color:#fff}.btn-primary:hover{background:#245243}.btn-lime{background:var(--lime);color:#173b30}.btn-quiet{color:#52645a;background:white;border:1px solid var(--line)}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:17px}.stat-card,.panel{background:white;border:1px solid #e8ede9;border-radius:10px;box-shadow:var(--shadow)}.stat-card{padding:16px 17px;min-height:107px}.stat-top{display:flex;align-items:center;justify-content:space-between;color:#728078;font-size:10px}.stat-icon{font-size:16px;color:#537664;background:#eff5ef;border-radius:7px;width:28px;height:28px;display:grid;place-items:center}.stat-value{font:600 25px 'Space Grotesk';margin-top:9px;letter-spacing:-.8px}.stat-note{color:#98a29c;font-size:9px;margin-top:2px}.stat-note em{color:#588665;font-style:normal;font-weight:600}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.8fr);gap:15px}.panel{padding:18px 19px}.panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.panel-title{font:600 13px 'Space Grotesk'}.panel-subtitle{color:#8a9690;font-size:9px;margin-top:4px}.text-link{border:0;background:none;color:#4b795e;font:600 10px 'DM Sans';cursor:pointer}.project-list{display:grid;gap:3px}.project-row{display:grid;grid-template-columns:34px 1fr auto;gap:10px;align-items:center;padding:10px 0;border-top:1px solid #f0f2f0}.project-icon{width:32px;height:32px;border-radius:8px;background:#edf3ec;display:grid;place-items:center;color:#477057;font-size:14px}.project-name{font-size:11px;font-weight:700}.project-meta{font-size:9px;color:#929d96;margin-top:3px}.project-progress{width:97px}.progress-track{height:5px;border-radius:6px;background:#edf1ee;overflow:hidden}.progress-fill{height:100%;background:#81a78a;border-radius:6px}.progress-label{font-size:9px;color:#76847b;text-align:right;margin-top:5px}.activity-list{display:grid}.activity-item{display:grid;grid-template-columns:28px 1fr auto;gap:9px;padding:11px 0;border-top:1px solid #f0f2f0;align-items:start}.activity-dot{margin-top:3px;width:24px;height:24px;border-radius:50%;background:#eff5ee;color:#64836d;display:grid;place-items:center;font-size:11px}.activity-copy{font-size:10px;line-height:1.45}.activity-copy strong{font-weight:700}.activity-copy small{display:block;font-size:9px;color:#98a29c;margin-top:3px}.activity-time{font-size:9px;color:#97a19b;white-space:nowrap}.lower-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:15px}.material-summary{display:grid;grid-template-columns:76px 1fr;gap:15px;align-items:center}.donut{width:70px;height:70px;border-radius:50%;background:conic-gradient(#7fa88b 0 68%,#edf1ee 68% 100%);display:grid;place-items:center;position:relative}.donut:after{content:'';position:absolute;inset:7px;background:white;border-radius:50%}.donut b{position:relative;z-index:1;font:600 15px 'Space Grotesk'}.material-count{display:flex;justify-content:space-between;color:#68776e;font-size:10px;margin:8px 0}.material-count b{color:#2d4538}.blocker{display:flex;gap:12px;align-items:flex-start;padding:11px;background:#fff8ef;border-radius:8px}.blocker-icon{color:#bc8442;font-size:16px}.blocker strong{font-size:10px}.blocker p{font-size:9px;color:#958472;margin:4px 0 0}.section-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.input,.select{border:1px solid #e4eae5;background:white;border-radius:7px;padding:9px 10px;font:11px 'DM Sans';color:#304139;outline:none}.input:focus,.select:focus{border-color:#7fa88b;box-shadow:0 0 0 3px #7fa88b20}.search{min-width:200px}.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;min-width:620px}.data-table th{text-align:left;font-size:9px;color:#89958e;letter-spacing:.5px;text-transform:uppercase;font-weight:600;padding:11px 10px;border-bottom:1px solid var(--line);white-space:nowrap}.data-table td{padding:12px 10px;border-bottom:1px solid #f0f2f0;font-size:10px;color:#536159;vertical-align:middle}.data-table td:first-child{color:#263c31;font-weight:600}.status{display:inline-flex;padding:4px 7px;border-radius:20px;font-size:9px;font-weight:600;background:#eff4ef;color:#56765e}.status.partial{background:#fff4e5;color:#a6743e}.status.observed{background:#fff0ed;color:#b46557}.status.pending{background:#f1f2f1;color:#7d8982}.status.received{background:#e8f4eb;color:#48805b}.table-empty{padding:28px;text-align:center;color:#8b9690;font-size:11px}.unit-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.unit-card{padding:16px;background:white;border:1px solid var(--line);border-radius:9px;cursor:pointer}.unit-card:hover{border-color:#a9c5af;transform:translateY(-1px)}.unit-top{display:flex;justify-content:space-between}.unit-id{font:600 14px 'Space Grotesk'}.unit-project{font-size:9px;color:#849087;margin-top:4px}.unit-metrics{display:flex;justify-content:space-between;margin-top:19px;font-size:9px;color:#87938b}.unit-metrics b{color:#344b3d;font-size:10px}.unit-progress{margin-top:8px}.filter-bar{display:flex;gap:8px;flex-wrap:wrap;padding:12px;border-bottom:1px solid #f0f2f0}.filter-bar .select{padding:8px;min-width:125px}.timeline{display:grid}.timeline-row{display:grid;grid-template-columns:82px 18px 1fr;gap:10px;padding:14px 3px;border-bottom:1px solid #f0f2f0}.timeline-date{font-size:9px;color:#89958e;line-height:1.5}.timeline-line{position:relative;display:flex;justify-content:center}.timeline-line:after{content:'';position:absolute;top:14px;bottom:-17px;width:1px;background:#e4ebe5}.timeline-row:last-child .timeline-line:after{display:none}.timeline-marker{width:9px;height:9px;border:2px solid #79a185;border-radius:50%;background:white;position:relative;z-index:1;margin-top:3px}.timeline-content{font-size:10px;color:#526158;line-height:1.55}.timeline-content strong{color:#273d32}.timeline-meta{font-size:9px;color:#99a39d;margin-top:4px}.activity-type{display:inline-block;border-radius:4px;background:#edf3ed;padding:3px 6px;color:#5d7965;font-size:9px;margin-left:5px}.unit-detail{display:grid;grid-template-columns:1fr 1fr;gap:14px}.detail-facts{display:grid;grid-template-columns:1fr 1fr;gap:9px}.fact{background:#f7f9f7;padding:11px;border-radius:7px}.fact span{display:block;color:#8a9690;font-size:9px}.fact b{display:block;font-size:12px;margin-top:5px}.modal-backdrop{position:fixed;inset:0;background:#0a1e19a8;z-index:20;display:grid;place-items:center;padding:16px}.modal{background:white;border-radius:12px;width:min(510px,100%);max-height:90vh;overflow:auto;box-shadow:0 20px 80px #0003}.modal-head{padding:19px 21px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.modal-head h2{font:600 17px 'Space Grotesk';margin:0}.close-btn{border:0;background:#f1f4f1;border-radius:50%;width:27px;height:27px;cursor:pointer;color:#68776e}.modal-body{padding:18px 21px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field{display:grid;gap:6px}.field.full{grid-column:1/-1}.field label{font-size:10px;font-weight:600;color:#607067}.field .input,.field .select{width:100%;padding:10px}.field textarea{min-height:72px;resize:vertical}.modal-footer{display:flex;justify-content:flex-end;gap:8px;margin-top:17px}.hint{font-size:9px;color:#8b9690}.mobile-nav{display:none}#toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,20px);background:#16372e;color:white;padding:11px 16px;border-radius:7px;font-size:11px;opacity:0;pointer-events:none;transition:.2s;z-index:50;box-shadow:var(--shadow)}#toast.show{opacity:1;transform:translate(-50%,0)}.empty{padding:34px 15px;text-align:center;color:#87938b;font-size:11px}
@media(max-width:1000px){.view{padding:27px 25px 50px}.topbar{padding:0 25px}.stats-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.unit-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:650px){.sidebar{display:none}.main{margin-left:0;padding-bottom:66px}.topbar{height:54px;padding:0 17px}.today{display:none}.view{padding:23px 16px 32px}.page-head{align-items:flex-start;flex-direction:column;margin-bottom:18px}.page-head h1{font-size:24px}.page-head>.btn{width:100%}.stats-grid{gap:9px}.stat-card{padding:12px;min-height:97px}.stat-value{font-size:22px}.stat-top{font-size:9px}.dashboard-grid,.lower-grid,.unit-detail{grid-template-columns:1fr;gap:11px}.panel{padding:15px}.unit-grid{grid-template-columns:1fr 1fr;gap:8px}.unit-card{padding:12px}.unit-id{font-size:12px}.project-progress{width:75px}.filter-bar{padding:10px 0}.filter-bar .select{flex:1;min-width:calc(50% - 5px)}.search{width:100%;min-width:0}.mobile-nav{height:61px;position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(5,1fr);z-index:8;padding-bottom:env(safe-area-inset-bottom)}.mobile-nav button{border:0;background:none;color:#8a9690;font:500 9px 'DM Sans';display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}.mobile-nav button span{font-size:18px}.mobile-nav button.active{color:#315c43}.timeline-row{grid-template-columns:62px 15px 1fr;gap:7px}.topbar .breadcrumb{font-size:10px}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.modal{max-height:88vh}.material-summary{grid-template-columns:68px 1fr}}
.evidence-picker{display:flex;align-items:center;gap:12px;padding:14px;border:1px dashed #aebfb2;border-radius:8px;background:#f8faf7;cursor:pointer;transition:border-color .15s,background .15s}.evidence-picker:hover{border-color:#64886e;background:#f2f7f1}.evidence-plus{width:34px;height:34px;flex:none;display:grid;place-items:center;border-radius:8px;background:#eaf2e9;color:#446f50;font-size:22px}.evidence-picker strong,.evidence-picker small{display:block}.evidence-picker strong{font-size:11px;color:#355542}.evidence-picker small{font-size:9px;color:#849087;margin-top:3px}.evidence-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.evidence-preview-wrap{display:flex;align-items:center;gap:10px;margin-top:10px;flex-wrap:wrap}.evidence-preview{width:92px;height:74px;object-fit:cover;border-radius:7px;border:1px solid var(--line);background:#f2f4f2}.evidence-file-name{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px;color:#718078}.evidence-thumb{display:block;width:88px;height:66px;object-fit:cover;border:1px solid var(--line);border-radius:6px;margin-top:7px}.evidence-link{display:inline-block;margin-top:5px;color:#55765d;font-size:9px}
.project-open{cursor:pointer}.project-open:hover{background:#f8faf7}.project-open:focus{outline:2px solid #8bb397;outline-offset:-2px}.project-wizard-modal{width:min(600px,100%)}.wizard-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;margin:0 0 19px}.wizard-step{position:relative;display:grid;justify-items:center;gap:5px;color:#99a39d;text-align:center}.wizard-step:not(:last-child):after{content:'';position:absolute;left:calc(50% + 17px);right:calc(-50% + 17px);top:13px;height:1px;background:#e4eae5}.wizard-step span{width:27px;height:27px;display:grid;place-items:center;border:1px solid #dce4dd;border-radius:50%;background:#fff;font-size:10px;z-index:1}.wizard-step small{font-size:8px;line-height:1.2}.wizard-step.current{color:#315f43;font-weight:700}.wizard-step.current span,.wizard-step.done span{border-color:#648b70;background:#eaf3e9;color:#315f43}.wizard-step.done:after{background:#84a98a}.wizard-page{min-height:170px}.wizard-page .modal-footer{margin-top:15px}.wizard-unit-list,.wizard-file-list{display:grid;gap:7px;max-height:300px;overflow:auto}.wizard-unit-row{display:grid;grid-template-columns:29px 1fr;gap:8px;align-items:center}.wizard-unit-row>span{color:#8a9690;font-size:10px;text-align:center}.wizard-unit-row .input{width:100%}.wizard-section-title{font:600 13px Arial,sans-serif;margin-bottom:6px}.wizard-upload-row{align-items:end;margin-top:13px}.wizard-upload-row .field{align-self:end}.wizard-upload-row input[type=file]{font-size:10px;padding:8px;max-width:100%}.wizard-add-row{justify-content:space-between;align-items:center}.wizard-file-empty{padding:16px 12px;border:1px dashed #e1e8e2;border-radius:7px;text-align:center;color:#98a29c;font-size:10px;margin-top:9px}.wizard-file-list{max-height:185px;margin:10px 0}.wizard-file-row{display:grid;grid-template-columns:29px 1fr auto;gap:9px;align-items:center;padding:8px 9px;background:#f7f9f7;border-radius:7px}.wizard-file-icon{width:25px;height:25px;display:grid;place-items:center;border-radius:6px;background:#e9f0e9;color:#497151;font-size:9px;font-weight:700}.wizard-file-row strong,.wizard-file-row small{display:block;max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wizard-file-row strong{font-size:10px}.wizard-file-row small{font-size:8px;color:#87938b;margin-top:3px}.wizard-summary{display:grid;gap:5px;padding:11px 12px;margin-top:11px;background:#f1f6f0;border-radius:7px;font-size:10px}.wizard-summary small{font-size:9px;color:#819087}.project-detail-summary{margin-bottom:16px}.project-detail-summary>p{font-size:10px;color:#718078;line-height:1.5}.project-detail-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.project-detail-section{padding-top:13px;margin-top:12px;border-top:1px solid var(--line)}.project-detail-section .panel-head{margin-bottom:8px}.project-unit-chips{display:flex;flex-wrap:wrap;gap:6px}.project-unit-chips span{padding:6px 8px;border-radius:20px;background:#eff4ef;color:#506f57;font-size:9px}.project-detail-section .table-wrap{margin:7px 0}.project-detail-section .data-table{min-width:500px}
@media(max-width:650px){.project-detail-facts{grid-template-columns:1fr 1fr}.wizard-step small{font-size:7px}.wizard-page{min-height:100px}.wizard-unit-list{max-height:38vh}.wizard-file-row strong,.wizard-file-row small{max-width:190px}.wizard-add-row{gap:8px;align-items:flex-start;flex-direction:column}.wizard-add-row .btn{width:100%}.wizard-upload-row{grid-template-columns:1fr}.project-wizard-modal{max-height:92vh}}
.project-detail-heading{display:grid;gap:7px;margin:0 0 14px;padding:11px 13px;border:1px solid var(--line);border-radius:9px;background:#fff}.project-detail-heading>div{display:flex;align-items:center;gap:8px}.project-detail-heading>div>span:first-child{font-size:10px;color:#7d8982}.project-detail-heading small{font-size:9px;color:#87938b}.project-section-nav{display:flex;gap:6px;margin:0 0 14px;padding:2px 0 8px;overflow-x:auto;scrollbar-width:thin}.project-section-tab{flex:0 0 auto;padding:8px 11px;border:1px solid var(--line);border-radius:20px;background:#fff;color:#64736a;font:500 10px Arial,sans-serif;cursor:pointer}.project-section-tab.active{border-color:#73957a;background:#eaf2e9;color:#315b3b;font-weight:700}.project-section-content{display:grid;gap:13px}.project-stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.project-stat-grid .stat-card{min-width:0}.project-overview-panel{margin:0}.project-facts-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.project-description{margin:11px 0 0;color:#69776f;font-size:10px;line-height:1.55;white-space:pre-wrap}.project-lower-panels{display:grid;gap:12px}.project-lower-panels>.panel{min-width:0}.project-section-intro h2{margin:0 0 4px;font:600 15px 'Space Grotesk',Arial,sans-serif;color:var(--ink)}.project-section-intro p{margin:0;color:var(--muted);font-size:10px;line-height:1.5}.project-bom-summary{display:flex;flex-wrap:wrap;gap:8px}.project-bom-summary span{padding:9px 11px;border:1px solid var(--line);border-radius:7px;background:#fff;color:#728078;font-size:9px}.project-bom-summary b{color:#314c3c}.project-subpanel{min-width:0;margin:0}.project-file-category{min-width:0;padding:12px;background:#fff;border:1px solid var(--line);border-radius:9px}.project-file-category .panel-head{margin-bottom:7px}.project-file-category .table-wrap{margin:0}.project-activity-list{display:grid;gap:9px}.project-activity-card{padding:12px;border:1px solid var(--line);border-radius:9px;background:#fff}.project-activity-top{display:flex;align-items:center;flex-wrap:wrap;gap:7px}.project-activity-top>strong{color:#2e4939;font-size:11px}.project-activity-top time{margin-left:auto;color:#8a9690;font-size:9px}.project-activity-card>p{margin:9px 0;color:#526158;font-size:10px;line-height:1.5}.project-activity-meta{display:grid;grid-template-columns:1fr;gap:5px;color:#86928b;font-size:9px}.project-activity-evidence{display:flex;gap:7px;margin-top:9px}.project-activity-evidence .evidence-thumb{width:72px;height:72px;object-fit:cover;border-radius:7px;border:1px solid var(--line)}
@media(min-width:760px){.project-stat-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.project-facts-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.project-lower-panels{grid-template-columns:1fr 1fr}.project-activity-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.project-section-content{gap:16px}}
.project-section-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap}.bom-upload-button{cursor:pointer}.bom-file-input{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.bom-import-file{display:flex;align-items:center;justify-content:space-between;gap:12px}.bom-import-file strong,.bom-import-file small{display:block}.bom-import-file strong{margin-top:5px;font-size:12px;overflow-wrap:anywhere}.bom-import-file small{margin-top:5px;color:#87938b;font-size:9px}.bom-import-controls,.bom-validation,.bom-preview{min-width:0}.bom-mapping-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}.bom-mapping-grid .select{width:100%;min-width:0}.bom-map-help{margin-top:10px;line-height:1.5}.bom-count-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.bom-count-grid>div{padding:10px;border-radius:7px;background:#f7f9f7}.bom-count-grid b,.bom-count-grid span{display:block}.bom-count-grid b{font:600 17px 'Space Grotesk';color:#2e4939}.bom-count-grid span{margin-top:3px;color:#859189;font-size:9px}.bom-warning-list{display:grid;gap:6px;padding:0 0 0 17px;margin:12px 0 0;color:#936c37;font-size:9px;line-height:1.5}.bom-ok{font-size:10px;color:#4a7958}.bom-preview-table{min-width:560px}.bom-preview-table td{white-space:normal;max-width:330px;overflow-wrap:anywhere}.bom-invalid-row td{background:#fff9f6}.bom-import-footer{display:flex;justify-content:flex-end;gap:9px;flex-wrap:wrap}.btn:disabled{opacity:.48;cursor:not-allowed}.project-subpanel .data-table td:last-child{white-space:nowrap}
@media(max-width:650px){.bom-mapping-grid{grid-template-columns:1fr}.bom-count-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.bom-import-file{align-items:flex-start;flex-direction:column}.bom-import-footer{display:grid;grid-template-columns:1fr}.bom-import-footer .btn{width:100%}.project-section-intro .bom-upload-button{width:100%}}
[hidden]{display:none!important}
.material-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin:0 0 13px}.material-metric{display:grid;gap:5px;min-width:0;padding:12px 14px;border:1px solid var(--line);border-radius:9px;background:#fff}.material-metric span{font-size:9px;color:#859189}.material-metric b{font:600 19px 'Space Grotesk';color:#2e4939}.material-metric-progress{background:#eff5ee;border-color:#e0e9df}.material-center{padding:0;overflow:hidden}.material-filter-bar{display:grid;grid-template-columns:minmax(180px,2fr) repeat(4,minmax(120px,1fr));align-items:center}.material-filter-bar .input,.material-filter-bar .select{min-width:0;width:100%}.material-data-table{min-width:850px}.material-data-table th,.material-data-table td{white-space:nowrap}.material-data-table td:first-child{white-space:normal;min-width:150px}.material-data-table td:nth-child(2){white-space:normal;min-width:150px}.material-progress{display:grid;grid-template-columns:minmax(40px,1fr) 30px;align-items:center;gap:6px;min-width:85px}.material-progress .hint{text-align:right}.material-actions{display:flex;align-items:center;gap:9px}.material-actions button:disabled,.material-card-actions button:disabled{opacity:.4;cursor:not-allowed}.material-mobile-list{display:none}.material-note{margin:11px 3px}.material-detail-actions{display:flex;justify-content:flex-end;gap:8px;margin-bottom:12px}.material-detail-summary,.material-detail-section{padding:13px;border:1px solid var(--line);border-radius:9px;background:#fff}.material-detail-title{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:12px}.material-detail-title h3{margin:4px 0;font:600 18px 'Space Grotesk';color:#2e4939}.material-detail-title p{margin:0;color:#66756c;font-size:10px;line-height:1.5}.material-detail-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.material-detail-facts>div{padding:9px;border-radius:7px;background:#f7f9f7;min-width:0}.material-detail-facts span,.material-detail-facts b{display:block}.material-detail-facts span{font-size:9px;color:#86928b}.material-detail-facts b{margin-top:4px;font-size:11px;color:#344b3d;overflow-wrap:anywhere}.material-detail-section{margin-top:11px}.material-detail-section>.panel-title{margin-bottom:8px}.material-history-table{min-width:550px}.material-history-table td{white-space:normal}.material-related-list{display:grid;gap:8px}.material-related-activity{padding:10px;border:1px solid #e7ece8;border-radius:8px;background:#fbfcfb}.material-related-activity>div{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.material-related-activity>div>strong{font-size:10px;color:#2e4939}.material-related-activity time{margin-left:auto;color:#89958e;font-size:9px}.material-related-activity p{margin:7px 0;color:#536159;font-size:10px;line-height:1.5}.material-related-activity>small{display:block;margin-top:4px;color:#87938b;font-size:9px}
@media(max-width:900px){.material-filter-bar{grid-template-columns:repeat(3,minmax(0,1fr))}.material-filter-bar .search{grid-column:1/-1}}
@media(max-width:650px){.material-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.material-metric{padding:10px}.material-metric b{font-size:17px}.material-metric-progress{grid-column:1/-1}.material-filter-bar{grid-template-columns:1fr 1fr;gap:7px}.material-filter-bar .search{grid-column:1/-1}.material-filter-bar .select{min-width:0}.material-desktop{display:none}.material-mobile-list{display:grid;gap:8px;padding:10px}.material-card{padding:12px;border:1px solid var(--line);border-radius:9px;background:#fff}.material-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.material-card-head>div{min-width:0}.material-card-head strong,.material-card-head span{display:block}.material-card-head strong{font-size:12px;color:#294738;overflow-wrap:anywhere}.material-card-head span{margin-top:4px;color:#89958e;font-size:9px}.material-card>p{margin:8px 0;color:#58675e;font-size:10px;line-height:1.45}.material-card-quantities{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.material-card-quantities span{padding:7px 6px;border-radius:6px;background:#f7f9f7;color:#849087;font-size:8px}.material-card-quantities b{display:block;margin-top:3px;color:#344b3d;font-size:11px}.material-card>.material-progress{margin-top:9px}.material-card-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:10px}.material-card-actions .btn{padding:9px 6px;font-size:9px}.material-detail-actions{display:grid;grid-template-columns:1fr 1fr}.material-detail-actions .btn{width:100%}.material-detail-facts{grid-template-columns:1fr 1fr}.material-detail-section{padding:10px}.material-related-activity time{width:100%;margin-left:0}}
.component-picker{position:relative;min-width:0}.component-picker>.input{width:100%}.component-results{position:absolute;top:calc(100% + 5px);left:0;right:0;z-index:25;max-height:250px;overflow-y:auto;border:1px solid #dfe7e0;border-radius:8px;background:#fff;box-shadow:0 12px 30px #132c201c;padding:5px}.component-result{display:grid;width:100%;gap:3px;padding:9px 10px;border:0;border-radius:6px;background:#fff;text-align:left;cursor:pointer;color:#314139}.component-result:hover,.component-result[aria-selected="true"]{background:#eff5ee;outline:none}.component-result strong{font-size:11px;color:#294738}.component-result span{font-size:10px;line-height:1.35;overflow-wrap:anywhere}.component-result small{font-size:9px;color:#849087}.component-search-message{padding:10px;color:#7d8982;font-size:10px;line-height:1.4}
.batch-receipt-heading,.batch-list-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;flex-wrap:wrap}.batch-receipt-heading{display:grid;gap:4px;margin-bottom:10px}.batch-receipt-heading strong,.batch-list-heading strong{font-size:11px;color:#344b3d}.batch-search-label{display:block;margin:0 0 6px;font-size:10px;font-weight:600;color:#607067}.batch-selected{margin-top:9px;padding:10px 12px;border:1px solid #e4ebe5;border-radius:7px;background:#f7faf6;font-size:10px;line-height:1.5}.batch-add-row{display:grid;grid-template-columns:minmax(100px,1fr) auto;gap:9px;align-items:end;margin-top:9px}.batch-add-row .field{display:grid;gap:6px}.batch-add-row .field label{font-size:10px;font-weight:600;color:#607067}.batch-list-heading{margin-top:15px;align-items:center}.batch-list-heading .hint{font-size:8px}.batch-receipt-lines{display:grid;gap:7px;max-height:310px;overflow:auto;margin-top:8px}.batch-receipt-line{display:grid;grid-template-columns:minmax(0,1fr) 112px auto;gap:9px;align-items:center;padding:9px;border:1px solid #e7ece8;border-radius:8px;background:#fff}.batch-receipt-part{min-width:0}.batch-receipt-part strong,.batch-receipt-part span,.batch-receipt-part small{display:block}.batch-receipt-part strong{font-size:10px;color:#294738}.batch-receipt-part span{margin-top:3px;font-size:9px;color:#637168;line-height:1.35;overflow-wrap:anywhere}.batch-receipt-part small{margin-top:4px;font-size:8px;color:#89958e}.batch-quantity-field{display:grid;gap:5px}.batch-quantity-field label{font-size:9px;font-weight:600;color:#68776e}.batch-remove{white-space:nowrap}.batch-empty{padding:14px 8px}.batch-receipt-summary{display:grid;gap:4px;padding:11px;margin-top:9px;background:#eff5ee;border-radius:7px;color:#355542;font-size:10px}.batch-receipt-summary>strong{font-size:10px}.batch-receipt-summary small{color:#718078;font-size:8px;line-height:1.5}.receipt-detail{margin-top:7px;font-size:9px}.receipt-detail summary{color:#4b795e;cursor:pointer;font-weight:600}.receipt-detail ul{padding-left:18px;margin:5px 0}.receipt-detail li{padding:2px 0}.evidence-preview-list{display:flex;gap:9px;flex-wrap:wrap}.evidence-preview-item{display:grid;justify-items:start;gap:4px}.evidence-preview-item .evidence-file-name{max-width:120px}
@media(max-width:650px){.batch-add-row{grid-template-columns:1fr}.batch-add-row .btn{width:100%}.batch-receipt-line{grid-template-columns:minmax(0,1fr) 92px;gap:7px}.batch-remove{grid-column:1/-1;justify-self:end}.batch-receipt-lines{max-height:35vh}.batch-list-heading{display:grid}}
.backup-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}.backup-action{display:grid;align-content:start;gap:10px;min-height:135px}.backup-action p,.backup-explanation{font-size:10px;color:var(--muted);line-height:1.55;margin:0}.backup-file-label{width:100%}.backup-file-label input{display:block;width:100%;margin-top:9px;font-size:10px}.backup-result{margin-top:14px}.backup-result h2{font:600 15px 'Space Grotesk';margin:0 0 8px}.backup-counts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:12px 0}.backup-counts div{padding:10px;background:#f6f8f5;border-radius:7px}.backup-counts b,.backup-counts span{display:block}.backup-counts b{font:600 17px 'Space Grotesk'}.backup-counts span{font-size:9px;color:var(--muted);margin-top:3px}.backup-warning{color:#95651e;background:#fff8eb;padding:10px;border-radius:7px;font-size:10px}.backup-success{color:#315f43;background:#eff6ee;padding:10px;border-radius:7px;font-size:10px}.backup-confirm{display:flex;align-items:flex-start;gap:9px;margin:14px 0;font-size:10px;line-height:1.5}.backup-restore-prompt{font-size:11px;line-height:1.6;color:#526158}@media(max-width:650px){.backup-grid{grid-template-columns:1fr}.backup-action{min-height:0}.backup-counts{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* HPUMP-TRACE 27 · identidad industrial inspirada en Baker Hughes */
:root{--green:#004c45;--lime:#58d3b0;--teal:#d7f2e9;--ink:#153b37;--paper:#f3f7f6;font-family:Arial,system-ui,sans-serif}
body,input,select,textarea,button{font-family:Arial,system-ui,sans-serif!important}.local-notice{padding:10px 24px;background:#e4f4ee;color:#245d50;font-size:12px;line-height:1.5;border-bottom:1px solid #c4e2d6}.avatar{border:0;cursor:pointer}.input,.select{font-size:14px;min-height:44px}.btn{font-size:13px;min-height:44px}.data-table td,.timeline-content,.activity-copy{font-size:13px}.hint,.timeline-meta,.page-head p{font-size:12px;line-height:1.5}.btn-primary:hover{background:#006b60}.brand-mark{border-radius:8px}.modal-head h2,.panel-title{font-family:Arial,system-ui,sans-serif}.field label{font-size:12px}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:3px solid #008575;outline-offset:3px}.unit-card{outline-offset:3px}.wizard-unit-row{flex-wrap:wrap}.wizard-unit-row .input{flex:1;min-width:120px}.modal-footer{position:sticky;bottom:0;background:white;padding:10px 0}.mobile-nav button{min-height:48px}.project-open{cursor:pointer}@media(max-width:650px){.unit-grid{grid-template-columns:1fr}.topbar{padding:0 14px}.local-notice{padding:10px 16px}.timeline-date{font-size:11px}.filter-bar .input{max-width:100%}.form-grid .input{font-size:16px}.mobile-nav{height:70px}.main{padding-bottom:78px}.panel-title{font-size:15px}}

.dashboard-project{width:100%;border:0;border-top:1px solid var(--line);background:white;text-align:left;cursor:pointer}.dashboard-project:hover{background:#eff8f4}.dashboard-project .project-meta{display:block}.timeline-content .status{margin-left:8px}

/* Revisión 28: asistente de tres pasos */
.wizard-steps{grid-template-columns:repeat(3,1fr)}
.bom-import-controls label{display:block;margin:12px 0}
/* Operational extensions preserve the existing visual system. */
[data-action="new-activity"]{min-height:54px;padding:14px 24px;font-size:16px!important;font-weight:700}.op-toolbar{display:flex;gap:9px;flex-wrap:wrap;margin:14px 0}.op-toolbar .input{flex:1;min-width:160px}.op-bom-list{max-height:280px;overflow-y:auto;border:1px solid var(--line);border-radius:8px;margin:8px 0}.op-check{display:flex;align-items:flex-start;gap:12px;padding:12px;border-bottom:1px solid var(--line);cursor:pointer;font-size:13px}.op-check input{width:20px;height:20px;flex-shrink:0}.op-check small{display:block;color:var(--muted);font-size:11px;margin-top:5px}.op-scroll{overflow-x:auto}.op-review{min-width:1100px}.op-review td{vertical-align:top}.op-review .input,.op-review .select{min-width:95px;margin-bottom:5px}.op-review select{max-width:240px}.op-review small{display:block;color:#996320;max-width:150px}.op-selected{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:12px;background:var(--paper);margin:7px 0;border-radius:8px}.op-selected label{width:125px}.op-bar{margin:12px 0}.op-bar span{display:flex;justify-content:space-between;gap:12px;font-size:12px}.op-bar progress{width:100%;height:14px;accent-color:#018374}.op-alert{background:#fff3df;border-left:4px solid #c47e29;padding:10px;font-size:12px}.op-progress{margin-top:15px}.op-project-progress{display:grid;gap:10px;margin-top:15px}.op-config-row{display:grid;grid-template-columns:1fr 80px 1fr;gap:10px;align-items:center;margin:10px 0}.op-pages{display:flex;flex-wrap:wrap;gap:12px;margin:12px 0}pre{max-height:240px;overflow:auto;white-space:pre-wrap;font-size:11px}#delivery-editor{font-size:13px}#delivery-editor label,#progress-config-form label,#cloud-config-form label,#cloud-login-form label{font-size:12px;display:block}#modal-root:has(#delivery-editor) .modal{max-width:1250px;width:96vw}#report-projects{min-height:100px}#report-preview-area{margin-top:20px}.mobile-nav{grid-template-columns:repeat(6,minmax(0,1fr))}@media(max-width:650px){.op-config-row{grid-template-columns:1fr}.op-toolbar .btn{flex:1}.op-selected label{width:100%}.op-bar span{font-size:11px}#modal-root:has(#delivery-editor) .modal{width:98vw}.mobile-nav button{font-size:9px}}

/* V30 industrial palette and touch controls; existing layout retained. */
:root{--green:#003b32;--lime:#38c6b0;--teal:#daf3ed;--paper:#f4f7f6;font-family:Arial,system-ui,sans-serif}button,input,select,textarea{font-family:inherit} .btn-primary{background:#007e6d;color:#fff}.brand-mark{color:white;background:#008d7b}.nav-item.active{box-shadow:inset 3px 0 #40d3bc}.corporate-logo{display:inline-block;position:relative;width:150px;height:32px;overflow:hidden;background:white}.corporate-logo img{position:absolute;width:180px;height:180px;max-width:none;left:-15px;top:-74px}.op-admin{display:inline-block;font-size:12px}.op-admin summary{cursor:pointer}.op-bom-list{max-height:330px;overflow:auto;overscroll-behavior:contain}.op-check{min-height:48px;cursor:pointer;align-items:center}.op-check input[type=checkbox]{width:22px;height:22px;flex-shrink:0}.op-check small{display:block;line-height:1.5}.receipt-qty{max-width:100px}.op-reception-bom{border:1px solid var(--line);padding:12px;margin:12px 0;border-radius:8px}.op-review input[type=number],.op-selected input[type=number]{min-height:44px}#activity-dynamic{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.modal{max-height:calc(100dvh - 24px);overflow:auto}.modal-body{min-width:0} .btn{min-height:44px}.mobile-nav button{min-height:50px}.op-toolbar{flex-wrap:wrap}#toast{z-index:1000;max-width:calc(100vw - 24px)}[hidden]{display:none!important}.install-strip{padding:8px 20px;display:flex;gap:10px;flex-wrap:wrap;background:#e1f4ee;color:#003b32}.install-strip button{min-height:44px}.local-notice{overflow-wrap:anywhere}
@media(max-width:700px){.corporate-logo{width:112px;height:26px}.corporate-logo img{width:140px;height:140px;top:-57px;left:-13px}.today{display:none}.topbar{padding:0 12px}#activity-dynamic{grid-template-columns:1fr}.modal-backdrop{padding:6px}.modal{width:100%;max-height:calc(100dvh - 12px)}.modal-body{padding:14px}.form-grid{grid-template-columns:1fr}.mobile-nav button{font-size:9px;padding:6px 1px}.op-bom-list{max-height:40dvh}.op-check{padding:10px 4px;gap:8px}.op-selected{flex-wrap:wrap}.op-selected label{flex:1;min-width:100px}.op-review{min-width:1000px}.op-toolbar .btn{font-size:11px}.breadcrumb{font-size:11px}.install-strip{padding:7px 12px}}

/* V31: usable checkbox quantities and inline errors; existing identity retained. */
.delivery-check-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;cursor:default}.delivery-check-row>label:first-child{flex:1;min-width:170px;display:flex!important;align-items:center;gap:10px;cursor:pointer}.delivery-check-row>label:nth-child(2){width:125px}.delivery-check-row .input,.delivery-check-row .select{width:100%;height:auto;min-height:44px;max-width:100%}.delivery-check-row>details{width:100%}.delivery-check-row summary,#op-browser summary{cursor:pointer;min-height:44px;line-height:1.5;padding:9px 0}.delivery-check-row .form-grid label{min-width:0}.field-error{display:block;color:#9b3c20;font-size:12px;line-height:1.5;margin-top:6px}#op-selected small{display:block}#op-browser .op-toolbar{padding:0 6px}#evidence-preview-list span{max-width:140px;overflow-wrap:anywhere;font-size:12px}#delivery-selection-summary{padding:10px 0;font-weight:bold}#activity-form [type=checkbox]{min-width:22px;min-height:22px}
@media(max-width:650px){.delivery-check-row>label:nth-child(2){width:100%}.delivery-check-row .receipt-qty{max-width:150px}.op-selected details{width:100%}}
