:root{--ink:#173127;--muted:#64736b;--paper:#f7faf6;--line:#dce6dd;--green:#176b45;--amber:#e99a22;--red:#d94b45;--blue:#3478c6;--grey:#7b8580}*{box-sizing:border-box}body{margin:0;font-family:Inter,"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--paper);overflow:hidden}.topbar{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;background:#fff;border-bottom:1px solid var(--line)}h1{font-size:20px;margin:2px 0}.eyebrow{font-size:10px;letter-spacing:.14em;color:var(--green);font-weight:800;margin:0}.summary{display:flex;gap:8px}.metric{padding:8px 12px;border-radius:10px;background:#eef5ef;font-size:12px}.metric strong{font-size:18px;margin-right:4px}.workspace{height:calc(100vh - 76px);display:grid;grid-template-columns:310px minmax(420px,1fr) 380px}.sidebar,.detail{background:#fff;overflow:auto}.sidebar{border-right:1px solid var(--line)}.detail{border-left:1px solid var(--line);padding:20px}.filters{padding:16px;border-bottom:1px solid var(--line);display:grid;gap:10px}label{display:grid;gap:5px;font-size:12px;font-weight:700;color:#46564e}select,input,textarea{width:100%;padding:9px;border:1px solid #cbd8cf;border-radius:7px;background:#fff;font:inherit;color:var(--ink)}textarea{resize:vertical}.secondary,.primary{border:0;border-radius:7px;padding:10px 12px;font-weight:700;cursor:pointer}.secondary{background:#edf3ee;color:var(--green)}.primary{background:var(--green);color:#fff;margin-top:8px}.alert-list{padding:8px}.alert-card{padding:12px;border:1px solid transparent;border-bottom-color:var(--line);cursor:pointer;border-radius:9px}.alert-card:hover,.alert-card.selected{background:#f0f6f1;border-color:#bfd6c5}.alert-card.superior-alert{border-left:3px solid #7b2cbf}.source-chip,.photo-count-badge{display:inline-block;padding:2px 5px;border-radius:5px;background:#efe2f8;color:#65219e;font-size:10px;font-weight:800}.photo-count-badge{background:#e5f2e9;color:var(--green)}.alert-card-head{display:flex;justify-content:space-between;gap:8px}.alert-card h3{margin:0;font-size:14px}.alert-card p{margin:6px 0 0;font-size:12px;color:var(--muted)}.status-chip{display:inline-block;padding:4px 8px;border-radius:99px;background:#eef2ef;font-size:11px;font-weight:800}.map-panel{position:relative}#map{width:100%;height:100%;background:#e9efe9}.map-warning{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);max-width:420px;background:#fff;padding:20px;border-radius:12px;box-shadow:0 12px 40px #1d352833;text-align:center;z-index:800}.map-warning.compact{inset:12px 12px auto auto;transform:none;padding:9px 12px;max-width:340px;text-align:left;font-size:11px}.map-warning.compact strong{display:block;color:#9a5c00}.legend{position:absolute;bottom:20px;left:20px;background:#fff;padding:10px 12px;border-radius:8px;box-shadow:0 3px 14px #1d352833;display:flex;gap:12px;font-size:11px;z-index:800}.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px}.dot.new{background:var(--red)}.dot.active{background:var(--amber)}.dot.resolved{background:var(--green)}.dot.false{background:var(--grey)}.empty-state{margin-top:40%;text-align:center;color:var(--muted)}.detail-header{display:flex;justify-content:space-between;align-items:start}.detail h2{margin:3px 0}.icon-button{border:0;background:none;font-size:28px;cursor:pointer}.facts{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0}.facts div{border-bottom:1px solid var(--line);padding-bottom:8px}.facts dt{font-size:10px;color:var(--muted);text-transform:uppercase}.facts dd{margin:4px 0 0;font-weight:700;font-size:13px}.directions{display:block;color:var(--blue);font-weight:700;font-size:13px;margin:10px 0 22px}form{display:grid;gap:10px;padding:16px;background:#f4f8f4;border-radius:10px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}h3{font-size:14px;margin:6px 0}.form-message{font-size:12px;margin:0}.field-photo-section{display:grid;gap:9px;margin:16px 0;padding:14px;border:1px solid var(--line);border-radius:10px;background:#fbfdfb}.history-item{border-left:3px solid var(--line);padding:7px 0 7px 10px;margin:8px 0;font-size:12px}.history-item strong{display:block}.history-item p{margin:4px 0;color:var(--muted)}.photo-viewer{position:absolute;left:14px;right:14px;bottom:14px;height:min(48%,430px);z-index:850;background:#111;border-radius:12px;box-shadow:0 10px 34px #0008;overflow:hidden;color:#fff}.photo-viewer[hidden]{display:none}.photo-viewer-head{height:50px;display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:#171b19}.photo-viewer-head div{display:grid;gap:2px}.photo-viewer-head small{color:#cdd5d0}.photo-close{border:0;background:#ffffff22;color:#fff;border-radius:50%;width:34px;height:34px;font-size:24px;cursor:pointer}.photo-viewer>a{display:flex;height:calc(100% - 116px);align-items:center;justify-content:center}.photo-viewer>a img{width:100%;height:100%;object-fit:contain;background:#080908}.photo-thumbnails{height:66px;padding:7px 10px;display:flex;gap:7px;overflow-x:auto;background:#171b19}.photo-thumbnails button{flex:0 0 68px;border:2px solid transparent;border-radius:6px;padding:0;overflow:hidden;background:#000;cursor:pointer}.photo-thumbnails button.active{border-color:#6fc792}.photo-thumbnails img{width:100%;height:100%;object-fit:cover}.photo-map-marker{background:transparent;border:0}.photo-map-marker span{display:flex;align-items:center;justify-content:center;gap:1px;background:#fff;border:2px solid var(--green);border-radius:14px;padding:3px 6px;box-shadow:0 2px 8px #0005;font-size:16px}.photo-map-marker b{font-size:10px;color:var(--green)}@media(max-width:1000px){.workspace{grid-template-columns:260px 1fr}.detail{position:absolute;right:0;top:76px;bottom:0;width:380px;z-index:5;box-shadow:-8px 0 30px #17312722}.summary{display:none}}@media(max-width:700px){body{overflow:auto}.topbar{height:auto;padding:14px}.workspace{height:auto;display:flex;flex-direction:column}.sidebar{height:260px}.map-panel{height:55vh}.detail{position:static;width:auto;min-height:400px}.legend{flex-wrap:wrap}.photo-viewer{left:6px;right:6px;bottom:6px;height:72%;border-radius:10px}.photo-viewer>a{height:calc(100% - 112px)}}
.run-manager{width:min(760px,calc(100vw - 32px));max-height:82vh;border:0;border-radius:14px;padding:22px;color:var(--ink);box-shadow:0 18px 60px #10281c66}.run-manager::backdrop{background:#10281c88}.run-manager-head{display:flex;align-items:start;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding-bottom:12px}.run-manager-head h2{margin:0 0 5px}.run-manager-head p{margin:0;color:var(--muted);font-size:12px}.run-manager section{margin-top:18px}.managed-run-list{display:grid;gap:8px}.managed-run{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px;border:1px solid var(--line);border-radius:9px}.managed-run div{display:grid;gap:4px;min-width:0}.managed-run small{color:var(--muted)}.managed-run code{font-size:10px;overflow-wrap:anywhere}.managed-run button{flex:0 0 auto}.managed-run button:disabled{opacity:.45;cursor:not-allowed}@media(max-width:600px){.run-manager{padding:14px}.managed-run{align-items:stretch;flex-direction:column}.managed-run button{width:100%}}
@media(max-width:700px){.map-panel{height:55vh;min-height:330px}.legend{display:none}}

/* Desktop workspace splitters. Widths are updated by app.js and remembered locally. */
@media(min-width:1001px){
  .workspace{--sidebar-width:310px;--detail-width:380px;grid-template-columns:var(--sidebar-width) minmax(420px,1fr) var(--detail-width)}
  .workspace-splitter{position:absolute;top:0;bottom:0;width:16px;background:transparent;cursor:col-resize;touch-action:none;z-index:1000;outline:none}
  .workspace-splitter-left{left:-8px}
  .workspace-splitter-right{right:-8px}
  .workspace-splitter::after{content:"";position:absolute;top:50%;left:6px;width:4px;height:54px;transform:translateY(-50%);border-radius:4px;background:#8da997;box-shadow:0 0 0 2px #fff}
  .workspace-splitter:hover,.workspace-splitter:focus,.workspace-splitter.dragging{background:#d9e8dc}
  .workspace-splitter:hover::after,.workspace-splitter:focus::after,.workspace-splitter.dragging::after{background:var(--green)}
  body.resizing-workspace{cursor:col-resize;user-select:none}
}
@media(max-width:1000px){.workspace-splitter{display:none}}

.managed-reference>div{flex:1}.managed-reference strong{overflow-wrap:anywhere}.reference-selection{display:flex;align-items:center;gap:8px}.reference-selection input{width:auto;min-width:20px;min-height:20px}.reference-rename{display:flex;align-items:end;gap:8px;padding:0;background:none}.reference-rename label{flex:1;min-width:0}.reference-help{font-size:12px;color:var(--muted);line-height:1.5}#reference-manager-message{margin-top:12px}@media(max-width:600px){.reference-rename{flex-direction:column;align-items:stretch}}

#vps-sync-review{overflow:auto}#publish-vps-sync:disabled{opacity:.45;cursor:not-allowed}.sync-preview-images{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.sync-preview-images figure{margin:12px 0}.sync-preview-images img{display:block;width:100%;height:auto;border:1px solid var(--line)}.sync-preview-images figcaption{font-size:12px;color:var(--muted)}.sync-review-check{display:flex;align-items:flex-start;gap:8px}.sync-review-check input{width:auto;flex:0 0 auto;margin-top:4px}#vps-sync-run,#selected-run-info{overflow-wrap:anywhere}@media(max-width:600px){.sync-preview-images{grid-template-columns:1fr}}
