/* Consolidated capture controls, shared by this night and future planning. */
#framingDetails {scroll-margin-top:24px}
.capture-policy,.capture-targets,.capture-order-actions {display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.capture-policy .btn {flex:1;min-width:140px}
.capture-targets {margin:18px 0}
#framingDetails .btn[aria-pressed="true"] {border-color:var(--accent);background:#17364a}
.capture-edit-grid {display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:24px;margin:20px 0}
.capture-edit-grid h3 {font-size:15px;margin:8px 0 12px}
.capture-filter-row {display:grid;grid-template-columns:20px minmax(110px,1fr) minmax(100px,1fr) auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--border,#244156)}
.capture-filter-row input[type=checkbox] {width:18px;height:18px;min-height:18px;margin:0}
.capture-filter-row small {display:block;color:var(--muted);font-size:12px;margin-top:4px}
.capture-filter-row .future-filter {min-width:0}
.capture-filter-row .future-filter svg {width:36px;height:36px;flex:0 0 36px}
.capture-order-actions {flex-wrap:nowrap;gap:6px}
.capture-order-actions .btn {width:40px;min-width:40px;padding:0;min-height:40px}
.capture-geometry {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.capture-geometry label {display:block;font-size:12px;color:var(--muted)}
.capture-geometry input {width:100%;margin-top:5px}
.capture-panel-row {display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0}
.capture-panels {margin:12px 0}
.capture-overheads {display:grid;grid-template-columns:1fr 1fr auto;align-items:end;gap:12px;margin-top:18px}
@media(max-width:1100px){.capture-edit-grid {grid-template-columns:1fr}.capture-filter-row{grid-template-columns:20px minmax(100px,1fr) minmax(100px,1fr) auto}}
@media(max-width:600px){.capture-policy{display:grid;grid-template-columns:1fr}.capture-policy .btn{min-width:0;width:100%}.capture-filter-row{grid-template-columns:20px minmax(0,1fr) auto;gap:8px}.capture-filter-row>div:nth-of-type(2){grid-column:2;grid-row:2}.capture-filter-row>.capture-order-actions{grid-column:3;grid-row:1 / span 2}.capture-overheads{grid-template-columns:1fr}.capture-targets .btn{flex:1}.capture-edit-grid{gap:16px}.capture-geometry{gap:10px}}

.capture-run-plan{margin-top:24px;padding-top:20px;border-top:1px solid var(--border,#244156)}
.capture-goal label{display:block;font-size:12px;color:var(--muted)}
.capture-goal input{display:block;width:100%;max-width:150px;margin-top:5px;min-height:40px}
.imaging-table td.capture-shared-goal{vertical-align:middle;min-width:200px}
.capture-progress-title{display:block;font-size:12px;margin-bottom:12px}

.capture-numeric,.capture-camera-controls{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin:10px 0}
.capture-numeric label,.capture-camera-controls label{font-size:12px;color:var(--muted)}
.capture-numeric input,.capture-camera-controls input{display:block;width:105px;min-height:40px;margin-top:5px}
.capture-geometry{grid-template-columns:repeat(4,minmax(75px,105px));gap:10px}
.capture-goal input{width:90px}.capture-filter-row{grid-template-columns:20px minmax(100px,1fr) 105px auto;padding:8px 0;gap:8px}
.capture-edit-grid{margin:12px 0;gap:18px}.capture-edit-grid h3{margin:0 0 8px}
#frameTiles{display:flex;flex-wrap:wrap;gap:8px}#frameTiles>*{flex:1;min-width:115px;padding:10px}
#fovRecenter{margin-top:8px}.capture-attribution{font-size:10px}
.capture-sky-pair{display:grid;grid-template-columns:1fr 1fr;gap:16px}.capture-sky-pair>.card{min-width:0;margin:0}
.capture-outlook{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-bottom:18px}
.capture-outlook .domeday{height:auto;min-height:105px;display:flex;flex-direction:column;justify-content:center;gap:5px;padding:8px}
.capture-outlook strong{font-size:18px}.capture-outlook small{color:var(--muted)}
.capture-opportunity{padding:12px 0;border-top:1px solid var(--border,#244156)}
@media(max-width:1100px){.capture-sky-pair{grid-template-columns:1fr}.capture-geometry{grid-template-columns:repeat(4,minmax(65px,105px))}}
@media(max-width:600px){.capture-outlook{grid-template-columns:repeat(2,minmax(0,1fr))}.capture-geometry{grid-template-columns:repeat(2,90px)}.capture-filter-row{grid-template-columns:20px minmax(0,1fr) auto}.capture-goal input{width:85px}.capture-numeric,.capture-camera-controls{gap:10px}}

.capture-summary-row{display:grid;grid-template-columns:minmax(140px,1fr) 100px minmax(160px,2fr);align-items:center;gap:16px;padding:10px 0}
.capture-summary-row small{color:var(--muted);font-size:12px}.capture-summary-row .future-filter small{display:none}
.capture-camera-controls{display:contents}#captureNumericControls{margin:12px 0}
@media(max-width:600px){.capture-summary-row{grid-template-columns:1fr auto;gap:8px}.capture-summary-row>div:last-child{grid-column:1 / -1}}

.capture-sky-pair .domelegendrow{display:flex;flex-wrap:wrap;gap:8px}.capture-sky-pair .domelegendrow .legend{flex-wrap:wrap;overflow:visible;white-space:normal}.capture-sky-pair .domekey{white-space:normal}.capture-sky-pair .domefooter{height:auto}
#blocksBeyondView h2{margin-bottom:14px}
.capture-sky-pair #tdLegend{flex:1 1 100%;flex-wrap:wrap;overflow:visible;white-space:normal}
/* A single capture table owns channel goals and order; framing stays compact. */
#projectActive{display:none}#capturePlanningEditor .capture-composition{margin:10px 0}
.capture-composition .capture-geometry{display:flex;align-items:end;gap:10px;flex-wrap:wrap}
.capture-composition .capture-geometry label{width:95px}.capture-composition .capture-panels{display:flex;flex-wrap:wrap;gap:12px;margin:8px 0}
.capture-composition .capture-panel-row{padding:0;gap:6px}
.frame-actions{display:flex;align-items:center;gap:8px;margin-top:8px}.frame-actions .btn{height:40px;margin:0!important;font-size:12px;padding:8px 12px}
.capture-filter-pills{display:flex;gap:8px;flex-wrap:wrap}.capture-filter-pills .btn{padding:6px 10px;min-height:44px}.capture-filter-pills .btn[aria-pressed=true]{background:#17364a;border-color:var(--accent)}
.capture-filter-pills .future-filter small{display:none}.capture-filter-pills .future-filter svg{width:28px;height:28px}
.run-goal-input{width:76px!important;min-width:0!important;padding:7px!important}.run-order{margin-top:6px}.run-order .btn{width:32px;min-width:32px;min-height:30px;height:30px}
.planning-date-button{display:inline-flex;align-items:center;justify-content:space-between;gap:16px;min-width:150px;height:42px;background:var(--surface-1);color:var(--text-primary);border:1px solid var(--border);border-radius:10px;padding:8px 12px;font:inherit;font-weight:650;cursor:pointer}
.capture-date-actions{display:flex;align-items:center;gap:8px;font-size:12px}.capture-date-actions .btn{height:42px}
.nightglance-context.capture-date-bar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px}.capture-date-bar .capture-date-actions{justify-self:end}.capture-date-bar .nightglance-live{justify-self:center}
@media(max-width:1100px){.nightglance-context.capture-date-bar{grid-template-columns:1fr auto}.capture-date-bar .nightglance-live{grid-column:1;justify-self:start}.capture-date-bar .capture-date-actions{grid-column:2;grid-row:1 / span 2}}
@media(max-width:600px){.nightglance-context.capture-date-bar{grid-template-columns:1fr;gap:8px}.capture-date-bar .capture-date-actions{grid-column:1;grid-row:auto;justify-self:stretch;flex-wrap:wrap}.capture-date-actions>span{display:none}.capture-date-actions .planning-date-button{flex:1;min-width:130px}.frame-actions{flex-wrap:wrap}.frame-actions .btn{flex:1}.capture-panels .capture-panel-row{width:100%}}
/* Shared sky view: concise keys and anchored actions. */
.sky-pair-heading{grid-column:1/-1;margin:0!important}
.capture-sky-pair #curveTitle,.capture-sky-pair #targetSkyTitle,.capture-sky-pair #curveHint{display:none}
.capture-sky-pair #curveCard,.capture-sky-pair #targetDomeCard{display:flex;flex-direction:column;min-width:0}
.capture-sky-pair #curveCard>.legend{display:flex;gap:14px;flex-wrap:nowrap;white-space:nowrap;font-size:11px;width:100%}
.path-swatch{display:inline-block;width:20px;height:1px;background:var(--accent,#52ccff);vertical-align:middle;margin-right:5px}.path-swatch.planned{height:4px}
.capture-sky-pair #curveStats{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.capture-sky-pair #curveStats .tile{padding:12px}.capture-sky-pair #curveStats .v{font-size:24px}
#targetDomeCard>.chartbox{position:relative}#targetDomeReplay{position:absolute;bottom:12px;right:12px}
#targetDomeCard .domefooter{flex:1}#targetDomeCard .domefootercontrols{align-self:end;margin-top:auto;padding-top:12px}
.target-fact-icon{width:16px;height:16px;flex:none;color:var(--accent,#52ccff)}.infofact .fk{display:flex;align-items:center;gap:6px}
@media(max-width:700px){.capture-sky-pair #curveCard>.legend{flex-wrap:wrap;white-space:normal;gap:8px 12px}.capture-sky-pair #curveStats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1101px){#targetDomeCard #targetDome{height:300px}#targetDomeCard #tdHint{display:none}#targetDomeCard #domeStarTime{margin:0 0 12px;min-height:30px;display:flex;align-items:center}}
/* Compact target facts and shared framing actions. */
.infofacts .infofact{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 0}
.infofacts .infofact .fk{font-size:13px;flex:none}.infofacts .infofact .fv{font-size:15px;margin:0}.target-fact-icon{width:19px;height:19px}
.capture-title-row{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.capture-title-row h2{margin:0}.capture-title-row .capture-targets{margin:0;justify-content:flex-end}
.frame-actions{flex-wrap:wrap;align-items:flex-end}#captureFrameControls .capture-geometry{margin:0;display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}#captureFrameControls label{width:90px}#captureFrameControls input{width:90px}#captureFrameControls{display:contents}
#blockTable .future-filter small{display:none}.run-order-cell{display:flex;align-items:center;justify-content:center;gap:6px}.run-order-cell .run-order{display:flex;flex-direction:column;gap:3px}.run-order-cell .btn{width:28px;height:26px;min-height:26px;padding:0}
.capture-sky-pair.card{padding:22px;gap:16px}.capture-sky-pair>#curveCard,.capture-sky-pair>#targetDomeCard{border:0;padding:0;background:transparent;box-shadow:none}
#curveSchedule{display:none}#curveCard>.legend{margin-top:12px}
.capture-sky-pair #curveCard>.chartbox,.capture-sky-pair #targetDomeCard>.chartbox{height:350px;background:#02050a!important;padding:0}
.capture-sky-pair #altChart,.capture-sky-pair #targetDome{height:100%;width:100%;max-width:none;background:#02050a!important}
@media(max-width:700px){.capture-sky-pair.card{padding:14px}.capture-sky-pair #curveCard>.chartbox,.capture-sky-pair #targetDomeCard>.chartbox{height:280px}.infofacts .infofact{gap:8px}.capture-title-row{align-items:flex-start}#captureTargetSelectors{width:100%}}
@media(max-width:600px){.infofacts{grid-template-columns:1fr!important}.infofacts .infofact .fk{flex-shrink:1;min-width:0}.infofacts .infofact .fv{min-width:0}.capture-title-row{gap:12px}}
.capture-title-row{margin-bottom:12px}.fovcomparehead{margin-bottom:6px!important;min-height:28px!important;padding:0!important}.fovcompare{gap:12px!important}.framing-info{width:28px;height:28px;min-height:28px;padding:0;border:0;background:transparent;font-size:19px}
#captureSettingsRow{margin:10px 0}#captureSettingsRow .capture-numeric{margin:0;gap:10px}#captureSettingsRow .capture-camera-controls{display:contents}#captureSettingsRow label{white-space:nowrap}#captureSettingsRow input{width:100px}
.capture-filter-pills{gap:6px}.capture-filter-pills .btn{min-height:32px;padding:3px 7px;font-size:12px}.capture-filter-pills .future-filter{gap:6px}.capture-filter-pills .future-filter>svg,.capture-filter-pills .future-filter>.image-detail-icon{width:24px!important;height:24px!important;min-width:24px!important;padding:2px!important}.capture-filter-pills .future-filter svg{width:20px!important;height:20px!important}
#infoPanel .target-info-footer{padding:14px!important;min-height:68px!important}#infoPanel .target-info-footer #poolCount{display:none}
.plan-save-button{background:linear-gradient(180deg,#213d50,#142a3a)!important;border:1px solid #4f839d!important;color:var(--text)!important;box-shadow:inset 0 1px 0 #ffffff18!important}.plan-save-status i{width:9px;height:9px;border:0!important;outline:0!important;background:radial-gradient(circle at 32% 25%,#ffb0b6 0,#f24460 30%,#7c1329 85%)!important;box-shadow:0 1px 2px #0009,inset 0 0 1px #ffffff66!important}.plan-save-status [data-saved=true] i{background:radial-gradient(circle at 32% 25%,#b3ffe0 0,#25d58c 30%,#076745 85%)!important}.plan-save-status>span{border:0!important;background:transparent!important;padding:0!important}
.capture-sky-pair #curveCard>.chartbox,.capture-sky-pair #targetDomeCard>.chartbox{height:420px;border-radius:12px!important;overflow:hidden;border:1px solid var(--border)}
.capture-sky-pair #altChart,.capture-sky-pair #targetDome{border-radius:12px!important;display:block}
@media(max-width:700px){.capture-sky-pair #curveCard>.chartbox,.capture-sky-pair #targetDomeCard>.chartbox{height:310px}}
.capture-filter-pills .detail-category-icon{width:24px!important;height:24px!important;min-width:24px!important;padding:2px!important;border-radius:7px}
.fovcomparehead{margin-bottom:4px!important;min-height:24px!important}.framing-info{width:24px;height:24px;min-height:24px}
.capture-sky-pair #targetDomeCard #targetDome{height:100%;max-width:none;width:100%}
/* Shared planning metrics: centered hierarchy, larger type, equal tile geometry. */
#tlTiles>.tile,#frameTiles>.tile,.capture-sky-pair #curveStats>.tile{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:116px;padding:14px 10px;gap:6px;box-sizing:border-box;container-type:inline-size}
#tlTiles .k,#frameTiles .k,.capture-sky-pair #curveStats .k{font-size:13px;line-height:1.3;margin:0;letter-spacing:.035em}
#tlTiles .v,#frameTiles .v,.capture-sky-pair #curveStats .v{font-size:32px!important;line-height:1.15;margin:0;font-weight:600;max-width:100%}
#frameTiles .v{font-size:clamp(20px,14cqw,28px)!important}
#tlTiles .u,#frameTiles .u,.capture-sky-pair #curveStats .u{display:block;font-size:13px!important;line-height:1.3;font-weight:400;margin:4px 0 0;color:var(--text-secondary)}
#tlTiles .u:empty,#frameTiles .u:empty,.capture-sky-pair #curveStats .u:empty{display:none}
.capture-shared-legend{grid-column:1/-1;display:flex;align-items:center;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:11px}
.capture-shared-legend .legend,.capture-shared-legend #tdLegend{display:contents!important}.capture-shared-legend .legend>span,.capture-shared-legend #tdLegend>span{white-space:nowrap}.capture-shared-legend .domekey{font-size:11px}
.capture-sky-pair>#curveStats{grid-column:1/-1;grid-template-columns:repeat(5,minmax(0,1fr));margin-top:0!important}.capture-sky-actions{grid-column:1/-1;display:flex;justify-content:flex-end}
@media(max-width:700px){.capture-sky-pair>#curveStats{grid-template-columns:repeat(2,minmax(0,1fr))}.capture-sky-pair>#curveStats>.tile:last-child{grid-column:1/-1}}
.capture-shared-legend .domekey{display:inline-flex;align-items:center;gap:5px;margin:0;font:inherit;color:inherit;white-space:nowrap}.capture-shared-legend .path-swatch.dashed{width:20px;height:0;border-top:2px dashed var(--muted);border-radius:0;background:none;margin:0}
#captureSettingsRow{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}#captureSettingsRow .frame-actions{margin:0;gap:8px;flex:none}#captureSettingsRow .capture-numeric{flex:1;gap:10px}#captureSettingsRow input{width:88px}#captureSettingsRow .capture-numeric label{font-size:11px}
#captureSettingsRow .frame-actions{max-width:100%;flex-shrink:1}#captureSettingsRow .capture-numeric{min-width:0}
#captureSettingsRow .capture-numeric>label,#captureSettingsRow .capture-camera-controls>div:not(.hide){width:100px;flex:0 0 100px}#captureSettingsRow .capture-numeric input{width:100%}

/* Keep the numeric group together when it cannot share the framing action row. */
#captureSettingsRow .capture-numeric{flex:1 1 650px}

/* Filter identity stays colored in both selection surfaces; pressed state adds fill. */
.capture-filter-pills [data-filter-pick]{--filter-color:#6ed4f5;color:var(--filter-color);border-color:color-mix(in srgb,var(--filter-color) 60%,transparent);background:color-mix(in srgb,var(--filter-color) 7%,#0c1726)}
.capture-filter-pills [data-filter-pick="nbz"]{--filter-color:#ef86b9}
.capture-filter-pills [data-filter-pick="sho"]{--filter-color:#efb857}
.capture-filter-pills [data-filter-pick][aria-pressed="true"]{background:color-mix(in srgb,var(--filter-color) 22%,#0c1726);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--filter-color) 35%,transparent)}
