.classification-hero { align-items: stretch; }
.workflow-step[hidden] { display: none !important; }
.workflow-step[data-workflow-state="active"] { border-color: rgba(64, 181, 238, .48); }
.workflow-step[data-workflow-state="complete"] .primary-action { display: none; }
.workflow-advanced { margin-top: 1rem; border: 1px solid rgba(255,255,255,.12); border-radius: 10px; background: rgba(4,18,28,.35); }
.workflow-advanced > summary { cursor: pointer; padding: .8rem 1rem; font-weight: 750; color: var(--muted); }
.workflow-advanced > summary:focus-visible { outline: 2px solid #69c7f2; outline-offset: 3px; border-radius: 8px; }
.workflow-advanced[open] > summary { color: var(--text); border-bottom: 1px solid rgba(255,255,255,.1); }
.workflow-advanced > :not(summary) { margin-left: 1rem; margin-right: 1rem; }
.workflow-advanced > :last-child { margin-bottom: 1rem; }
.classification-safety { display: grid; gap: .45rem; min-width: min(100%, 20rem); padding: 1rem; border: 1px solid rgba(255,255,255,.16); border-radius: 12px; background: rgba(5,20,31,.5); }
.classification-safety strong { color: #a9e7c4; }
.classification-file-picker { display: inline-flex; align-items: center; gap: .75rem; padding: .75rem 1rem; border: 1px dashed var(--border); border-radius: 10px; }
.classification-file-picker span { font-weight: 700; }
.classification-status.is-error { color: #ffb4a8; }
.classification-status.is-success { color: #9fe4bc; }
.classification-toolbar { margin-bottom: 1rem; flex-wrap: wrap; }
.classification-groups { display: grid; gap: 1rem; }
.classification-group, .classification-special, .classification-summary { padding: 1rem; border: 1px solid var(--border); border-radius: 12px; background: rgba(8,25,38,.62); }
.classification-group-head, .classification-photo-row { display: flex; align-items: center; justify-content: space-between; gap: .8rem; }
.classification-group-head > div { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; }
.classification-group-head input { min-width: 15rem; }
.photo-set-summary { display: flex; align-items: center; flex-wrap: wrap; gap: .6rem; margin: .65rem 0; color: var(--muted); }
.needs-review { display: inline-flex; align-items: center; width: max-content; padding: .2rem .5rem; border-radius: 999px; color: #ffd181; background: rgba(185,119,24,.22); font-size: .75rem; font-weight: 800; }
.confidence { display: inline-block; padding: .2rem .5rem; border-radius: 999px; text-transform: uppercase; font-size: .72rem; font-weight: 800; }
.confidence-high { color: #92e6b6; background: rgba(34,139,88,.22); }
.confidence-medium { color: #ffd181; background: rgba(185,119,24,.22); }
.confidence-low, .confidence-unclassifiable { color: #ffaaa0; background: rgba(176,66,54,.22); }
.classification-evidence { display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); gap: .75rem; margin: 1rem 0; }
.classification-evidence > div { padding: .7rem; border-radius: 8px; background: rgba(255,255,255,.035); }
.classification-evidence p, .classification-evidence ul { margin: .35rem 0 0; }
.classification-warning { display: block; color: #ffd181; font-size: .82rem; }
.classification-photo-list { display: grid; gap: .4rem; padding: 0; list-style: none; }
.classification-photo-row { padding: .65rem; border-top: 1px solid rgba(255,255,255,.08); }
.classification-photo-details { display: grid; gap: .2rem; flex: 1; min-width: 0; }
.classification-photo-details small { color: var(--muted); overflow-wrap: anywhere; }
.classification-photo-actions, .classification-group-actions { display: flex; align-items: center; flex-wrap: wrap; gap: .4rem; }
.classification-special { margin-top: 1rem; }
.classification-special h3 span { color: var(--muted); }
.classification-complete-actions { margin-top: 1.25rem; align-items: center; }
.classification-summary { margin-top: 1rem; border-color: rgba(80,190,128,.45); }
.multi-job-groups { display: grid; gap: 1rem; }
.multi-job-config { padding: 1rem; border: 1px solid var(--border); border-radius: 12px; background: rgba(8,25,38,.62); }
.multi-job-config-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); gap: .8rem; }
.multi-job-config label, .multi-job-outputs { display: grid; gap: .35rem; }
.global-project-choice { display: grid; gap: .75rem; margin-bottom: 1rem; max-width: 36rem; }
.global-project-choice > label, .inline-project-form label { display: grid; gap: .35rem; }
.inline-project-form { display: grid; grid-template-columns: minmax(12rem, 1fr) auto; gap: .75rem; align-items: end; }
.multi-job-outputs { grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); margin-top: .8rem; }
.multi-job-outputs label { display: flex; align-items: center; gap: .4rem; }
.preflight-allowed { color: #9fe4bc; }
.preflight-blocked { color: #ffb4a8; }
.preflight-warning { color: #ffd181; }
#batch-job-progress { display: grid; gap: .75rem; margin: 1rem 0; }
#batch-confirmation label, #batch-reselect-label { display: block; padding: .75rem; border-radius: 8px; background: rgba(255,255,255,.04); }
.classification-json { max-height: 30rem; overflow: auto; padding: 1rem; border-radius: 10px; background: #06131d; color: #c9e8f5; }
.classification-map { width: 100%; height: min(62vh, 620px); min-height: 360px; border: 1px solid var(--border); border-radius: 12px; background: #07141e; }
#geographic-map-empty[hidden] { display: none; }
.classification-map-legend { display: flex; flex-wrap: wrap; gap: .7rem 1rem; margin: .8rem 0; color: var(--muted); font-size: .82rem; }
.classification-map-legend span { display: inline-flex; align-items: center; gap: .35rem; }
.classification-map-legend i { width: .8rem; height: .8rem; border: 2px solid rgba(255,255,255,.75); border-radius: 50%; background: #3b82f6; }
.classification-map-legend .legend-selected { background: #22c55e; }
.classification-map-legend .legend-excluded { background: #6b7280; opacity: .55; }
.classification-map-legend .legend-unclassified { background: #f59e0b; }
.classification-map-legend .legend-outlier { background: #ef4444; border-style: dashed; }
.classification-map-legend .legend-override { background: #8b5cf6; border-width: 3px; border-color: #fff; }
.classification-polygon-controls { margin: .75rem 0; flex-wrap: wrap; }
.classification-geographic-apply { display: grid; gap: .65rem; padding: 1rem; border: 1px solid rgba(34,197,94,.35); border-radius: 10px; background: rgba(8,35,29,.45); }
.classification-geographic-apply select { max-width: 24rem; }
.classification-vertex-icon { width: 14px; height: 14px; margin: -7px 0 0 -7px; border: 2px solid white; border-radius: 50%; background: #22c55e; box-shadow: 0 1px 4px rgba(0,0,0,.65); }
.leaflet-container { font: inherit; }
@media (max-width: 760px) {
  .classification-group-head, .classification-photo-row { align-items: flex-start; flex-direction: column; }
  .classification-photo-actions { width: 100%; }
  .classification-group-head input { min-width: 0; width: 100%; }
  .workflow-step { padding: .9rem; }
  .workflow-advanced > :not(summary) { margin-left: .65rem; margin-right: .65rem; }
  .classification-file-picker { width: 100%; align-items: flex-start; flex-direction: column; }
  .classification-complete-actions { align-items: stretch; flex-direction: column; }
  .classification-complete-actions .primary-action { width: 100%; }
}
