/* ProjectQuest Quest Board styles recovered from the app source CSS.
   Additive repair: no replacement of production projectquest-react.css. */
/* Quest Board + semantic suggestion overlay + Sankey flow */
.pq-quest-view-switch{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px}
.pq-kanban-wrap{display:grid;gap:14px;min-width:0}
.pq-kanban-board{display:grid;grid-template-columns:repeat(5,minmax(280px,1fr));gap:14px;overflow-x:auto;overscroll-behavior-inline:contain;padding:2px 2px max(18px,env(safe-area-inset-bottom));scroll-snap-type:x proximity}
.pq-kanban-column{min-width:280px;background:color-mix(in srgb,var(--pq-panel,#111827) 92%,transparent);border:1px solid var(--pq-border-soft,rgba(148,163,184,.2));border-radius:18px;padding:12px;scroll-snap-align:start;min-height:300px}
.pq-kanban-column.drop-ready{outline:1px dashed color-mix(in srgb,var(--pq-accent,#d4af37) 70%,transparent);outline-offset:-5px}
.pq-kanban-review{border-style:dashed;background:color-mix(in srgb,var(--pq-panel,#111827) 86%,var(--pq-accent,#d4af37) 6%)}
.pq-kanban-column-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding:2px 2px 10px;border-bottom:1px solid var(--pq-border-soft,rgba(148,163,184,.18));margin-bottom:10px}
.pq-kanban-column-head>div{display:grid;gap:3px;min-width:0}
.pq-kanban-stack{display:grid;gap:10px}
.pq-kanban-card{display:grid;gap:9px;padding:12px;border-radius:14px;background:var(--pq-surface,var(--pq-card,#171f2e));border:1px solid var(--pq-border-soft,rgba(148,163,184,.22));box-shadow:0 8px 22px rgba(0,0,0,.12);cursor:grab;min-width:0}
.pq-kanban-card:active{cursor:grabbing}
.pq-kanban-card.pq-kanban-suggested{box-shadow:0 0 0 2px color-mix(in srgb,var(--pq-accent,#d4af37) 48%,transparent),0 10px 28px rgba(0,0,0,.18)}
.pq-kanban-card.pq-kanban-muted{opacity:.48;filter:saturate(.72)}
.pq-kanban-card.pq-kanban-muted:hover,.pq-kanban-card.pq-kanban-muted:focus-within{opacity:.78}
.pq-semantic-progress{display:block;margin-top:7px;color:var(--pq-text-muted,#94a3b8);font-variant-numeric:tabular-nums}
.pq-kanban-card-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:start}
.pq-kanban-card-head strong{overflow-wrap:anywhere}
.pq-kanban-grip{opacity:.55;letter-spacing:-3px;padding-right:2px}
.pq-kanban-meta,.pq-kanban-footer,.pq-semantic-stats{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.pq-kanban-description{margin:0;color:var(--pq-text-muted,#94a3b8);font-size:.9rem;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.pq-kanban-progress{display:grid;gap:5px;font-size:.82rem;color:var(--pq-text-muted,#94a3b8)}
.pq-kanban-meter{height:6px;border-radius:999px;background:color-mix(in srgb,var(--pq-border-soft,#64748b) 60%,transparent);overflow:hidden}
.pq-kanban-meter i{display:block;height:100%;background:currentColor;border-radius:inherit}
.pq-kanban-footer{justify-content:space-between}
.pq-kanban-empty{padding:26px 12px;text-align:center;border:1px dashed var(--pq-border-soft,rgba(148,163,184,.24));border-radius:12px;color:var(--pq-text-muted,#94a3b8)}
.pq-suggestion-badge{display:inline-flex;width:max-content;max-width:100%;align-items:center;gap:6px;padding:5px 8px;border-radius:999px;font-size:.78rem;font-weight:700;background:color-mix(in srgb,var(--pq-accent,#d4af37) 16%,transparent);border:1px solid color-mix(in srgb,var(--pq-accent,#d4af37) 48%,transparent)}
.pq-suggestion-summary{display:flex;justify-content:space-between;gap:14px;align-items:center;flex-wrap:wrap}
.pq-suggestion-summary p{margin:.2rem 0 0}
.pq-semantic-modal{width:min(1180px,96vw);max-height:min(90vh,900px)}
.pq-semantic-stats{margin-bottom:12px}
.pq-sankey-shell{border:1px solid var(--pq-border-soft,rgba(148,163,184,.2));border-radius:16px;overflow:hidden;background:color-mix(in srgb,var(--pq-panel,#111827) 94%,transparent)}
.pq-sankey-head{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 14px;border-bottom:1px solid var(--pq-border-soft,rgba(148,163,184,.18));flex-wrap:wrap}
.pq-sankey-scroll{overflow:auto;padding:10px;max-height:58vh}
.pq-sankey-svg{min-width:920px;width:100%;height:auto;overflow:visible}
.pq-sankey-link{fill:none;stroke:color-mix(in srgb,var(--pq-accent,#d4af37) 35%,var(--pq-border-soft,#64748b));stroke-opacity:.42;stroke-linecap:round}
.pq-sankey-node circle{fill:var(--pq-panel,#111827);stroke:var(--pq-accent,#d4af37);stroke-width:2}
.pq-sankey-node.after circle{fill:color-mix(in srgb,var(--pq-accent,#d4af37) 22%,var(--pq-panel,#111827))}
.pq-sankey-node text{fill:var(--pq-text,#e5e7eb);font-size:12px;font-weight:600}
.pq-compact-sankey-shell{border:1px solid var(--pq-border-soft,rgba(148,163,184,.22));border-radius:16px;background:color-mix(in srgb,var(--pq-panel,#111827) 95%,transparent);overflow:hidden;margin:12px 0 14px}
.pq-compact-sankey-head{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;padding:12px 14px;border-bottom:1px solid var(--pq-border-soft,rgba(148,163,184,.18));position:sticky;top:0;z-index:4;background:color-mix(in srgb,var(--pq-panel,#111827) 97%,transparent);backdrop-filter:blur(12px)}
.pq-compact-sankey-head>div{display:grid;gap:2px;min-width:0}
.pq-compact-sankey-head>div:nth-child(2){text-align:center}
.pq-compact-sankey-head>div:nth-child(3){text-align:right}
.pq-compact-sankey-body{position:relative;min-width:0;overflow:hidden;background:linear-gradient(180deg,color-mix(in srgb,var(--pq-panel,#111827) 92%,transparent),color-mix(in srgb,var(--pq-surface,#171f2e) 88%,transparent))}
.pq-compact-sankey-ribbons{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}
.pq-compact-flow-link{fill:none;stroke:color-mix(in srgb,var(--pq-accent,#d4af37) 36%,var(--pq-border-soft,#64748b));stroke-width:7;stroke-linecap:round;opacity:.5;transition:opacity .18s ease,filter .18s ease,stroke-width .18s ease}
.pq-compact-flow-link.target-link{stroke:color-mix(in srgb,var(--pq-accent,#d4af37) 58%,var(--pq-border-soft,#64748b));opacity:.62}
.pq-compact-flow-column{position:absolute;top:0;bottom:0;z-index:2;width:27%;pointer-events:none}
.pq-compact-flow-sources{left:1.5%}
.pq-compact-flow-clusters{left:36.5%}
.pq-compact-flow-targets{right:1.5%}
.pq-compact-flow-node{position:absolute;display:grid;gap:2px;align-content:center;width:100%;min-height:36px;padding:7px 9px;border-radius:10px;border:1px solid var(--pq-border-soft,rgba(148,163,184,.22));background:color-mix(in srgb,var(--pq-surface,#171f2e) 96%,transparent);color:var(--pq-text,#e5e7eb);text-align:left;overflow:hidden;overflow-wrap:anywhere;pointer-events:auto;cursor:pointer;transition:opacity .18s ease,filter .18s ease,box-shadow .18s ease,border-color .18s ease,transform .18s ease}
.pq-compact-flow-node:hover,.pq-compact-flow-node:focus-visible{filter:brightness(1.08);outline:2px solid color-mix(in srgb,var(--pq-accent,#d4af37) 55%,transparent);outline-offset:1px}
.pq-compact-flow-node.source{font-size:.76rem}
.pq-compact-flow-node.cluster{left:0;text-align:center;background:color-mix(in srgb,var(--pq-accent,#d4af37) 9%,var(--pq-surface,#171f2e));border-color:color-mix(in srgb,var(--pq-accent,#d4af37) 34%,var(--pq-border-soft,#64748b))}
.pq-compact-flow-node.target{background:color-mix(in srgb,var(--pq-accent,#d4af37) 13%,var(--pq-surface,#171f2e));border-color:color-mix(in srgb,var(--pq-accent,#d4af37) 46%,var(--pq-border-soft,#64748b))}
.pq-compact-flow-node small{font-size:.68rem;color:var(--pq-text-muted,#94a3b8)}
.pq-compact-flow-node.pq-flow-locked{border-color:#fff!important;box-shadow:0 0 0 2px #fff4,0 0 16px color-mix(in srgb,var(--pq-accent,#d4af37) 62%,transparent)}
.pq-flow-selection-summary{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px;padding:7px 9px;border-radius:10px;background:color-mix(in srgb,var(--pq-accent,#d4af37) 9%,transparent);border:1px solid color-mix(in srgb,var(--pq-accent,#d4af37) 28%,transparent)}
.pq-flow-selection-summary strong{max-width:min(520px,68vw);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pq-semantic-flow-list{display:grid;gap:10px;margin:12px 0 14px}
.pq-flow-card{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,.78fr);gap:12px;align-items:stretch;padding:12px;border:1px solid var(--pq-border-soft,rgba(148,163,184,.22));border-radius:14px;background:color-mix(in srgb,var(--pq-panel,#111827) 94%,transparent)}
.pq-flow-side{display:grid;align-content:start;gap:7px;min-width:0}
.pq-flow-source{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}
.pq-flow-source .pq-flow-label{grid-column:1/-1}
.pq-flow-target{padding:10px 12px;border-radius:12px;background:color-mix(in srgb,var(--pq-accent,#d4af37) 11%,transparent);border:1px solid color-mix(in srgb,var(--pq-accent,#d4af37) 34%,transparent)}
.pq-flow-label{font-size:.69rem;letter-spacing:.08em;font-weight:800;color:var(--pq-text-muted,#94a3b8)}
.pq-flow-chip{padding:8px 9px;border-radius:10px;background:color-mix(in srgb,var(--pq-surface,#171f2e) 90%,transparent);border:1px solid var(--pq-border-soft,rgba(148,163,184,.2));font-size:.84rem;overflow-wrap:anywhere}
.pq-flow-arrow{display:grid;place-items:center;min-width:34px;font-size:1.55rem;font-weight:800;color:var(--pq-accent,#d4af37)}
.pq-sankey-details{margin-top:12px}
.pq-sankey-summary{cursor:pointer;padding:12px 14px;font-weight:750;list-style:none}
.pq-sankey-summary::-webkit-details-marker{display:none}
.pq-sankey-summary:before{content:'▸';display:inline-block;margin-right:8px;transition:transform .15s ease}
.pq-sankey-details[open]>.pq-sankey-summary:before{transform:rotate(90deg)}
.pq-semantic-proposals{display:grid;gap:9px;margin-top:14px}
.pq-semantic-proposal{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:start;padding:11px;border:1px solid var(--pq-border-soft,rgba(148,163,184,.22));border-radius:12px;background:color-mix(in srgb,var(--pq-panel,#111827) 94%,transparent)}
.pq-semantic-proposal.selected{border-color:color-mix(in srgb,var(--pq-accent,#d4af37) 58%,var(--pq-border-soft,#64748b));box-shadow:0 0 0 1px color-mix(in srgb,var(--pq-accent,#d4af37) 20%,transparent)}
.pq-semantic-proposal p{margin:.2rem 0}
@media (max-width:900px){
  .pq-compact-sankey-shell{border-radius:14px}
  .pq-compact-sankey-head{grid-template-columns:29% 29% 34%;gap:4%;padding:10px 8px;font-size:.72rem}
  .pq-compact-sankey-head small{font-size:.62rem}
  .pq-compact-sankey-body{min-height:360px}
  .pq-compact-flow-column{width:29%}
  .pq-compact-flow-sources{left:1%}
  .pq-compact-flow-clusters{left:35.5%}
  .pq-compact-flow-targets{right:1%}
  .pq-compact-flow-node{padding:6px 7px;font-size:.72rem;border-radius:9px;line-height:1.15}
  .pq-compact-flow-node.source{font-size:.7rem}
  .pq-compact-flow-node small{font-size:.6rem}
  .pq-flow-selection-summary{position:sticky;top:0;z-index:6}
  .pq-kanban-board{grid-template-columns:repeat(5,minmax(82vw,82vw));margin-inline:-2px;padding-inline:2px}
  .pq-kanban-column{min-width:82vw}
  .pq-semantic-modal{width:min(100vw,100%);max-height:calc(100dvh - env(safe-area-inset-top) - max(8px,env(safe-area-inset-bottom)));border-radius:18px 18px 0 0}
  .pq-flow-card{grid-template-columns:1fr}
  .pq-flow-arrow{min-height:28px;transform:rotate(90deg)}
  .pq-sankey-details:not([open]) .pq-sankey-scroll{display:none}
  .pq-sankey-scroll{max-height:46vh}
}
@media (max-width:560px){
  .pq-compact-sankey-head{grid-template-columns:31% 28% 33%;gap:4%;font-size:.68rem}
  .pq-compact-sankey-head strong{font-size:.7rem}
  .pq-compact-sankey-head small{display:none}
  .pq-compact-flow-column{width:31%}
  .pq-compact-flow-sources{left:.5%}
  .pq-compact-flow-clusters{left:34.5%;width:29%}
  .pq-compact-flow-targets{right:.5%;width:33%}
  .pq-compact-flow-node{font-size:.68rem;padding:6px;min-height:34px}
  .pq-compact-flow-node.source{font-size:.66rem}
  .pq-compact-flow-node.cluster strong,.pq-compact-flow-node.target strong{font-size:.68rem}
  .pq-flow-selection-summary strong{max-width:56vw}
  .pq-quest-view-switch{display:grid;grid-template-columns:repeat(3,1fr)}
  .pq-quest-view-switch .pq-btn{min-width:0}
  .pq-kanban-board{grid-template-columns:repeat(5,minmax(88vw,88vw))}
  .pq-kanban-column{min-width:88vw}
  .pq-kanban-card{padding:11px}
  .pq-semantic-stats .pq-pill{font-size:.72rem}
  .pq-flow-card{padding:10px;gap:8px}
  .pq-flow-source{grid-template-columns:1fr}
  .pq-flow-chip{font-size:.8rem}
  .pq-sankey-summary{font-size:.86rem}
}
/* Mobile board navigation styles */
.pq-kanban-mobile-nav{display:none;}
.pq-compact-sankey-pager{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 10px;border-bottom:1px solid var(--pq-border-soft,rgba(148,163,184,.18));background:color-mix(in srgb,var(--pq-panel,#111827) 96%,transparent);}
.pq-compact-sankey-pager strong{text-align:center;font-size:.82rem;}
@media (max-width:760px){
  .pq-kanban-mobile-nav{display:grid;grid-template-columns:repeat(5,minmax(112px,1fr));gap:8px;overflow-x:auto;overscroll-behavior-inline:contain;padding:2px 2px 8px;scroll-snap-type:x proximity;}
  .pq-kanban-mobile-nav button{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px;padding:9px 10px;border-radius:12px;border:1px solid var(--pq-border-soft,rgba(148,163,184,.22));background:var(--pq-surface,var(--pq-card,#171f2e));color:var(--pq-text,#e5e7eb);scroll-snap-align:start;white-space:nowrap;}
  .pq-kanban-mobile-nav button.active{border-color:color-mix(in srgb,var(--pq-accent,#d4af37) 62%,var(--pq-border-soft,#64748b));box-shadow:0 0 0 2px color-mix(in srgb,var(--pq-accent,#d4af37) 15%,transparent);}
  .pq-kanban-mobile-nav b{min-width:24px;height:24px;display:grid;place-items:center;border-radius:999px;background:color-mix(in srgb,var(--pq-accent,#d4af37) 12%,transparent);}
  .pq-kanban-board{display:block!important;overflow:visible!important;margin:0!important;padding:0 0 max(18px,env(safe-area-inset-bottom))!important;}
  .pq-kanban-column{display:none;min-width:0!important;width:100%!important;}
  .pq-kanban-column.active-mobile{display:block;}
  .pq-kanban-card{cursor:default!important;}
  .pq-kanban-grip{display:none;}
  .pq-kanban-move-btn{font-weight:800;}
  .pq-compact-sankey-shell{margin-top:8px;}
  .pq-compact-sankey-pager{position:sticky;top:0;z-index:7;}
  .pq-semantic-modal .pq-modal-scroll-body{overscroll-behavior:contain;}
}

/* Needs Review: purpose-first Questline grouping (only the review lane). */
.pq-review-questline{min-width:0;display:grid;gap:8px;padding:9px;border:1px solid var(--pq-border-soft,rgba(148,163,184,.22));border-radius:16px;background:color-mix(in srgb,var(--pq-panel,#111827) 94%,var(--pq-accent,#3b82f6) 6%)}
.pq-review-questline.is-unfiled{border-style:dashed;background:color-mix(in srgb,var(--pq-panel,#111827) 94%,transparent)}
.pq-review-questline-heading{appearance:none;display:flex;gap:10px;align-items:center;justify-content:space-between;text-align:left;width:100%;min-width:0;border:0;background:transparent;color:var(--pq-text,#e5e7eb);padding:8px 6px;border-radius:11px;cursor:pointer}
.pq-review-questline-heading:hover{background:color-mix(in srgb,var(--pq-accent,#3b82f6) 9%,transparent)}
.pq-review-questline-heading:focus-visible{outline:2px solid var(--pq-accent,#3b82f6);outline-offset:1px}
.pq-review-questline-heading-text{display:grid;gap:3px;min-width:0;flex:1}
.pq-review-questline-heading-text>small{font-size:.68rem;text-transform:uppercase;letter-spacing:.075em;color:var(--pq-text-muted,#94a3b8);font-weight:750}
.pq-review-questline-heading-text>strong{font-size:1rem;line-height:1.28;overflow-wrap:anywhere}
.pq-review-questline-purpose{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;color:var(--pq-text-muted,#94a3b8);font-size:.78rem;line-height:1.4;overflow-wrap:anywhere}
.pq-review-questline-heading-end{display:flex;gap:8px;align-items:center;flex-shrink:0}
.pq-review-questline-chevron{font-size:1.2rem;line-height:1;color:var(--pq-text-muted,#94a3b8);width:16px;text-align:center}
.pq-review-questline-cards{display:grid;gap:8px;min-width:0}
.pq-review-questline-cards .pq-kanban-card{box-shadow:0 4px 15px rgba(0,0,0,.12)}
@media (max-width:560px){.pq-review-questline{padding:8px;gap:7px}.pq-review-questline-heading{padding:7px 4px}.pq-review-questline-heading-text>strong{font-size:.97rem}}
