/* The Harbor Wiki (Help window, second tab). Everything is scoped under .wk / .wk-panel so it can never touch the rest of the game's UI. */
.panel.help-panel{width:min(1180px,97vw);height:min(86vh,780px);max-height:86vh}                 /* the Help window has ONE size for both tabs */
.panel.help-panel:not(.wk-panel) .pb .help-grid{max-width:980px}
.panel.help-panel:not(.wk-panel) .pb .tips{max-width:980px}
.panel.wk-panel .pb{padding:0;overflow:hidden;display:flex;min-height:0}
.panel.wk-panel .tabs{padding-bottom:0}

.wk{--c:#4fd1c5;display:flex;flex:1;min-height:0;width:100%;font-family:var(--font);color:var(--ink)}
.wk *{box-sizing:border-box}
.wk button{font-family:inherit;cursor:pointer;color:inherit}
.wk b{font-weight:700}

/* ---------------------------------------------------------------- sidebar */
.wk-side{width:272px;flex:none;display:flex;flex-direction:column;min-height:0;background:linear-gradient(180deg,rgba(6,22,34,.55),rgba(6,22,34,.3));border-right:1px solid var(--line)}
.wk-search{position:relative;margin:14px 14px 8px;display:flex;align-items:center}
.wk-sicon{position:absolute;left:12px;font-size:14px;opacity:.7;pointer-events:none}
.wk-q{width:100%;padding:10px 34px 10px 36px;border-radius:999px;border:1px solid var(--line);background:rgba(255,255,255,.07);color:var(--ink);font:500 14px var(--font);outline:none;transition:border-color .15s,background .15s,box-shadow .15s}
.wk-q::placeholder{color:var(--ink-dim);opacity:.8}
.wk-q:focus{border-color:var(--teal);background:rgba(79,209,197,.1);box-shadow:0 0 0 3px rgba(79,209,197,.16)}
.wk-clear{position:absolute;right:8px;width:24px;height:24px;border-radius:50%;border:0;background:rgba(255,255,255,.12);font-size:11px;line-height:1}
.wk-clear:hover{background:rgba(255,255,255,.25)}
.wk-nav{flex:1;overflow-y:auto;padding:4px 10px 14px;min-height:0}
.wk-nav::-webkit-scrollbar,.wk-main::-webkit-scrollbar{width:8px}
.wk-nav::-webkit-scrollbar-thumb,.wk-main::-webkit-scrollbar-thumb{background:rgba(255,255,255,.18);border-radius:8px}
.wk-home{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;margin-bottom:6px;border-radius:12px;border:1px solid transparent;background:transparent;font-size:14px;text-align:left}
.wk-home:hover,.wk-home.on{background:rgba(255,255,255,.08);border-color:var(--line)}
.wk-ncat{margin:2px 0;border-radius:14px;border:1px solid transparent;transition:background .15s}
.wk-ncat.cur{background:rgba(255,255,255,.045);border-color:rgba(255,255,255,.08)}
.wk-nhead{display:flex;align-items:center;gap:10px;width:100%;padding:7px 10px;border:0;background:transparent;border-radius:12px;text-align:left;font-size:14.5px;font-weight:600}
.wk-nhead:hover{background:rgba(255,255,255,.07)}
.wk-nhead i{font-style:normal;width:28px;height:28px;border-radius:9px;display:grid;place-items:center;font-size:16px;background:color-mix(in srgb,var(--c) 26%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--c) 45%,transparent)}
.wk-nhead span{flex:1}
.wk-nhead em{font-style:normal;font-size:11px;color:var(--ink-dim);background:rgba(255,255,255,.08);padding:1px 7px;border-radius:999px}
.wk-nlist{padding:2px 6px 8px 30px;display:flex;flex-direction:column;gap:1px;border-left:2px solid color-mix(in srgb,var(--c) 40%,transparent);margin:0 0 2px 22px}
.wk-nitem{padding:5px 10px;border:0;border-radius:8px;background:transparent;text-align:left;font-size:13px;color:var(--ink-dim);line-height:1.25}
.wk-nitem:hover{background:rgba(255,255,255,.08);color:#fff}
.wk-nitem.on{background:color-mix(in srgb,var(--c) 24%,transparent);color:#fff;font-weight:600}

/* ---------------------------------------------------------------- main */
.wk-mainwrap{flex:1;min-width:0;display:flex;flex-direction:column;min-height:0}
.wk-bar{display:flex;align-items:center;gap:6px;padding:9px 16px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.03)}
.wk-bar>button{height:32px;min-width:34px;padding:0 10px;border-radius:10px;border:1px solid var(--line);background:rgba(255,255,255,.07);font-size:13px;font-weight:600;white-space:nowrap}
.wk-bar>button:hover:not(:disabled){background:rgba(79,209,197,.2);border-color:var(--teal)}
.wk-bar>button:disabled{opacity:.35;cursor:default}
.wk-crumbs{flex:1;min-width:0;display:flex;align-items:center;gap:6px;padding:0 8px;font-size:13px;color:var(--ink-dim);overflow:hidden;white-space:nowrap}
.wk-crumbs i{font-style:normal;opacity:.5}
.wk-crumbs button{border:0;background:transparent;padding:2px 4px;border-radius:6px;color:var(--teal);font-size:13px}
.wk-crumbs button:hover{background:rgba(255,255,255,.08)}
.wk-crumbs span{color:#fff;font-weight:600;overflow:hidden;text-overflow:ellipsis}
.wk-main{flex:1;overflow-y:auto;min-height:0;scroll-behavior:auto}
.wk-page{padding:22px 26px 34px;max-width:1000px;margin:0 auto;animation:wkfade .22s ease}
@keyframes wkfade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.wk-loading{padding:14px;color:var(--ink-dim);font-size:13px}
.wk-loading.big{padding:60px;text-align:center;font-size:16px}

/* ---------------------------------------------------------------- home */
.wk-hero{border-radius:20px;padding:26px 28px;background:radial-gradient(120% 140% at 0% 0%,rgba(79,209,197,.32),transparent 55%),radial-gradient(100% 120% at 100% 100%,rgba(255,207,92,.2),transparent 55%),rgba(255,255,255,.04);border:1px solid var(--line)}
.wk-hero h1{margin:0 0 6px;font-size:30px;letter-spacing:.01em}
.wk-hero p{margin:0 0 14px;max-width:640px;color:var(--ink-dim);font-size:15.5px;line-height:1.55}
.wk-stats{display:flex;gap:10px;flex-wrap:wrap}
.wk-stats span{padding:4px 12px;border-radius:999px;background:rgba(0,0,0,.25);font-size:13px;color:var(--ink-dim)}
.wk-stats b{color:var(--gold)}
.wk-sect{margin:24px 0 10px;font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-dim);display:flex;align-items:center;gap:10px}
.wk-sect::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,var(--line),transparent)}
.wk-sect.first{margin-top:4px}
.wk-cats{display:grid;grid-template-columns:repeat(auto-fill,minmax(285px,1fr));gap:12px}
.wk-cat{display:flex;gap:14px;align-items:flex-start;text-align:left;padding:14px 16px;border-radius:16px;border:1px solid color-mix(in srgb,var(--c) 38%,transparent);background:linear-gradient(135deg,color-mix(in srgb,var(--c) 18%,transparent),rgba(255,255,255,.03));transition:transform .15s,box-shadow .15s,border-color .15s}
.wk-cat:hover{transform:translateY(-3px);border-color:var(--c);box-shadow:0 10px 24px rgba(0,0,0,.28)}
.wk-cat>i{font-style:normal;flex:none;width:46px;height:46px;border-radius:14px;display:grid;place-items:center;font-size:26px;background:color-mix(in srgb,var(--c) 32%,rgba(0,0,0,.2));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--c) 55%,transparent)}
.wk-cat b{display:block;font-size:16.5px;margin-bottom:2px}
.wk-cat span{display:block;font-size:13px;line-height:1.4;color:var(--ink-dim)}
.wk-cat em{display:inline-block;margin-top:6px;font-style:normal;font-size:11.5px;font-weight:700;color:var(--c);letter-spacing:.04em}
.wk-feature{display:flex;gap:16px;align-items:center;padding:16px 20px;border-radius:18px;border:1px solid color-mix(in srgb,var(--c) 40%,transparent);background:linear-gradient(135deg,color-mix(in srgb,var(--c) 22%,transparent),rgba(255,255,255,.03))}
.wk-feature>i{font-style:normal;font-size:44px}
.wk-feature b{font-size:19px}
.wk-feature p{margin:4px 0 10px;color:var(--ink-dim);font-size:14.5px;line-height:1.5}
.wk-btn{padding:7px 18px;border-radius:999px;border:0;background:linear-gradient(180deg,#ffd86b,#f4a62a);color:#3a2300;font-weight:700;font-size:13.5px;box-shadow:0 3px 0 rgba(0,0,0,.25)}
.wk-btn:hover{filter:brightness(1.07)}

/* chips and cards */
.wk-chips{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}
.wk-chip{display:inline-flex;align-items:center;gap:7px;padding:6px 14px 6px 10px;border-radius:999px;border:1px solid var(--line);background:rgba(255,255,255,.07);font-size:13.5px;font-weight:500;position:relative;transition:background .12s,border-color .12s,transform .12s}
.wk-chip i{font-style:normal}
.wk-chip:hover{background:rgba(79,209,197,.2);border-color:var(--teal);transform:translateY(-1px)}
.wk-chips.dim .wk-chip{background:rgba(255,255,255,.04);color:var(--ink-dim);font-size:13px}
.wk-cardgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:12px}
.wk-card{display:flex;gap:12px;align-items:flex-start;text-align:left;padding:13px 15px;border-radius:14px;border:1px solid var(--line);border-left:4px solid var(--c);background:rgba(255,255,255,.05);transition:transform .14s,background .14s}
.wk-card:hover{transform:translateY(-2px);background:color-mix(in srgb,var(--c) 14%,rgba(255,255,255,.05))}
.wk-card>i{font-style:normal;font-size:26px;line-height:1.1}
.wk-card b{display:block;font-size:15.5px;margin-bottom:2px}
.wk-card span{display:block;font-size:13px;line-height:1.4;color:var(--ink-dim)}
.wk-cathead{display:flex;gap:18px;align-items:center;padding:20px 24px;margin-bottom:18px;border-radius:20px;border:1px solid color-mix(in srgb,var(--c) 45%,transparent);background:linear-gradient(135deg,color-mix(in srgb,var(--c) 26%,transparent),rgba(255,255,255,.03))}
.wk-cathead>i{font-style:normal;font-size:52px}
.wk-cathead h1{margin:0;font-size:28px}
.wk-cathead p{margin:4px 0 4px;color:var(--ink-dim);font-size:15px}
.wk-cathead small{color:var(--c);font-weight:700;letter-spacing:.05em}

/* ---------------------------------------------------------------- article */
.wk-arthead{display:flex;gap:16px;align-items:center;padding-bottom:16px;margin-bottom:6px;border-bottom:2px solid color-mix(in srgb,var(--c) 45%,transparent)}
.wk-arthead>i{font-style:normal;font-size:46px;flex:none;width:68px;height:68px;border-radius:20px;display:grid;place-items:center;background:color-mix(in srgb,var(--c) 26%,rgba(0,0,0,.15));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--c) 55%,transparent)}
.wk-arthead h1{margin:0;font-size:30px;line-height:1.15}
.wk-arthead p{margin:4px 0 0;color:var(--ink-dim);font-size:15.5px;font-style:italic}
.wk-cols{display:flex;gap:26px;align-items:flex-start}
.wk-body{flex:1;min-width:0}
.wk-aside{width:240px;flex:none;position:sticky;top:12px;display:flex;flex-direction:column;gap:14px}
.wk-h2{margin:26px 0 10px;font-size:21px;padding-left:12px;border-left:4px solid var(--c);line-height:1.25}
.wk-h3{margin:18px 0 6px;font-size:16.5px;color:var(--gold)}
.wk-p{margin:0 0 12px;font-size:15px;line-height:1.7}
.wk-body>.wk-p:first-child{font-size:16px}
.wk-ul,.wk-ol{margin:0 0 14px;padding-left:4px;list-style:none;display:flex;flex-direction:column;gap:6px;counter-reset:wk}
.wk-ul li,.wk-ol li{position:relative;padding-left:26px;font-size:15px;line-height:1.6}
.wk-ul li::before{content:"";position:absolute;left:8px;top:.62em;width:7px;height:7px;border-radius:50%;background:var(--c)}
.wk-ol li{counter-increment:wk}
.wk-ol li::before{content:counter(wk);position:absolute;left:0;top:.1em;width:20px;height:20px;border-radius:50%;background:color-mix(in srgb,var(--c) 40%,rgba(0,0,0,.2));font-size:11.5px;font-weight:700;display:grid;place-items:center}
.wk-note{display:flex;gap:12px;align-items:flex-start;margin:14px 0;padding:12px 16px;border-radius:14px;font-size:14.5px;line-height:1.6;border:1px solid;background:rgba(255,255,255,.05)}
.wk-note>i{font-style:normal;font-size:20px;line-height:1.3}
.wk-n-tip{border-color:rgba(255,207,92,.4);background:rgba(255,207,92,.09)}
.wk-n-info{border-color:rgba(125,211,252,.4);background:rgba(125,211,252,.09)}
.wk-n-warn,.wk-note.wk-warn{border-color:rgba(255,120,100,.5);background:rgba(255,107,107,.1)}
.wk-n-fun{border-color:rgba(196,181,253,.45);background:rgba(196,181,253,.1)}
.wk-kv{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px;margin:12px 0}
.wk-kv>div{padding:9px 14px;border-radius:12px;background:rgba(255,255,255,.06);border:1px solid var(--line)}
.wk-kv span{display:block;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim)}
.wk-kv b{font-size:15px}
.wk-info{border-radius:16px;border:1px solid color-mix(in srgb,var(--c) 45%,transparent);background:color-mix(in srgb,var(--c) 10%,rgba(255,255,255,.04));overflow:hidden}
.wk-info-h{display:flex;align-items:center;gap:8px;padding:9px 14px;font-weight:700;font-size:13.5px;letter-spacing:.06em;text-transform:uppercase;background:color-mix(in srgb,var(--c) 28%,rgba(0,0,0,.2))}
.wk-info-h i{font-style:normal}
.wk-info-r{display:flex;flex-direction:column;gap:1px;padding:8px 14px;border-top:1px solid rgba(255,255,255,.07)}
.wk-info-r span{font-size:11.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-dim)}
.wk-info-r b{font-size:14.5px;line-height:1.35}
.wk-toc{border-radius:16px;border:1px solid var(--line);background:rgba(255,255,255,.04);padding:10px 8px}
.wk-toc-h{padding:2px 8px 6px;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-dim)}
.wk-toc button{display:block;width:100%;text-align:left;padding:5px 10px;border:0;border-radius:8px;background:transparent;font-size:13.5px;color:var(--ink)}
.wk-toc button:hover{background:rgba(255,255,255,.09);color:var(--teal)}
.wk-pn{display:flex;gap:12px;margin-top:26px}
.wk-pn>*{flex:1}
.wk-pn-b{display:flex;flex-direction:column;gap:2px;text-align:left;padding:11px 16px;border-radius:14px;border:1px solid var(--line);background:rgba(255,255,255,.05)}
.wk-pn-b.r{text-align:right}
.wk-pn-b small{font-size:11.5px;color:var(--ink-dim)}
.wk-pn-b:hover{border-color:var(--c);background:color-mix(in srgb,var(--c) 14%,rgba(255,255,255,.05))}

