/* Knowledge area. Dashboard tokens and component styles take precedence over the prototype. */

/* ---------- rail navigation ---------- */
.workspace-nav{display:grid;gap:2px;margin:6px 0 18px}
.workspace-nav[hidden]{display:none}
.customer-row .workspace-nav{grid-column:1/-1;margin:6px 0 12px 12px}
.workspace-nav .nav-group{margin:14px 10px 4px;color:var(--subtle);font-size:12px;font-weight:600}
.workspace-nav .nav-item{display:flex;align-items:center;gap:10px;width:100%;min-width:0;min-height:40px;padding:8px 10px;border:0;border-left:3px solid transparent;background:transparent;color:var(--muted);font-size:14px;font-weight:540;text-align:left}
.workspace-nav .nav-item:hover{background:var(--canvas);color:var(--ink)}
.workspace-nav .nav-item[aria-current="page"]{border-left-color:var(--blue);background:var(--blue-wash);color:var(--blue-dark)}
.workspace-nav .nav-item.is-sub{padding-left:22px}
.workspace-nav .nav-item[aria-disabled="true"]{color:#a9b4b8;cursor:not-allowed;background:transparent}
.workspace-nav .nav-count{margin-left:auto;padding:0 7px;border-radius:9px;background:var(--red-wash);color:var(--red);font-size:11px;font-weight:650}
.workspace-nav .nav-count:empty{display:none}
.workspace-nav .nav-lock{margin:2px 10px 0 22px;color:var(--subtle);font-size:12px;line-height:1.45}

/* ---------- knowledge shell ---------- */
.kn{--kn-board:#f8fafa;--kn-soft:#e8edee;--kn-mist:#edf1f2;--kn-system:#5c6b72;position:relative;min-width:0}
.kn button{min-width:0}
.kn input,.kn select{width:auto;min-height:0}
.kn [hidden]{display:none!important}
.kn-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;margin:0 0 22px}
.kn-title{font-size:30px;line-height:1.2}
.kn-sub{margin-top:8px;color:var(--muted);font-size:14px}
.kn-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.kn .kn-scope{min-height:44px;padding:0 34px 0 12px}
.kn-searchbtn{display:flex;align-items:center;gap:10px;min-height:44px;min-width:240px;padding:0 10px 0 14px;border:1px solid var(--line-strong);background:var(--paper);color:var(--subtle);font-size:14px;font-weight:400;text-align:left}
.kn-searchbtn:hover{border-color:var(--blue)}
.kn-searchbtn kbd{margin-left:auto;padding:0 5px;border:1px solid var(--line);color:var(--subtle);font:inherit;font-size:11px}
.kn .secondary,.kn .primary{min-height:44px;padding:0 16px;font-size:14px}
.kn .kn-btn-sm{min-height:34px;padding:0 12px;font-size:13px}
.kn-message{padding:40px 28px;border:1px solid var(--line);background:var(--paper);color:var(--muted);line-height:1.6}
.kn-message-box{padding:40px 28px;border:1px solid var(--line);background:var(--paper)}
.kn-empty{color:var(--muted);padding:18px 0}
.kn-muted{color:var(--muted);font-size:13px}
.kn-spacer{flex:1}
.kn-link{min-height:0;padding:0;border:0;background:none;color:var(--blue-dark);font-size:13px;font-weight:550;text-decoration:underline;text-underline-offset:3px}
.kn-tag{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:12px;font-weight:600;white-space:nowrap}
.kn-tag i{width:8px;height:8px;flex:none;background:currentColor}
.kn-tag.is-red,.kn-tag.is-high{color:var(--red)}.kn-tag.is-medium{color:#94731f}.kn-tag.is-low,.kn-tag.is-grey{color:var(--subtle)}
.kn-tag.is-green,.kn-tag.is-opportunity{color:var(--green)}.kn-tag.is-amber{color:var(--amber)}.kn-tag.is-blue{color:var(--blue-dark)}
.kn-seg{display:inline-flex;padding:2px;border:1px solid var(--line-strong);background:var(--paper)}
.kn-seg button{min-height:32px;padding:0 12px;border:0;background:transparent;color:var(--muted);font-size:13px;font-weight:550}
.kn-seg button:hover{color:var(--ink)}
.kn-seg button[aria-pressed="true"]{background:var(--ink);color:#fff}
.kn-seg button:disabled{opacity:.35;cursor:default}
.kn .kn-select{min-height:38px;padding:0 30px 0 10px;font-size:13px;font-weight:550}
.kn-panel{border:1px solid var(--line);border-top:3px solid var(--blue);background:var(--paper)}
.kn-panel-hd{padding:22px 24px 20px}
.kn-panel-title{margin:10px 0 8px;font-size:22px;line-height:1.3}
.kn-body-text{max-width:66ch;font-size:15px;line-height:1.6}
.kn-sect{padding:18px 24px;border-top:1px solid var(--line)}
.kn-sect h4{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin:0 0 8px;font-size:14px;font-weight:600}
.kn-aside{color:var(--muted);font-size:12.5px;font-weight:400}
.kn-acts{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.kn-sect.kn-acts{margin-top:0}
.kn-tags{display:flex;flex-wrap:wrap;gap:16px}
.kn-why{color:var(--muted);font-size:14px;line-height:1.55}
.kn-kv{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 16px;margin:12px 0 0;font-size:14px}
.kn-kv dt{color:var(--subtle)}.kn-kv dd{margin:0}

/* ---------- findings ---------- */
.kn-figures{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:28px;border-top:1px solid var(--ink)}
.kn-fig{margin-right:18px;padding:16px 18px 4px 0;border-right:1px solid var(--line)}
.kn-fig:last-child{margin-right:0;border-right:0}
.kn-fig b{display:block;font-size:32px;font-weight:560;letter-spacing:-.02em;line-height:1.1;font-variant-numeric:tabular-nums}
.kn-fig span{display:block;margin-top:4px;color:var(--muted);font-size:13px}
.kn-fig em{display:block;margin-top:4px;color:var(--subtle);font-size:12px;font-style:normal}
.kn-fig em.is-up{color:var(--green)}.kn-fig em.is-warn{color:var(--red)}
.kn-split{display:grid;grid-template-columns:minmax(340px,.85fr) minmax(460px,1.15fr);gap:28px;align-items:start}
.kn-listhead{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.kn-listhead h3{font-size:17px}
.kn-rows{border-top:1px solid var(--ink)}
.kn-row{display:grid;grid-template-columns:4px minmax(0,1fr) auto;gap:14px;align-items:start;width:100%;min-height:0;padding:15px 14px 15px 0;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);font-weight:400;text-align:left}
.kn-row:hover{background:var(--paper)}
.kn-row[aria-selected="true"]{background:var(--paper);box-shadow:inset 3px 0 var(--blue)}
.kn-row b{display:block;font-size:15px;font-weight:600;line-height:1.4}
.kn-meta{display:flex;flex-wrap:wrap;gap:12px;margin-top:6px}
.kn-status{padding-top:2px;color:var(--muted);font-size:13px}
.kn-bar{align-self:stretch}
.kn-bar.is-high{background:var(--red)}.kn-bar.is-medium{background:#b8902f}.kn-bar.is-low{background:#8f9ca1}.kn-bar.is-opportunity{background:var(--green)}
.kn-note{margin-top:14px;color:var(--muted);font-size:13px}
.kn-detail{position:sticky;top:16px}
.kn-progress{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin-top:18px}
.kn-progress div{padding-top:8px;border-top:3px solid var(--kn-soft);color:var(--subtle);font-size:12px;font-weight:600}
.kn-progress .is-done{border-top-color:#9fb3ff;color:var(--blue-dark)}
.kn-progress .is-now{border-top-color:var(--blue);color:var(--ink)}
.kn-focusgraph{padding:6px 0;border-top:1px solid var(--line);background:var(--kn-board)}
.kn-focus-svg{display:block;width:100%;height:auto}
.kn-ev{padding:12px 0;border-top:1px solid var(--kn-soft)}
.kn-ev:first-child{padding-top:4px;border-top:0}
.kn-ev-src{display:flex;align-items:center;gap:8px;margin-bottom:4px;color:var(--muted);font-size:12px;font-weight:600}
.kn-ev-src i{width:8px;height:8px;border-radius:50%;background:var(--green)}
.kn-ev-src.is-interview i{background:var(--blue)}.kn-ev-src.is-ai i{background:var(--amber)}
.kn-ev-text{font-size:15px;line-height:1.55;overflow-wrap:anywhere}
.kn-ev-who{margin-top:3px;color:var(--subtle);font-size:12.5px}
.kn-timeline{margin:0;padding:0;list-style:none}
.kn-timeline li{position:relative;padding:0 0 10px 18px;font-size:14px}
.kn-timeline li::before{content:"";position:absolute;left:3px;top:7px;width:7px;height:7px;border-radius:50%;background:var(--line)}
.kn-timeline li.is-on::before{background:var(--blue)}
.kn-timeline time{margin-left:8px;color:var(--subtle);font-size:12.5px}
.kn-feedback{display:flex;flex-wrap:wrap;align-items:center;gap:8px;color:var(--muted);font-size:13px}
.kn-chip{min-height:30px;padding:0 10px;border:1px solid var(--line-strong);background:var(--paper);font-size:13px;font-weight:550}
.kn-chip[aria-pressed="true"]{border-color:var(--ink);background:var(--ink);color:#fff}

/* ---------- map ---------- */
.kn-view-map{margin:0 calc(-1 * clamp(24px,3vw,48px))}
.kn-mapwrap{position:relative;height:600px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.kn-maphost,.kn-canvas{position:relative;height:100%}
.kn-canvas{overflow:hidden;background:var(--kn-board);touch-action:none}
.kn-svg{display:block;width:100%;height:100%;cursor:grab}
.kn-canvas.is-dragging .kn-svg{cursor:grabbing}
.kn-float{position:absolute;z-index:2;display:flex;align-items:center;gap:8px}
.kn-tl{top:14px;left:14px;right:14px;flex-wrap:wrap;pointer-events:none}
.kn-tl>*{pointer-events:auto}
.kn-br{right:14px;bottom:14px;flex-direction:column;gap:0;border:1px solid var(--line-strong);background:var(--paper)}
.kn-br button{display:grid;place-items:center;width:36px;height:36px;min-height:0;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--muted)}
.kn-br button:last-child{border-bottom:0}
.kn-br button:hover{background:var(--kn-board);color:var(--ink)}
.kn-bl{left:14px;bottom:14px;max-width:calc(100% - 90px)}
.kn-crumb{display:flex;align-items:center;gap:12px;max-width:640px;min-height:38px;padding:0 4px 0 12px;border:1px solid var(--line-strong);background:var(--paper);color:var(--muted);font-size:13px}
.kn-crumb span{padding:6px 0}
.kn-crumb b{color:var(--ink);font-weight:600}
.kn-crumb .kn-btn{min-height:30px;padding:0 10px;border:1px solid var(--line-strong);background:var(--paper);color:var(--ink);font-size:12.5px;font-weight:550}
.kn-legend{border:1px solid var(--line-strong);background:var(--paper);font-size:12.5px;color:var(--muted)}
.kn-legend summary{padding:7px 12px;color:var(--ink);font-weight:600;cursor:pointer;list-style:none}
.kn-legend summary::-webkit-details-marker{display:none}
.kn-legend[open] summary{border-bottom:1px solid var(--line)}
.kn-legend-items{display:grid;grid-template-columns:repeat(2,auto);gap:7px 18px;padding:10px 12px}
.kn-key{display:flex;align-items:center;gap:8px}
.kn-key i{display:inline-block;flex:none;width:24px;height:10px}
.kn-key-person i{width:12px;height:12px;border-radius:50%;background:var(--blue)}
.kn-key-workflow i{border:1px solid #b7c1c5;background:#fff}
.kn-key-system i{border:1px solid var(--kn-system);border-radius:6px;background:var(--kn-mist)}
.kn-key-client i{border:1px solid var(--amber);background:var(--amber-wash)}
.kn-key-bubble i{width:14px;height:14px;border:1px solid #a9b4b8;border-radius:50%;background:#fff}
.kn-key-both i{height:0;border-top:2px solid var(--ink)}
.kn-key-one i{height:0;border-top:2px dashed var(--ink)}
.kn-key-ai i{height:0;border-top:2px dotted var(--ink)}
.kn-key-bad i{height:0;border-top:2px solid var(--red)}
.kn-key-risk i{width:8px;height:8px;border-radius:50%;background:var(--red)}
.kn-node{cursor:pointer}
.kn-node text{pointer-events:none;fill:var(--ink);font-size:11.5px}
.kn-node .kn-lbl{font-weight:600;paint-order:stroke;stroke:#fff;stroke-width:3.5px;stroke-linejoin:round}
.kn-node .kn-sub{font-weight:400;fill:var(--muted);font-size:11px}
.kn-node .kn-sub.is-risk{fill:var(--red)}
.kn-person{fill:var(--blue)}
.kn-initials{fill:#fff!important;font-weight:700;font-size:10.5px!important}
.kn-workflow{fill:#fff;stroke:#b7c1c5;stroke-width:1}
.kn-system{fill:var(--kn-mist);stroke:var(--kn-system);stroke-width:1}
.kn-client{fill:var(--amber-wash);stroke:var(--amber);stroke-width:1.2}
.kn-nodetext-system{fill:var(--kn-system)!important}
.kn-nodetext-client{font-weight:600}
.kn-bubble{fill:#fff;stroke:#a9b4b8;stroke-width:1.2}
.kn-bubble-name{font-weight:650;font-size:14px!important}
.kn-bubble-meta{fill:var(--muted)!important;font-size:12px!important}
.kn-badge{fill:var(--red)}
.kn-badge-text{fill:#fff!important;font-weight:700;font-size:11.5px!important}
.kn-dot-risk{fill:var(--red)}.kn-dot-auto{fill:var(--green)}.kn-dot-stale{fill:var(--amber)}
.kn-node:hover .kn-bubble,.kn-node:hover .kn-workflow,.kn-node:hover .kn-system,.kn-node:hover .kn-client{stroke:var(--blue)}
.kn-node.sel .kn-person{stroke:#9fb3ff;stroke-width:5}
.kn-node.sel .kn-workflow,.kn-node.sel .kn-system,.kn-node.sel .kn-client,.kn-node.sel .kn-bubble{stroke:var(--blue);stroke-width:2.5}
.kn-node.hl .kn-workflow,.kn-node.hl .kn-system,.kn-node.hl .kn-client,.kn-node.hl .kn-bubble{stroke:var(--blue);stroke-width:2}
.kn-node.hl .kn-person{stroke:#c7d3ff;stroke-width:4}
.kn-node.risk .kn-workflow{stroke:var(--red);stroke-width:2}
.kn-node.risk .kn-person{fill:var(--red)}
.kn-node.auto .kn-workflow{fill:var(--green-wash);stroke:var(--green);stroke-width:2}
.kn-node.dim,.kn-edge.dim,.kn-elab.dim{opacity:.1}
.kn-edge{fill:none;stroke:#aab5b9;stroke-width:1.2}
.kn-edge.h{stroke:var(--ink);stroke-width:1.6}
.kn-edge.u{stroke:#d4dbdd;stroke-width:1}
.kn-edge.one{stroke-dasharray:6 4}
.kn-edge.ai{stroke-dasharray:1.5 4;stroke-linecap:round}
.kn-edge.bad{stroke:var(--red);stroke-width:2}
.kn-elab circle{fill:#fff;stroke:var(--ink)}
.kn-elab text{fill:var(--ink);font-size:11px;font-weight:700}
.kn-elab.bad circle{stroke:var(--red)}.kn-elab.bad text{fill:var(--red)}
.kn-frame{fill:#fff;stroke:#e3e9ea}
.kn-frame-name{fill:var(--ink);font-size:12.5px;font-weight:600}
.kn-frame-head{cursor:pointer}
.kn-frame-act{fill:var(--blue-dark);font-size:12px;font-weight:550}
.kn-frame-head:hover .kn-frame-act{text-decoration:underline}
.kn-teamlabel{fill:var(--subtle);font-size:12.5px;font-weight:600}
.kn-loose{fill:var(--red);font-size:12px;font-weight:600}
.kn-fade{animation:kn-fade .35s ease both}
@keyframes kn-fade{from{opacity:0}to{opacity:1}}
.kn-card{position:absolute;top:66px;right:14px;z-index:4;width:340px;max-height:calc(100% - 190px);overflow:auto;border:1px solid var(--line);border-top:3px solid var(--blue);background:var(--paper);box-shadow:var(--shadow)}
.kn-card-hd{padding:14px 20px 16px}
.kn-card-hd h3{margin:6px 0 2px;font-size:19px;line-height:1.3}
.kn-card-row{display:flex;align-items:center;justify-content:space-between;margin-right:-10px}
.kn-card .kn-sect{padding:14px 20px}
.kn-hops{display:flex;align-items:center;gap:10px;margin-top:14px;color:var(--muted);font-size:13px}
.kn-x{display:grid;place-items:center;width:34px;height:34px;min-height:0;padding:0;border:0;background:transparent;color:var(--muted);font-size:22px;font-weight:400}
.kn-x:hover{color:var(--ink)}
.kn-rel{margin:0;padding:0;list-style:none}
.kn-rel li{display:flex;align-items:baseline;gap:8px;padding:7px 0;border-top:1px solid var(--kn-soft);font-size:14px}
.kn-rel li:first-child{border-top:0}
.kn-k{flex:none;width:100px;color:var(--subtle);font-size:12.5px}
.kn-jump{min-height:0;padding:0;border:0;background:none;color:var(--ink);font-weight:600;text-align:left}
.kn-jump:hover{color:var(--blue-dark)}
.kn-rel .kn-tag{margin-left:auto}

/* ---------- side sheet ---------- */
.kn-sheet{position:fixed;top:0;right:0;bottom:0;z-index:30;display:flex;flex-direction:column;width:min(560px,100%);border-left:1px solid var(--line);border-top:3px solid var(--blue);background:var(--paper);box-shadow:var(--shadow);transform:translateX(100%);transition:transform .28s cubic-bezier(.65,0,.35,1)}
.kn-sheet.is-open{transform:none}
.kn-sheet-bar{display:flex;align-items:center;justify-content:space-between;padding:10px 12px 10px 24px;border-bottom:1px solid var(--line)}
.kn-sheet-label{color:var(--blue-dark);font-size:13px;font-weight:600}
.kn-sheet-body{flex:1;overflow:auto;border:0}

/* ---------- processes ---------- */
.kn-proctabs{display:flex;overflow-x:auto;border-bottom:1px solid var(--line)}
.kn-proctabs button{flex:none;min-width:160px;min-height:0;margin-right:24px;padding:10px 18px 12px 0;border:0;border-bottom:3px solid transparent;background:transparent;color:var(--ink);font-weight:400;text-align:left}
.kn-proctabs button[aria-selected="true"]{border-bottom-color:var(--blue)}
.kn-proctabs b{display:block;font-size:14.5px;font-weight:600}
.kn-proctabs span{display:block;color:var(--muted);font-size:12.5px}
.kn-proctabs .kn-tag{display:inline-flex;margin-top:4px}
.kn-proclayout{display:grid;grid-template-columns:minmax(0,1fr) 300px;align-items:start;margin-top:20px}
.kn-lanebox{min-width:0;border:1px solid var(--line);border-right:0;background:var(--paper)}
.kn-lanebar{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:10px 14px;border-bottom:1px solid var(--line)}
.kn-lanebar label{margin:0;color:var(--muted);font-size:13px;font-weight:400}
.kn-lanescroll{overflow-x:auto}
.kn-lanes{display:block}
.kn-lane{fill:#fff}.kn-lane.is-alt{fill:#fafbfb}.kn-lane.is-unknown{fill:#fdf3f2}
.kn-lane-name{fill:var(--ink);font-size:13px;font-weight:600}
.kn-lane-name.is-unknown{fill:var(--red)}
.kn-lane-role{fill:var(--subtle);font-size:11.5px}
.kn-lane-warn{fill:var(--red);font-size:11px;font-weight:650}
.kn-lane-rule{stroke:var(--line)}
.kn-colhead{fill:var(--subtle);font-size:11.5px}
.kn-step{cursor:pointer}
.kn-step-box{fill:#fff;stroke:#b7c1c5;stroke-width:1.2}
.kn-step:hover .kn-step-box{stroke:var(--ink)}
.kn-step.is-one .kn-step-box{stroke-dasharray:5 3}
.kn-step.is-red .kn-step-box{stroke:var(--red);stroke-width:2}
.kn-step.is-green .kn-step-box{fill:var(--green-wash);stroke:var(--green);stroke-width:2}
.kn-step.is-amber .kn-step-box{fill:var(--amber-wash);stroke:var(--amber);stroke-width:2}
.kn-step.is-sel .kn-step-box{stroke:var(--blue);stroke-width:2.5}
.kn-step.is-faded{opacity:.3}
.kn-step-title{fill:var(--ink);font-size:12.5px;font-weight:600;pointer-events:none}
.kn-step-meta{fill:var(--muted);font-size:10.5px;pointer-events:none}
.kn-link{fill:none;stroke:var(--ink);stroke-width:1.4;stroke-linecap:round}
.kn-link.bad{stroke:var(--red);stroke-width:2;stroke-dasharray:6 4}
.kn-link.ai{stroke-dasharray:1.5 4}
.kn-acc.is-yes{fill:var(--green);stroke:var(--green);stroke-width:2}
.kn-acc.is-no{fill:#fff;stroke:var(--red);stroke-width:2}
.kn-locked{padding:64px 28px;text-align:center}
.kn-locked h3{margin-bottom:8px;font-size:19px}
.kn-locked p{max-width:52ch;margin:0 auto 18px;color:var(--muted)}
.kn-procside{min-height:100%;border-left:1px solid var(--line)}

/* ---------- review ---------- */
.kn-rq{max-width:1000px}
.kn-intro{max-width:70ch;margin-bottom:22px;color:var(--muted)}
.kn-group{margin-bottom:28px;border-top:1px solid var(--ink)}
.kn-ghead{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.kn-ghead b{font-size:15.5px;font-weight:600}
.kn-avatars{display:flex}
.kn-avatars span{display:grid;place-items:center;width:28px;height:28px;margin-left:-6px;border:2px solid var(--canvas);border-radius:50%;background:var(--blue);color:#fff;font-size:10.5px;font-weight:700}
.kn-avatars span:first-child{margin-left:0}
.kn-item{display:grid;grid-template-columns:86px minmax(0,1fr) 250px;gap:14px;align-items:baseline;padding:12px 0;border-bottom:1px solid var(--kn-soft)}
.kn-q{font-size:15px}
.kn-t{color:var(--subtle);font-size:12.5px}
.kn-item .kn-acts{margin:0}
.kn-sent{color:var(--green);font-size:13px;font-weight:600}

/* ---------- ask drawer ---------- */
.kn-drawer{position:fixed;top:0;right:0;bottom:0;z-index:25;display:flex;flex-direction:column;width:min(410px,100%);border-left:1px solid var(--line);border-top:3px solid var(--blue);background:var(--paper);box-shadow:var(--shadow);transform:translateX(100%);visibility:hidden;transition:transform .28s cubic-bezier(.65,0,.35,1),visibility .28s}
.kn-drawer.is-open{transform:none;visibility:visible}
.kn-drawer-hd{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:18px 12px 14px 22px;border-bottom:1px solid var(--line)}
.kn-drawer-hd h3{font-size:17px}
.kn-drawer-hd p{margin-top:3px;color:var(--muted);font-size:12.5px}
.kn-convo{flex:1;overflow:auto;padding:18px 22px}
.kn-q-user{width:fit-content;max-width:85%;margin:0 0 14px auto;padding:9px 13px;background:var(--ink);color:#fff;font-size:14.5px}
.kn-q-bot{margin:0 0 22px;font-size:14.5px;line-height:1.6}
.kn-q-bot p{margin-bottom:8px}
.kn-cite{min-height:0;padding:0 4px;border:0;background:var(--blue-wash);color:var(--blue-dark);font:inherit;font-weight:600}
.kn-cite:hover{background:#d8e3ff}
.kn-q-foot{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin-top:8px}
.kn-q-foot .kn-tag{white-space:normal}
.kn-q-steps{margin-top:8px;color:var(--muted);font-size:13px}
.kn-q-steps summary{cursor:pointer;font-weight:550}
.kn-q-steps ol{margin:6px 0 0;padding-left:18px}
.kn-empty-ask h4{margin:0 0 4px;font-size:16px;font-weight:600}
.kn-empty-ask p{color:var(--muted);font-size:13.5px}
.kn-sugg{display:grid;gap:6px;margin-top:14px}
.kn-sugg button{min-height:0;padding:9px 12px;border:1px solid var(--line-strong);background:var(--paper);color:var(--ink);font-size:14px;font-weight:400;text-align:left;white-space:normal}
.kn-sugg button:hover{border-color:var(--blue);color:var(--blue-dark)}
.kn-askform{display:flex;gap:8px;padding:12px 22px 16px;border-top:1px solid var(--line)}
.kn-askform input{flex:1;min-width:0;min-height:44px}
.kn-typing{display:inline-flex;gap:4px;padding:6px 0}
.kn-typing i{width:6px;height:6px;border-radius:50%;background:var(--subtle);animation:kn-blink 1s infinite}
.kn-typing i:nth-child(2){animation-delay:.15s}.kn-typing i:nth-child(3){animation-delay:.3s}
@keyframes kn-blink{0%,100%{opacity:.25}50%{opacity:1}}

/* ---------- dialogs and toast ---------- */
.kn-dialog{width:min(620px,calc(100vw - 32px));padding:0;border:1px solid var(--line-strong);border-top:3px solid var(--blue);background:var(--paper);color:var(--ink);box-shadow:var(--shadow)}
.kn-dialog::backdrop{background:rgba(30,42,50,.4)}
.kn-palette{margin-top:12vh}
.kn-pq{width:100%!important;min-height:54px!important;padding:0 18px;border:0;border-bottom:1px solid var(--line);font-size:16px}
.kn-pq:focus{outline:none}
.kn-results{max-height:380px;overflow:auto;padding:6px 0}
.kn-results h4{margin:10px 18px 4px;color:var(--subtle);font-size:12px;font-weight:600}
.kn-results button{display:flex;align-items:center;gap:12px;width:100%;min-height:0;padding:9px 18px;border:0;background:transparent;color:var(--ink);font-size:14.5px;font-weight:400;text-align:left}
.kn-results button[aria-selected="true"]{background:var(--blue-wash)}
.kn-ic{flex:none;width:14px;height:14px}
.kn-ic.is-person{border-radius:50%;background:var(--blue)}
.kn-ic.is-workflow{border:1px solid #8795a0;background:#fff}
.kn-ic.is-system{border:1px solid var(--kn-system);border-radius:6px;background:var(--kn-mist)}
.kn-ic.is-client{border:1px solid var(--amber);background:var(--amber-wash)}
.kn-ic.is-finding{width:4px;background:var(--red)}
.kn-ic.is-process,.kn-ic.is-team{border:2px solid var(--blue)}
.kn-hint{margin-left:auto;padding-left:12px;color:var(--subtle);font-size:12.5px;white-space:nowrap}
.kn-noresult{padding:22px 18px;color:var(--muted)}
.kn-export{width:min(500px,calc(100vw - 32px))}
.kn-dlg{padding:26px 28px}
.kn-dlg h3{margin-bottom:6px;font-size:22px}
.kn-opt{display:flex;gap:12px;margin:0;padding:12px 0;border-top:1px solid var(--kn-soft);cursor:pointer;font-weight:400}
.kn-opt input{width:18px!important;min-height:18px!important;margin-top:3px;accent-color:var(--blue)}
.kn-opt b{display:block;font-size:15px;font-weight:600}
.kn-opt span span{color:var(--muted);font-size:13px}
.kn-toast{position:fixed;left:50%;bottom:24px;z-index:40;max-width:calc(100vw - 32px);padding:11px 16px;background:var(--ink);color:#fff;font-size:14px;opacity:0;transform:translate(-50%,12px);transition:opacity .2s,transform .2s;pointer-events:none}
.kn-toast.is-on{opacity:1;transform:translate(-50%,0)}

/* ---------- responsive and motion ---------- */
@media (max-width:1180px){.kn-split{grid-template-columns:minmax(0,1fr)}.kn-detail{position:static}.kn-figures{grid-template-columns:repeat(3,minmax(0,1fr))}.kn-fig:nth-child(3){border-right:0}}
@media (max-width:900px){
  .kn-view-map{margin:0}
  .kn-card{position:static;width:auto;max-height:none;box-shadow:none}
  .kn-mapwrap{height:auto}.kn-maphost{height:70vh}
  .kn-proclayout{grid-template-columns:minmax(0,1fr)}.kn-lanebox{border-right:1px solid var(--line)}
  .kn-figures{grid-template-columns:repeat(2,minmax(0,1fr))}.kn-fig{border-right:0}
  .kn-item{grid-template-columns:minmax(0,1fr)}
  .kn-searchbtn{min-width:0;flex:1}
}
@media (prefers-reduced-motion:reduce){.kn *,.kn-sheet,.kn-drawer{transition:none!important;animation:none!important}}

/* Customer accounts gain a left rail once the workspace navigation is shown. */
.is-customer-portal.has-workspace-nav .app-shell{display:grid;grid-template-columns:248px minmax(0,1fr)}
.is-customer-portal.has-workspace-nav .setup-rail{position:sticky;top:0;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:0;min-height:100vh;max-height:100vh;padding:32px 22px 26px;border-right:1px solid var(--line);border-bottom:0;overflow-y:auto}
.is-customer-portal.has-workspace-nav .brand{align-self:flex-start;padding:0 0 22px}
.is-customer-portal.has-workspace-nav .portal-settings{align-self:flex-start;margin-top:auto}
.is-customer-portal.has-workspace-nav main{padding:32px clamp(24px,3vw,48px) 48px}
@media (max-width:760px){
  .is-customer-portal.has-workspace-nav .app-shell{display:block}
  .is-customer-portal.has-workspace-nav .setup-rail{position:static;min-height:0;max-height:none;padding:16px;border-right:0;border-bottom:1px solid var(--line)}
  .is-customer-portal.has-workspace-nav .portal-settings{margin-top:12px}
  .workspace-nav{grid-template-columns:repeat(2,minmax(0,1fr))}
  .workspace-nav .nav-group,.workspace-nav .nav-lock{grid-column:1/-1}
  .workspace-nav .nav-item.is-sub{padding-left:10px}
}
