/* Camera catalogue and per-camera controls. Loaded after the original planner. */
.workspace{grid-template-columns:330px minmax(0,1fr);align-items:start;overflow:visible}
.workspace aside{border-radius:18px 0 0 18px;background:#f2fcfd;padding:25px}
.editor{position:sticky;top:16px;border-radius:0 18px 18px 0;overflow:hidden}
.type-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.type-card{display:flex;flex-direction:column;align-items:center;gap:4px;background:#fff;border:1px solid #c5dfe4;padding:9px 4px 10px;color:#486570;font-size:12px;transition:border-color .15s,background .15s}
.type-card img{width:65px;height:65px;object-fit:contain;pointer-events:none}
.type-card[aria-pressed=true]{background:#ddf7fc;border:2px solid #007e97;padding:8px 3px 9px;color:#00566b;box-shadow:0 0 0 2px #007e970c}
.add-camera{width:100%;margin-top:18px;background:#007e97}
.picker-help{margin-bottom:22px}
.camera-settings{padding:18px 16px;background:#e6f5f8;border:1px solid #badde4;border-radius:12px}
.settings-heading .step{font-size:9px;color:#53737d;letter-spacing:1.6px}
.settings-heading strong{display:block;margin:8px 0 22px;font-size:14px;line-height:1.5}
.camera-settings label{margin:16px 0 10px;font-size:12px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.camera-settings output{color:#007e97;font-variant-numeric:tabular-nums;font-weight:700;white-space:nowrap}
.camera-settings input[type=range]{accent-color:#007e97;margin:0;width:100%;height:24px;cursor:pointer}
.camera-settings input:disabled{cursor:not-allowed}
.camera-settings select{margin-top:0;font-size:12px}
.camera-settings .secondary{width:100%;font-size:11px;margin-top:16px}
.range-captions{display:flex;justify-content:space-between;font-size:10px;color:#55717b;margin:0 0 10px}
.fov-note{font-size:11px;margin:15px 0;color:#55717b}
#count{margin:22px 0 12px;font-size:12px}
#download{width:100%;font-size:12px}
#stage{margin:22px;isolation:isolate;overflow:hidden;background:#fff;box-shadow:0 3px 20px #1231}
#coverage{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}
.field{fill:#00a3c51c;stroke:#007e9760;stroke-width:1}
.selected-field{fill:#00a3c52c;stroke:#007e97;stroke-width:1.8}
.field-direction{fill:none;stroke:#007e97;stroke-width:1;stroke-dasharray:5 5}
#markers{z-index:2;pointer-events:none}
.camera{width:54px;height:54px;border:1px solid #d0e8ed;background:#ffffffb8;box-shadow:0 3px 12px #11273320;pointer-events:auto;padding:3px;border-radius:12px;cursor:grab}
.camera:active{cursor:grabbing}
.camera img{display:block!important;width:46px!important;height:46px!important;max-width:none;object-fit:contain;pointer-events:none;user-select:none;transform-origin:center}
.camera[aria-pressed=true]{outline:2px solid #007e97;background:#effcff;box-shadow:0 0 0 5px #00a3c51a}
.camera b{font-size:10px;top:-6px;right:-6px;min-width:17px;height:17px;padding:1px 4px;line-height:15px;pointer-events:none}
.editor-bottom strong{color:#284b59;font-weight:600}
#camera-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:14px 20px;background:#edf9fb}
#camera-list:empty{display:none}
.camera-row{display:flex;align-items:center;gap:10px;padding:9px 12px;text-align:left;border:1px solid #c5e0e6;background:#fff;color:#112733;min-width:0}
.camera-row[aria-pressed=true]{border-color:#007e97;background:#def5fa}
.camera-row img{width:38px;height:38px;object-fit:contain;flex-shrink:0}
.camera-row strong{font-size:11px;display:block;line-height:1.5}
.camera-row small{font-size:10px;display:block;color:#55717b;line-height:1.5}
@media(min-width:1100px){.editor{min-height:570px}}
@media(max-width:900px){.workspace{grid-template-columns:285px minmax(0,1fr)}.workspace aside{padding:18px}.type-card img{width:57px;height:57px}#camera-list{grid-template-columns:1fr;padding:12px}}
@media(max-width:720px){.workspace{display:flex;flex-direction:column}.workspace aside{width:100%;border-right:0;border-radius:18px 18px 0 0}.editor{position:relative;top:auto;width:100%;border-radius:0 0 18px 18px}.type-card img{width:70px;height:70px}.type-card{font-size:13px}.type-picker{max-width:440px}.camera-settings{margin-top:16px}#stage{margin:14px}.camera{width:44px;height:44px;padding:3px}.camera img{width:36px!important;height:36px!important}.editor-top{flex-wrap:wrap}#camera-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){.type-card{transition:none}}
