/* The object workbench is scoped to the modeled drone detail, not the catalog. */
body.modeling-detail-open { background:#f4f5f1; color:#23312d; font-family:"Noto Sans SC",system-ui,sans-serif; }
body.modeling-detail-open::before { display:none; }
body.modeling-detail-open .shell { max-width:1512px; padding:0 40px 72px; }
body.modeling-detail-open .topbar { color:#eef3ed; }
body.modeling-detail-open .hero,
body.modeling-detail-open .scale-rail,
body.modeling-detail-open .mission-panel,
body.modeling-detail-open .toolbar { display:none; }
body.modeling-detail-open footer { background:#f4f5f1; border-color:#dce1d9; color:#77817a; }
.drone-detail { --dw-line:#dfe4dc; --dw-ink:#23312d; --dw-muted:#748077; --dw-green:#496449; padding-top:27px; }
.drone-detail * { box-sizing:border-box; }
.drone-detail button,.drone-detail input { font-family:inherit; }
.drone-detail button,.drone-detail a { -webkit-tap-highlight-color:transparent; }
.drone-detail button { cursor:pointer; }
.drone-detail button:focus-visible,.drone-detail a:focus-visible,.drone-detail input:focus-visible,.drone-detail summary:focus-visible { outline:2px solid #648254; outline-offset:3px; }
.dw-breadcrumb { display:flex; align-items:center; flex-wrap:wrap; gap:9px; color:#8b958d; font-size:11px; }
.dw-breadcrumb button { padding:0; border:0; color:#65776c; background:none; }
.dw-breadcrumb button:hover { color:#203a2c; }
.dw-breadcrumb span:last-child { color:#435548; }
.dw-title-row { display:flex; justify-content:space-between; align-items:center; gap:24px; padding:27px 0 30px; }
.dw-kicker { display:flex; align-items:center; gap:9px; margin:0 0 10px; color:#79866f; font:600 10px/1.4 ui-monospace,SFMono-Regular,monospace; letter-spacing:.15em; }
.dw-kicker::before { content:""; height:6px; width:6px; background:#93ae6a; border-radius:50%; }
.dw-title-row h1 { font-size:clamp(27px,3.1vw,43px); font-weight:650; line-height:1.25; letter-spacing:-.04em; margin:0; }
.dw-subtitle { color:#7b847b; font-size:13px; margin:10px 0 0; line-height:1.7; }
.dw-badges { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin-top:16px; }
.dw-badge { display:inline-flex; align-items:center; gap:5px; padding:4px 9px; font-size:10px; line-height:1.3; border:1px solid #dce3d6; color:#6c7d62; border-radius:5px; background:#edf1e7; }
.dw-badge svg { width:12px;height:12px; }
.dw-badge.neutral { color:#7b8176; background:#f5f6f2; border-color:#e0e4da; }
.dw-actions { display:flex; gap:9px; align-items:center; flex-shrink:0; }
.dw-button { border:1px solid #d9dfd4; background:white; padding:10px 13px; color:#52624f; border-radius:6px; display:inline-flex; justify-content:center; align-items:center; gap:7px; font-size:11px!important; text-decoration:none; white-space:nowrap; line-height:1.4; }
.dw-button svg { width:15px;height:15px; }
.dw-button:hover { background:#eff3e9; border-color:#b8c7a7; }
.dw-button.primary { background:#2f4937; color:#f5f8f0; border-color:#2f4937; box-shadow:none; font-weight:500; }
.dw-button.primary:hover { background:#3e5b40; transform:none; box-shadow:none; }
.dw-reference-task { display:grid; grid-template-columns:278px minmax(0,1fr); gap:0; border:1px solid var(--dw-line); border-radius:10px; background:#fff; overflow:hidden; }
.dw-reference { margin:0; padding:18px; border-right:1px solid var(--dw-line); display:flex; flex-direction:column; background:#fafbf8; }
.dw-ref-header { display:flex; align-items:center; justify-content:space-between; font-size:11px; color:#66725f; margin-bottom:12px; }
.dw-ref-header span:last-child { color:#a0a997; font:9px ui-monospace,monospace; letter-spacing:.06em; }
.dw-reference a { display:flex; align-items:center; justify-content:center; flex:1; min-height:180px; background:white; border:1px solid #ecede9; border-radius:5px; overflow:hidden; }
.dw-reference img { display:block; width:100%; max-height:220px; object-fit:contain; }
.dw-reference figcaption { display:flex; justify-content:space-between; gap:10px; color:#92998b; font-size:9px; padding-top:11px; }
.dw-task { padding:20px 23px 17px; }
.dw-task-head { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.dw-task h2 { margin:0; font-size:16px; font-weight:600; letter-spacing:-.01em; }
.dw-task-copy { padding:5px 9px; background:none; color:#87907e; border:1px solid #e5e9df; border-radius:4px; display:flex; align-items:center; gap:5px; font-size:10px!important; }
.dw-task-copy svg { width:12px; height:12px; }
.dw-task-title { margin:8px 0 13px; color:#707c68; font-size:12px; line-height:1.65; }
.dw-task-preview { margin:0; color:#687361; font-size:12px; line-height:1.9; }
.dw-task-details { margin-top:10px; }
.dw-task-details summary { color:#486343; font-size:11px; cursor:pointer; width:fit-content; padding:4px 0; }
.dw-task-sections { display:grid; grid-template-columns:1fr 1fr; gap:16px 25px; margin-top:13px; padding-top:15px; border-top:1px solid #edf0e8; }
.dw-task-sections h3 { margin:0 0 5px; font-size:11px; font-weight:650; color:#56664d; }
.dw-task-sections p { margin:0; font-size:12px; line-height:1.85; color:#69745f; }
.dw-task-scale { display:flex; flex-wrap:wrap; gap:16px; border-top:1px solid #edf0e8; padding-top:12px; margin-top:15px; color:#828c79; font-size:10px; }
.dw-task-scale strong { font-size:12px; color:#53664a; font-weight:500; margin-left:5px; }
.dw-task-scale small { font-size:9px; color:#9aa28f; }
.dw-workbench-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; margin:29px 0 15px; }
.dw-workbench-heading h2 { margin:0; font-size:20px; font-weight:600; letter-spacing:-.035em; }
.dw-workbench-heading h2 span { color:#7f9073; font-size:10px; font-weight:400; letter-spacing:.1em; margin-left:11px; font-family:ui-monospace,monospace; }
.dw-workbench-heading p { margin:5px 0 0; color:#8c957f; font-size:11px; }
.dw-live { display:inline-flex; align-items:center; gap:6px; border:1px solid #dce5d1; color:#7c9465; border-radius:20px; padding:4px 9px; font-size:9px; white-space:nowrap; }
.dw-live i { width:5px; height:5px; background:#8fa968; border-radius:50%; }
.dw-workbench { display:grid; grid-template-columns:minmax(0,1fr) 338px; border:1px solid #d5ded1; border-radius:10px; background:#fff; overflow:hidden; box-shadow:0 7px 26px #43543907; }
.dw-viewport { min-width:0; position:relative; background:#eef1eb; display:flex; flex-direction:column; }
.dw-view-toolbar { display:flex; align-items:center; justify-content:space-between; gap:10px; min-height:52px; padding:10px 15px; border-bottom:1px solid #e2e7dd; background:#f8faf5; z-index:2; }
.dw-view-tabs { display:flex; align-items:center; gap:3px; padding:3px; border:1px solid #e2e7dc; background:#edf1e8; border-radius:6px; }
.dw-view-tabs button { background:none; border:0; border-radius:4px; padding:5px 11px; color:#8a9580; font-size:10px; line-height:1.5; display:flex; align-items:center; gap:5px; }
.dw-view-tabs button[aria-pressed="true"] { background:white; color:#4e6845; box-shadow:0 1px 4px #23361710; }
.dw-view-tabs svg { width:12px;height:12px; }
.dw-view-tools { display:flex; gap:5px; }
.dw-icon-button { border:1px solid transparent; background:none; color:#8a9780; padding:5px; border-radius:4px; width:27px; height:27px; display:grid; place-items:center; }
.dw-icon-button:hover { background:white; color:#405a32; border-color:#d8e1ce; }
.dw-icon-button svg { width:15px; height:15px; }
.dw-stage { position:relative; height:505px; min-height:350px; isolation:isolate; overflow:hidden; background:radial-gradient(ellipse at 50% 38%,#fafbf7,#ecefe7); }
.dw-stage canvas { width:100%; height:100%; display:block; touch-action:none; position:absolute; inset:0; z-index:1; }
.dw-stage-poster { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; opacity:.12; mix-blend-mode:multiply; }
.dw-stage[data-render-state="ready"] .dw-stage-poster { display:none; }
.dw-canvas-label { position:absolute; top:18px; left:20px; color:#88947d; z-index:2; pointer-events:none; }
.dw-canvas-label small { font:9px ui-monospace,monospace; color:#a8b29b; letter-spacing:.12em; display:block; }
.dw-canvas-label strong { font-size:12px; font-weight:500; display:block; margin-top:4px; color:#6d7e5e; }
.dw-view-presets { position:absolute; top:16px; right:16px; display:flex; flex-direction:column; padding:3px; gap:2px; border:1px solid #dde4d4; background:#fafbf8ed; border-radius:6px; z-index:2; }
.dw-view-presets button { background:none; border:0; color:#8b987e; font-size:9px; padding:7px 10px; border-radius:3px; }
.dw-view-presets button:hover,.dw-view-presets button.active { background:#eaf0e0; color:#4c653a; }
.dw-canvas-corner { position:absolute; right:18px; bottom:16px; z-index:2; color:#97a38a; font:9px/1.6 ui-monospace,monospace; text-align:right; pointer-events:none; }
.dw-canvas-axis { position:absolute; left:22px; bottom:16px; width:38px; height:38px; z-index:2; pointer-events:none; }
.dw-loading { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; z-index:4; color:#658051; background:#f1f5eceb; font-size:12px; text-align:center; padding:24px; }
.dw-loading.hidden { display:none; }
.dw-loading-spinner { width:24px; height:24px; border:2px solid #dde7d2; border-top-color:#728e54; border-radius:50%; animation:dw-spin 1s linear infinite; }
@keyframes dw-spin { to { transform:rotate(360deg); } }
.dw-loading small { color:#95a184; font-size:10px; max-width:360px; }
.dw-explode { display:flex; align-items:center; gap:12px; padding:9px 16px; border-top:1px solid #e2e7dc; background:#f8faf5; font-size:10px; color:#7c8b70; }
.dw-explode input[type="range"] { min-width:80px; width:145px; padding:0; height:16px; accent-color:#7e9a59; background:none; border:0; }
.dw-explode input:disabled { opacity:.35; }
.dw-explode output { min-width:24px; color:#849574; font:9px ui-monospace,monospace; }
.dw-context-toggle { display:flex; align-items:center; gap:5px; margin-left:auto; padding-left:8px; font-size:10px; letter-spacing:0; cursor:pointer; white-space:nowrap; }
.dw-context-toggle input { width:12px; height:12px; padding:0; margin:0; accent-color:#6b8751; }
.dw-view-footer { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 16px; border-top:1px solid #e0e6d9; background:#f8faf5; color:#97a18a; font-size:9px; }
.dw-view-footer span { display:flex; align-items:center; gap:6px; }
.dw-view-footer svg { width:12px;height:12px; }
.dw-sidebar { border-left:1px solid #dce4d5; display:flex; flex-direction:column; min-width:0; background:#fcfdf9; }
.dw-sidebar-head { padding:17px 17px 13px; border-bottom:1px solid #e6ebdf; }
.dw-sidebar-title { display:flex; justify-content:space-between; align-items:center; margin-bottom:12px; }
.dw-sidebar-title h3 { margin:0; font-size:13px; font-weight:600; color:#4d6240; }
.dw-sidebar-title span { font-size:9px; color:#9aaa89; font-family:ui-monospace,monospace; }
.dw-tree-search { position:relative; }
.dw-tree-search svg { position:absolute; left:10px; top:10px; width:13px;height:13px; color:#9aa98a; }
.dw-tree-search input { width:100%; padding:8px 10px 8px 30px; border:1px solid #e1e8d7; border-radius:5px; background:#f3f6ed; color:#536348; font-size:10px; line-height:1.5; letter-spacing:0; }
.dw-tree-search input::placeholder { color:#a2ae93; }
.dw-tree-search input:focus { border-color:#a2b78b; }
.dw-tree { height:405px; flex:1; min-height:280px; max-height:405px; overflow-y:auto; padding:9px 8px 16px; scrollbar-width:thin; scrollbar-color:#d9e1cd transparent; }
.dw-tree-row { display:flex; align-items:center; min-height:33px; gap:0; border-radius:4px; margin:1px 0; padding-right:7px; }
.dw-tree-row:hover { background:#eff4e7; }
.dw-tree-row.selected { background:#e7efdb; box-shadow:inset 2px 0 #90a86c; }
.dw-tree-toggle { flex:0 0 20px; width:20px;height:26px; border:0; background:none; display:grid; place-items:center; color:#a2af90; padding:0; }
.dw-tree-toggle svg { width:11px;height:11px; transition:transform .15s; }
.dw-tree-toggle[aria-expanded="true"] svg { transform:rotate(90deg); }
.dw-tree-toggle:disabled { cursor:default; }
.dw-tree-select { border:0; background:none; flex:1; display:flex; align-items:center; gap:7px; text-align:left; padding:8px 0; min-width:0; font-size:12px; line-height:1.4; color:#62744f; }
.dw-tree-select>svg { width:13px;height:13px; color:#a2b28e; flex-shrink:0; }
.dw-tree-select>span { overflow:hidden; white-space:nowrap; text-overflow:ellipsis; flex:1; }
.dw-tree-select>small { color:#a4b194; font:9px ui-monospace,monospace; min-width:20px; text-align:right; }
.dw-tree-select>i { height:4px; width:4px; border-radius:50%; background:#a2b87f; display:block; margin-left:4px; flex-shrink:0; }
.dw-tree-row.selected .dw-tree-select { color:#42612f; font-weight:550; }
.dw-tree-row.selected .dw-tree-select>svg { color:#6e8e4d; }
.dw-tree-empty { text-align:center; padding:35px 12px; color:#9aab86; font-size:11px; }
.dw-selected-card { border-top:1px solid #e2e9d8; padding:14px 17px; background:#f4f7ee; min-height:139px; }
.dw-selected-kicker { display:flex; align-items:center; justify-content:space-between; color:#94a47e; font-size:9px; margin-bottom:6px; }
.dw-selected-card h4 { margin:0 0 6px; color:#536b3e; font-size:12px; font-weight:550; }
.dw-selected-card p { font-size:10px; line-height:1.7; color:#92a07f; margin:0; max-height:35px; overflow:auto; }
.dw-selected-facts { display:flex; gap:17px; margin-top:10px; }
.dw-selected-facts>span { color:#9ba98b; font-size:9px; }
.dw-selected-facts strong { display:block; color:#728858; font-size:10px; font-weight:500; margin-top:2px; }
.dw-underbar { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; margin-top:12px; color:#9ba58f; font-size:10px; }
.dw-selection-path { display:flex; gap:5px; align-items:center; flex-wrap:wrap; min-width:0; }
.dw-selection-path button { border:0; background:none; color:#8b9b79; padding:0; font-size:10px; }
.dw-selection-path button:last-child { color:#5d7549; }
.dw-selection-path button:hover { text-decoration:underline; }
.dw-model-note { margin:0; max-width:390px; text-align:right; color:#a2aa97; font-size:9px; line-height:1.6; }
.dw-provenance { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:17px 0; margin-top:20px; border-top:1px solid #e0e6d8; color:#9da891; font-size:10px; }
.dw-provenance a { color:#728760; text-decoration:none; }
.dw-provenance a:hover { text-decoration:underline; }
.dw-provenance-links { display:flex; gap:17px; flex-wrap:wrap; }
.modeled-example { display:block; width:100%; margin:0 0 16px; padding:14px; text-align:left; color:#e3eccf; border:1px solid #5e7450; border-radius:5px; background:#213121; cursor:pointer; }
.modeled-example small { display:block; color:#a6c778; font-size:10px; margin-bottom:5px; }
.dw-workbench:fullscreen { border:0; border-radius:0; width:100vw; height:100vh; grid-template-columns:minmax(0,1fr) 338px; }
.dw-workbench:fullscreen .dw-stage { height:auto; flex:1; }
.dw-workbench:fullscreen .dw-tree { max-height:none; }
@media (max-width:1100px) {
  body.modeling-detail-open .shell { padding-left:24px; padding-right:24px; }
  .dw-workbench { grid-template-columns:minmax(0,1fr) 295px; }
  .dw-stage { height:470px; }
  .dw-reference-task { grid-template-columns:230px minmax(0,1fr); }
  .dw-view-tools { gap:1px; }
  .dw-task-sections { grid-template-columns:1fr; gap:12px; }
}
@media (max-width:780px) {
  .dw-title-row { flex-direction:column; align-items:flex-start; gap:18px; padding:22px 0; }
  .dw-title-row h1 { font-size:29px; }
  .dw-actions { width:100%; }
  .dw-actions .dw-button { flex:1; }
  .dw-reference-task { grid-template-columns:190px minmax(0,1fr); }
  .dw-task { padding:15px; }
  .dw-workbench { grid-template-columns:minmax(0,1fr); }
  .dw-sidebar { border-left:0; border-top:1px solid #dce4d5; }
  .dw-tree { height:320px; max-height:320px; }
  .dw-stage { height:425px; }
  .dw-selected-card { min-height:120px; }
  .dw-workbench-heading h2 span { display:none; }
  .dw-underbar { flex-direction:column; gap:8px; }
  .dw-model-note { text-align:left; max-width:none; }
}
@media (max-width:520px) {
  body.modeling-detail-open .shell { padding-left:14px; padding-right:14px; }
  .drone-detail { padding-top:18px; }
  .dw-reference-task { grid-template-columns:1fr; }
  .dw-reference { border-right:0; border-bottom:1px solid var(--dw-line); padding:13px; }
  .dw-reference a { min-height:0; }
  .dw-reference img { max-height:210px; width:auto; max-width:100%; }
  .dw-reference figcaption { padding-top:7px; }
  .dw-task-sections { grid-template-columns:1fr; }
  .dw-workbench-heading { margin-top:24px; }
  .dw-workbench-heading h2 { font-size:18px; }
  .dw-live { font-size:8px; padding:4px 6px; }
  .dw-view-toolbar { padding:9px; gap:4px; }
  .dw-view-tabs button { padding:5px 8px; }
  .dw-view-tabs svg { display:none; }
  .dw-stage { height:345px; min-height:300px; }
  .dw-canvas-label { top:15px; left:13px; }
  .dw-canvas-label strong { font-size:10px; }
  .dw-canvas-corner { right:12px; font-size:8px; }
  .dw-explode { padding:9px 10px; gap:7px; }
  .dw-explode input[type="range"] { width:85px; min-width:55px; }
  .dw-explode output { display:none; }
  .dw-view-footer { flex-wrap:wrap; padding:9px 10px; gap:5px; }
  .dw-provenance { flex-direction:column; align-items:flex-start; gap:8px; }
  .dw-workbench:fullscreen { grid-template-columns:minmax(0,1fr); overflow:auto; }
  .dw-workbench:fullscreen .dw-stage { min-height:50vh; }
}
@media(prefers-reduced-motion:reduce) { .dw-loading-spinner { animation-duration:2s; } }
