/* Dungeon quest planner in the Modern Addon system: an operational addon window.
   Character state is personal (warm frame); your selected quests are your plan (blue); readiness is a physical chip;
   the current route step is focus (pale blue, pressed in); done steps recede with a green notch; manual/unresolved steps stay amber.
   Map marker colours are the planner's own legend and are unchanged. */
#dungeon-planner{--dp-start:#8aadf4;--dp-prep:#7bd389;--dp-pickup:#c6a0f6;--dp-flight:#edc74c;--dp-entrance:#ed8796;--dp-amber:#e9cf8c;--dp-red:#f0a3a3;--dp-green:#8fd9a0}
#dungeon-planner h1{margin:.2rem 0 .7rem}
#dungeon-planner .crumbs{margin:0 0 6px;font-size:12.5px;color:var(--ink3,#8e897f)}

/* Character bar: personal state, warm frame */
.dp-character{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px 12px;padding:10px 14px 12px;border:0;border-radius:6px;background:linear-gradient(180deg,#1c1812,#16130e);box-shadow:0 0 0 1px #3a3022,inset 0 1px 0 rgba(255,255,255,.05),0 10px 24px rgba(0,0,0,.4)}
.dp-character>label{display:grid;gap:4px;font:700 11px/1.3 var(--font-ui,sans-serif);text-transform:uppercase;letter-spacing:.07em;color:#bfa78a}
.dp-character>label>input,.dp-character>label>select{text-transform:none;letter-spacing:0;font-weight:500;font-size:13.5px;min-height:34px}
.dp-character input[name=level]{width:5.5rem}.dp-character select{min-width:7.5rem}
.dp-start-field{flex:1 1 15rem}.dp-start-field select{width:100%}
.dp-character button,.dp-head button,.dp-stop-head{font-size:13px}
.dp-pick-start{min-height:34px;padding:0 14px;background:#241e15;color:var(--fg);box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 0 0 1px #4a3b28}
.dp-pick-start[aria-pressed=true]{background:linear-gradient(180deg,#7ab4ee,#4f92dc);color:var(--blue-ink,#06111d);box-shadow:inset 0 2px 3px rgba(0,0,0,.35),0 0 0 1px var(--blue-deep,#1f4a78)}
.dp-advanced{flex-basis:100%;font-size:13px}.dp-advanced>summary{color:var(--blue-hi,#9cc8ff);padding:2px 0;cursor:pointer}
.dp-advanced-body{display:grid;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:10px 14px;align-items:start;margin-top:8px}
.dp-advanced-body label{display:grid;gap:4px;color:#bfa78a;font-size:12px}
.dp-advanced-body textarea,.dp-advanced-body input:not([type=checkbox]){width:100%;box-sizing:border-box;font:inherit;font-size:13px}
.dp-advanced-body p{grid-column:1/-1;margin:0;font-size:12px}
label.dp-check{display:flex!important;align-items:center;gap:6px;color:var(--fg)}
.dp-status{min-height:1.3em;margin:8px 2px;font-size:12.5px;color:var(--ink2,#bdb9b0)}.dp-status.dp-error{color:var(--dp-red)}

/* Window layout: quests (primary) beside the route; prep below the route */
.dp-layout{display:grid;grid-template-columns:minmax(18rem,25rem) minmax(0,1fr);grid-template-areas:"quests route" "quests prep";grid-template-rows:auto 1fr;gap:14px;align-items:start}
.dp-quests{grid-area:quests}.dp-route{grid-area:route}.dp-prep{grid-area:prep}
#dungeon-planner .dp-quests{position:sticky;top:12px;max-height:calc(100vh - 24px);overflow:auto;scrollbar-width:thin}
.dp-head{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:40px;margin:0 -14px 0;padding:0 8px 0 14px;border:0;box-shadow:inset 0 -1px 0 #05070a,0 1px 0 #262c38}
#dungeon-planner .dp-quests .dp-head{position:sticky;top:0;z-index:2;background:linear-gradient(180deg,#1b212c,#161b24)}
.dp-head h2{border:0;margin:0;padding:0;box-shadow:none!important;min-height:0!important}
.dp-head button,.dp-restart-route,.dp-run-exit,.dp-run-controls .dp-run-prev,.dp-run-controls .dp-run-next{min-height:30px;padding:0 10px;background:transparent;color:var(--blue-hi,#9cc8ff);box-shadow:0 0 0 1px #2c3a4d}
.dp-head button:hover,.dp-restart-route:hover,.dp-run-exit:hover,.dp-run-controls button:hover:not(:disabled):not(.dp-run-complete){background:#241820;color:#ffd1e6}

/* Quest rows: dense; selected = your plan (blue edge) */
.dp-quest-list{list-style:none;margin:0 -14px;padding:0}
.dp-quest{margin:0!important;padding:9px 12px 10px 14px;border:0;box-shadow:inset 0 -1px 0 #20262f;transition:background .12s}
.dp-quest:hover{background:#161c26}
.dp-quest.dp-selected{background:linear-gradient(90deg,rgba(94,162,234,.11),rgba(94,162,234,0) 70%);box-shadow:inset 3px 0 0 var(--blue,#5ea2ea),inset 0 -1px 0 #20262f}
.dp-q-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.dp-q-main{display:flex;align-items:baseline;gap:8px;cursor:pointer;min-width:0;font:620 15px/1.25 var(--font-display,Georgia,serif)}
.dp-q-main input{flex:none;width:18px;height:18px;margin:0;position:relative;top:3px;accent-color:var(--blue,#5ea2ea);cursor:pointer}
.dp-q-level{font:500 12px/1 var(--font-num,monospace);color:var(--ink3,#8e897f);white-space:nowrap}
.dp-q-line{margin:3px 0 0 26px!important;font-size:12.5px;color:var(--ink2,#bdb9b0)}.dp-q-key{color:var(--ink2,#bdb9b0)}
.dp-q-rewards a{text-decoration:none}
.dp-q-reasons{margin:5px 0 0 26px;padding:0 0 0 14px;font-size:12.5px;color:var(--dp-amber)}.dp-q-reasons li{margin:2px 0!important}.dp-q-reasons li::marker{color:#8f7744}
.dp-s-bad .dp-q-reasons{color:var(--dp-red)}.dp-s-bad .dp-q-name,.dp-s-done .dp-q-name{color:var(--ink3,#8e897f)}
.dp-q-link{display:inline-block;margin:3px 0 0 26px;font-size:12px;color:var(--ink3,#8e897f)}
.dp-context{display:flex;align-items:center;gap:6px;margin:6px 0 0 26px;font-size:12.5px;color:var(--fg)}.dp-context input{width:5.5rem;min-height:30px;padding:2px 8px}.dp-context select{min-height:30px;padding:2px 8px}

/* Readiness chips: physical, coloured by state, never by provenance */
.dp-badge{flex:none;font:700 11px/1 var(--font-ui,sans-serif);padding:5px 8px;border-radius:3px;border:0;white-space:nowrap;box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 0 0 1px currentColor;background:#11151c}
.dp-badge.dp-s-ready{color:#9be0a8;background:#14261a;box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 0 0 1px #3f7a4e}
.dp-badge.dp-s-prep{color:var(--dp-amber);background:#2a2214;box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 0 0 1px #8f7744}
.dp-badge.dp-s-alt{color:#c7b8f5;background:#221e33;box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 0 0 1px #6c5d9c}
.dp-badge.dp-s-bad{color:var(--dp-red);background:#2a1619;box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 0 0 1px #8b4a52}
.dp-badge.dp-s-unknown{color:#c9cbd2;background:#1b1f27;box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 0 0 1px #4a505c}
.dp-badge.dp-s-done{color:var(--ink3,#8e897f);background:transparent;box-shadow:0 0 0 1px #2c3340}

/* Route summary */
.dp-summary{margin:10px 0 10px}.dp-summary p{margin:2px 0!important;font-size:13px;color:var(--ink2,#bdb9b0)}.dp-summary-head{font-size:14.5px;color:var(--fg)}
.dp-ok{color:#9be0a8}.dp-warn{color:var(--dp-amber)}
.dp-counts{display:inline;list-style:none;margin:0;padding:0}.dp-counts li{display:inline;margin:0!important}.dp-counts li+li::before{content:" · ";color:var(--ink3,#8e897f)}
.dp-review{font-size:13px;margin-top:4px}.dp-review summary{color:var(--dp-amber);padding:0;cursor:pointer}.dp-review ul{margin:4px 0;padding-left:18px}.dp-review li{margin:2px 0!important}
.dp-route .map-viewport{height:480px}
.dp-legend{display:flex;flex-wrap:wrap;gap:4px 14px;list-style:none;margin:8px 0 4px;padding:0;font-size:12px;color:var(--ink2,#bdb9b0)}.dp-legend li{margin:0!important;display:flex;align-items:center;gap:5px}
.dp-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--c);box-shadow:0 0 0 1px #05070a,0 0 0 2px rgba(255,255,255,.12)}
.dp-line{display:inline-block;width:22px;height:0;border-top:3px solid var(--c)}
.dp-k-start{--c:var(--dp-start)}.dp-k-prep{--c:var(--dp-prep)}.dp-k-pickup{--c:var(--dp-pickup)}.dp-k-flight{--c:var(--dp-flight)}.dp-k-entrance{--c:var(--dp-entrance)}
.dp-l-flight{--c:var(--dp-flight)}.dp-l-ground{--c:var(--dp-prep);border-top-style:dashed}.dp-l-approach{--c:var(--dp-entrance);border-top-style:dotted}

/* Disclosures inside planner panels are links, not panel headings */
#dungeon-planner .panel details>summary{display:list-item;min-height:0;margin:0;padding:4px 0;box-shadow:none;font:600 13px/1.4 var(--font-ui,sans-serif);text-transform:none;letter-spacing:0;color:var(--blue-hi,#9cc8ff);cursor:pointer}
#dungeon-planner .panel details>summary:hover{color:#ffd1e6}
#dungeon-planner .panel details[open]>summary{margin-bottom:6px;box-shadow:none}
#dungeon-planner .dp-assumptions>summary,#dungeon-planner .dp-tree-box>summary{color:var(--ink2,#bdb9b0)}
.dp-assumptions,.dp-diagnostics{font-size:13px}.dp-assumptions ul{margin:4px 0;padding-left:18px}.dp-assumptions li{margin:2px 0!important}
.dp-diagnostics>summary{color:var(--ink3,#8e897f);cursor:pointer}
.dp-flights p{margin:4px 0!important}.dp-flights details{margin-left:2px}

/* Itinerary: numbered plates; active = focus; manual = amber; done recedes */
.dp-itinerary{list-style:none;margin:0 -14px;padding:0}
.dp-stop{margin:0!important;padding:9px 14px 10px;border:0;box-shadow:inset 0 -1px 0 #20262f}
.dp-stop.dp-active{background:#152033;box-shadow:inset 3px 0 0 #9cc8ff,inset 0 -1px 0 #20262f}
.dp-travel{margin:0 0 5px 34px!important;font-size:12px;color:var(--ink3,#8e897f)}
#dungeon-planner .dp-stop-head{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;width:100%;min-height:0;background:transparent;border:0;box-shadow:none;color:var(--fg);padding:0;text-align:left;font:620 15px/1.3 var(--font-display,Georgia,serif);cursor:pointer}
#dungeon-planner .dp-stop-head:hover{background:transparent;color:#fff}
#dungeon-planner .dp-stop-head:focus-visible{outline:2px solid #9cc8ff;outline-offset:3px;border-radius:2px}
.dp-num{display:inline-grid;place-items:center;flex:none;width:26px;height:26px;border-radius:50%;background:var(--c,var(--dp-prep));color:#0b0f14;font:700 12px/1 var(--font-ui,sans-serif);box-shadow:inset 0 1px 0 rgba(255,255,255,.45),inset 0 -2px 0 rgba(0,0,0,.25),0 0 0 1px #05070a}
.dp-zone{font:italic 400 13px/1.2 var(--font-display,Georgia,serif);color:var(--ink2,#bdb9b0)}
.dp-tag{font:700 10.5px/1.5 var(--font-ui,sans-serif);text-transform:uppercase;letter-spacing:.06em;border:0;border-radius:3px;padding:0 6px;color:var(--ink2,#bdb9b0);box-shadow:0 0 0 1px #343c4b}
.dp-tag-warn{color:var(--dp-amber);box-shadow:0 0 0 1px #8f7744;margin-left:6px}
.dp-actions{margin:4px 0 0 34px;padding:0;list-style:none;font-size:13px}.dp-actions li{margin:3px 0!important}.dp-actions small{display:block;color:var(--ink3,#8e897f);font-size:12px}
.dp-shared h3{margin-top:14px!important}.dp-tree,.dp-tree ul{list-style:none;margin:0;padding-left:16px;font-size:13px}.dp-tree{padding-left:0}
.dp-tree li{margin:2px 0!important;position:relative}.dp-tree ul>li::before{content:"└";position:absolute;left:-14px;color:var(--ink3,#8e897f)}.dp-tree-target{color:var(--ink3,#8e897f)}
.dp-shared>p{font-size:12.5px}
.dp-choice{border:0;border-radius:4px;margin:10px 0;padding:8px 12px;font-size:13px;background:#0c0f15;box-shadow:inset 0 1px 2px rgba(0,0,0,.6),0 0 0 1px #232a35}.dp-choice label{display:block;margin:4px 0}
.dp-diagnostics{margin-top:16px}.dp-diagnostics pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px}.dp-tech-list{font-size:12.5px;color:var(--ink3,#8e897f)}
.map-route-ground .map-line{stroke-dasharray:7 5}.map-route-flight .map-line{stroke-width:3.5}.map-route-approach .map-line{stroke-dasharray:2 5;stroke-linecap:round}
.dp-route .map-pin circle{r:11}
.dp-prep>h3{margin:16px 0 4px!important;font:700 12px/1.3 var(--font-ui,sans-serif);text-transform:uppercase;letter-spacing:.08em;color:var(--ink2,#bdb9b0)}
.dp-pq-list{margin:0;padding-left:22px}.dp-pq{margin:0 0 2px!important;padding:8px 0;border:0;box-shadow:inset 0 -1px 0 #20262f}
.dp-pq-line{margin:2px 0!important;font-size:12.5px;color:var(--ink2,#bdb9b0)}.dp-pq-reason{color:var(--dp-red)}
.dp-link{background:none;border:0;box-shadow:none;min-height:0;padding:0;color:var(--fg);font:inherit;text-align:left;text-decoration:underline dotted #686b73;text-underline-offset:3px;cursor:pointer}.dp-link:hover{background:none;color:#fff}
.dp-manual-text{color:var(--dp-amber)}
.dp-chips{display:flex;flex-wrap:wrap;gap:4px;margin:4px 0!important}.dp-chip{font-size:11.5px;border:0;border-radius:3px;padding:1px 7px;box-shadow:0 0 0 1px #343c4b}
.dp-chip-met{color:#9be0a8;box-shadow:0 0 0 1px #3f7a4e}.dp-chip-unmet{color:var(--dp-red);box-shadow:0 0 0 1px #8b4a52}.dp-chip-unknown{color:#c9cbd2}
.dp-detail{display:block;font-size:12.5px;color:var(--dp-amber)}
.dp-k-manual{--c:var(--dp-amber);background:linear-gradient(90deg,rgba(233,207,140,.07),rgba(233,207,140,0) 70%);box-shadow:inset 3px 0 0 #8f7744,inset 0 -1px 0 #20262f}
#dungeon-planner .dp-k-manual .dp-stop-head{cursor:default}
.dp-gap{color:var(--dp-amber)!important;font-style:italic}.dp-tree-box{margin-top:10px;font-size:13px}

/* Compact planning view */
.dp-other{margin-top:8px;font-size:13px}.dp-other h3{font:700 11px/1.3 var(--font-ui,sans-serif);text-transform:uppercase;letter-spacing:.08em;color:var(--ink3,#8e897f);margin:8px 0 3px}
.dp-other-list{list-style:none;margin:0;padding:0}.dp-other-row{display:flex;flex-wrap:wrap;gap:3px 10px;align-items:baseline;margin:0!important;padding:6px 0;box-shadow:inset 0 -1px 0 #20262f}
.dp-other-reason{color:var(--ink3,#8e897f);font-size:12.5px}
.dp-q-line .dp-q-link{display:inline;margin:0 0 0 5px}
.dp-route-actions{margin:10px 0 4px!important;display:flex;flex-wrap:wrap;gap:8px}.dp-route-actions:not(:has(button:not([hidden]))){display:none}
#dungeon-planner .dp-start-route{min-height:40px;padding:0 22px;font-weight:700;font-size:14px;background:linear-gradient(180deg,#7ab4ee,#4f92dc);color:var(--blue-ink,#06111d);box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 2px 0 var(--blue-deep,#1f4a78)}
#dungeon-planner .dp-start-route:hover{background:linear-gradient(180deg,#f796c3,#e2609e)}
#dungeon-planner .dp-start-route:active{transform:translateY(1px);box-shadow:inset 0 2px 3px rgba(0,0,0,.35),0 1px 0 var(--blue-deep,#1f4a78)}
.dp-restart-route{min-height:40px}
.dp-pq-summary{margin:2px 0 6px!important;font-size:13.5px}
.dp-plan-details{margin-top:6px}

/* Route mode: current step pressed in (focus), next quieter, controls as an action bar */
.dp-run{margin:10px 0 4px;border:0;border-radius:6px;padding:10px 12px;background:linear-gradient(180deg,#1c1812,#16130e);box-shadow:0 0 0 1px #3a3022,inset 0 1px 0 rgba(255,255,255,.05)}
.dp-run-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px}.dp-run-head p{margin:0!important;font-size:13px}
.dp-progress{color:#e7c9a2}
.dp-run-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:10px 0}
.dp-run-card{margin:0;border:0;border-radius:4px;padding:10px 12px;min-width:0;background:#11151c;box-shadow:0 0 0 1px #2c3340}
.dp-run-card h3{margin:0 0 6px!important;font:700 11px/1.3 var(--font-ui,sans-serif);text-transform:uppercase;letter-spacing:.08em;color:var(--ink3,#8e897f)}
.dp-run-card.dp-run-current{background:#0e1622;box-shadow:inset 0 2px 6px rgba(0,0,0,.7),0 0 0 1px #9cc8ff,0 0 14px rgba(156,200,255,.18)}
.dp-run-card.dp-run-current h3{color:#9cc8ff}
.dp-run-card.dp-run-next{opacity:.8}
.dp-run-title{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin:0 0 4px!important;font:620 16px/1.3 var(--font-display,Georgia,serif)}
.dp-run-card .dp-actions{margin-left:0}.dp-run-card .dp-travel{margin-left:0!important}
.dp-run-controls{display:flex;gap:8px;flex-wrap:wrap}.dp-run-controls button{min-height:40px}
.dp-run-controls button:disabled{opacity:.4;cursor:default}
#dungeon-planner .dp-run-complete{flex:1 1 10rem;font-weight:700;background:linear-gradient(180deg,#9de3aa,#5dbb72);color:#0b2412;box-shadow:inset 0 1px 0 rgba(255,255,255,.4),0 2px 0 #2c6a3b}
#dungeon-planner .dp-run-complete:active{transform:translateY(1px);box-shadow:inset 0 2px 3px rgba(0,0,0,.3),0 1px 0 #2c6a3b}
.dp-run-note{font-size:12px;margin:6px 0 0!important}
#dungeon-planner.dp-routing .dp-character,#dungeon-planner.dp-routing .dp-quests,#dungeon-planner.dp-routing .dp-review{display:none}
#dungeon-planner.dp-routing .dp-layout{grid-template-columns:minmax(0,1fr);grid-template-areas:"route" "prep"}
#dungeon-planner.dp-routing .dp-summary{margin-bottom:4px}
.dp-stop.dp-done{opacity:.55}
.dp-stop.dp-done .dp-num{background:#2b3a2f;color:var(--dp-green);box-shadow:0 0 0 1px #3f7a4e}
.dp-stop[aria-current=step]{background:#152033;box-shadow:inset 3px 0 0 #9cc8ff,inset 0 -1px 0 #20262f}
.map-pin.dp-pin-done{opacity:.35}.map-pin.dp-pin-current circle{stroke:#fff7ab;stroke-width:5}.map-pin.dp-pin-next circle{stroke:#fff7ab;stroke-width:2.5;stroke-dasharray:3 2}
.map-shape.dp-leg-done{opacity:.3}.map-shape.dp-leg-current .map-line{stroke-width:5}
#dungeon-planner button:focus-visible,#dungeon-planner input:focus-visible,#dungeon-planner select:focus-visible,#dungeon-planner summary:focus-visible{outline:2px solid #9cc8ff;outline-offset:2px}

@media(max-width:74.99rem){.dp-layout{grid-template-columns:minmax(17rem,22rem) minmax(0,1fr)}}
@media(max-width:59.99rem){.dp-layout{grid-template-columns:minmax(0,1fr);grid-template-areas:"quests" "route" "prep"}#dungeon-planner .dp-quests{position:static;max-height:none;overflow:visible}#dungeon-planner .dp-quests .dp-head{position:static}}
@media(max-width:47.99rem){.dp-run-cards{display:flex;flex-direction:column}.dp-run-controls .dp-run-complete{order:-1;flex:1 1 100%}.dp-run-controls .dp-run-prev,.dp-run-controls .dp-run-next{flex:1 1 40%}
  .dp-character{padding:10px}.dp-character>label{flex:1 1 6.5rem}.dp-character select,.dp-character input[name=level]{width:100%;min-width:0}.dp-start-field{flex-basis:100%}
  .dp-pick-start{flex:1 1 100%;min-height:44px}.dp-route .map-viewport{height:340px}.dp-character>.dp-start-field{flex-basis:100%}.dp-tree ul{padding-left:9px}
  .dp-q-line,.dp-q-reasons,.dp-q-link,.dp-context{margin-left:26px!important}.dp-q-main input{width:22px;height:22px;top:4px}
  .dp-travel,.dp-actions{margin-left:0!important}.dp-head button{min-height:40px}}
