.workspace-art img {
  object-fit: contain;
  object-position: center;
}

.horizon-notice {
  max-width: 560px;
  margin: 0 0 26px;
  padding: 17px 19px;
  border-left: 3px solid var(--orange);
  background: rgba(238, 113, 73, 0.09);
}

.horizon-notice strong {
  display: block;
  margin-bottom: 6px;
  color: var(--gold);
  font: 500 11px "DM Mono", monospace;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.horizon-notice p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.55;
}

.crafting-page .workspace { align-items: start; padding-top: 56px; }
.crafting-page .workspace-art { position: sticky; top: 28px; }
.synthesis-box { max-width: 680px; padding: 24px; border: 1px solid var(--line); background: rgba(17,24,39,.8); box-shadow: 0 24px 60px rgba(0,0,0,.22); }
.synthesis-heading,.ingredient-heading { display:flex; align-items:end; justify-content:space-between; gap:20px; }
.synthesis-heading h3 { margin:5px 0 0; font:600 25px Cinzel,Georgia,serif; }
.synthesis-heading button { border:0; background:transparent; color:var(--muted); padding:6px 0; font:600 10px 'DM Mono',monospace; letter-spacing:.08em; text-transform:uppercase; cursor:pointer; }
.synthesis-heading button:hover { color:var(--orange); }
.recipe-field { display:block; margin-top:23px; }
.recipe-field>span { display:block; margin-bottom:9px; color:var(--muted); font:500 10px 'DM Mono',monospace; letter-spacing:.1em; text-transform:uppercase; }
.recipe-picker { position:relative; }
.recipe-trigger { width:100%; min-height:50px; display:flex; align-items:center; justify-content:space-between; gap:12px; border:1px solid var(--line); background:#151e30; color:var(--ink); padding:9px 14px; font:600 12px Manrope,sans-serif; text-align:left; cursor:pointer; }
.recipe-trigger>span:first-child { min-width:0; display:flex; align-items:center; gap:10px; }
.recipe-trigger>span:last-child { color:var(--orange); }
.recipe-picker.open .recipe-trigger { border-color:var(--orange); }
.recipe-menu { display:none; position:absolute; z-index:30; top:calc(100% + 4px); left:0; right:0; padding:8px; border:1px solid rgba(238,113,73,.6); background:#111a2a; box-shadow:0 18px 38px rgba(0,0,0,.55); }
.recipe-picker.open .recipe-menu { display:block; }
.recipe-menu input { width:100%; border:1px solid var(--line); background:#0b111d; color:var(--ink); padding:11px 12px; font:500 12px Manrope,sans-serif; }
.recipe-menu input:focus { outline:1px solid var(--orange); }
.recipe-list { max-height:300px; overflow-y:auto; margin-top:6px; }
.recipe-list button { width:100%; display:flex; align-items:center; gap:11px; border:0; background:transparent; color:var(--ink); padding:7px; text-align:left; cursor:pointer; }
.recipe-list button:hover,.recipe-list button:focus { outline:0; background:rgba(238,113,73,.12); }
.recipe-list button>span:last-child { display:flex; min-width:0; flex-direction:column; gap:2px; }
.recipe-list strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font:600 12px Manrope,sans-serif; }
.recipe-list small { color:var(--muted); font:9px 'DM Mono',monospace; text-transform:uppercase; }
.recipe-icon { flex:0 0 32px; width:32px; height:32px; display:grid; place-items:center; overflow:hidden; background:#0c1320; }
.recipe-icon img,.material-icon img,.crystal-icon img { width:32px; height:32px; object-fit:contain; image-rendering:auto; }
.crystal-field { margin:23px 0; padding:18px; border:1px solid var(--line); background:#0d1421; }
.crystal-field>span,.ingredient-heading>span { display:block; margin-bottom:12px; color:var(--muted); font:500 10px 'DM Mono',monospace; letter-spacing:.1em; text-transform:uppercase; }
.crystal-options { display:flex; flex-wrap:wrap; gap:8px; }
.crystal-choice { position:relative; display:flex; align-items:center; gap:7px; padding:9px 11px; border:1px solid var(--line); color:var(--muted); font-size:11px; cursor:pointer; transition:.15s ease; }
.crystal-choice input { position:absolute; opacity:0; pointer-events:none; }
.crystal-choice:has(input:checked) { border-color:var(--orange); background:rgba(238,113,73,.1); color:var(--ink); }
.crystal-icon { width:28px; height:28px; display:grid; place-items:center; overflow:hidden; color:var(--gold); font-size:15px; }
.ingredient-heading { align-items:center; }
.ingredient-heading>span { margin:0; }
.ingredient-heading small { color:var(--muted); font-size:10px; }
.ingredient-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:12px; }
.ingredient-picker { position:relative; min-width:0; }
.ingredient-trigger { width:100%; min-height:52px; display:flex; align-items:center; gap:10px; border:1px solid var(--line); background:#151e30; color:var(--ink); padding:8px 12px 8px 9px; text-align:left; cursor:pointer; }
.ingredient-trigger:hover,.ingredient-picker.open .ingredient-trigger { border-color:rgba(238,113,73,.65); }
.slot-number { flex:0 0 25px; height:25px; display:grid; place-items:center; border:1px solid var(--line); color:var(--gold); font:500 9px 'DM Mono',monospace; }
.selected-material { min-width:0; flex:1; display:flex; align-items:center; gap:8px; font:600 12px Manrope,sans-serif; }
.selected-material>span:last-child { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.material-placeholder { color:#7f8b9e; font-weight:500; }
.picker-chevron { color:var(--orange); }
.material-icon { flex:0 0 28px; width:28px; height:28px; display:grid; place-items:center; border:1px solid rgba(231,166,95,.25); background:#0c1320; color:var(--gold); font-size:15px; }
.material-icon img { width:28px; height:28px; }
.ingredient-menu { display:none; position:absolute; z-index:20; top:calc(100% + 4px); left:0; right:0; padding:8px; border:1px solid rgba(238,113,73,.6); background:#111a2a; box-shadow:0 18px 38px rgba(0,0,0,.55); }
.ingredient-picker.open .ingredient-menu { display:block; }
.ingredient-menu input { width:100%; border:1px solid var(--line); background:#0b111d; color:var(--ink); padding:11px 12px; font:500 12px Manrope,sans-serif; }
.ingredient-menu input:focus { outline:1px solid var(--orange); }
.material-list { max-height:220px; overflow-y:auto; margin-top:6px; }
.material-list button { width:100%; display:flex; align-items:center; gap:10px; border:0; background:transparent; color:var(--ink); padding:7px; text-align:left; font:500 12px Manrope,sans-serif; cursor:pointer; }
.material-list button:hover,.material-list button:focus { outline:0; background:rgba(238,113,73,.12); }
.no-results { margin:14px; color:var(--muted); font-size:12px; text-align:center; }
.visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.vendor-pricing { margin-top:24px; padding-top:22px; border-top:1px solid var(--line); }
.vendor-pricing-heading { display:flex; align-items:end; justify-content:space-between; gap:20px; }
.vendor-pricing-heading h4 { margin:5px 0 0; font:600 20px Cinzel,Georgia,serif; }
.vendor-pricing-heading>strong { color:var(--gold); font:500 11px 'DM Mono',monospace; text-align:right; }
.vendor-pricing-note { margin:12px 0 17px; color:var(--muted); font-size:11px; line-height:1.55; }
.vendor-pricing-note a { color:var(--gold); }
.craft-profit-summary { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; margin:0 0 18px; border:1px solid var(--line); background:var(--line); }
.profit-metric { min-width:0; padding:14px; background:#111a28; }
.profit-metric span { display:block; color:var(--muted); font:500 9px 'DM Mono',monospace; letter-spacing:.06em; text-transform:uppercase; }
.profit-metric strong { display:block; margin-top:7px; color:var(--ink); font:600 18px Cinzel,Georgia,serif; }
.profit-metric small { display:block; overflow:hidden; margin-top:5px; color:#7f8b9e; font-size:8px; line-height:1.45; text-overflow:ellipsis; white-space:nowrap; }
.profit-metric.positive strong { color:#8fc8a1; }
.profit-metric.negative strong { color:#e48b78; }
.vendor-price-labels,.vendor-price-row { display:grid; grid-template-columns:minmax(145px,1fr) minmax(185px,1.25fr) minmax(105px,.7fr); gap:14px; align-items:center; }
.vendor-price-labels { padding:0 12px 8px; color:#7f8b9e; font:500 9px 'DM Mono',monospace; letter-spacing:.08em; text-transform:uppercase; }
.vendor-price-labels span:last-child { text-align:right; }
.vendor-price-row { min-height:68px; padding:10px 12px; border-top:1px solid var(--line); background:#0d1421; }
.vendor-price-row:last-child { border-bottom:1px solid var(--line); }
.vendor-item { min-width:0; display:flex; align-items:center; gap:9px; }
.vendor-item>span:last-child,.vendor-offer { min-width:0; display:flex; flex-direction:column; gap:3px; }
.vendor-item strong,.vendor-offer strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:11px; }
.vendor-offer strong i { margin-left:5px; color:#7f8b9e; font:500 7px 'DM Mono',monospace; font-style:normal; letter-spacing:.05em; text-transform:uppercase; }
.vendor-item small,.vendor-offer small { overflow:hidden; color:var(--muted); font-size:9px; text-overflow:ellipsis; white-space:nowrap; }
.vendor-offer em { color:#8fc8a1; font:500 8px 'DM Mono',monospace; font-style:normal; letter-spacing:.04em; text-transform:uppercase; }
.vendor-price-row.conditional .vendor-offer em { color:var(--gold); }
.vendor-price-row.player_stock .vendor-offer em,.vendor-price-row.unavailable .vendor-offer strong { color:#d98a78; }
.vendor-price-row.source-vendor { box-shadow:inset 2px 0 #8fc8a1; }
.vendor-price-row.source-ah-single,.vendor-price-row.source-ah-stack { box-shadow:inset 2px 0 #6fa9d8; }
.vendor-price-row.source-psxi-single,.vendor-price-row.source-psxi-stack { box-shadow:inset 2px 0 #a686d5; }
.vendor-price-row.source-cluster,.vendor-price-row.source-cluster-stack { box-shadow:inset 2px 0 var(--gold); }
.vendor-price-row.source-psxi-cluster,.vendor-price-row.source-psxi-cluster-stack { box-shadow:inset 2px 0 #b69a66; }
.vendor-cost { color:var(--ink); font:500 10px 'DM Mono',monospace; text-align:right; }
.vendor-access-message { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:18px; border:1px solid rgba(231,166,95,.35); background:rgba(231,166,95,.06); }
.vendor-access-message strong { color:var(--muted); font-size:12px; line-height:1.5; }
.vendor-access-message a { flex:0 0 auto; color:var(--gold); font:600 10px 'DM Mono',monospace; letter-spacing:.04em; text-decoration:none; text-transform:uppercase; }
.vendor-alternatives { grid-column:1/-1; margin-top:2px; border-top:1px solid rgba(255,255,255,.06); padding-top:9px; }
.vendor-alternatives summary { color:var(--gold); font:500 9px 'DM Mono',monospace; letter-spacing:.05em; text-transform:uppercase; cursor:pointer; }
.vendor-alternatives>div { margin-top:9px; border:1px solid var(--line); }
.vendor-alternatives section { display:grid; grid-template-columns:minmax(0,1fr) minmax(100px,.35fr); gap:13px; align-items:center; padding:10px 11px; border-top:1px solid var(--line); background:#0a101a; }
.vendor-alternatives section:first-child { border-top:0; }
.vendor-alternatives section>span { min-width:0; display:flex; flex-direction:column; gap:3px; }
.vendor-alternatives section strong,.vendor-alternatives section small,.vendor-alternatives section em { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.vendor-alternatives section strong { font-size:10px; }.vendor-alternatives section small { color:var(--muted); font-size:8px; }.vendor-alternatives section em { color:var(--gold); font:500 8px 'DM Mono',monospace; font-style:normal; text-transform:uppercase; }
.vendor-alternatives section b { color:var(--ink); font:500 9px 'DM Mono',monospace; text-align:right; }
@media(max-width:900px){.ingredient-grid{grid-template-columns:1fr}.synthesis-box{padding:20px}}
@media(max-width:700px){.crafting-page .workspace-art{position:relative;top:auto}.ingredient-grid{grid-template-columns:1fr}.crystal-choice{flex:1 0 30%}.craft-profit-summary{grid-template-columns:1fr}.vendor-price-labels{display:none}.vendor-price-row{grid-template-columns:1fr auto}.vendor-offer{grid-column:1/-1;padding-left:37px}.vendor-cost{grid-column:2;grid-row:1}.vendor-pricing-heading{align-items:start;flex-direction:column}.vendor-pricing-heading>strong{text-align:left}.vendor-alternatives section{grid-template-columns:1fr auto}.vendor-alternatives section b{grid-column:2;grid-row:1}}
