/* Forest Frontier v0.9.16 — визуал карты ближе к утверждённому прототипу,
   более связный граф, подробные характеристики героя и совместимость особых рун. */

/* Несовместимые особые руны видны, но не выглядят доступными. */

/* Расширенная карточка характеристик героя. */
body.theme-ashen .hero-combat-detail-row {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  min-width:0;
  padding:7px 8px;
  border:1px solid rgba(91,118,105,.24);
  border-radius:8px;
  background:rgba(3,10,8,.56);
}
body.theme-ashen .hero-combat-detail-row span { color:#8fa39b; font-size:10px; }
body.theme-ashen .hero-combat-detail-row strong { color:#e5ddc9; font-size:11px; text-align:right; }

/* Карта экспедиции: художественная подача прототипа. */
body.theme-ashen .ruins-route-map {
  padding: 12px 10px 16px;
  border: 1px solid rgba(174,132,58,.55);
  border-radius: 16px;
  background:
    radial-gradient(ellipse at 50% 12%,rgba(28,76,61,.23),transparent 34%),
    radial-gradient(ellipse at 50% 72%,rgba(18,60,46,.19),transparent 52%),
    linear-gradient(180deg,#071612 0%,#04100d 52%,#020a08 100%);
  box-shadow: inset 0 0 70px rgba(0,0,0,.52),0 14px 36px rgba(0,0,0,.3);
}
body.theme-ashen .ruins-labyrinth-map { gap:10px; }
body.theme-ashen .ruins-labyrinth-head { padding:3px 7px 0; }
body.theme-ashen .ruins-labyrinth-head > span { color:#dec17b; font-size:13px; }
body.theme-ashen .ruins-labyrinth-head > small { color:#718d82; font-size:10px; }
body.theme-ashen .ruins-guardian-caption {
  margin-top:2px;
  color:#e6bd62;
  font-size:12px;
  text-shadow:0 0 10px rgba(220,170,69,.22);
}
body.theme-ashen .ruins-medallion-canvas {
  background:
    radial-gradient(circle at 18% 24%,rgba(70,121,98,.07),transparent 18%),
    radial-gradient(circle at 82% 55%,rgba(70,121,98,.06),transparent 20%),
    repeating-linear-gradient(60deg,transparent 0 44px,rgba(76,113,97,.025) 45px 46px,transparent 47px 90px);
}
body.theme-ashen .ruins-medallion-canvas::before {
  opacity:.23;
  background-image:
    linear-gradient(30deg,transparent 48%,rgba(114,151,132,.10) 49%,transparent 51%),
    linear-gradient(-30deg,transparent 48%,rgba(114,151,132,.07) 49%,transparent 51%);
  background-size:92px 92px;
}
body.theme-ashen .ruins-medallion-paths path {
  stroke:#a37b32;
  stroke-width:2.25;
  opacity:.50;
  filter:drop-shadow(0 0 2px rgba(211,159,58,.22));
}
body.theme-ashen .ruins-medallion-paths path.available {
  stroke:#e9bc57;
  stroke-width:3.35;
  opacity:1;
  filter:drop-shadow(0 0 5px rgba(239,187,75,.72));
}
body.theme-ashen .ruins-medallion-paths path.active {
  stroke:#d1a24b;
  stroke-width:3.05;
  opacity:.97;
  filter:drop-shadow(0 0 4px rgba(221,164,62,.52));
}
body.theme-ashen .ruins-medallion-paths path.mystery { stroke-dasharray:4 5; opacity:.28; }
body.theme-ashen .ruins-route-rivet {
  fill:#d5aa55;
  stroke:#4a300e;
  stroke-width:.45;
  opacity:.72;
}
body.theme-ashen .ruins-route-rivet.available { fill:#f4d177; opacity:1; }
body.theme-ashen .ruins-medallion-grid { grid-auto-rows:126px; }
body.theme-ashen .ruins-medallion-row { align-items:start; }
body.theme-ashen .ruins-medallion-node { min-height:120px; gap:6px; }

body.theme-ashen .ruins-medallion-shell,
body.theme-ashen .ruins-medallion-node.round .ruins-medallion-shell {
  width:78px;
  height:78px;
  border:2px solid currentColor;
  border-radius:50%;
  clip-path:none;
  background:
    radial-gradient(circle at 36% 28%,rgba(255,255,255,.15),transparent 22%),
    radial-gradient(circle at 50% 50%,color-mix(in srgb,currentColor 16%,transparent),transparent 68%),
    linear-gradient(145deg,#202a24,#070d0a 76%);
  box-shadow:
    inset 0 0 0 3px #050a08,
    inset 0 0 0 6px color-mix(in srgb,currentColor 22%,transparent),
    inset 0 0 22px rgba(255,255,255,.035),
    0 7px 18px rgba(0,0,0,.62);
}
body.theme-ashen .ruins-medallion-shell::before {
  content:'';
  position:absolute;
  inset:-6px;
  z-index:-1;
  border:1px solid color-mix(in srgb,currentColor 72%,transparent);
  border-radius:50%;
  box-shadow:0 0 0 2px rgba(4,9,7,.9);
}
body.theme-ashen .ruins-medallion-shell::after {
  content:'';
  position:absolute;
  inset:-10px;
  border:1px solid color-mix(in srgb,currentColor 36%,transparent);
  border-radius:50%;
  opacity:.9;
  clip-path:polygon(0 0,42% 0,42% 5%,58% 5%,58% 0,100% 0,100% 42%,95% 42%,95% 58%,100% 58%,100% 100%,58% 100%,58% 95%,42% 95%,42% 100%,0 100%,0 58%,5% 58%,5% 42%,0 42%);
}
body.theme-ashen .ruins-medallion-node.hex .ruins-medallion-shell {
  width:80px;
  height:76px;
  border:0;
  border-radius:0;
  clip-path:polygon(50% 0,92% 22%,92% 78%,50% 100%,8% 78%,8% 22%);
  background:currentColor;
  box-shadow:0 7px 18px rgba(0,0,0,.62);
}
body.theme-ashen .ruins-medallion-node.hex .ruins-medallion-shell::before {
  display:block;
  inset:3px;
  z-index:0;
  border:0;
  border-radius:0;
  clip-path:inherit;
  background:
    radial-gradient(circle at 36% 28%,rgba(255,255,255,.14),transparent 22%),
    radial-gradient(circle at 50% 50%,color-mix(in srgb,currentColor 15%,transparent),transparent 68%),
    linear-gradient(145deg,#1f2823,#070d0a 76%);
  box-shadow:inset 0 0 0 3px #050a08,inset 0 0 0 5px color-mix(in srgb,currentColor 20%,transparent);
}
body.theme-ashen .ruins-medallion-node.hex .ruins-medallion-shell::after {
  inset:-5px;
  border:1px solid color-mix(in srgb,currentColor 62%,transparent);
  border-radius:0;
  clip-path:inherit;
}
body.theme-ashen .ruins-medallion-icon { width:40px; height:40px; stroke-width:2.2; }
body.theme-ashen .ruins-medallion-node.hex .ruins-medallion-icon { z-index:2; }
body.theme-ashen .ruins-medallion-node.boss .ruins-medallion-shell {
  width:104px;
  height:104px;
  border-width:3px;
  color:#e0b756;
  background:
    radial-gradient(circle at 38% 30%,rgba(255,255,255,.16),transparent 22%),
    radial-gradient(circle,#174a3a 0%,#0b2f26 46%,#07100d 72%);
  box-shadow:
    inset 0 0 0 4px #050a08,
    inset 0 0 0 8px rgba(224,183,86,.25),
    0 0 0 3px rgba(224,183,86,.18),
    0 0 34px rgba(203,151,48,.28),
    0 10px 24px rgba(0,0,0,.62);
}
body.theme-ashen .ruins-medallion-node.boss .ruins-medallion-shell::before { inset:-8px; border-width:2px; }
body.theme-ashen .ruins-medallion-node.boss .ruins-medallion-shell::after { inset:-14px; }
body.theme-ashen .ruins-medallion-node.boss .ruins-medallion-icon { width:57px; height:57px; }

body.theme-ashen .ruins-medallion-node.normal { color:#d5b96f; }
body.theme-ashen .ruins-medallion-node.elite { color:#59d18a; }
body.theme-ashen .ruins-medallion-node.rare { color:#5eaff0; }
body.theme-ashen .ruins-medallion-node.recovery { color:#d9d86a; }
body.theme-ashen .ruins-medallion-node.altar { color:#c493ef; }
body.theme-ashen .ruins-medallion-node.reward { color:#e2b64e; }
body.theme-ashen .ruins-medallion-node.sacrifice { color:#d56b70; }
body.theme-ashen .ruins-medallion-node.event { color:#68c9aa; }
body.theme-ashen .ruins-medallion-node.unknown { color:#9b927f; }
body.theme-ashen .ruins-medallion-node.boss { color:#e0b756; }
body.theme-ashen .ruins-medallion-node.future { opacity:.55; }
body.theme-ashen .ruins-medallion-node.unknown.future { opacity:.50; }
body.theme-ashen .ruins-medallion-node.completed { opacity:.66; }
body.theme-ashen .ruins-medallion-node.available,
body.theme-ashen .ruins-medallion-node.position,
body.theme-ashen .ruins-medallion-node.current { opacity:1; }
body.theme-ashen .ruins-medallion-node.available .ruins-medallion-shell {
  box-shadow:
    inset 0 0 0 3px #050a08,
    inset 0 0 0 6px color-mix(in srgb,currentColor 25%,transparent),
    0 0 0 3px rgba(240,193,83,.30),
    0 0 28px rgba(235,184,70,.48),
    0 8px 18px rgba(0,0,0,.62);
}
body.theme-ashen .ruins-medallion-node.position .ruins-medallion-shell,
body.theme-ashen .ruins-medallion-node.current .ruins-medallion-shell {
  box-shadow:
    inset 0 0 0 3px #050a08,
    inset 0 0 0 6px color-mix(in srgb,currentColor 24%,transparent),
    0 0 0 3px rgba(72,227,151,.32),
    0 0 30px rgba(63,224,146,.56),
    0 8px 18px rgba(0,0,0,.62);
}
body.theme-ashen .ruins-medallion-node.available::after { top:79px; color:#e9bd5c; }
body.theme-ashen .ruins-medallion-node.position .ruins-node-label::before,
body.theme-ashen .ruins-medallion-node.current .ruins-node-label::before { content:none; }
body.theme-ashen .ruins-node-label {
  display:flex;
  align-items:center;
  justify-content:center;
  width:max-content;
  max-width:116px;
  min-height:27px;
  margin-top:2px;
  padding:4px 10px;
  border:1px solid rgba(151,119,61,.46);
  border-radius:7px;
  background:linear-gradient(180deg,rgba(16,22,18,.97),rgba(4,8,6,.98));
  box-shadow:0 4px 10px rgba(0,0,0,.50),inset 0 1px rgba(255,255,255,.025);
}
body.theme-ashen .ruins-node-label strong {
  color:currentColor;
  font-size:13px;
  line-height:1;
  white-space:nowrap;
  overflow:visible;
  text-overflow:clip;
}
body.theme-ashen .ruins-node-label small { display:none; }
body.theme-ashen .ruins-node-level {
  right:-5px;
  bottom:-4px;
  min-width:23px;
  height:23px;
  border-color:rgba(224,205,158,.70);
  background:#080e0b;
  font-size:11px;
}
body.theme-ashen .ruins-node-check { right:-7px; top:-7px; width:23px; height:23px; }
body.theme-ashen .ruins-support-row-title { top:-3px; font-size:10px; }
body.theme-ashen .preboss-support-row { padding-top:22px; }
body.theme-ashen .ruins-start-marker { margin-top:2px; padding-bottom:4px; }
body.theme-ashen .ruins-start-marker strong { color:#72d8ba; font-size:14px; }
body.theme-ashen .ruins-start-marker small { font-size:10px; }

@media (max-width: 520px) {
  body.theme-ashen .ruins-medallion-shell,
  body.theme-ashen .ruins-medallion-node.round .ruins-medallion-shell { width:68px; height:68px; }
  body.theme-ashen .ruins-medallion-node.hex .ruins-medallion-shell { width:70px; height:67px; }
  body.theme-ashen .ruins-medallion-icon { width:35px; height:35px; }
  body.theme-ashen .ruins-medallion-node.boss .ruins-medallion-shell { width:88px; height:88px; }
  body.theme-ashen .ruins-medallion-node.boss .ruins-medallion-icon { width:48px; height:48px; }
  body.theme-ashen .ruins-node-label { max-width:105px; padding:4px 7px; }
  body.theme-ashen .ruins-node-label strong { font-size:11px; }
  body.theme-ashen .ruins-medallion-node.available::after { top:69px; }
}
@media (max-width: 360px) {
  body.theme-ashen .ruins-route-map { padding-inline:5px; }
  body.theme-ashen .ruins-medallion-shell,
  body.theme-ashen .ruins-medallion-node.round .ruins-medallion-shell { width:62px; height:62px; }
  body.theme-ashen .ruins-medallion-node.hex .ruins-medallion-shell { width:64px; height:61px; }
  body.theme-ashen .ruins-medallion-icon { width:32px; height:32px; }
  body.theme-ashen .ruins-medallion-node.boss .ruins-medallion-shell { width:82px; height:82px; }
  body.theme-ashen .ruins-node-label { max-width:96px; padding-inline:5px; }
  body.theme-ashen .ruins-node-label strong { font-size:10px; }
  body.theme-ashen .ruins-medallion-node.available::after { top:63px; }
}
