/* Overview, pinned tools, What’s New, search, and Prospect Analyzer styles. */
:root {
  --variant-font: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

html, body, button, input, select, textarea { font-family: var(--variant-font); }

body[data-game="icarus"] { --field-accent: #d7a95d; --field-accent-soft: rgba(215,169,93,.14); }
body[data-game="valheim"] { --field-accent: #8fb08a; --field-accent-soft: rgba(143,176,138,.14); }

.header-news-btn {
  border: 1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.045); color: #d8d3c8;
  border-radius: 8px; padding: 8px 10px; font-size: 12px; font-weight: 750; cursor: pointer; white-space: nowrap;
}
.header-news-btn:hover { border-color: var(--field-accent); color: #fff; }
.header-news-btn.has-new::after { content: "NEW"; margin-left: 7px; color: #15130f; background: var(--field-accent); border-radius: 999px; padding: 2px 5px; font-size: 8px; letter-spacing: .08em; }

.field-section-head { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; margin:18px 0 10px; }
.field-section-head h3 { margin:2px 0 0; font-size:18px; color:#f1ede5; }
.field-section-head p { margin:5px 0 0; color:#9f9a90; font-size:13px; }
.field-eyebrow, .field-feature-kicker { display:block; color:var(--field-accent); font-size:10px; font-weight:850; letter-spacing:.14em; }

.field-pin-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px; }
.field-pin-card { text-align:left; border:1px solid rgba(255,255,255,.09); border-radius:10px; padding:12px; min-height:82px; background:linear-gradient(145deg,rgba(255,255,255,.045),rgba(255,255,255,.015)); color:#ece8df; cursor:pointer; }
.field-pin-card:hover { border-color:var(--field-accent); transform:translateY(-1px); }
.field-pin-card strong { display:block; font-size:13px; margin-bottom:5px; }
.field-pin-card span { color:#9f9a90; font-size:11px; line-height:1.4; }
.field-pin-picker { margin-top:9px; border:1px solid rgba(255,255,255,.08); border-radius:10px; padding:8px; background:#111310; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; }
.field-pin-picker[hidden] { display:none; }
.field-pin-picker label { display:flex; align-items:flex-start; gap:8px; padding:8px; border-radius:7px; cursor:pointer; }
.field-pin-picker label:hover { background:rgba(255,255,255,.04); }
.field-pin-picker b, .field-pin-picker small { display:block; }
.field-pin-picker small { color:#8f8b83; margin-top:2px; }

.field-feature-grid { display:grid; grid-template-columns:1.35fr 1fr 1fr; gap:10px; }
.field-feature-card { position:relative; overflow:hidden; min-height:190px; border:1px solid rgba(255,255,255,.10); border-radius:13px; padding:18px; background:linear-gradient(155deg,var(--field-accent-soft),rgba(11,12,11,.94) 58%); }
.field-feature-card::after { content:""; position:absolute; right:-55px; top:-55px; width:150px; height:150px; border:1px solid rgba(255,255,255,.06); border-radius:50%; box-shadow:0 0 0 28px rgba(255,255,255,.018),0 0 0 55px rgba(255,255,255,.012); pointer-events:none; }
.field-feature-card h3 { position:relative; margin:7px 0 7px; font-size:20px; color:#f3eee4; }
.field-feature-card p { position:relative; color:#aaa49a; font-size:13px; line-height:1.5; max-width:52ch; min-height:58px; }
.field-actions { display:flex; flex-wrap:wrap; gap:7px; }
.field-feature-card .vh-btn { position:relative; z-index:1; margin-top:8px; }
.field-icarus-showcase .feature-build { background:linear-gradient(145deg,rgba(196,134,51,.22),rgba(11,12,11,.95) 62%), radial-gradient(circle at 90% 15%,rgba(232,184,100,.15),transparent 35%); }
.field-valheim-showcase .field-feature-card { background:linear-gradient(145deg,rgba(83,122,79,.20),rgba(10,12,10,.95) 62%); }

.field-command-layer, .field-news-layer { position:fixed; inset:0; z-index:5000; background:rgba(3,4,4,.72); backdrop-filter:blur(10px); display:grid; place-items:start center; padding:12vh 16px 20px; }
.field-command-layer[hidden], .field-news-layer[hidden] { display:none; }
.field-command { width:min(720px,100%); border:1px solid rgba(255,255,255,.13); border-radius:14px; overflow:hidden; background:#121411; box-shadow:0 24px 90px rgba(0,0,0,.55); }
.field-command-input-row { display:grid; grid-template-columns:auto 1fr auto; gap:10px; align-items:center; padding:13px 14px; border-bottom:1px solid rgba(255,255,255,.08); }
.field-command-input-row input { width:100%; border:0; outline:0; background:transparent; color:#f2eee6; font-size:16px; }
.field-command-input-row kbd { border:1px solid rgba(255,255,255,.14); border-radius:5px; padding:2px 5px; color:#8e8a82; font-size:10px; }
.field-command-results { max-height:55vh; overflow:auto; padding:7px; }
.field-command-results button { width:100%; display:flex; align-items:center; justify-content:space-between; gap:14px; text-align:left; border:0; border-radius:8px; padding:10px; background:transparent; color:#e9e5dc; cursor:pointer; }
.field-command-results button:hover, .field-command-results button:focus { background:var(--field-accent-soft); outline:none; }
.field-command-results b, .field-command-results small { display:block; }
.field-command-results small { color:#8e8a82; margin-top:2px; }
.field-command-results em { color:var(--field-accent); font-size:9px; font-style:normal; font-weight:850; letter-spacing:.11em; }
.field-command-empty { padding:26px; text-align:center; color:#8e8a82; }

.field-news { width:min(760px,100%); max-height:74vh; overflow:auto; border:1px solid rgba(255,255,255,.13); border-radius:14px; background:#121411; box-shadow:0 24px 90px rgba(0,0,0,.55); padding:18px; }
.field-news-head { display:flex; align-items:start; justify-content:space-between; gap:12px; }
.field-news-head h2 { margin:3px 0 12px; }
.field-news-head button { border:0; background:transparent; color:#a9a49b; font-size:25px; cursor:pointer; }
.field-news-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.field-news-grid article { border:1px solid rgba(255,255,255,.08); border-radius:9px; padding:12px; background:rgba(255,255,255,.025); }
.field-news-grid article:only-child { grid-column:1 / -1; }
.field-news-grid b { color:#eee9df; }
.field-news-grid p, .field-news-note { color:#9e998f; font-size:12px; line-height:1.45; }
.field-news-grid p { margin:5px 0 0; }
.field-news-note { margin-top:10px; padding:9px 10px; border-left:2px solid var(--field-accent); background:var(--field-accent-soft); }

.field-analyzer-table { display:grid; gap:7px; margin-top:10px; max-height:520px; overflow:auto; }
.field-analyzer-table article { display:grid; grid-template-columns:34px minmax(0,1fr); gap:9px; align-items:start; border:1px solid rgba(255,255,255,.07); border-radius:8px; padding:9px; }
.field-analyzer-table b, .field-analyzer-table small, .field-analyzer-table code { display:block; }
.field-analyzer-table small { color:#aaa399; margin-top:2px; }
.field-analyzer-table code { color:#79766f; margin-top:4px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

.field-mobile-bar { display:none; }

/* The progression cards already contain the data. A timeline makes the journey easier to scan. */
#valheim-progression .vh-stage { position:relative; margin-left:20px; }
#valheim-progression .vh-stage::before { content:""; position:absolute; left:-21px; top:-14px; bottom:-14px; width:2px; background:rgba(143,176,138,.15); }
#valheim-progression .vh-stage.current { border-color:rgba(143,176,138,.6); box-shadow:0 0 0 1px rgba(143,176,138,.08),0 12px 35px rgba(0,0,0,.18); }

/* Portal routes now read as a network instead of a plain list. */
.vhx-portal-graph { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:9px; margin:12px 0 4px; }
.vhx-portal-graph-group { border:1px solid rgba(255,255,255,.08); border-radius:10px; padding:10px; background:rgba(255,255,255,.025); }
.vhx-portal-graph-group.paired { border-color:rgba(143,176,138,.32); }
.vhx-portal-graph-tag { color:#dcd5c8; font-weight:800; font-size:12px; margin-bottom:8px; }
.vhx-portal-graph-route { display:flex; align-items:center; flex-wrap:wrap; gap:5px; }
.vhx-portal-graph-node { padding:6px 8px; border-radius:999px; background:#171a16; border:1px solid rgba(255,255,255,.09); font-size:11px; }
.vhx-portal-graph-link { color:#6f8f6b; font-weight:900; }
.vhx-toolkit-home-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; }
.vhx-toolkit-home-card { border:1px solid rgba(255,255,255,.08); border-radius:10px; padding:13px; background:rgba(255,255,255,.025); cursor:pointer; color:#ddd6ca; text-align:left; }
.vhx-toolkit-home-card:hover { border-color:#789174; background:rgba(120,145,116,.09); }
.vhx-toolkit-home-card b, .vhx-toolkit-home-card span { display:block; }
.vhx-toolkit-home-card span { margin-top:5px; color:#8f8a82; font-size:11px; line-height:1.4; }
.vhx-food-optimizer { margin-bottom:10px; border:1px solid rgba(143,176,138,.22); border-radius:10px; padding:11px; background:rgba(143,176,138,.06); }
.vhx-food-optimizer-result { display:grid; gap:6px; margin-top:8px; }
.vhx-food-optimizer-result .vhx-item { margin:0; }

@media (max-width: 1050px) {
  .field-feature-grid { grid-template-columns:1fr 1fr; }
  .field-feature-card:first-child { grid-column:1 / -1; }
  .field-pin-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .vhx-toolkit-home-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width: 820px) {
  body { padding-bottom:calc(64px + env(safe-area-inset-bottom)); }
  .header-news-btn { display:none; }
  .field-feature-grid, .field-pin-grid, .field-pin-picker, .field-news-grid, .vhx-toolkit-home-grid { grid-template-columns:1fr; }
  .field-feature-card:first-child { grid-column:auto; }
  .field-feature-card { min-height:0; }
  .field-mobile-bar { display:grid; grid-template-columns:repeat(4,1fr); position:fixed; left:8px; right:8px; bottom:max(8px,env(safe-area-inset-bottom)); z-index:3900; border:1px solid rgba(255,255,255,.12); border-radius:13px; overflow:hidden; background:rgba(15,17,15,.94); backdrop-filter:blur(12px); box-shadow:0 8px 30px rgba(0,0,0,.45); }
  .field-mobile-bar button { border:0; border-right:1px solid rgba(255,255,255,.06); background:transparent; color:#c6c1b8; padding:11px 5px; font-size:11px; font-weight:700; }
  .field-mobile-bar button:last-child { border-right:0; }
  .field-command-layer, .field-news-layer { padding-top:7vh; }
}

.field-field-status {
  display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:1px; margin-top:10px;
  border:1px solid rgba(255,255,255,.08); border-radius:10px; overflow:hidden; background:rgba(255,255,255,.06);
}
.field-field-status > div { padding:10px 12px; background:#111310; }
.field-field-status span { display:block; color:#827e76; font-size:8px; font-weight:850; letter-spacing:.12em; }
.field-field-status b { display:block; margin-top:3px; color:#e8e3d9; font-size:13px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

.field-campaign-card summary { display:flex; align-items:center; justify-content:space-between; gap:12px; cursor:pointer; }
.field-campaign-card summary::marker { color:var(--field-accent); }
.field-campaign-track { display:flex; gap:7px; overflow-x:auto; padding:12px 2px 4px; scrollbar-width:thin; }
.field-campaign-node { flex:0 0 150px; display:grid; grid-template-columns:28px minmax(0,1fr); grid-template-rows:auto auto; column-gap:8px; text-align:left; border:1px solid rgba(255,255,255,.08); border-radius:9px; padding:9px; background:#131512; color:#ded9cf; cursor:pointer; }
.field-campaign-node:hover { border-color:var(--field-accent); }
.field-campaign-node > span { grid-row:1 / 3; display:grid; place-items:center; align-self:center; width:27px; height:27px; border-radius:50%; border:1px solid rgba(255,255,255,.12); color:#9e998f; font-size:10px; font-weight:900; }
.field-campaign-node b { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-size:11px; }
.field-campaign-node small { margin-top:2px; color:#827e76; font-size:9px; }
.field-campaign-node.done { border-color:rgba(122,161,111,.3); background:rgba(122,161,111,.07); }
.field-campaign-node.done > span { background:rgba(122,161,111,.15); border-color:rgba(122,161,111,.35); color:#a9c6a2; }

@media (max-width: 820px) {
  .field-field-status { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .field-field-status > div:first-child { grid-column:1 / -1; }
}

/* The active Valheim world should read as a dashboard, not another utility card. */
#valheim-home .vhx-home > .vhx-card {
  position:relative; overflow:hidden; border-color:rgba(143,176,138,.26);
  background:linear-gradient(145deg,rgba(76,112,72,.15),rgba(15,18,15,.96) 62%);
  box-shadow:0 16px 38px rgba(0,0,0,.16);
}
#valheim-home .vhx-home > .vhx-card::after {
  content:""; position:absolute; right:-70px; bottom:-95px; width:230px; height:230px; border-radius:50%;
  border:1px solid rgba(143,176,138,.08); box-shadow:0 0 0 38px rgba(143,176,138,.025),0 0 0 76px rgba(143,176,138,.012); pointer-events:none;
}
#valheim-home .vhx-world-title { font-size:clamp(22px,3vw,30px); color:#ece9df; }

body[data-game="icarus"] header { border-bottom-color:rgba(215,169,93,.22); }
body[data-game="valheim"] header { border-bottom-color:rgba(143,176,138,.22); }
body[data-game="icarus"] nav button.active { box-shadow:inset 2px 0 0 #d7a95d; }
body[data-game="valheim"] nav button.active { box-shadow:inset 2px 0 0 #8fb08a; }


/* Saved Prospect Library keeps imported analyzer maps easy to reopen and share. */
.field-prospect-manager { display:grid; gap:12px; }
.field-prospect-manager-head { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; }
.field-prospect-manager-head .vhelp { max-width:820px; margin-top:5px; }
.field-prospect-storage-badge { flex:0 0 auto; padding:6px 9px; border:1px solid rgba(255,255,255,.09); border-radius:999px; background:rgba(255,255,255,.035); color:#a49d91; font-size:10px; font-weight:800; letter-spacing:.04em; white-space:nowrap; }
.field-prospect-storage-badge.pc { border-color:rgba(122,184,137,.3); background:rgba(122,184,137,.08); color:#a8cbb0; }
.field-prospect-manager-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.field-prospect-manager-grid > section { min-width:0; padding:11px; border:1px solid rgba(255,255,255,.075); border-radius:9px; background:rgba(255,255,255,.018); }
.field-prospect-saved-panel,
.field-prospect-share-panel { grid-column:1 / -1; }
.field-prospect-manager-label { margin-bottom:8px; color:#d8cfbf; font-size:11px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }
.field-prospect-manager-help { margin-top:7px; line-height:1.45; }
.field-prospect-manager-help b { color:#bdb4a4; font-weight:700; }
.field-prospect-folder-row { display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
.field-prospect-path-help { margin-top:8px; color:#77726a; font-size:10px; }
.field-prospect-path-help summary { width:max-content; max-width:100%; cursor:pointer; color:#b6a983; }
.field-prospect-path-row { display:flex; align-items:center; gap:8px; margin-top:6px; padding:7px 8px; border-radius:6px; background:rgba(0,0,0,.14); }
.field-prospect-path-row code { min-width:0; flex:1 1 auto; color:#aaa398; font-family:ui-monospace,SFMono-Regular,Consolas,monospace; overflow-wrap:anywhere; }
.field-prospect-path-row .vbtn { flex:0 0 auto; }
.field-prospect-path-help > .vmuted { margin-top:6px; line-height:1.45; }
.field-prospect-library-row { display:grid; grid-template-columns:minmax(150px,1fr) auto auto auto; gap:6px; align-items:center; }
.field-prospect-library-row select { min-width:0; width:100%; }
.field-prospect-share-row { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.field-prospect-code-box { min-width:230px; flex:1 1 320px; padding:9px 11px; border:1px solid rgba(255,255,255,.08); border-radius:8px; background:rgba(0,0,0,.16); }
.field-prospect-code-box span { display:block; margin-bottom:3px; color:#77726a; font-size:8px; font-weight:850; letter-spacing:.12em; text-transform:uppercase; }
.field-prospect-code-box b { display:block; color:#a39c91; font-size:12px; letter-spacing:.04em; overflow-wrap:anywhere; }
.field-prospect-code-box b.ready { color:#e2c58f; font-family:ui-monospace,SFMono-Regular,Consolas,monospace; letter-spacing:.07em; }
.field-prospect-share-actions { display:flex; flex:0 0 auto; flex-wrap:wrap; gap:6px; justify-content:flex-end; }
.field-prospect-status { min-height:18px; padding-top:10px; border-top:1px solid rgba(255,255,255,.065); color:#928c82; font-size:11px; line-height:1.45; }
.field-prospect-busy .field-prospect-manager button,
.field-prospect-busy .field-prospect-manager label.vbtn { opacity:.68; }

@media (max-width: 900px) {
  .field-prospect-manager-grid { grid-template-columns:1fr; }
  .field-prospect-saved-panel,
  .field-prospect-share-panel { grid-column:auto; }
  .field-prospect-share-row { align-items:stretch; flex-direction:column; }
  .field-prospect-share-actions { justify-content:flex-start; }
}

@media (max-width: 680px) {
  .field-prospect-manager-head { display:block; }
  .field-prospect-storage-badge { display:inline-block; margin-top:8px; }
  .field-prospect-library-row { grid-template-columns:1fr 1fr 1fr; }
  .field-prospect-library-row select { grid-column:1 / -1; }
  .field-prospect-folder-row .vbtn { flex:1 1 160px; }
  .field-prospect-code-box { min-width:0; }
  .field-prospect-share-actions .vbtn { flex:1 1 140px; }
}

/* Prospect Analyzer uses the same terrain art as the main map and plots records straight from the selected save. */
.field-prospect-map-card { padding:12px; }
.field-prospect-map-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:9px; }
.field-prospect-map-head .vtitle { margin:3px 0 4px; }
.field-prospect-map-actions, .field-prospect-breed { display:flex; align-items:center; flex-wrap:wrap; gap:6px; }
.field-prospect-map-actions .vbtn, .field-prospect-breed .vbtn { min-height:34px; padding:6px 10px; }
.field-prospect-map-actions .active, .field-prospect-breed .active { border-color:rgba(215,169,93,.62); background:rgba(215,169,93,.11); color:#f0d09a; }
/* Keep the Grid switch compact and consistent with the Interactive Map controls. */
.field-prospect-map-actions .field-prospect-grid-toggle { display:inline-flex; align-items:center; justify-content:space-between; gap:7px; min-width:84px; padding:6px 8px; color:#d9c7a3; border-color:#3b3b3b; background:#141414; }
.field-prospect-grid-toggle i { position:relative; display:block; width:31px; height:17px; flex:0 0 31px; border:1px solid rgba(131,112,67,.80); border-radius:999px; background:#242015; box-sizing:border-box; transition:background .15s ease,border-color .15s ease; }
.field-prospect-grid-toggle i::after { content:''; position:absolute; top:2px; left:2px; width:11px; height:11px; border-radius:50%; background:#b7a57a; transition:transform .15s ease,background .15s ease; }
.field-prospect-map-actions .field-prospect-grid-toggle.active { color:#f0d49c; border-color:rgba(91,75,40,.78); background:#17140e; }
.field-prospect-grid-toggle.active i { border-color:#d1a23a; background:#75591e; }
.field-prospect-grid-toggle.active i::after { transform:translateX(14px); background:#ffe19a; }
.field-prospect-map-actions .field-prospect-grid-toggle[data-enabled="0"] { color:#9e927b; border-color:#3b3b3b; background:#141414; }
.field-prospect-breed { margin:0 0 9px; }
.field-prospect-visible { margin-left:auto; color:#8f8b83; font-size:11px; }
.field-prospect-map-layout { display:grid; grid-template-columns:minmax(0,1fr) 230px; gap:14px; align-items:start; }
@media (min-width: 901px) {
  /* Keep the Resources list clear of the page scroll. */
  .field-prospect-map-layout { padding-right:46px; box-sizing:border-box; }
}
.field-prospect-map-wrap { position:relative; min-height:520px; height:min(72vh,860px); overflow:hidden; border:1px solid rgba(255,255,255,.09); border-radius:10px; background:#080a09; touch-action:none; }
.field-prospect-map { display:block; width:100%; height:100%; cursor:default; }
.field-prospect-map.is-panning { cursor:grabbing; }
.field-prospect-map-tip { position:absolute; left:10px; bottom:10px; padding:6px 8px; border:1px solid rgba(255,255,255,.09); border-radius:7px; background:rgba(9,10,9,.84); color:#aaa399; font-size:10px; pointer-events:none; backdrop-filter:blur(5px); }
.field-prospect-sidebar { max-height:min(72vh,860px); overflow:auto; scrollbar-gutter:stable; border:1px solid rgba(255,255,255,.08); border-radius:10px; background:rgba(255,255,255,.02); padding:9px; }
.field-prospect-sidebar-head { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:7px; }
.field-prospect-sidebar-head b { color:#e6e0d5; font-size:12px; }
.field-prospect-sidebar-head button { border:0; background:transparent; color:#b9a77f; font:inherit; font-size:10px; cursor:pointer; padding:3px 4px; }
.field-prospect-legend { display:grid; gap:4px; }
.field-prospect-filter { display:grid; grid-template-columns:auto 12px minmax(0,1fr); gap:7px; align-items:center; min-height:31px; padding:5px 6px; border-radius:6px; cursor:pointer; color:#c6c0b5; font-size:11px; }
.field-prospect-filter:hover { background:rgba(255,255,255,.035); }
.field-prospect-filter input { margin:0; }
.field-prospect-filter small { color:#74716b; margin-left:3px; }
.field-resource-dot { display:inline-block; width:10px; height:10px; border-radius:50%; background:var(--resource-color); box-shadow:0 0 0 1px rgba(0,0,0,.55),0 0 8px color-mix(in srgb,var(--resource-color) 45%,transparent); }
.field-prospect-save-meta { display:grid; gap:2px; margin-top:10px; padding-top:9px; border-top:1px solid rgba(255,255,255,.07); }
.field-prospect-save-meta span { margin-top:5px; color:#74716b; font-size:9px; text-transform:uppercase; letter-spacing:.08em; }
.field-prospect-save-meta b { color:#bbb5aa; font-size:11px; overflow-wrap:anywhere; }
/* Keep clicked deposit details simple and easy to scan. */
.field-prospect-detail { position:absolute; z-index:4; top:12px; left:12px; width:min(310px,calc(100% - 24px)); border:1px solid rgba(255,255,255,.10); border-radius:9px; padding:10px 11px; background:rgba(8,10,9,.92); color:#8f8a82; font-size:11px; box-shadow:0 10px 28px rgba(0,0,0,.28); backdrop-filter:blur(6px); pointer-events:none; }
.field-prospect-detail[hidden] { display:none; }
.field-prospect-detail-head { display:flex; align-items:center; gap:8px; }
.field-prospect-detail-head .field-resource-dot { width:12px; height:12px; }
.field-prospect-detail-head b, .field-prospect-detail-head small { display:block; }
.field-prospect-detail-head b { color:#ece5d9; font-size:13px; }
.field-prospect-detail-head small { margin-top:1px; color:#868179; }
.field-prospect-detail-grid { display:grid; gap:0; margin-top:8px; padding-top:2px; border-top:1px solid rgba(255,255,255,.07); }
.field-prospect-detail-grid div { display:grid; grid-template-columns:94px minmax(0,1fr); gap:10px; align-items:center; min-height:29px; padding:5px 0; border-bottom:1px solid rgba(255,255,255,.055); }
.field-prospect-detail-grid div:last-child { border-bottom:0; }
.field-prospect-detail-grid span, .field-prospect-detail-grid b { display:block; }
.field-prospect-detail-grid span { color:#77736c; font-size:8px; text-transform:uppercase; letter-spacing:.08em; }
.field-prospect-detail-grid b { color:#c8c1b5; font-size:10px; line-height:1.25; }
.field-prospect-detail-grid div:last-child b { white-space:nowrap; font-family:ui-monospace,SFMono-Regular,Consolas,monospace; }
.field-prospect-note { margin-top:9px; }

@media (max-width: 900px) {
  .field-prospect-map-layout { grid-template-columns:1fr; }
  .field-prospect-sidebar { max-height:none; }
  .field-prospect-legend { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width: 620px) {
  .field-prospect-map-head { display:block; }
  .field-prospect-map-actions { margin-top:8px; }
  .field-prospect-map-wrap { min-height:390px; height:62vh; }
  .field-prospect-map-tip { display:none; }
  .field-prospect-legend { grid-template-columns:1fr; }
  .field-prospect-visible { width:100%; margin-left:0; }
}

/* v1.11.3 alignment pass: support tiles and desktop map controls */
@media (min-width: 821px) {
  /* Icarus and Valheim support actions use one consistent tile size. */
  .ic-support-actions,
  .vh-overview-support-actions {
    grid-template-columns: repeat(auto-fill, 182px);
    justify-content: start;
    align-items: stretch;
  }

  .ic-support-actions .vh-btn,
  .ic-support-actions a.vh-btn,
  .vh-overview-support-actions .vh-btn,
  .vh-overview-support-actions a.vh-btn {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    width: 182px;
    min-width: 182px;
    max-width: 182px;
    height: 60px;
    min-height: 60px;
    box-sizing: border-box;
    line-height: 1.2;
    white-space: nowrap;
    text-align: left;
  }

  /* Keep the Icarus map fields on one visual baseline with matching control sizes. */
  #map .map-toolbar > .map-marker-select-wrap,
  #map .map-toolbar > .map-marker-input-wrap {
    width: 168px !important;
    min-width: 168px !important;
    max-width: 168px !important;
  }

  #map .map-toolbar .marker-scroll-picker,
  #map .map-toolbar .map-marker-label-input,
  #map .map-toolbar .codex-select,
  #map .map-toolbar .variant-mobile-select-trigger {
    width: 168px !important;
    min-width: 168px !important;
    max-width: 168px !important;
    height: 34px !important;
    min-height: 34px !important;
    box-sizing: border-box !important;
  }

  #map .map-toolbar > .map-marker-select-wrap > div:first-child,
  #map .map-toolbar > .map-marker-input-wrap > div:first-child {
    min-height: 10px;
    line-height: 10px !important;
    white-space: nowrap;
  }

  #map .map-control-saved-filters {
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
  }

  #map .map-control-saved-filters .map-filter-preset-wrap {
    flex-wrap: nowrap;
  }

  #map .map-control-saved-filters .map-filter-preset-wrap select {
    width: 145px;
    min-width: 145px;
    height: 34px;
    min-height: 34px;
    box-sizing: border-box;
  }

  #map .map-control-saved-filters .map-filter-preset-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    min-width: 64px;
    height: 34px;
    min-height: 34px;
    padding: 6px 8px;
    box-sizing: border-box;
    white-space: nowrap;
  }

  #map .map-toolbar > button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 112px;
    min-width: 112px;
    max-width: 112px;
    height: 34px !important;
    min-height: 34px !important;
    box-sizing: border-box;
    white-space: nowrap;
  }
}

@media (max-width: 820px) {
  /* Phone support tiles stay even without forcing desktop-sized widths. */
  .ic-support-actions,
  .vh-overview-support-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ic-support-actions .vh-btn,
  .ic-support-actions a.vh-btn,
  .vh-overview-support-actions .vh-btn,
  .vh-overview-support-actions a.vh-btn {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    min-height: 46px;
    box-sizing: border-box;
    line-height: 1.2;
  }
}


/* v1.11.4 map-toolbar correction: the v1.11 fixed-width pass must not override the newer grid layout. */
@media (min-width:821px){
  #map .map-toolbar{
    display:grid!important;
    grid-template-columns:repeat(auto-fit,minmax(140px,1fr))!important;
    grid-auto-flow:row!important;
    align-items:end!important;
    gap:8px!important;
    width:100%!important;
    box-sizing:border-box!important;
  }
  #map .map-toolbar > *{
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    box-sizing:border-box!important;
    transform:none!important;
  }
  #map .map-toolbar > .map-marker-select-wrap,
  #map .map-toolbar > .map-marker-input-wrap{
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    align-self:stretch!important;
  }
  #map .map-toolbar .marker-scroll-picker,
  #map .map-toolbar .map-marker-label-input,
  #map .map-toolbar .codex-select,
  #map .map-toolbar .variant-mobile-select-trigger,
  #map .map-toolbar > button{
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    height:36px!important;
    min-height:36px!important;
    max-height:none!important;
    box-sizing:border-box!important;
  }
  #map .map-toolbar > .map-marker-select-wrap > div:first-child,
  #map .map-toolbar > .map-marker-input-wrap > div:first-child{
    min-height:12px!important;
    line-height:12px!important;
    margin:0 0 3px 3px!important;
  }
  #map .map-toolbar .map-control-saved-filters{
    grid-column:span 2!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
  }
  #map .map-control-saved-filters .map-filter-preset-wrap{
    display:grid!important;
    grid-template-columns:minmax(105px,1fr) auto auto auto!important;
    gap:5px!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    flex-wrap:nowrap!important;
  }
  #map .map-control-saved-filters .map-filter-preset-wrap select{
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    height:36px!important;
    min-height:36px!important;
  }
  #map .map-control-saved-filters .map-filter-preset-button{
    width:auto!important;
    min-width:0!important;
    max-width:none!important;
    height:36px!important;
    min-height:36px!important;
    padding:6px 8px!important;
    box-sizing:border-box!important;
    white-space:nowrap!important;
  }
  #map .map-biome-toggle,
  #map .map-reset-view-button,
  #map .map-place-marker-button{align-self:end!important}
}

@media (min-width:821px) and (max-width:1180px){
  #map .map-toolbar{grid-template-columns:repeat(4,minmax(0,1fr))!important}
  #map .map-toolbar .map-control-saved-filters{grid-column:span 2!important}
}

/* v1.11.4 interactive-map toolbar polish.
   Keep controls grouped like a toolbar instead of stretching them across the whole card. */
@media (min-width:821px){
  #map .map-toolbar{
    display:flex!important;
    flex-wrap:wrap!important;
    align-items:flex-end!important;
    justify-content:flex-start!important;
    gap:6px!important;
    column-gap:6px!important;
    row-gap:8px!important;
    width:100%!important;
    box-sizing:border-box!important;
    margin:8px 0 10px!important;
  }

  #map .map-toolbar > *{
    flex:0 0 auto!important;
    width:auto!important;
    min-width:0!important;
    max-width:none!important;
    margin:0!important;
    transform:none!important;
    align-self:flex-end!important;
    box-sizing:border-box!important;
  }

  /* Labeled fields all use the same label row and the same control baseline. */
  #map .map-toolbar > .map-marker-select-wrap,
  #map .map-toolbar > .map-marker-input-wrap{
    display:flex!important;
    flex-direction:column!important;
    justify-content:flex-end!important;
    align-items:stretch!important;
    gap:4px!important;
    width:184px!important;
    min-width:184px!important;
    max-width:184px!important;
  }

  #map .map-toolbar > .map-marker-select-wrap > div:first-child,
  #map .map-toolbar > .map-marker-input-wrap > div:first-child{
    display:flex!important;
    align-items:flex-end!important;
    min-height:13px!important;
    height:13px!important;
    margin:0 0 0 3px!important;
    padding:0!important;
    line-height:13px!important;
    font-size:12px!important;
    white-space:nowrap!important;
  }

  #map .map-toolbar .marker-scroll-picker,
  #map .map-toolbar .map-marker-label-input,
  #map .map-toolbar .codex-select,
  #map .map-toolbar .variant-mobile-select-trigger,
  #map .map-toolbar .marker-scroll-trigger,
  #map .map-toolbar > button,
  #map .map-control-saved-filters .map-filter-preset-wrap select,
  #map .map-control-saved-filters .map-filter-preset-button{
    height:36px!important;
    min-height:36px!important;
    max-height:36px!important;
    box-sizing:border-box!important;
    margin:0!important;
    line-height:1.15!important;
  }

  #map .map-toolbar .marker-scroll-picker,
  #map .map-toolbar .map-marker-label-input,
  #map .map-toolbar .codex-select,
  #map .map-toolbar .variant-mobile-select-trigger,
  #map .map-toolbar .marker-scroll-trigger{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
  }

  /* Placement is an action, so keep it close to the fields without making it a giant column. */
  #map .map-place-marker-button{
    width:132px!important;
    min-width:132px!important;
    max-width:132px!important;
    padding:7px 12px!important;
  }

  #map .map-control-filter{
    width:184px!important;
    min-width:184px!important;
    max-width:184px!important;
  }

  /* Saved filters are one compact group: preset first, then its three actions. */
  #map .map-toolbar .map-control-saved-filters{
    width:360px!important;
    min-width:360px!important;
    max-width:360px!important;
  }
  #map .map-control-saved-filters .map-filter-preset-wrap{
    display:grid!important;
    grid-template-columns:minmax(126px,1fr) auto auto auto!important;
    align-items:end!important;
    gap:5px!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
  }
  #map .map-control-saved-filters .map-filter-preset-wrap select{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
  }
  #map .map-control-saved-filters .map-filter-preset-button{
    width:auto!important;
    min-width:0!important;
    max-width:none!important;
    padding:6px 8px!important;
    white-space:nowrap!important;
  }

  #map .map-control-map-detail{
    width:184px!important;
    min-width:184px!important;
    max-width:184px!important;
  }
  #map .map-biome-toggle{
    width:176px!important;
    min-width:176px!important;
    max-width:176px!important;
    padding:7px 10px!important;
  }
  #map .map-reset-view-button{
    width:128px!important;
    min-width:128px!important;
    max-width:128px!important;
    padding:7px 10px!important;
  }

}

/* A narrower desktop can wrap naturally; controls stay grouped and aligned on each row. */
@media (min-width:821px) and (max-width:1500px){
  #map .map-toolbar > .map-marker-select-wrap,
  #map .map-toolbar > .map-marker-input-wrap,
  #map .map-control-filter,
  #map .map-control-map-detail{
    width:172px!important;
    min-width:172px!important;
    max-width:172px!important;
  }
  #map .map-toolbar .map-control-saved-filters{
    width:342px!important;
    min-width:342px!important;
    max-width:342px!important;
  }
}

@media (min-width:821px){
  /* One shape language for the whole Icarus map control strip. */
  #map .map-toolbar .marker-scroll-trigger,
  #map .map-toolbar .map-marker-label-input,
  #map .map-toolbar .codex-select,
  #map .map-toolbar .variant-mobile-select-trigger,
  #map .map-toolbar > button,
  #map .map-control-saved-filters .map-filter-preset-button{
    border-radius:8px!important;
  }
}

/* What’s New can carry the full v1.11.4 release summary without crowding the heading. */
.field-news-subtitle{
  margin:5px 0 0;
  max-width:620px;
  color:var(--muted,#aa9f87);
  font-size:13px;
  line-height:1.35;
}
@media (max-width:700px){
  .field-news-grid{grid-template-columns:minmax(0,1fr)!important;}
  .field-news{max-height:min(86dvh,760px);overflow:auto;}
}

/* Final grouped-toolbar guard. Older v1.11 toolbar rules target direct children;
   these three containers are now the only direct children of the Icarus toolbar. */
@media (min-width:821px){
  #map .map-toolbar.map-toolbar-grouped > .map-toolbar-group{
    flex:0 1 auto!important;
    width:max-content!important;
    min-width:0!important;
    max-width:100%!important;
    align-self:stretch!important;
    transform:none!important;
  }
}
