*,*:before,*:after{box-sizing:border-box}html,body,#app{margin:0;height:100%;font-family:Segoe UI,Hiragino Sans,Yu Gothic UI,sans-serif}#app{display:grid;grid-template-rows:auto 1fr}.panel{padding:12px 16px;background:#1d3557;color:#f1faee;border-bottom:1px solid #457b9d}.panel h1{margin:0 0 4px;font-size:1.1rem;font-weight:600}.subtitle{margin:0 0 10px;font-size:.85rem;color:#a8dadc}.controls{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:8px}button{padding:8px 16px;border:none;border-radius:6px;background:#e63946;color:#fff;font-size:.9rem;cursor:pointer}button:hover:not(:disabled){background:#d62839}button:disabled{opacity:.6;cursor:wait}#copy-spill-report{background:#bc4749}#copy-spill-report:hover:not(:disabled){background:#a4161a}.toggle{display:flex;align-items:center;gap:6px;font-size:.85rem;cursor:pointer}.toggle select{font:inherit;max-width:11rem;cursor:pointer}.area-select{display:flex;flex-direction:column;gap:4px;font-size:.85rem}.area-select select{padding:6px 8px;border-radius:6px;border:1px solid #457b9d;background:#f1faee;color:#1d3557;font-size:.85rem;min-width:220px}.area-description{margin:0 0 6px;font-size:.8rem;color:#a8dadc;line-height:1.4}.artifact-panel{margin-bottom:8px;font-size:.85rem;color:#f1faee}.artifact-panel summary{cursor:pointer;color:#a8dadc;margin-bottom:6px}.artifact-toggles{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:4px 12px;padding:4px 0 0}.artifact-toggle{font-size:.8rem}.status{margin:0;font-size:.8rem;color:#a8dadc;font-family:Consolas,Courier New,monospace}.status.is-loading{color:#ffe066}.status.is-ok{color:#b7e4c7}.status.is-error{color:#ffb3c1}#map{width:100%;height:100%;min-height:0}.map-shell{position:relative;min-height:0;height:100%}.inspect-panel{position:absolute;top:12px;left:12px;z-index:2;width:min(360px,calc(100% - 24px));max-height:calc(100% - 24px);overflow:auto;padding:10px 12px;border-radius:8px;background:#1d3557f0;color:#f1faee;box-shadow:0 4px 16px #00000047;font-size:.8rem}.inspect-panel[hidden]{display:none}.inspect-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.inspect-icon-btn{padding:2px 8px;background:transparent;color:#a8dadc;font-size:1.1rem;line-height:1}.inspect-icon-btn:hover:not(:disabled){background:#ffffff14}.inspect-hint{margin:0 0 8px;color:#a8dadc;line-height:1.4;font-size:.75rem}.inspect-coords{margin:0 0 8px;padding:6px 8px;border-radius:4px;background:#00000040;font-family:Consolas,Courier New,monospace;font-size:.75rem;white-space:pre-wrap}.inspect-hits{display:flex;flex-direction:column;gap:4px;margin-bottom:8px}.inspect-hit{display:block;width:100%;text-align:left;padding:6px 8px;border:1px solid #457b9d;border-radius:4px;background:#f1faee0f;color:#f1faee;font-size:.75rem;font-family:Consolas,Courier New,monospace;cursor:pointer;line-height:1.35}.inspect-hit:hover:not(:disabled){background:#f1faee24}.inspect-hit.is-selected{border-color:#ffd60a;background:#ffd60a26}.inspect-hit-empty{color:#a8dadc;font-size:.75rem;padding:4px 0}.inspect-actions{display:flex;flex-wrap:wrap;gap:6px}.inspect-btn{padding:6px 10px;border-radius:4px;background:#457b9d;font-size:.75rem}.inspect-btn:hover:not(:disabled){background:#3a6a87}.inspect-btn:disabled{opacity:.45;cursor:not-allowed}.inspect-feedback{margin:6px 0 0;min-height:1.1em;color:#a8dadc;font-size:.72rem}.maplibregl-ctrl-group.geojson-export-ctrl{position:relative}.quality-profile-ctrl .quality-profile-btn{font:600 11px/29px system-ui,sans-serif;letter-spacing:.02em;min-width:44px;padding:0 6px}.quality-profile-ctrl .quality-profile-btn.is-strict{border:2px solid #555;background:#ddd}.geojson-export-panel{display:none;position:absolute;top:100%;right:0;z-index:2;background:#fff;padding:8px;border:1px solid #ccc;border-radius:4px;box-shadow:0 2px 6px #0003;max-height:280px;overflow-y:auto;min-width:220px;margin-top:4px}.geojson-export-desc{font-size:11px;color:#555;margin-bottom:6px;line-height:1.4}.geojson-export-row{display:block;font-size:12px;margin-bottom:4px;cursor:pointer}.geojson-export-btn{display:block;margin-top:8px;padding:4px 8px;border:1px solid #888;border-radius:4px;background:#fff;cursor:pointer;font-size:12px}.geojson-export-btn:hover{background:#f0f0f0}.maplibregl-ctrl-attrib{font-size:10px}.failure-panel,.artifact-panel{margin:8px 0;font-size:.85rem}.failure-panel summary,.artifact-panel summary{cursor:pointer;color:#a8dadc}.failure-catalog-link{color:#f1faee}.failure-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-top:10px}.failure-field{display:flex;flex-direction:column;gap:4px}.failure-field-wide{grid-column:1 / -1}.failure-field input,.failure-field select,.failure-field textarea{padding:6px 8px;border:1px solid #457b9d;border-radius:4px;font:inherit}.failure-snapshot{grid-column:1 / -1;margin:0;color:#a8dadc;font-size:.78rem;line-height:1.4}.failure-form-actions{grid-column:1 / -1;display:flex;align-items:center;gap:12px}.failure-feedback{font-size:.78rem;color:#a8dadc}.failures-page{background:#0d1b2a}.failures-app{min-height:100%;display:grid;grid-template-rows:auto 1fr}.failures-header-row{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.failures-link{color:#f1faee;font-size:.9rem;white-space:nowrap}.failures-controls{margin-top:8px}.btn-secondary{background:#457b9d}.btn-secondary:hover:not(:disabled){background:#3a6a87}.btn-file{display:inline-flex;align-items:center;padding:8px 16px;border-radius:6px;color:#fff;font-size:.9rem;cursor:pointer}.failures-main{padding:16px;overflow:auto}.failures-table{width:100%;border-collapse:collapse;background:#1d3557;color:#f1faee;font-size:.85rem}.failures-table th,.failures-table td{border:1px solid #457b9d;padding:8px 10px;vertical-align:top;text-align:left}.failures-table th{background:#14243d}.failures-sub{color:#a8dadc;font-size:.75rem;margin-top:4px}.failures-notes{max-width:280px;white-space:pre-wrap}.failures-badge{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:4px;background:#457b9d;font-size:.7rem}.failures-actions{display:flex;flex-direction:column;gap:6px}.failures-action-link{color:#a8dadc}.failures-delete-btn{padding:4px 8px;font-size:.75rem;background:#6c757d}.failures-empty{color:#a8dadc;text-align:center;margin-top:24px}.failures-empty a{color:#f1faee}