/* links (inside text) */
.wk-link{display:inline;position:relative;padding:0 1px;margin:0;border:0;border-bottom:1.5px dotted rgba(125,227,217,.75);background:transparent;color:#7de3d9;font:inherit;font-weight:600;line-height:inherit;text-align:inherit}
.wk-link:hover{background:rgba(79,209,197,.2);border-bottom-style:solid;border-radius:4px}
.wk-link.broken{color:#ff9a8a;border-bottom-color:#ff9a8a;cursor:help}
.wk-link[data-tip]:hover::after,.wk-chip[data-tip]:hover::after{content:attr(data-tip);position:absolute;left:0;top:calc(100% + 6px);z-index:30;width:max-content;max-width:280px;padding:8px 12px;border-radius:10px;background:rgba(6,20,30,.96);border:1px solid var(--line);box-shadow:0 8px 22px rgba(0,0,0,.45);font:500 12.5px/1.45 var(--font);color:var(--ink);white-space:normal;text-align:left;font-style:normal;pointer-events:none}

/* tables */
.wk-tablewrap{margin:12px 0 16px;overflow-x:auto;border-radius:14px;border:1px solid var(--line)}
.wk-table{width:100%;border-collapse:collapse;font-size:13.5px}
.wk-table th{padding:9px 12px;text-align:left;font-size:11.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-dim);background:rgba(255,255,255,.07);white-space:nowrap;position:sticky;top:0}
.wk-sortable th{cursor:pointer;user-select:none}
.wk-sortable th:hover{color:#fff}
.wk-sortable th i{display:inline-block;width:10px;margin-left:4px;font-style:normal;opacity:.6}
.wk-sortable th[data-dir=asc] i::before{content:"▲"}
.wk-sortable th[data-dir=desc] i::before{content:"▼"}
.wk-table td{padding:8px 12px;border-top:1px solid rgba(255,255,255,.06);vertical-align:top;line-height:1.45}
.wk-table tbody tr:nth-child(even){background:rgba(255,255,255,.035)}
.wk-table tbody tr:hover{background:rgba(79,209,197,.08)}
.wk-sortable td:last-child{min-width:190px}
.wk-table small{color:var(--ink-dim)}
.wk-gold{color:var(--gold);font-weight:700;white-space:nowrap}
.wk-rar{display:inline-block;padding:1px 9px;border-radius:999px;font-size:12px;font-weight:700;color:var(--c);background:color-mix(in srgb,var(--c) 18%,transparent);border:1px solid color-mix(in srgb,var(--c) 45%,transparent)}
.wk-swatch{display:inline-block;width:16px;height:16px;border-radius:5px;vertical-align:-3px;border:1px solid rgba(255,255,255,.4)}
.wk-tfilter{margin:10px 0 0}
.wk-filter{width:100%;max-width:360px;padding:8px 14px;border-radius:999px;border:1px solid var(--line);background:rgba(255,255,255,.07);color:var(--ink);font:500 13.5px var(--font);outline:none}
.wk-filter:focus{border-color:var(--teal);background:rgba(79,209,197,.1)}
.wk-timeline{display:flex;flex-direction:column;gap:14px;margin:14px 0}
.wk-tl{display:flex;gap:16px}
.wk-tl-v{flex:none;width:92px;text-align:right;padding-top:2px}
.wk-tl-v b{display:block;color:var(--gold);font-size:15px}
.wk-tl-v small{color:var(--ink-dim);font-size:12px}
.wk-tl-b{flex:1;padding:0 0 4px 18px;border-left:2px solid var(--line);position:relative}
.wk-tl-b::before{content:"";position:absolute;left:-6px;top:6px;width:10px;height:10px;border-radius:50%;background:var(--teal)}
.wk-tl-b h4{margin:0 0 6px;font-size:16px}
.wk-tl-b ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:5px;font-size:13.5px;line-height:1.5}
.wk-tl-b li{display:flex;gap:8px}
.wk-tl-b em{font-style:normal;color:var(--ink-dim)}

/* search results */
.wk-results{display:flex;flex-direction:column;gap:8px}
.wk-res{display:flex;gap:14px;align-items:flex-start;text-align:left;padding:12px 16px;border-radius:14px;border:1px solid var(--line);border-left:4px solid var(--c);background:rgba(255,255,255,.05)}
.wk-res:hover{background:color-mix(in srgb,var(--c) 14%,rgba(255,255,255,.05))}
.wk-res>i{font-style:normal;font-size:26px}
.wk-res b{font-size:15.5px}
.wk-res small{margin-left:10px;color:var(--ink-dim);font-size:12px}
.wk-res span{display:block;margin-top:2px;font-size:13px;line-height:1.45;color:var(--ink-dim)}
.wk-res mark{background:rgba(255,207,92,.3);color:#fff;border-radius:3px;padding:0 2px}
.wk-empty{padding:50px 20px;text-align:center;color:var(--ink-dim);font-size:15px;line-height:1.8}

@media (max-width:900px){
  .wk-side{width:210px}
  .wk-cols{flex-direction:column}
  .wk-aside{width:100%;position:static;order:-1}
  .wk-page{padding:16px}
}
