html {
  font-size: 14px;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

html {
  position: relative;
  min-height: 100%;
}

body {
  margin-bottom: 60px;
  background: #f3f6f4;
  color: #17231c;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
  color: var(--bs-secondary-color);
  text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
  text-align: start;
}
.navbar-brand{font-weight:800}.brand-mark{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:9px;background:#126443;color:white}.hero-panel{background:linear-gradient(125deg,#0d4d36,#17865d);color:white;padding:clamp(24px,5vw,56px);border-radius:24px;display:flex;align-items:end;justify-content:space-between;gap:20px}.hero-panel h1{max-width:650px;font-weight:800}.hero-panel p{color:#d7eee4}.eyebrow{color:#3fa376;font-size:.72rem;font-weight:800;letter-spacing:.16em}.hero-panel .eyebrow{color:#a4e5c8}.metrics-grid,.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:24px 0}.metric-card,.project-card,.field-card,.updates-list{background:white;border:1px solid #dfe8e2;border-radius:18px}.metric-card{padding:20px;display:flex;flex-direction:column}.metric-card strong{font-size:2rem}.section-heading{margin:38px 0 14px}.project-card{padding:20px}.project-top,.project-bottom,.update-row{display:flex;justify-content:space-between;align-items:center;gap:12px}.project-code,.status-pill{font-size:.72rem;font-weight:800;padding:5px 9px;border-radius:999px;background:#e5f3eb;color:#126443}.progress{height:7px;margin:20px 0 10px}.progress-bar{background:#16865c}.updates-list{overflow:hidden}.update-row{padding:16px 20px;border-bottom:1px solid #edf1ee}.update-row div{display:flex;flex-direction:column}.field-shell{max-width:620px;margin:20px auto}.field-card{padding:clamp(18px,4vw,32px);gap:8px}.field-card label{font-weight:700;margin-top:10px}.field-card .form-control,.field-card .form-select{min-height:50px}.location-status{border-radius:12px;background:#fff5df;color:#8a5c00;padding:12px;margin:10px 0}.location-ready{background:#e4f5eb;color:#126443}@media(max-width:768px){.hero-panel{align-items:stretch;flex-direction:column}.metrics-grid,.project-grid{grid-template-columns:1fr}}
.user-role-row{display:grid;grid-template-columns:1fr 220px auto;align-items:center;gap:14px;padding:16px 20px;border-bottom:1px solid #edf1ee}.user-role-row div{display:flex;flex-direction:column}.user-role-row span{color:#6b7c72}.user-designation-row{display:grid;grid-template-columns:1fr auto;gap:10px;padding:0 20px 16px 20px;border-bottom:1px solid #edf1ee}@media(max-width:768px){.user-role-row,.user-designation-row{grid-template-columns:1fr}.user-role-row .btn,.user-designation-row .btn{width:100%}}
.evidence-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.evidence-card{background:white;border:1px solid #dfe8e2;border-radius:18px;overflow:hidden;color:inherit;text-decoration:none}.evidence-card img{width:100%;height:210px;object-fit:cover}.evidence-copy{padding:18px}.evidence-copy h3{margin:16px 0 4px}.evidence-copy p,.evidence-copy small{color:#6b7c72}.review-layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(340px,.7fr);gap:24px;margin-top:18px}.review-photo img{width:100%;max-height:75vh;object-fit:contain;background:#12231a;border-radius:18px}.review-details{background:white;border:1px solid #dfe8e2;border-radius:18px;padding:24px}.review-details dl{display:grid;grid-template-columns:140px 1fr;gap:10px;margin:24px 0}.review-details dt{color:#6b7c72}.review-details dd{margin:0}.hash{font-family:monospace;font-size:.72rem;overflow-wrap:anywhere}.decision-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.back-link{color:#126443;font-weight:700;text-decoration:none}@media(max-width:900px){.evidence-grid{grid-template-columns:repeat(2,1fr)}.review-layout{grid-template-columns:1fr}}@media(max-width:600px){.evidence-grid{grid-template-columns:1fr}.review-details dl{grid-template-columns:1fr}.review-details dt{margin-top:8px}}
.project-link,.update-link{color:inherit;text-decoration:none}.project-link:hover,.update-link:hover{color:inherit;border-color:#16865c}.admin-heading{display:flex;align-items:end;justify-content:space-between}.compact-hero{padding:30px;margin-bottom:24px}.management-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:24px 0}.assignment-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid #edf1ee}@media(max-width:800px){.management-grid{grid-template-columns:1fr}.admin-heading{align-items:stretch;flex-direction:column;gap:12px}}
.evidence-edit-form{max-width:760px}
.audit-table-wrap{overflow-x:auto;background:white;border:1px solid #dfe8e2;border-radius:18px}.audit-table{min-width:1050px;margin:0}.audit-table th{background:#edf5f0;color:#365846}.audit-table td,.audit-table th{padding:14px;vertical-align:middle}
.phase-selector{background:white;border:1px solid #dfe8e2;border-radius:16px;padding:16px;margin:18px 0;display:grid;grid-template-columns:100px 1fr;align-items:center;gap:12px}.phase-selector label{font-weight:700}.phase-summary{margin:18px 0}.phase-summary strong{font-size:1.4rem}.phase-summary p{margin:.5rem 0;color:#6b7c72}
.project-tabs{display:flex;gap:8px;overflow-x:auto;padding:4px;margin:0 0 18px}.project-tab{white-space:nowrap;color:#365846;text-decoration:none;font-weight:700;padding:11px 16px;border:1px solid #dfe8e2;border-radius:12px;background:white}.project-tab:hover{color:#126443;border-color:#16865c}.project-tab.active{color:white;background:#126443;border-color:#126443}.tab-form{max-width:760px;margin:18px auto}.tab-form>p{color:#6b7c72}
.hero-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.phase-overview-panel,.phase-browser{background:white;border:1px solid #dfe8e2;border-radius:18px;padding:20px;margin:20px 0}.compact-heading{margin:0 0 16px}.phase-progress-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.phase-progress-item{display:grid;grid-template-columns:1fr auto;gap:8px;border:1px solid #dfe8e2;border-radius:14px;padding:14px}.phase-progress-link{color:inherit;text-decoration:none}.phase-progress-link:hover{color:inherit;border-color:#16865c;background:#f8fcfa}.phase-progress-item div:first-child{display:flex;flex-direction:column}.phase-progress-item span{color:#6b7c72;font-size:.85rem}.phase-progress-item .progress{grid-column:1/-1;margin:2px 0 0}.phase-card-scroll{max-height:430px;overflow-y:auto;padding-right:8px}.phase-detail-card{border:1px solid #dfe8e2;border-radius:16px;padding:18px;margin-bottom:12px;background:white}.phase-detail-card:hover{border-color:#16865c}.phase-card-main{display:block;color:inherit;text-decoration:none}.phase-card-main:hover{color:inherit}.phase-card-main h3{margin:10px 0 6px}.phase-card-main p,.phase-card-main small{color:#6b7c72}.phase-facts{display:grid;grid-template-columns:2fr 1fr 1fr;gap:18px}.phase-facts div{display:flex;flex-direction:column;gap:5px}.phase-facts span{color:#6b7c72;font-size:.85rem}.phase-access-layout{display:grid;grid-template-columns:280px 1fr;gap:20px;margin-top:20px}.phase-access-nav{background:white;border:1px solid #dfe8e2;border-radius:18px;padding:16px;max-height:600px;overflow-y:auto}.phase-access-link{display:flex;flex-direction:column;color:inherit;text-decoration:none;padding:12px;border-radius:12px;margin-top:6px}.phase-access-link span{color:#6b7c72;font-size:.8rem}.phase-access-link.active,.phase-access-link:hover{background:#e5f3eb;color:#126443}@media(max-width:900px){.phase-progress-grid{grid-template-columns:1fr 1fr}.phase-facts,.phase-access-layout{grid-template-columns:1fr}}@media(max-width:600px){.hero-actions{justify-content:flex-start}.hero-actions .btn{flex:1}.phase-progress-grid{grid-template-columns:1fr}}
.transfer-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.template-links,.export-links{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.transfer-preview{margin-top:20px}.evidence-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px}.evidence-summary a{color:inherit;text-decoration:none}.evidence-summary .active{border-color:#16865c;background:#eaf6ef}.evidence-filters{display:grid;grid-template-columns:auto 180px auto 1fr auto;gap:10px;align-items:center;background:white;border:1px solid #dfe8e2;border-radius:16px;padding:14px;margin-bottom:20px}.evidence-project-group{background:white;border:1px solid #dfe8e2;border-radius:18px;padding:20px;margin-bottom:22px}.group-heading{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #edf1ee;padding-bottom:14px}.group-heading h2{margin:8px 0 0}.evidence-phase-group{margin-top:22px}.evidence-phase-group>h3{display:flex;gap:8px;align-items:center}.evidence-phase-group>h3 span{font-size:.8rem;background:#e5f3eb;color:#126443;border-radius:999px;padding:4px 8px}@media(max-width:800px){.transfer-grid,.evidence-summary{grid-template-columns:1fr}.evidence-filters{grid-template-columns:1fr}.group-heading{align-items:flex-start;flex-direction:column;gap:8px}}
.map-filters{display:grid;grid-template-columns:2fr 2fr 1fr 1fr;gap:14px;align-items:end;background:white;border:1px solid #dfe8e2;border-radius:18px;padding:16px;margin-bottom:18px}.map-filters label{font-weight:700;margin-bottom:5px}.map-stat{display:flex;flex-direction:column;border-left:1px solid #dfe8e2;padding-left:14px}.map-stat span,.map-note,.map-popup span{color:#6b7c72}.map-stat strong{font-size:1.3rem}.progress-map{height:min(68vh,680px);min-height:460px;border:1px solid #dfe8e2;border-radius:18px;overflow:hidden;background:#e5f3eb}.map-note{font-size:.85rem;margin-top:8px}.map-popup{display:flex;flex-direction:column;gap:5px;min-width:220px}.map-popup p{margin:2px 0}.map-popup a{color:#126443;font-weight:700}@media(max-width:900px){.map-filters{grid-template-columns:1fr 1fr}.map-stat{border-left:0;padding-left:0}}@media(max-width:600px){.map-filters{grid-template-columns:1fr}.progress-map{min-height:400px}}
body{background:var(--brand-background,#f3f6f4);color:var(--brand-text,#17231c)}.brand-mark{background:var(--brand-primary,#126443)}.hero-panel{background:linear-gradient(125deg,var(--brand-primary,#0d4d36),var(--brand-accent,#17865d))}.project-code,.status-pill{background:var(--brand-soft,#e5f3eb);color:var(--brand-primary,#126443)}.progress-bar{background:var(--progress-color,var(--brand-accent,#16865c))}.map-popup a,.back-link{color:var(--brand-primary,#126443)}
.map-workspace{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(330px,.75fr);gap:16px;position:relative}.map-workspace.details-collapsed{grid-template-columns:1fr}.map-details-panel{background:white;border:1px solid #dfe8e2;border-radius:18px;padding:16px;max-height:min(68vh,680px);overflow-y:auto}.map-details-heading{display:flex;justify-content:space-between;align-items:start;gap:10px}.map-details-heading h2{font-size:1.25rem;margin-top:5px}.map-details-content dl{display:grid;grid-template-columns:125px 1fr;gap:8px;margin:15px 0 0}.map-details-content dt{color:#6b7c72}.map-details-content dd{margin:0;overflow-wrap:anywhere}.map-detail-photo{width:100%;max-height:280px;object-fit:contain;background:#12231a;border-radius:12px;margin-top:12px}.map-expand-button{position:absolute;right:12px;top:12px;z-index:500}@media(max-width:950px){.map-workspace{grid-template-columns:1fr}.map-details-panel{max-height:none}.map-details-content dl{grid-template-columns:110px 1fr}}@media(max-width:550px){.map-details-content dl{grid-template-columns:1fr}.map-details-content dt{margin-top:6px}}
.setup-count-card{padding:18px;display:grid;grid-template-columns:minmax(260px,1fr) minmax(100px,180px);align-items:center;gap:18px;margin-bottom:18px}.setup-count-card label{font-weight:800}.setup-level-card{padding:22px;margin-bottom:18px;border-radius:18px;overflow-x:auto}.setup-level-heading{display:grid;grid-template-columns:150px minmax(240px,460px);align-items:center;gap:12px;margin-bottom:14px}.setup-level-heading h2{margin:0}.setup-items{display:flex;flex-direction:column;gap:10px;margin-bottom:12px;min-width:1540px}.setup-item-row{display:grid;grid-template-columns:95px 190px 145px 145px 120px 120px 95px 145px 220px 180px 95px;gap:10px;align-items:center;min-width:1540px}.setup-code-pill{background:#eef7f2;border:1px solid #cfe7d9;border-radius:12px;color:#0f6f46;font-weight:800;padding:10px 12px;text-align:center}.setup-weather-check{display:flex;align-items:center;gap:6px;font-weight:800;color:#365846}.setup-level-card:first-child .setup-item-row{grid-template-columns:95px 190px 145px 145px 120px 120px 95px 145px 220px 95px;min-width:1350px}.setup-level-card:first-child .setup-items{min-width:1350px}.setup-level-card:first-child .setup-item-row .remove{grid-column:10}@media(max-width:800px){.setup-count-card,.setup-level-heading{grid-template-columns:1fr}.setup-level-card:first-child .setup-item-row .remove{grid-column:auto}}
.map-hierarchy-selectors{display:flex;gap:12px;grid-column:span 2}.map-hierarchy-selectors>div{min-width:180px;flex:1}.map-hierarchy-selectors label{display:block}.detail-view-tabs{margin-top:18px}.calendar-panel{background:white;border:1px solid #dfe8e2;border-radius:18px;padding:20px}.calendar-heading{display:flex;align-items:center;justify-content:space-between;text-align:center;margin-bottom:16px}.calendar-heading h2{margin:4px 0 0}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(110px,1fr));gap:5px;overflow-x:auto}.calendar-day-name{text-align:center;color:#6b7c72;padding:8px}.calendar-cell{min-height:120px;border:1px solid #dfe8e2;border-radius:10px;padding:8px;display:flex;flex-direction:column;gap:5px}.calendar-cell.empty{background:#f5f7f6}.calendar-cell.today{border-color:#16865c;background:#f0faf5}.calendar-event{font-size:.72rem;background:var(--progress-color,var(--progress-not-started,#eef19e));color:var(--progress-text,#0b1f16);border:1px solid transparent;border-radius:6px;padding:5px;overflow:hidden;text-overflow:ellipsis;display:flex;flex-direction:column;gap:2px;text-decoration:none}.calendar-event:hover{filter:brightness(.97);color:var(--progress-text,#0b1f16)}.calendar-event strong{font-size:.65rem;text-transform:uppercase;letter-spacing:.08em}.calendar-event small{font-size:.68rem;color:inherit;opacity:.9}.calendar-event.delayed,.calendar-event.alert{background:var(--progress-alert,#e21e40);border-color:var(--progress-alert,#e21e40);color:white}.weather-chip{font-size:.68rem;background:var(--weather-cloudy,#8dc3e1);color:#0b1f16;border-radius:999px;padding:3px 7px;font-weight:800}.weather-chip-rainy{background:var(--weather-rainy,#0658a5);color:#fff}.weather-chip-cloudy{background:var(--weather-cloudy,#8dc3e1);color:#0b1f16}.weather-chip-hot,.weather-chip-sunny{background:var(--weather-hot-sunny,#f56200);color:#fff}.weather-chip-snowy{background:var(--weather-snowy,#22affb);color:#0b1f16}.weather-chip-warning{box-shadow:0 0 0 2px var(--progress-alert,#e21e40) inset}.field-card #hierarchySelectors label{display:block;margin-top:10px}.field-card #hierarchySelectors select{margin-bottom:4px}@media(max-width:900px){.map-hierarchy-selectors{grid-column:1/-1;flex-direction:column}.calendar-grid{grid-template-columns:repeat(7,120px)}}
.access-level-card{padding:20px}.access-level-heading{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:12px}.access-level-heading h2{margin:2px 0 0}.access-bulk-form{display:flex;flex-direction:column;gap:12px}.access-bulk-actions{position:sticky;top:0;z-index:3;background:white;display:flex;flex-wrap:wrap;gap:8px;padding:0 0 10px;border-bottom:1px solid #edf1ee}.access-scroll-list{max-height:360px;overflow-y:auto;padding-right:8px;border:1px solid #edf1ee;border-radius:14px}.access-list-header,.access-check-row{display:grid;grid-template-columns:44px minmax(95px,.45fr) minmax(220px,1.2fr) minmax(180px,.75fr) minmax(120px,.45fr);gap:12px;align-items:center}.access-list-header{position:sticky;top:0;z-index:2;background:#edf5f0;color:#365846;font-weight:800;padding:10px 12px;border-bottom:1px solid #dfe8e2}.access-check-row{padding:10px 12px;border-bottom:1px solid #edf1ee;margin:0}.access-check-row:hover{background:#f4faf7}.access-check-row input,.access-list-header input{margin:0}.access-activity-name{font-weight:800}.access-badges,.access-mode-badges{display:inline-flex;gap:5px;flex-wrap:wrap}@media(max-width:800px){.access-list-header,.access-check-row{grid-template-columns:34px minmax(80px,.5fr) minmax(160px,1fr);}.access-list-header span:nth-last-child(-n+2),.access-check-row .access-badges,.access-check-row .access-mode-badges{grid-column:2/-1}.access-bulk-actions .btn{flex:1 1 140px}.access-scroll-list{max-height:300px}}
.document-form{display:grid;grid-template-columns:minmax(180px,1fr) minmax(220px,1fr) minmax(220px,1fr) auto;gap:12px;align-items:end}.document-form label{font-weight:700}.document-list{margin-top:16px;border:1px solid #edf1ee;border-radius:14px;overflow:hidden}.document-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:12px 14px;border-bottom:1px solid #edf1ee}.document-row:last-child{border-bottom:0}.document-row div{display:flex;flex-direction:column}.document-row span{color:#6b7c72;font-size:.85rem}@media(max-width:900px){.document-form,.document-row{grid-template-columns:1fr}.document-form .btn,.document-row .btn{width:100%}}
.locked-card{background:#f8faf9}.locked-card .status-pill{background:#fff0df;color:#8a4300}.locked-card small{display:block;margin-top:6px}

.timeline-panel{background:#fff;border:1px solid #dfe7e2;border-radius:18px;padding:24px;margin-top:18px;overflow-x:auto}.timeline-scale{min-width:760px;display:flex;justify-content:space-between;color:#607167;font-size:.9rem;margin:8px 0 12px 210px}.timeline-list{min-width:980px;display:flex;flex-direction:column;gap:10px}.timeline-row{display:grid;grid-template-columns:190px minmax(560px,1fr);gap:18px;align-items:center}.timeline-label{display:flex;flex-direction:column}.timeline-label strong{color:#0f6f46}.timeline-label span{font-weight:700}.timeline-track{position:relative;height:34px;background:repeating-linear-gradient(to right,#f4f7f5 0,#f4f7f5 1px,transparent 1px,transparent 10%),#fbfcfb;border:1px solid #e4ebe7;border-radius:999px;overflow:hidden}.timeline-bar{position:absolute;top:6px;height:20px;min-width:8px;border-radius:999px;background:var(--progress-color,var(--progress-not-started,#eef19e));color:var(--progress-text,#0b1f16);font-size:.75rem;font-weight:800;text-decoration:none;display:flex;align-items:center;justify-content:center;padding:0 8px;box-shadow:0 4px 10px rgba(15,111,70,.16)}.timeline-bar.delayed,.timeline-bar.alert{background:var(--progress-alert,#e21e40);color:white}.timeline-bar.locked{background:#94a3b8;color:#fff}.timeline-bar:hover{color:var(--progress-text,#0b1f16);filter:brightness(.96)}.timeline-bar.locked:hover,.timeline-bar.delayed:hover,.timeline-bar.alert:hover{color:#fff}
.timeline-month-scale{position:relative;min-width:760px;height:42px;margin:8px 0 12px 210px;border-bottom:1px solid #dfe7e2;color:#607167;font-size:.85rem}.timeline-month{position:absolute;top:0;height:42px;border-left:1px solid #dfe7e2;padding-left:6px;white-space:nowrap;transform:translateX(-1px)}
.dependency-panel{background:#fff;border:1px solid #dfe7e2;border-radius:18px;padding:24px;margin-top:18px}.dependency-list{display:flex;flex-direction:column;gap:14px}.dependency-row{display:grid;grid-template-columns:minmax(240px,1fr) 150px minmax(240px,1fr);gap:14px;align-items:stretch}.dependency-card{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border:1px solid #dfe7e2;border-radius:14px;background:#fbfcfb;text-decoration:none;color:#17251d}.dependency-card:hover{border-color:#0f6f46;color:#0f6f46}.dependency-card span{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:#607167;font-weight:800}.dependency-card em{font-style:normal;color:#b42318;font-weight:800}.dependency-arrow{display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:14px;background:#eef8f2;color:#0f6f46;font-weight:800;text-align:center}.dependency-arrow span{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em}.dependency-row.blocking .dependency-arrow{background:#fff4e5;color:#a15c00}.dependency-note{margin:-6px 0 4px 0;padding-left:16px;color:#607167;font-size:.9rem}@media(max-width:800px){.dependency-row{grid-template-columns:1fr}.dependency-arrow{padding:10px}}
.dependency-row{grid-template-columns:minmax(260px,1fr) 190px minmax(260px,1fr)}.dependency-arrow{padding:10px 12px;min-width:0}.dependency-arrow strong{font-size:.95rem;line-height:1.15;max-width:150px;overflow-wrap:anywhere}.dependency-arrow small{margin-top:4px;color:inherit;opacity:.78;font-weight:700;font-size:.78rem}
